summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-06 13:18:21 +0300
committerPaul Buetow <paul@buetow.org>2025-09-06 13:18:21 +0300
commit5e966f50111adf6e2cb2683fe588f6fe033fa931 (patch)
tree19ac2033483c2ac6147e8f44ac37f14e6a5c0cf7 /docs
parent80e61812986573464cd24c4b3ffa605c4003146a (diff)
fix unit test coverage
Diffstat (limited to 'docs')
-rw-r--r--docs/coverage.html2585
-rw-r--r--docs/coverage.out14106
2 files changed, 13072 insertions, 3619 deletions
diff --git a/docs/coverage.html b/docs/coverage.html
index d22ef74..6b80630 100644
--- a/docs/coverage.html
+++ b/docs/coverage.html
@@ -55,53 +55,69 @@
<div id="nav">
<select id="files">
- <option value="file0">codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go (0.0%)</option>
+ <option value="file0">codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go (75.0%)</option>
- <option value="file1">codeberg.org/snonux/hexai/cmd/hexai/main.go (0.0%)</option>
+ <option value="file1">codeberg.org/snonux/hexai/cmd/hexai/main.go (71.4%)</option>
- <option value="file2">codeberg.org/snonux/hexai/internal/appconfig/config.go (91.6%)</option>
+ <option value="file2">codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go (0.0%)</option>
- <option value="file3">codeberg.org/snonux/hexai/internal/hexaicli/run.go (72.6%)</option>
+ <option value="file3">codeberg.org/snonux/hexai/internal/appconfig/config.go (91.6%)</option>
- <option value="file4">codeberg.org/snonux/hexai/internal/hexailsp/run.go (92.5%)</option>
+ <option value="file4">codeberg.org/snonux/hexai/internal/hexaiaction/parse.go (92.6%)</option>
- <option value="file5">codeberg.org/snonux/hexai/internal/llm/copilot.go (81.8%)</option>
+ <option value="file5">codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go (81.1%)</option>
- <option value="file6">codeberg.org/snonux/hexai/internal/llm/ollama.go (88.0%)</option>
+ <option value="file6">codeberg.org/snonux/hexai/internal/hexaiaction/run.go (33.3%)</option>
- <option value="file7">codeberg.org/snonux/hexai/internal/llm/openai.go (85.5%)</option>
+ <option value="file7">codeberg.org/snonux/hexai/internal/hexaiaction/tui.go (47.3%)</option>
- <option value="file8">codeberg.org/snonux/hexai/internal/llm/provider.go (100.0%)</option>
+ <option value="file8">codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go (91.7%)</option>
- <option value="file9">codeberg.org/snonux/hexai/internal/llm/util.go (100.0%)</option>
+ <option value="file9">codeberg.org/snonux/hexai/internal/hexaicli/run.go (78.8%)</option>
- <option value="file10">codeberg.org/snonux/hexai/internal/logging/chatlogger.go (100.0%)</option>
+ <option value="file10">codeberg.org/snonux/hexai/internal/hexailsp/run.go (92.5%)</option>
- <option value="file11">codeberg.org/snonux/hexai/internal/logging/logging.go (100.0%)</option>
+ <option value="file11">codeberg.org/snonux/hexai/internal/llm/copilot.go (82.4%)</option>
- <option value="file12">codeberg.org/snonux/hexai/internal/lsp/context.go (74.4%)</option>
+ <option value="file12">codeberg.org/snonux/hexai/internal/llm/ollama.go (89.8%)</option>
- <option value="file13">codeberg.org/snonux/hexai/internal/lsp/document.go (90.1%)</option>
+ <option value="file13">codeberg.org/snonux/hexai/internal/llm/openai.go (85.5%)</option>
- <option value="file14">codeberg.org/snonux/hexai/internal/lsp/handlers.go (92.9%)</option>
+ <option value="file14">codeberg.org/snonux/hexai/internal/llm/provider.go (100.0%)</option>
- <option value="file15">codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go (81.2%)</option>
+ <option value="file15">codeberg.org/snonux/hexai/internal/llm/util.go (100.0%)</option>
- <option value="file16">codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go (87.6%)</option>
+ <option value="file16">codeberg.org/snonux/hexai/internal/llmutils/client.go (100.0%)</option>
- <option value="file17">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (88.9%)</option>
+ <option value="file17">codeberg.org/snonux/hexai/internal/logging/chatlogger.go (100.0%)</option>
- <option value="file18">codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go (75.0%)</option>
+ <option value="file18">codeberg.org/snonux/hexai/internal/logging/logging.go (90.9%)</option>
- <option value="file19">codeberg.org/snonux/hexai/internal/lsp/handlers_init.go (55.6%)</option>
+ <option value="file19">codeberg.org/snonux/hexai/internal/lsp/context.go (74.4%)</option>
- <option value="file20">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (88.5%)</option>
+ <option value="file20">codeberg.org/snonux/hexai/internal/lsp/document.go (90.1%)</option>
- <option value="file21">codeberg.org/snonux/hexai/internal/lsp/server.go (82.1%)</option>
+ <option value="file21">codeberg.org/snonux/hexai/internal/lsp/handlers.go (92.9%)</option>
- <option value="file22">codeberg.org/snonux/hexai/internal/lsp/transport.go (71.4%)</option>
+ <option value="file22">codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go (81.9%)</option>
- <option value="file23">codeberg.org/snonux/hexai/internal/testutil/fixtures.go (60.0%)</option>
+ <option value="file23">codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go (87.6%)</option>
+
+ <option value="file24">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (88.9%)</option>
+
+ <option value="file25">codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go (75.0%)</option>
+
+ <option value="file26">codeberg.org/snonux/hexai/internal/lsp/handlers_init.go (55.6%)</option>
+
+ <option value="file27">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (89.0%)</option>
+
+ <option value="file28">codeberg.org/snonux/hexai/internal/lsp/server.go (82.1%)</option>
+
+ <option value="file29">codeberg.org/snonux/hexai/internal/lsp/transport.go (71.4%)</option>
+
+ <option value="file30">codeberg.org/snonux/hexai/internal/testutil/fixtures.go (60.0%)</option>
+
+ <option value="file31">codeberg.org/snonux/hexai/internal/textutil/textutil.go (89.0%)</option>
</select>
</div>
@@ -136,11 +152,11 @@ import (
"codeberg.org/snonux/hexai/internal/hexailsp"
)
-func main() <span class="cov0" title="0">{
+func main() <span class="cov8" title="1">{
logPath := flag.String("log", "/tmp/hexai-lsp.log", "path to log file (optional)")
showVersion := flag.Bool("version", false, "print version and exit")
flag.Parse()
- if *showVersion </span><span class="cov0" title="0">{
+ if *showVersion </span><span class="cov8" title="1">{
log.Println(internal.Version)
return
}</span>
@@ -164,10 +180,10 @@ import (
"codeberg.org/snonux/hexai/internal/hexaicli"
)
-func main() <span class="cov0" title="0">{
+func main() <span class="cov8" title="1">{
showVersion := flag.Bool("version", false, "print version and exit")
flag.Parse()
- if *showVersion </span><span class="cov0" title="0">{
+ if *showVersion </span><span class="cov8" title="1">{
fmt.Fprintln(os.Stdout, internal.Version)
return
}</span>
@@ -178,7 +194,25 @@ func main() <span class="cov0" title="0">{
}
</pre>
- <pre class="file" id="file2" style="display: none">// Summary: Application configuration model and loader; reads ~/.config/hexai/config.toml and merges defaults.
+ <pre class="file" id="file2" style="display: none">package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+
+ "codeberg.org/snonux/hexai/internal/hexaiaction"
+)
+
+func main() <span class="cov0" title="0">{
+ if err := hexaiaction.Run(context.Background(), os.Stdin, os.Stdout, os.Stderr); err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }</span>
+}
+</pre>
+
+ <pre class="file" id="file3" style="display: none">// Summary: Application configuration model and loader; reads ~/.config/hexai/config.toml and merges defaults.
package appconfig
import (
@@ -234,43 +268,43 @@ type App struct {
// Default temperature for Ollama requests (nil means use provider default)
OllamaTemperature *float64 `json:"ollama_temperature" toml:"ollama_temperature"`
CopilotBaseURL string `json:"copilot_base_url" toml:"copilot_base_url"`
- CopilotModel string `json:"copilot_model" toml:"copilot_model"`
- // Default temperature for Copilot requests (nil means use provider default)
- CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"`
-
- // Prompt templates (configured only via file; no env overrides)
- // Completion/chat/code action/CLI prompt strings. See config.toml.example for placeholders.
- // Completion
- PromptCompletionSystemGeneral string `json:"-" toml:"-"`
- PromptCompletionSystemParams string `json:"-" toml:"-"`
- PromptCompletionSystemInline string `json:"-" toml:"-"`
- PromptCompletionUserGeneral string `json:"-" toml:"-"`
- PromptCompletionUserParams string `json:"-" toml:"-"`
- PromptCompletionExtraHeader string `json:"-" toml:"-"`
- // Provider-native code-completer
- PromptNativeCompletion string `json:"-" toml:"-"`
- // In-editor chat
- PromptChatSystem string `json:"-" toml:"-"`
- // Code actions
- PromptCodeActionRewriteSystem string `json:"-" toml:"-"`
- PromptCodeActionDiagnosticsSystem string `json:"-" toml:"-"`
- PromptCodeActionDocumentSystem string `json:"-" toml:"-"`
- PromptCodeActionRewriteUser string `json:"-" toml:"-"`
- PromptCodeActionDiagnosticsUser string `json:"-" toml:"-"`
- PromptCodeActionDocumentUser string `json:"-" toml:"-"`
- PromptCodeActionGoTestSystem string `json:"-" toml:"-"`
- PromptCodeActionGoTestUser string `json:"-" toml:"-"`
- // CLI
- PromptCLIDefaultSystem string `json:"-" toml:"-"`
- PromptCLIExplainSystem string `json:"-" toml:"-"`
+ CopilotModel string `json:"copilot_model" toml:"copilot_model"`
+ // Default temperature for Copilot requests (nil means use provider default)
+ CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"`
+
+ // Prompt templates (configured only via file; no env overrides)
+ // Completion/chat/code action/CLI prompt strings. See config.toml.example for placeholders.
+ // Completion
+ PromptCompletionSystemGeneral string `json:"-" toml:"-"`
+ PromptCompletionSystemParams string `json:"-" toml:"-"`
+ PromptCompletionSystemInline string `json:"-" toml:"-"`
+ PromptCompletionUserGeneral string `json:"-" toml:"-"`
+ PromptCompletionUserParams string `json:"-" toml:"-"`
+ PromptCompletionExtraHeader string `json:"-" toml:"-"`
+ // Provider-native code-completer
+ PromptNativeCompletion string `json:"-" toml:"-"`
+ // In-editor chat
+ PromptChatSystem string `json:"-" toml:"-"`
+ // Code actions
+ PromptCodeActionRewriteSystem string `json:"-" toml:"-"`
+ PromptCodeActionDiagnosticsSystem string `json:"-" toml:"-"`
+ PromptCodeActionDocumentSystem string `json:"-" toml:"-"`
+ PromptCodeActionRewriteUser string `json:"-" toml:"-"`
+ PromptCodeActionDiagnosticsUser string `json:"-" toml:"-"`
+ PromptCodeActionDocumentUser string `json:"-" toml:"-"`
+ PromptCodeActionGoTestSystem string `json:"-" toml:"-"`
+ PromptCodeActionGoTestUser string `json:"-" toml:"-"`
+ // CLI
+ PromptCLIDefaultSystem string `json:"-" toml:"-"`
+ PromptCLIExplainSystem string `json:"-" toml:"-"`
}
// Constructor: defaults for App (kept first among functions)
-func newDefaultConfig() App <span class="cov5" title="11">{
+func newDefaultConfig() App <span class="cov5" title="13">{
// Coding-friendly default temperature across providers
// Users can override per provider in config.toml (including 0.0).
t := 0.2
- return App{
+ return App{
MaxTokens: 4000,
ContextMode: "always-full",
ContextWindowLines: 120,
@@ -287,47 +321,47 @@ func newDefaultConfig() App <span class="cov5" title="11">{
InlineOpen: "&gt;",
InlineClose: "&gt;",
ChatSuffix: "&gt;",
- ChatPrefixes: []string{"?", "!", ":", ";"},
-
- // Default prompt templates (match current hard-coded strings)
- PromptCompletionSystemParams: "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types.",
- PromptCompletionUserParams: "Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: {{function}}\nCurrent line (cursor at {{char}}): {{current}}",
- PromptCompletionSystemGeneral: "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression).",
- PromptCompletionUserGeneral: "Provide the next likely code to insert at the cursor.\nFile: {{file}}\nFunction/context: {{function}}\nAbove line: {{above}}\nCurrent line (cursor at character {{char}}): {{current}}\nBelow line: {{below}}\nOnly return the completion snippet.",
- PromptCompletionSystemInline: "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only.",
- PromptCompletionExtraHeader: "Additional context:\n{{context}}",
-
- PromptNativeCompletion: "// Path: {{path}}\n{{before}}",
-
- PromptChatSystem: "You are a helpful coding assistant. Answer concisely and clearly.",
-
- PromptCodeActionRewriteSystem: "You are a precise code refactoring engine. Rewrite the given code strictly according to the instruction. Return only the updated code with no prose or backticks. Preserve formatting where reasonable.",
- PromptCodeActionDiagnosticsSystem: "You are a precise code fixer. Resolve the given diagnostics by editing only the selected code. Return only the corrected code with no prose or backticks. Keep behavior and style, and avoid unrelated changes.",
- PromptCodeActionDocumentSystem: "You are a precise code documentation engine. Add idiomatic documentation comments to the given code. Preserve exact behavior and formatting as much as possible. Return only the updated code with comments, no prose or backticks.",
- PromptCodeActionRewriteUser: "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}",
- PromptCodeActionDiagnosticsUser: "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}",
- PromptCodeActionDocumentUser: "Add documentation comments to this code:\n{{selection}}",
- PromptCodeActionGoTestSystem: "You are a precise Go unit test generator. Given a Go function, write one or more Test* functions using the testing package. Do NOT include package or imports, only the test function(s). Prefer table-driven tests. Keep it minimal and idiomatic.",
- PromptCodeActionGoTestUser: "Function under test:\n{{function}}",
-
- PromptCLIDefaultSystem: "You are Hexai CLI. Default to very short, concise answers. If the user asks for commands, output only the commands (one per line) with no commentary or explanation. Only when the word 'explain' appears in the prompt, produce a verbose explanation.",
- PromptCLIExplainSystem: "You are Hexai CLI. The user requested an explanation. Provide a clear, verbose explanation with reasoning and details. If commands are needed, include them with brief context.",
- }
+ ChatPrefixes: []string{"?", "!", ":", ";"},
+
+ // Default prompt templates (match current hard-coded strings)
+ PromptCompletionSystemParams: "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types.",
+ PromptCompletionUserParams: "Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: {{function}}\nCurrent line (cursor at {{char}}): {{current}}",
+ PromptCompletionSystemGeneral: "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression).",
+ PromptCompletionUserGeneral: "Provide the next likely code to insert at the cursor.\nFile: {{file}}\nFunction/context: {{function}}\nAbove line: {{above}}\nCurrent line (cursor at character {{char}}): {{current}}\nBelow line: {{below}}\nOnly return the completion snippet.",
+ PromptCompletionSystemInline: "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only.",
+ PromptCompletionExtraHeader: "Additional context:\n{{context}}",
+
+ PromptNativeCompletion: "// Path: {{path}}\n{{before}}",
+
+ PromptChatSystem: "You are a helpful coding assistant. Answer concisely and clearly.",
+
+ PromptCodeActionRewriteSystem: "You are a precise code refactoring engine. Rewrite the given code strictly according to the instruction. Return only the updated code with no prose or backticks. Preserve formatting where reasonable.",
+ PromptCodeActionDiagnosticsSystem: "You are a precise code fixer. Resolve the given diagnostics by editing only the selected code. Return only the corrected code with no prose or backticks. Keep behavior and style, and avoid unrelated changes.",
+ PromptCodeActionDocumentSystem: "You are a precise code documentation engine. Add idiomatic documentation comments to the given code. Preserve exact behavior and formatting as much as possible. Return only the updated code with comments, no prose or backticks.",
+ PromptCodeActionRewriteUser: "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}",
+ PromptCodeActionDiagnosticsUser: "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}",
+ PromptCodeActionDocumentUser: "Add documentation comments to this code:\n{{selection}}",
+ PromptCodeActionGoTestSystem: "You are a precise Go unit test generator. Given a Go function, write one or more Test* functions using the testing package. Do NOT include package or imports, only the test function(s). Prefer table-driven tests. Keep it minimal and idiomatic.",
+ PromptCodeActionGoTestUser: "Function under test:\n{{function}}",
+
+ PromptCLIDefaultSystem: "You are Hexai CLI. Default to very short, concise answers. If the user asks for commands, output only the commands (one per line) with no commentary or explanation. Only when the word 'explain' appears in the prompt, produce a verbose explanation.",
+ PromptCLIExplainSystem: "You are Hexai CLI. The user requested an explanation. Provide a clear, verbose explanation with reasoning and details. If commands are needed, include them with brief context.",
+ }
}</span>
// Load reads configuration from a file and merges with defaults.
// It respects the XDG Base Directory Specification.
-func Load(logger *log.Logger) App <span class="cov5" title="10">{
+func Load(logger *log.Logger) App <span class="cov5" title="12">{
cfg := newDefaultConfig()
- if logger == nil </span><span class="cov2" title="3">{
+ if logger == nil </span><span class="cov3" title="4">{
return cfg // Return defaults if no logger is provided (e.g. in tests)
}</span>
- <span class="cov4" title="7">configPath, err := getConfigPath()
+ <span class="cov4" title="8">configPath, err := getConfigPath()
if err != nil </span><span class="cov0" title="0">{
logger.Printf("%v", err)
// Even if config path cannot be resolved, still allow env overrides below.
- }</span> else<span class="cov4" title="7"> {
+ }</span> else<span class="cov4" title="8"> {
if fileCfg, err := loadFromFile(configPath, logger); err == nil &amp;&amp; fileCfg != nil </span><span class="cov3" title="4">{
cfg.mergeWith(fileCfg)
}</span>
@@ -336,359 +370,359 @@ func Load(logger *log.Logger) App <span class="cov5" title="10">{
}
// Environment overrides (take precedence over file)
- <span class="cov4" title="7">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
cfg.mergeWith(envCfg)
}</span>
- <span class="cov4" title="7">return cfg</span>
+ <span class="cov4" title="8">return cfg</span>
}
// Private helpers
// Sectioned (table-based) file format only.
type fileConfig struct {
- // Section tables only (flat keys are not allowed)
- General sectionGeneral `toml:"general"`
- Logging sectionLogging `toml:"logging"`
- Completion sectionCompletion `toml:"completion"`
- Triggers sectionTriggers `toml:"triggers"`
- Inline sectionInline `toml:"inline"`
- Chat sectionChat `toml:"chat"`
- Provider sectionProvider `toml:"provider"`
- OpenAI sectionOpenAI `toml:"openai"`
- Copilot sectionCopilot `toml:"copilot"`
- Ollama sectionOllama `toml:"ollama"`
- Prompts sectionPrompts `toml:"prompts"`
+ // Section tables only (flat keys are not allowed)
+ General sectionGeneral `toml:"general"`
+ Logging sectionLogging `toml:"logging"`
+ Completion sectionCompletion `toml:"completion"`
+ Triggers sectionTriggers `toml:"triggers"`
+ Inline sectionInline `toml:"inline"`
+ Chat sectionChat `toml:"chat"`
+ Provider sectionProvider `toml:"provider"`
+ OpenAI sectionOpenAI `toml:"openai"`
+ Copilot sectionCopilot `toml:"copilot"`
+ Ollama sectionOllama `toml:"ollama"`
+ Prompts sectionPrompts `toml:"prompts"`
}
type sectionGeneral struct {
- MaxTokens int `toml:"max_tokens"`
- ContextMode string `toml:"context_mode"`
- ContextWindowLines int `toml:"context_window_lines"`
- MaxContextTokens int `toml:"max_context_tokens"`
- CodingTemperature *float64 `toml:"coding_temperature"`
+ MaxTokens int `toml:"max_tokens"`
+ ContextMode string `toml:"context_mode"`
+ ContextWindowLines int `toml:"context_window_lines"`
+ MaxContextTokens int `toml:"max_context_tokens"`
+ CodingTemperature *float64 `toml:"coding_temperature"`
}
type sectionLogging struct {
- LogPreviewLimit int `toml:"log_preview_limit"`
+ LogPreviewLimit int `toml:"log_preview_limit"`
}
type sectionCompletion struct {
- CompletionDebounceMs int `toml:"completion_debounce_ms"`
- CompletionThrottleMs int `toml:"completion_throttle_ms"`
- ManualInvokeMinPrefix int `toml:"manual_invoke_min_prefix"`
+ CompletionDebounceMs int `toml:"completion_debounce_ms"`
+ CompletionThrottleMs int `toml:"completion_throttle_ms"`
+ ManualInvokeMinPrefix int `toml:"manual_invoke_min_prefix"`
}
type sectionTriggers struct {
- TriggerCharacters []string `toml:"trigger_characters"`
+ TriggerCharacters []string `toml:"trigger_characters"`
}
type sectionInline struct {
- InlineOpen string `toml:"inline_open"`
- InlineClose string `toml:"inline_close"`
+ InlineOpen string `toml:"inline_open"`
+ InlineClose string `toml:"inline_close"`
}
type sectionChat struct {
- ChatSuffix string `toml:"chat_suffix"`
- ChatPrefixes []string `toml:"chat_prefixes"`
+ ChatSuffix string `toml:"chat_suffix"`
+ ChatPrefixes []string `toml:"chat_prefixes"`
}
type sectionProvider struct {
- Name string `toml:"name"`
+ Name string `toml:"name"`
}
type sectionOpenAI struct {
- Model string `toml:"model"`
- BaseURL string `toml:"base_url"`
- Temperature *float64 `toml:"temperature"`
+ Model string `toml:"model"`
+ BaseURL string `toml:"base_url"`
+ Temperature *float64 `toml:"temperature"`
}
type sectionCopilot struct {
- Model string `toml:"model"`
- BaseURL string `toml:"base_url"`
- Temperature *float64 `toml:"temperature"`
+ Model string `toml:"model"`
+ BaseURL string `toml:"base_url"`
+ Temperature *float64 `toml:"temperature"`
}
type sectionOllama struct {
- Model string `toml:"model"`
- BaseURL string `toml:"base_url"`
- Temperature *float64 `toml:"temperature"`
+ Model string `toml:"model"`
+ BaseURL string `toml:"base_url"`
+ Temperature *float64 `toml:"temperature"`
}
// Prompts sections
type sectionPrompts struct {
- Completion sectionPromptsCompletion `toml:"completion"`
- Chat sectionPromptsChat `toml:"chat"`
- CodeAction sectionPromptsCodeAction `toml:"code_action"`
- CLI sectionPromptsCLI `toml:"cli"`
- ProviderNative sectionPromptsProviderNative `toml:"provider_native"`
+ Completion sectionPromptsCompletion `toml:"completion"`
+ Chat sectionPromptsChat `toml:"chat"`
+ CodeAction sectionPromptsCodeAction `toml:"code_action"`
+ CLI sectionPromptsCLI `toml:"cli"`
+ ProviderNative sectionPromptsProviderNative `toml:"provider_native"`
}
type sectionPromptsCompletion struct {
- SystemGeneral string `toml:"system_general"`
- SystemParams string `toml:"system_params"`
- SystemInline string `toml:"system_inline"`
- UserGeneral string `toml:"user_general"`
- UserParams string `toml:"user_params"`
- ExtraHeader string `toml:"additional_context"`
+ SystemGeneral string `toml:"system_general"`
+ SystemParams string `toml:"system_params"`
+ SystemInline string `toml:"system_inline"`
+ UserGeneral string `toml:"user_general"`
+ UserParams string `toml:"user_params"`
+ ExtraHeader string `toml:"additional_context"`
}
type sectionPromptsChat struct {
- System string `toml:"system"`
+ System string `toml:"system"`
}
type sectionPromptsCodeAction struct {
- RewriteSystem string `toml:"rewrite_system"`
- DiagnosticsSystem string `toml:"diagnostics_system"`
- DocumentSystem string `toml:"document_system"`
- RewriteUser string `toml:"rewrite_user"`
- DiagnosticsUser string `toml:"diagnostics_user"`
- DocumentUser string `toml:"document_user"`
- GoTestSystem string `toml:"go_test_system"`
- GoTestUser string `toml:"go_test_user"`
+ RewriteSystem string `toml:"rewrite_system"`
+ DiagnosticsSystem string `toml:"diagnostics_system"`
+ DocumentSystem string `toml:"document_system"`
+ RewriteUser string `toml:"rewrite_user"`
+ DiagnosticsUser string `toml:"diagnostics_user"`
+ DocumentUser string `toml:"document_user"`
+ GoTestSystem string `toml:"go_test_system"`
+ GoTestUser string `toml:"go_test_user"`
}
type sectionPromptsCLI struct {
- DefaultSystem string `toml:"default_system"`
- ExplainSystem string `toml:"explain_system"`
+ DefaultSystem string `toml:"default_system"`
+ ExplainSystem string `toml:"explain_system"`
}
type sectionPromptsProviderNative struct {
- Completion string `toml:"completion"`
+ Completion string `toml:"completion"`
}
func (fc *fileConfig) toApp() App <span class="cov3" title="4">{
- out := App{}
-
- // Merge section: general
- if (fc.General != sectionGeneral{}) || fc.General.CodingTemperature != nil </span><span class="cov2" title="3">{
- tmp := App{
- MaxTokens: fc.General.MaxTokens,
- ContextMode: fc.General.ContextMode,
- ContextWindowLines: fc.General.ContextWindowLines,
- MaxContextTokens: fc.General.MaxContextTokens,
- CodingTemperature: fc.General.CodingTemperature,
- }
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // logging
- <span class="cov3" title="4">if (fc.Logging != sectionLogging{}) </span><span class="cov1" title="1">{
- tmp := App{LogPreviewLimit: fc.Logging.LogPreviewLimit}
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // completion
- <span class="cov3" title="4">if (fc.Completion != sectionCompletion{}) </span><span class="cov2" title="3">{
- tmp := App{
- CompletionDebounceMs: fc.Completion.CompletionDebounceMs,
- CompletionThrottleMs: fc.Completion.CompletionThrottleMs,
- ManualInvokeMinPrefix: fc.Completion.ManualInvokeMinPrefix,
- }
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // triggers
- <span class="cov3" title="4">if len(fc.Triggers.TriggerCharacters) &gt; 0 </span><span class="cov2" title="3">{
- tmp := App{TriggerCharacters: fc.Triggers.TriggerCharacters}
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // inline
- <span class="cov3" title="4">if (fc.Inline != sectionInline{}) </span><span class="cov1" title="1">{
- tmp := App{InlineOpen: fc.Inline.InlineOpen, InlineClose: fc.Inline.InlineClose}
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // chat
- <span class="cov3" title="4">if strings.TrimSpace(fc.Chat.ChatSuffix) != "" || len(fc.Chat.ChatPrefixes) &gt; 0 </span><span class="cov1" title="1">{
- tmp := App{ChatSuffix: fc.Chat.ChatSuffix, ChatPrefixes: fc.Chat.ChatPrefixes}
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // provider
- <span class="cov3" title="4">if strings.TrimSpace(fc.Provider.Name) != "" </span><span class="cov2" title="3">{
- tmp := App{Provider: fc.Provider.Name}
- out.mergeBasics(&amp;tmp)
- }</span>
-
- // openai
- <span class="cov3" title="4">if (fc.OpenAI != sectionOpenAI{}) || fc.OpenAI.Temperature != nil </span><span class="cov2" title="3">{
- tmp := App{
- OpenAIBaseURL: fc.OpenAI.BaseURL,
- OpenAIModel: fc.OpenAI.Model,
- OpenAITemperature: fc.OpenAI.Temperature,
- }
- out.mergeProviderFields(&amp;tmp)
- }</span>
-
- // copilot
- <span class="cov3" title="4">if (fc.Copilot != sectionCopilot{}) || fc.Copilot.Temperature != nil </span><span class="cov2" title="3">{
- tmp := App{
- CopilotBaseURL: fc.Copilot.BaseURL,
- CopilotModel: fc.Copilot.Model,
- CopilotTemperature: fc.Copilot.Temperature,
- }
- out.mergeProviderFields(&amp;tmp)
- }</span>
-
- // ollama
- <span class="cov3" title="4">if (fc.Ollama != sectionOllama{}) || fc.Ollama.Temperature != nil </span><span class="cov2" title="3">{
- tmp := App{
- OllamaBaseURL: fc.Ollama.BaseURL,
- OllamaModel: fc.Ollama.Model,
- OllamaTemperature: fc.Ollama.Temperature,
- }
- out.mergeProviderFields(&amp;tmp)
- }</span>
-
- // prompts
- // completion
- <span class="cov3" title="4">if (fc.Prompts.Completion != sectionPromptsCompletion{}) </span><span class="cov1" title="1">{
- if strings.TrimSpace(fc.Prompts.Completion.SystemGeneral) != "" </span><span class="cov1" title="1">{
- out.PromptCompletionSystemGeneral = fc.Prompts.Completion.SystemGeneral
- }</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.SystemParams) != "" </span><span class="cov1" title="1">{
- out.PromptCompletionSystemParams = fc.Prompts.Completion.SystemParams
- }</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.SystemInline) != "" </span><span class="cov1" title="1">{
- out.PromptCompletionSystemInline = fc.Prompts.Completion.SystemInline
- }</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.UserGeneral) != "" </span><span class="cov1" title="1">{
- out.PromptCompletionUserGeneral = fc.Prompts.Completion.UserGeneral
- }</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.UserParams) != "" </span><span class="cov1" title="1">{
- out.PromptCompletionUserParams = fc.Prompts.Completion.UserParams
- }</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.ExtraHeader) != "" </span><span class="cov1" title="1">{
- out.PromptCompletionExtraHeader = fc.Prompts.Completion.ExtraHeader
+ out := App{}
+
+ // Merge section: general
+ if (fc.General != sectionGeneral{}) || fc.General.CodingTemperature != nil </span><span class="cov2" title="3">{
+ tmp := App{
+ MaxTokens: fc.General.MaxTokens,
+ ContextMode: fc.General.ContextMode,
+ ContextWindowLines: fc.General.ContextWindowLines,
+ MaxContextTokens: fc.General.MaxContextTokens,
+ CodingTemperature: fc.General.CodingTemperature,
+ }
+ out.mergeBasics(&amp;tmp)
}</span>
- }
- // chat
- <span class="cov3" title="4">if strings.TrimSpace(fc.Prompts.Chat.System) != "" </span><span class="cov1" title="1">{
- out.PromptChatSystem = fc.Prompts.Chat.System
- }</span>
- // code action
- <span class="cov3" title="4">if (fc.Prompts.CodeAction != sectionPromptsCodeAction{}) </span><span class="cov1" title="1">{
- if strings.TrimSpace(fc.Prompts.CodeAction.RewriteSystem) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionRewriteSystem = fc.Prompts.CodeAction.RewriteSystem
+
+ // logging
+ <span class="cov3" title="4">if (fc.Logging != sectionLogging{}) </span><span class="cov1" title="1">{
+ tmp := App{LogPreviewLimit: fc.Logging.LogPreviewLimit}
+ out.mergeBasics(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsSystem) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionDiagnosticsSystem = fc.Prompts.CodeAction.DiagnosticsSystem
+
+ // completion
+ <span class="cov3" title="4">if (fc.Completion != sectionCompletion{}) </span><span class="cov2" title="3">{
+ tmp := App{
+ CompletionDebounceMs: fc.Completion.CompletionDebounceMs,
+ CompletionThrottleMs: fc.Completion.CompletionThrottleMs,
+ ManualInvokeMinPrefix: fc.Completion.ManualInvokeMinPrefix,
+ }
+ out.mergeBasics(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DocumentSystem) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionDocumentSystem = fc.Prompts.CodeAction.DocumentSystem
+
+ // triggers
+ <span class="cov3" title="4">if len(fc.Triggers.TriggerCharacters) &gt; 0 </span><span class="cov2" title="3">{
+ tmp := App{TriggerCharacters: fc.Triggers.TriggerCharacters}
+ out.mergeBasics(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.RewriteUser) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionRewriteUser = fc.Prompts.CodeAction.RewriteUser
+
+ // inline
+ <span class="cov3" title="4">if (fc.Inline != sectionInline{}) </span><span class="cov1" title="1">{
+ tmp := App{InlineOpen: fc.Inline.InlineOpen, InlineClose: fc.Inline.InlineClose}
+ out.mergeBasics(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsUser) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionDiagnosticsUser = fc.Prompts.CodeAction.DiagnosticsUser
+
+ // chat
+ <span class="cov3" title="4">if strings.TrimSpace(fc.Chat.ChatSuffix) != "" || len(fc.Chat.ChatPrefixes) &gt; 0 </span><span class="cov1" title="1">{
+ tmp := App{ChatSuffix: fc.Chat.ChatSuffix, ChatPrefixes: fc.Chat.ChatPrefixes}
+ out.mergeBasics(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DocumentUser) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionDocumentUser = fc.Prompts.CodeAction.DocumentUser
+
+ // provider
+ <span class="cov3" title="4">if strings.TrimSpace(fc.Provider.Name) != "" </span><span class="cov2" title="3">{
+ tmp := App{Provider: fc.Provider.Name}
+ out.mergeBasics(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.GoTestSystem) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionGoTestSystem = fc.Prompts.CodeAction.GoTestSystem
+
+ // openai
+ <span class="cov3" title="4">if (fc.OpenAI != sectionOpenAI{}) || fc.OpenAI.Temperature != nil </span><span class="cov2" title="3">{
+ tmp := App{
+ OpenAIBaseURL: fc.OpenAI.BaseURL,
+ OpenAIModel: fc.OpenAI.Model,
+ OpenAITemperature: fc.OpenAI.Temperature,
+ }
+ out.mergeProviderFields(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.GoTestUser) != "" </span><span class="cov1" title="1">{
- out.PromptCodeActionGoTestUser = fc.Prompts.CodeAction.GoTestUser
+
+ // copilot
+ <span class="cov3" title="4">if (fc.Copilot != sectionCopilot{}) || fc.Copilot.Temperature != nil </span><span class="cov2" title="3">{
+ tmp := App{
+ CopilotBaseURL: fc.Copilot.BaseURL,
+ CopilotModel: fc.Copilot.Model,
+ CopilotTemperature: fc.Copilot.Temperature,
+ }
+ out.mergeProviderFields(&amp;tmp)
}</span>
- }
- // cli
- <span class="cov3" title="4">if (fc.Prompts.CLI != sectionPromptsCLI{}) </span><span class="cov1" title="1">{
- if strings.TrimSpace(fc.Prompts.CLI.DefaultSystem) != "" </span><span class="cov1" title="1">{
- out.PromptCLIDefaultSystem = fc.Prompts.CLI.DefaultSystem
+
+ // ollama
+ <span class="cov3" title="4">if (fc.Ollama != sectionOllama{}) || fc.Ollama.Temperature != nil </span><span class="cov2" title="3">{
+ tmp := App{
+ OllamaBaseURL: fc.Ollama.BaseURL,
+ OllamaModel: fc.Ollama.Model,
+ OllamaTemperature: fc.Ollama.Temperature,
+ }
+ out.mergeProviderFields(&amp;tmp)
}</span>
- <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CLI.ExplainSystem) != "" </span><span class="cov1" title="1">{
- out.PromptCLIExplainSystem = fc.Prompts.CLI.ExplainSystem
+
+ // prompts
+ // completion
+ <span class="cov3" title="4">if (fc.Prompts.Completion != sectionPromptsCompletion{}) </span><span class="cov1" title="1">{
+ if strings.TrimSpace(fc.Prompts.Completion.SystemGeneral) != "" </span><span class="cov1" title="1">{
+ out.PromptCompletionSystemGeneral = fc.Prompts.Completion.SystemGeneral
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.SystemParams) != "" </span><span class="cov1" title="1">{
+ out.PromptCompletionSystemParams = fc.Prompts.Completion.SystemParams
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.SystemInline) != "" </span><span class="cov1" title="1">{
+ out.PromptCompletionSystemInline = fc.Prompts.Completion.SystemInline
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.UserGeneral) != "" </span><span class="cov1" title="1">{
+ out.PromptCompletionUserGeneral = fc.Prompts.Completion.UserGeneral
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.UserParams) != "" </span><span class="cov1" title="1">{
+ out.PromptCompletionUserParams = fc.Prompts.Completion.UserParams
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.ExtraHeader) != "" </span><span class="cov1" title="1">{
+ out.PromptCompletionExtraHeader = fc.Prompts.Completion.ExtraHeader
+ }</span>
+ }
+ // chat
+ <span class="cov3" title="4">if strings.TrimSpace(fc.Prompts.Chat.System) != "" </span><span class="cov1" title="1">{
+ out.PromptChatSystem = fc.Prompts.Chat.System
+ }</span>
+ // code action
+ <span class="cov3" title="4">if (fc.Prompts.CodeAction != sectionPromptsCodeAction{}) </span><span class="cov1" title="1">{
+ if strings.TrimSpace(fc.Prompts.CodeAction.RewriteSystem) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionRewriteSystem = fc.Prompts.CodeAction.RewriteSystem
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsSystem) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionDiagnosticsSystem = fc.Prompts.CodeAction.DiagnosticsSystem
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DocumentSystem) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionDocumentSystem = fc.Prompts.CodeAction.DocumentSystem
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.RewriteUser) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionRewriteUser = fc.Prompts.CodeAction.RewriteUser
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsUser) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionDiagnosticsUser = fc.Prompts.CodeAction.DiagnosticsUser
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DocumentUser) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionDocumentUser = fc.Prompts.CodeAction.DocumentUser
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.GoTestSystem) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionGoTestSystem = fc.Prompts.CodeAction.GoTestSystem
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.GoTestUser) != "" </span><span class="cov1" title="1">{
+ out.PromptCodeActionGoTestUser = fc.Prompts.CodeAction.GoTestUser
+ }</span>
+ }
+ // cli
+ <span class="cov3" title="4">if (fc.Prompts.CLI != sectionPromptsCLI{}) </span><span class="cov1" title="1">{
+ if strings.TrimSpace(fc.Prompts.CLI.DefaultSystem) != "" </span><span class="cov1" title="1">{
+ out.PromptCLIDefaultSystem = fc.Prompts.CLI.DefaultSystem
+ }</span>
+ <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CLI.ExplainSystem) != "" </span><span class="cov1" title="1">{
+ out.PromptCLIExplainSystem = fc.Prompts.CLI.ExplainSystem
+ }</span>
+ }
+ // provider-native
+ <span class="cov3" title="4">if strings.TrimSpace(fc.Prompts.ProviderNative.Completion) != "" </span><span class="cov1" title="1">{
+ out.PromptNativeCompletion = fc.Prompts.ProviderNative.Completion
}</span>
- }
- // provider-native
- <span class="cov3" title="4">if strings.TrimSpace(fc.Prompts.ProviderNative.Completion) != "" </span><span class="cov1" title="1">{
- out.PromptNativeCompletion = fc.Prompts.ProviderNative.Completion
- }</span>
- <span class="cov3" title="4">return out</span>
+ <span class="cov3" title="4">return out</span>
}
-func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="8">{
- b, err := os.ReadFile(path)
- if err != nil </span><span class="cov2" title="2">{
- if !os.IsNotExist(err) &amp;&amp; logger != nil </span><span class="cov0" title="0">{
- logger.Printf("cannot open TOML config file %s: %v", path, err)
- }</span>
- <span class="cov2" title="2">return nil, err</span>
- }
-
- <span class="cov4" title="6">var tables fileConfig
- errTables := toml.NewDecoder(strings.NewReader(string(b))).Decode(&amp;tables)
- // Raw map for validation/presence checks
- var raw map[string]any
- _ = toml.Unmarshal(b, &amp;raw)
- if errTables != nil </span><span class="cov2" title="2">{
- if logger != nil </span><span class="cov2" title="2">{
- logger.Printf("invalid TOML config file %s: %v", path, errTables)
- }</span>
- <span class="cov2" title="2">return nil, errTables</span>
- }
+func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="9">{
+ b, err := os.ReadFile(path)
+ if err != nil </span><span class="cov2" title="3">{
+ if !os.IsNotExist(err) &amp;&amp; logger != nil </span><span class="cov0" title="0">{
+ logger.Printf("cannot open TOML config file %s: %v", path, err)
+ }</span>
+ <span class="cov2" title="3">return nil, err</span>
+ }
- // Reject legacy flat keys at top-level (sectioned-only config is allowed)
- <span class="cov3" title="4">legacy := map[string]struct{}{
- "max_tokens": {}, "context_mode": {}, "context_window_lines": {}, "max_context_tokens": {},
- "log_preview_limit": {}, "completion_debounce_ms": {}, "completion_throttle_ms": {},
- "manual_invoke_min_prefix": {}, "trigger_characters": {}, "inline_open": {}, "inline_close": {},
- "chat_suffix": {}, "chat_prefixes": {}, "coding_temperature": {}, "provider": {},
- "openai_model": {}, "openai_base_url": {}, "openai_temperature": {},
- "ollama_model": {}, "ollama_base_url": {}, "ollama_temperature": {},
- "copilot_model": {}, "copilot_base_url": {}, "copilot_temperature": {},
- }
- for k := range raw </span><span class="cov6" title="27">{
- if _, isTable := map[string]struct{}{"general": {}, "logging": {}, "completion": {}, "triggers": {}, "inline": {}, "chat": {}, "provider": {}, "openai": {}, "copilot": {}, "ollama": {}, "prompts": {}}[k]; isTable </span><span class="cov6" title="27">{
- continue</span>
+ <span class="cov4" title="6">var tables fileConfig
+ errTables := toml.NewDecoder(strings.NewReader(string(b))).Decode(&amp;tables)
+ // Raw map for validation/presence checks
+ var raw map[string]any
+ _ = toml.Unmarshal(b, &amp;raw)
+ if errTables != nil </span><span class="cov2" title="2">{
+ if logger != nil </span><span class="cov2" title="2">{
+ logger.Printf("invalid TOML config file %s: %v", path, errTables)
+ }</span>
+ <span class="cov2" title="2">return nil, errTables</span>
}
- <span class="cov0" title="0">if _, isLegacy := legacy[k]; isLegacy </span><span class="cov0" title="0">{
- return nil, fmt.Errorf("unsupported flat key '%s' in config; use sectioned tables (see config.toml.example)", k)
- }</span>
- }
- <span class="cov3" title="4">if logger != nil </span><span class="cov3" title="4">{
- logger.Printf("loaded configuration from %s (TOML)", path)
- }</span>
+ // Reject legacy flat keys at top-level (sectioned-only config is allowed)
+ <span class="cov3" title="4">legacy := map[string]struct{}{
+ "max_tokens": {}, "context_mode": {}, "context_window_lines": {}, "max_context_tokens": {},
+ "log_preview_limit": {}, "completion_debounce_ms": {}, "completion_throttle_ms": {},
+ "manual_invoke_min_prefix": {}, "trigger_characters": {}, "inline_open": {}, "inline_close": {},
+ "chat_suffix": {}, "chat_prefixes": {}, "coding_temperature": {}, "provider": {},
+ "openai_model": {}, "openai_base_url": {}, "openai_temperature": {},
+ "ollama_model": {}, "ollama_base_url": {}, "ollama_temperature": {},
+ "copilot_model": {}, "copilot_base_url": {}, "copilot_temperature": {},
+ }
+ for k := range raw </span><span class="cov6" title="27">{
+ if _, isTable := map[string]struct{}{"general": {}, "logging": {}, "completion": {}, "triggers": {}, "inline": {}, "chat": {}, "provider": {}, "openai": {}, "copilot": {}, "ollama": {}, "prompts": {}}[k]; isTable </span><span class="cov6" title="27">{
+ continue</span>
+ }
+ <span class="cov0" title="0">if _, isLegacy := legacy[k]; isLegacy </span><span class="cov0" title="0">{
+ return nil, fmt.Errorf("unsupported flat key '%s' in config; use sectioned tables (see config.toml.example)", k)
+ }</span>
+ }
- // Merge order: flat first, then tables (so tables win over zero flat values)
- // Build App from tables only
- <span class="cov3" title="4">tab := tables.toApp()
- // Ensure explicit values from raw map are respected (defensive for ints)
- if t, ok := raw["completion"].(map[string]any); ok </span><span class="cov2" title="3">{
- if v, present := t["manual_invoke_min_prefix"]; present </span><span class="cov2" title="3">{
- switch vv := v.(type) </span>{
- case int64:<span class="cov2" title="3">
- tab.ManualInvokeMinPrefix = int(vv)</span>
- case int:<span class="cov0" title="0">
- tab.ManualInvokeMinPrefix = vv</span>
- case float64:<span class="cov0" title="0">
- tab.ManualInvokeMinPrefix = int(vv)</span>
- }
+ <span class="cov3" title="4">if logger != nil </span><span class="cov3" title="4">{
+ logger.Printf("loaded configuration from %s (TOML)", path)
+ }</span>
+
+ // Merge order: flat first, then tables (so tables win over zero flat values)
+ // Build App from tables only
+ <span class="cov3" title="4">tab := tables.toApp()
+ // Ensure explicit values from raw map are respected (defensive for ints)
+ if t, ok := raw["completion"].(map[string]any); ok </span><span class="cov2" title="3">{
+ if v, present := t["manual_invoke_min_prefix"]; present </span><span class="cov2" title="3">{
+ switch vv := v.(type) </span>{
+ case int64:<span class="cov2" title="3">
+ tab.ManualInvokeMinPrefix = int(vv)</span>
+ case int:<span class="cov0" title="0">
+ tab.ManualInvokeMinPrefix = vv</span>
+ case float64:<span class="cov0" title="0">
+ tab.ManualInvokeMinPrefix = int(vv)</span>
+ }
+ }
}
- }
- <span class="cov3" title="4">if t, ok := raw["logging"].(map[string]any); ok </span><span class="cov2" title="3">{
- if v, present := t["log_preview_limit"]; present </span><span class="cov2" title="3">{
- switch vv := v.(type) </span>{
- case int64:<span class="cov2" title="3">
- tab.LogPreviewLimit = int(vv)</span>
- case int:<span class="cov0" title="0">
- tab.LogPreviewLimit = vv</span>
- case float64:<span class="cov0" title="0">
- tab.LogPreviewLimit = int(vv)</span>
- }
+ <span class="cov3" title="4">if t, ok := raw["logging"].(map[string]any); ok </span><span class="cov2" title="3">{
+ if v, present := t["log_preview_limit"]; present </span><span class="cov2" title="3">{
+ switch vv := v.(type) </span>{
+ case int64:<span class="cov2" title="3">
+ tab.LogPreviewLimit = int(vv)</span>
+ case int:<span class="cov0" title="0">
+ tab.LogPreviewLimit = vv</span>
+ case float64:<span class="cov0" title="0">
+ tab.LogPreviewLimit = int(vv)</span>
+ }
+ }
}
- }
- <span class="cov3" title="4">return &amp;tab, nil</span>
+ <span class="cov3" title="4">return &amp;tab, nil</span>
}
func (a *App) mergeWith(other *App) <span class="cov3" title="5">{
- a.mergeBasics(other)
- a.mergeProviderFields(other)
- a.mergePrompts(other)
+ a.mergeBasics(other)
+ a.mergeProviderFields(other)
+ a.mergePrompts(other)
}</span>
// mergeBasics merges general (non-provider) fields.
@@ -742,65 +776,65 @@ func (a *App) mergeBasics(other *App) <span class="cov6" title="20">{
// mergePrompts copies non-empty prompt templates from other.
func (a *App) mergePrompts(other *App) <span class="cov3" title="5">{
- // Completion
- if strings.TrimSpace(other.PromptCompletionSystemGeneral) != "" </span><span class="cov1" title="1">{
- a.PromptCompletionSystemGeneral = other.PromptCompletionSystemGeneral
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionSystemParams) != "" </span><span class="cov1" title="1">{
- a.PromptCompletionSystemParams = other.PromptCompletionSystemParams
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionSystemInline) != "" </span><span class="cov1" title="1">{
- a.PromptCompletionSystemInline = other.PromptCompletionSystemInline
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionUserGeneral) != "" </span><span class="cov1" title="1">{
- a.PromptCompletionUserGeneral = other.PromptCompletionUserGeneral
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionUserParams) != "" </span><span class="cov1" title="1">{
- a.PromptCompletionUserParams = other.PromptCompletionUserParams
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionExtraHeader) != "" </span><span class="cov1" title="1">{
- a.PromptCompletionExtraHeader = other.PromptCompletionExtraHeader
- }</span>
- // Provider-native
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptNativeCompletion) != "" </span><span class="cov1" title="1">{
- a.PromptNativeCompletion = other.PromptNativeCompletion
- }</span>
- // Chat
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptChatSystem) != "" </span><span class="cov1" title="1">{
- a.PromptChatSystem = other.PromptChatSystem
- }</span>
- // Code actions
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionRewriteSystem) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionRewriteSystem = other.PromptCodeActionRewriteSystem
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDiagnosticsSystem) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionDiagnosticsSystem = other.PromptCodeActionDiagnosticsSystem
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDocumentSystem) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionDocumentSystem = other.PromptCodeActionDocumentSystem
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionRewriteUser) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionRewriteUser = other.PromptCodeActionRewriteUser
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDiagnosticsUser) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionDiagnosticsUser = other.PromptCodeActionDiagnosticsUser
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDocumentUser) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionDocumentUser = other.PromptCodeActionDocumentUser
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionGoTestSystem) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionGoTestSystem = other.PromptCodeActionGoTestSystem
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionGoTestUser) != "" </span><span class="cov1" title="1">{
- a.PromptCodeActionGoTestUser = other.PromptCodeActionGoTestUser
- }</span>
- // CLI
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCLIDefaultSystem) != "" </span><span class="cov1" title="1">{
- a.PromptCLIDefaultSystem = other.PromptCLIDefaultSystem
- }</span>
- <span class="cov3" title="5">if strings.TrimSpace(other.PromptCLIExplainSystem) != "" </span><span class="cov1" title="1">{
- a.PromptCLIExplainSystem = other.PromptCLIExplainSystem
- }</span>
+ // Completion
+ if strings.TrimSpace(other.PromptCompletionSystemGeneral) != "" </span><span class="cov1" title="1">{
+ a.PromptCompletionSystemGeneral = other.PromptCompletionSystemGeneral
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionSystemParams) != "" </span><span class="cov1" title="1">{
+ a.PromptCompletionSystemParams = other.PromptCompletionSystemParams
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionSystemInline) != "" </span><span class="cov1" title="1">{
+ a.PromptCompletionSystemInline = other.PromptCompletionSystemInline
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionUserGeneral) != "" </span><span class="cov1" title="1">{
+ a.PromptCompletionUserGeneral = other.PromptCompletionUserGeneral
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionUserParams) != "" </span><span class="cov1" title="1">{
+ a.PromptCompletionUserParams = other.PromptCompletionUserParams
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionExtraHeader) != "" </span><span class="cov1" title="1">{
+ a.PromptCompletionExtraHeader = other.PromptCompletionExtraHeader
+ }</span>
+ // Provider-native
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptNativeCompletion) != "" </span><span class="cov1" title="1">{
+ a.PromptNativeCompletion = other.PromptNativeCompletion
+ }</span>
+ // Chat
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptChatSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptChatSystem = other.PromptChatSystem
+ }</span>
+ // Code actions
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionRewriteSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionRewriteSystem = other.PromptCodeActionRewriteSystem
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDiagnosticsSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionDiagnosticsSystem = other.PromptCodeActionDiagnosticsSystem
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDocumentSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionDocumentSystem = other.PromptCodeActionDocumentSystem
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionRewriteUser) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionRewriteUser = other.PromptCodeActionRewriteUser
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDiagnosticsUser) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionDiagnosticsUser = other.PromptCodeActionDiagnosticsUser
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDocumentUser) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionDocumentUser = other.PromptCodeActionDocumentUser
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionGoTestSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionGoTestSystem = other.PromptCodeActionGoTestSystem
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionGoTestUser) != "" </span><span class="cov1" title="1">{
+ a.PromptCodeActionGoTestUser = other.PromptCodeActionGoTestUser
+ }</span>
+ // CLI
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCLIDefaultSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptCLIDefaultSystem = other.PromptCLIDefaultSystem
+ }</span>
+ <span class="cov3" title="5">if strings.TrimSpace(other.PromptCLIExplainSystem) != "" </span><span class="cov1" title="1">{
+ a.PromptCLIExplainSystem = other.PromptCLIExplainSystem
+ }</span>
}
// mergeProviderFields merges per-provider configuration.
@@ -834,33 +868,33 @@ func (a *App) mergeProviderFields(other *App) <span class="cov5" title="14">{
}</span>
}
-func getConfigPath() (string, error) <span class="cov4" title="8">{
+func getConfigPath() (string, error) <span class="cov4" title="9">{
var configPath string
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" </span><span class="cov4" title="7">{
configPath = filepath.Join(xdgConfigHome, "hexai", "config.toml")
- }</span> else<span class="cov1" title="1"> {
+ }</span> else<span class="cov2" title="2"> {
home, err := os.UserHomeDir()
if err != nil </span><span class="cov0" title="0">{
return "", fmt.Errorf("cannot find user home directory: %v", err)
}</span>
- <span class="cov1" title="1">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
+ <span class="cov2" title="2">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
}
- <span class="cov4" title="8">return configPath, nil</span>
+ <span class="cov4" title="9">return configPath, nil</span>
}
// --- Environment overrides ---
// loadFromEnv constructs an App containing only fields set via HEXAI_* env vars.
// These values should take precedence over file config when merged.
-func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="7">{
+func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="8">{
var out App
var any bool
// helpers
- getenv := func(k string) string </span><span class="cov10" title="168">{ return strings.TrimSpace(os.Getenv(k)) }</span>
- <span class="cov4" title="7">parseInt := func(k string) (int, bool) </span><span class="cov7" title="49">{
+ getenv := func(k string) string </span><span class="cov10" title="192">{ return strings.TrimSpace(os.Getenv(k)) }</span>
+ <span class="cov4" title="8">parseInt := func(k string) (int, bool) </span><span class="cov7" title="56">{
v := getenv(k)
- if v == "" </span><span class="cov7" title="42">{
+ if v == "" </span><span class="cov7" title="49">{
return 0, false
}</span>
<span class="cov4" title="7">n, err := strconv.Atoi(v)
@@ -872,9 +906,9 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="7">{
}
<span class="cov4" title="7">return n, true</span>
}
- <span class="cov4" title="7">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov6" title="28">{
+ <span class="cov4" title="8">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov6" title="32">{
v := getenv(k)
- if v == "" </span><span class="cov6" title="24">{
+ if v == "" </span><span class="cov6" title="28">{
return nil, false
}</span>
<span class="cov3" title="4">f, err := strconv.ParseFloat(v, 64)
@@ -887,43 +921,43 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="7">{
<span class="cov3" title="4">return &amp;f, true</span>
}
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
out.MaxTokens = n
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
out.ContextMode = s
any = true
}</span>
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_CONTEXT_WINDOW_LINES"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_CONTEXT_WINDOW_LINES"); ok </span><span class="cov1" title="1">{
out.ContextWindowLines = n
any = true
}</span>
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_MAX_CONTEXT_TOKENS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_MAX_CONTEXT_TOKENS"); ok </span><span class="cov1" title="1">{
out.MaxContextTokens = n
any = true
}</span>
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_LOG_PREVIEW_LIMIT"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_LOG_PREVIEW_LIMIT"); ok </span><span class="cov1" title="1">{
out.LogPreviewLimit = n
any = true
}</span>
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_MANUAL_INVOKE_MIN_PREFIX"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_MANUAL_INVOKE_MIN_PREFIX"); ok </span><span class="cov1" title="1">{
out.ManualInvokeMinPrefix = n
any = true
}</span>
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_COMPLETION_DEBOUNCE_MS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_COMPLETION_DEBOUNCE_MS"); ok </span><span class="cov1" title="1">{
out.CompletionDebounceMs = n
any = true
}</span>
- <span class="cov4" title="7">if n, ok := parseInt("HEXAI_COMPLETION_THROTTLE_MS"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if n, ok := parseInt("HEXAI_COMPLETION_THROTTLE_MS"); ok </span><span class="cov1" title="1">{
out.CompletionThrottleMs = n
any = true
}</span>
- <span class="cov4" title="7">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.CodingTemperature = f
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_TRIGGER_CHARACTERS"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_TRIGGER_CHARACTERS"); s != "" </span><span class="cov1" title="1">{
parts := strings.Split(s, ",")
out.TriggerCharacters = nil
for _, p := range parts </span><span class="cov2" title="3">{
@@ -933,19 +967,19 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="7">{
}
<span class="cov1" title="1">any = true</span>
}
- <span class="cov4" title="7">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
out.InlineOpen = s
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
out.InlineClose = s
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
out.ChatSuffix = s
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_CHAT_PREFIXES"); s != "" </span><span class="cov0" title="0">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_CHAT_PREFIXES"); s != "" </span><span class="cov0" title="0">{
parts := strings.Split(s, ",")
out.ChatPrefixes = nil
for _, p := range parts </span><span class="cov0" title="0">{
@@ -955,75 +989,473 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="7">{
}
<span class="cov0" title="0">any = true</span>
}
- <span class="cov4" title="7">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
out.Provider = s
any = true
}</span>
// Provider-specific
- <span class="cov4" title="7">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.OpenAIBaseURL = s
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
out.OpenAIModel = s
any = true
}</span>
- <span class="cov4" title="7">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.OpenAITemperature = f
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.OllamaBaseURL = s
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
out.OllamaModel = s
any = true
}</span>
- <span class="cov4" title="7">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.OllamaTemperature = f
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
out.CopilotBaseURL = s
any = true
}</span>
- <span class="cov4" title="7">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
out.CopilotModel = s
any = true
}</span>
- <span class="cov4" title="7">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ <span class="cov4" title="8">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
out.CopilotTemperature = f
any = true
}</span>
- <span class="cov4" title="7">if !any </span><span class="cov4" title="6">{
+ <span class="cov4" title="8">if !any </span><span class="cov4" title="7">{
return nil
}</span>
<span class="cov1" title="1">return &amp;out</span>
}
</pre>
- <pre class="file" id="file3" style="display: none">// Summary: Hexai CLI runner; reads input, creates an LLM client, builds messages,
+ <pre class="file" id="file4" style="display: none">package hexaiaction
+
+import (
+ "bufio"
+ "io"
+ "strings"
+
+ "codeberg.org/snonux/hexai/internal/textutil"
+)
+
+// ParseInput splits raw stdin into optional diagnostics and selection/code.
+// Format:
+//
+// Diagnostics:\n
+// &lt;one per line&gt;\n
+// &lt;blank line&gt; (optional)\n
+// &lt;rest is selection/code&gt;
+//
+// If the header is absent, the entire input is treated as selection.
+func ParseInput(r io.Reader) (InputParts, error) <span class="cov4" title="2">{
+ b, err := io.ReadAll(bufio.NewReader(r))
+ if err != nil </span><span class="cov0" title="0">{
+ return InputParts{}, err
+ }</span>
+ <span class="cov4" title="2">raw := strings.TrimSpace(string(b))
+ if raw == "" </span><span class="cov0" title="0">{
+ return InputParts{Selection: ""}, nil
+ }</span>
+ <span class="cov4" title="2">lines := strings.Split(raw, "\n")
+ // find a case-insensitive line equal to "diagnostics:"
+ diagsIdx := -1
+ for i, ln := range lines </span><span class="cov4" title="2">{
+ t := strings.TrimSpace(strings.ToLower(ln))
+ if t == "diagnostics:" </span><span class="cov1" title="1">{
+ diagsIdx = i
+ break</span>
+ }
+ }
+ <span class="cov4" title="2">if diagsIdx &lt; 0 </span><span class="cov1" title="1">{
+ return InputParts{Selection: raw}, nil
+ }</span>
+ // collect diagnostics until a blank line or EOF
+ <span class="cov1" title="1">diags := []string{}
+ i := diagsIdx + 1
+ for ; i &lt; len(lines); i++ </span><span class="cov6" title="3">{
+ t := strings.TrimSpace(lines[i])
+ if t == "" </span><span class="cov1" title="1">{
+ i++
+ break</span>
+ }
+ <span class="cov4" title="2">diags = append(diags, t)</span>
+ }
+ <span class="cov1" title="1">sel := strings.Join(lines[i:], "\n")
+ sel = strings.TrimSpace(sel)
+ return InputParts{Selection: sel, Diagnostics: diags}, nil</span>
+}
+
+// ExtractInstruction mirrors the LSP instructionFromSelection behavior (subset),
+// scanning the first line for an instruction marker and removing it from the selection.
+func ExtractInstruction(sel string) (string, string) <span class="cov10" title="7">{ return textutil.InstructionFromSelection(sel) }</span>
+
+// findFirstInstructionInLine follows the same precedence as LSP:
+// - ;text; (strict)
+// - /* text */ (single-line)
+// - &lt;!-- text --&gt; (single-line)
+// - // text
+// - # text
+// - -- text
+// helpers moved to textutil
+</pre>
+
+ <pre class="file" id="file5" style="display: none">package hexaiaction
+
+import (
+ "context"
+ "strings"
+ "time"
+
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/textutil"
+)
+
+// Render performs simple {{var}} replacement like LSP.
+func Render(t string, vars map[string]string) string <span class="cov10" title="8">{ return textutil.RenderTemplate(t, vars) }</span>
+
+// StripFences removes surrounding markdown code fences.
+func StripFences(s string) string <span class="cov10" title="8">{ return textutil.StripCodeFences(s) }</span>
+
+type chatDoer interface {
+ Chat(ctx context.Context, msgs []llm.Message, opts ...llm.RequestOption) (string, error)
+}
+
+func runRewrite(ctx context.Context, cfg appconfig.App, client chatDoer, instruction, selection string) (string, error) <span class="cov4" title="2">{
+ sys := cfg.PromptCodeActionRewriteSystem
+ user := Render(cfg.PromptCodeActionRewriteUser, map[string]string{"instruction": instruction, "selection": selection})
+ return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
+}</span>
+
+func runDiagnostics(ctx context.Context, cfg appconfig.App, client chatDoer, diags []string, selection string) (string, error) <span class="cov1" title="1">{
+ var b strings.Builder
+ for i, d := range diags </span><span class="cov4" title="2">{
+ if strings.TrimSpace(d) == "" </span><span class="cov0" title="0">{
+ continue</span>
+ }
+ <span class="cov4" title="2">b.WriteString(strings.TrimSpace(d))
+ if i &lt; len(diags)-1 </span><span class="cov1" title="1">{
+ b.WriteString("\n")
+ }</span>
+ }
+ <span class="cov1" title="1">sys := cfg.PromptCodeActionDiagnosticsSystem
+ user := Render(cfg.PromptCodeActionDiagnosticsUser, map[string]string{"diagnostics": b.String(), "selection": selection})
+ return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))</span>
+}
+
+func runDocument(ctx context.Context, cfg appconfig.App, client chatDoer, selection string) (string, error) <span class="cov4" title="2">{
+ sys := cfg.PromptCodeActionDocumentSystem
+ user := Render(cfg.PromptCodeActionDocumentUser, map[string]string{"selection": selection})
+ return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
+}</span>
+
+func runGoTest(ctx context.Context, cfg appconfig.App, client chatDoer, funcCode string) (string, error) <span class="cov4" title="2">{
+ sys := cfg.PromptCodeActionGoTestSystem
+ user := Render(cfg.PromptCodeActionGoTestUser, map[string]string{"function": funcCode})
+ return runOnceWithOpts(ctx, client, sys, user, reqOptsFrom(cfg))
+}</span>
+
+func runOnce(ctx context.Context, client chatDoer, sys, user string) (string, error) <span class="cov0" title="0">{
+ msgs := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ txt, err := client.Chat(ctx, msgs)
+ if err != nil </span><span class="cov0" title="0">{
+ return "", err
+ }</span>
+ <span class="cov0" title="0">return strings.TrimSpace(StripFences(txt)), nil</span>
+}
+
+func runOnceWithOpts(ctx context.Context, client chatDoer, sys, user string, opts []llm.RequestOption) (string, error) <span class="cov9" title="7">{
+ msgs := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ txt, err := client.Chat(ctx, msgs, opts...)
+ if err != nil </span><span class="cov0" title="0">{
+ return "", err
+ }</span>
+ <span class="cov9" title="7">return strings.TrimSpace(StripFences(txt)), nil</span>
+}
+
+// reqOptsFrom builds LLM request options similar to LSP behavior.
+func reqOptsFrom(cfg appconfig.App) []llm.RequestOption <span class="cov9" title="7">{
+ opts := []llm.RequestOption{llm.WithMaxTokens(cfg.MaxTokens)}
+ if cfg.CodingTemperature != nil </span><span class="cov5" title="3">{
+ opts = append(opts, llm.WithTemperature(*cfg.CodingTemperature))
+ }</span>
+ <span class="cov9" title="7">return opts</span>
+}
+
+// Timeout helpers to mirror LSP behavior.
+func timeout10s(parent context.Context) (context.Context, context.CancelFunc) <span class="cov4" title="2">{
+ return context.WithTimeout(parent, 10*time.Second)
+}</span>
+
+func timeout8s(parent context.Context) (context.Context, context.CancelFunc) <span class="cov1" title="1">{
+ return context.WithTimeout(parent, 8*time.Second)
+}</span>
+</pre>
+
+ <pre class="file" id="file6" style="display: none">package hexaiaction
+
+import (
+ "context"
+ "fmt"
+ "io"
+ "log"
+ "strings"
+
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/logging"
+ "codeberg.org/snonux/hexai/internal/llmutils"
+)
+
+// Run executes the hexai-action command flow.
+func Run(ctx context.Context, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov0" title="0">{
+ logger := log.New(stderr, "hexai-action ", log.LstdFlags|log.Lmsgprefix)
+ cfg := appconfig.Load(logger)
+ client, err := llmutils.NewClientFromApp(cfg)
+ if err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintf(stderr, logging.AnsiBase+"hexai-action: LLM disabled: %v"+logging.AnsiReset+"\n", err)
+ return err
+ }</span>
+ <span class="cov0" title="0">parts, err := ParseInput(stdin)
+ if err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(stderr, logging.AnsiBase+"hexai-action: failed to read input"+logging.AnsiReset)
+ return err
+ }</span>
+ <span class="cov0" title="0">if strings.TrimSpace(parts.Selection) == "" </span><span class="cov0" title="0">{
+ return fmt.Errorf("hexai-action: no input provided on stdin")
+ }</span>
+ <span class="cov0" title="0">kind, err := RunTUI()
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov0" title="0">out, err := executeAction(ctx, kind, parts, cfg, client, stderr)
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov0" title="0">io.WriteString(stdout, out)
+ return nil</span>
+}
+
+func executeAction(ctx context.Context, kind ActionKind, parts InputParts, cfg appconfig.App, client chatDoer, stderr io.Writer) (string, error) <span class="cov10" title="4">{
+ switch kind </span>{
+ case ActionSkip:<span class="cov1" title="1">
+ return parts.Selection, nil</span>
+ case ActionRewrite:<span class="cov1" title="1">
+ instr, cleaned := ExtractInstruction(parts.Selection)
+ if strings.TrimSpace(instr) == "" </span><span class="cov0" title="0">{
+ fmt.Fprintln(stderr, logging.AnsiBase+"hexai-action: no inline instruction found; echoing input"+logging.AnsiReset)
+ return parts.Selection, nil
+ }</span>
+ <span class="cov1" title="1">cctx, cancel := timeout10s(ctx)
+ defer cancel()
+ return runRewrite(cctx, cfg, client, instr, cleaned)</span>
+ case ActionDiagnostics:<span class="cov0" title="0">
+ cctx, cancel := timeout10s(ctx)
+ defer cancel()
+ return runDiagnostics(cctx, cfg, client, parts.Diagnostics, parts.Selection)</span>
+ case ActionDocument:<span class="cov1" title="1">
+ cctx, cancel := timeout10s(ctx)
+ defer cancel()
+ return runDocument(cctx, cfg, client, parts.Selection)</span>
+ case ActionGoTest:<span class="cov1" title="1">
+ cctx, cancel := timeout8s(ctx)
+ defer cancel()
+ return runGoTest(cctx, cfg, client, parts.Selection)</span>
+ default:<span class="cov0" title="0">
+ return parts.Selection, nil</span>
+ }
+}
+
+// client construction is shared via internal/llmutils
+</pre>
+
+ <pre class="file" id="file7" style="display: none">package hexaiaction
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/charmbracelet/bubbles/list"
+ tea "github.com/charmbracelet/bubbletea"
+)
+
+// item implements list.Item
+type item struct {
+ title, desc string
+ kind ActionKind
+ hotkey rune
+}
+
+func (i item) Title() string <span class="cov0" title="0">{ return i.title }</span>
+func (i item) Description() string <span class="cov0" title="0">{ return i.desc }</span>
+func (i item) FilterValue() string <span class="cov1" title="1">{ return i.title }</span>
+
+type model struct {
+ list list.Model
+ chosen ActionKind
+ done bool
+}
+
+func newModel() model <span class="cov10" title="3">{
+ items := []list.Item{
+ item{title: "Rewrite selection", desc: "", kind: ActionRewrite, hotkey: 'r'},
+ item{title: "Document code", desc: "", kind: ActionDocument, hotkey: 'c'},
+ item{title: "Generate Go unit test(s)", desc: "", kind: ActionGoTest, hotkey: 't'},
+ item{title: "Skip", desc: "", kind: ActionSkip, hotkey: 's'},
+ }
+ l := list.New(items, oneLineDelegate{}, 0, 0)
+ l.Title = "Select Hexai Action"
+ l.SetShowHelp(false)
+ l.SetShowStatusBar(false)
+ l.SetFilteringEnabled(false)
+ return model{list: l}
+}</span>
+
+func (m model) Init() tea.Cmd <span class="cov0" title="0">{ return nil }</span>
+
+func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) <span class="cov0" title="0">{
+ switch msg := msg.(type) </span>{
+ case tea.KeyMsg:<span class="cov0" title="0">
+ return handleKey(m, msg)</span>
+ case tea.WindowSizeMsg:<span class="cov0" title="0">
+ m.list.SetSize(msg.Width, msg.Height)</span>
+ }
+ <span class="cov0" title="0">var cmd tea.Cmd
+ m.list, cmd = m.list.Update(msg)
+ return m, cmd</span>
+}
+
+func handleKey(m model, msg tea.KeyMsg) (tea.Model, tea.Cmd) <span class="cov10" title="3">{
+ raw := msg.String()
+ low := strings.ToLower(raw)
+ switch low </span>{
+ case "esc", "q":<span class="cov1" title="1">
+ // Treat ESC and q as Skip/quit
+ m.chosen = ActionSkip
+ m.done = true
+ return m, tea.Quit</span>
+ case "enter":<span class="cov0" title="0">
+ if it, ok := m.list.SelectedItem().(item); ok </span><span class="cov0" title="0">{
+ m.chosen = it.kind
+ m.done = true
+ return m, tea.Quit
+ }</span>
+ case "j", "down":<span class="cov0" title="0">
+ m.list.CursorDown()</span>
+ case "k", "up":<span class="cov0" title="0">
+ m.list.CursorUp()</span>
+ case "g", "home":<span class="cov1" title="1">
+ m.list.Select(0)</span>
+ case "end":<span class="cov0" title="0">
+ if n := len(m.list.Items()); n &gt; 0 </span><span class="cov0" title="0">{ m.list.Select(n - 1) }</span>
+ case "s", "r", "c", "t":<span class="cov1" title="1">
+ items := m.list.Items()
+ for i := 0; i &lt; len(items); i++ </span><span class="cov1" title="1">{
+ if it, ok := items[i].(item); ok &amp;&amp; strings.ToLower(string(it.hotkey)) == low </span><span class="cov1" title="1">{
+ m.list.Select(i)
+ m.chosen = it.kind
+ m.done = true
+ return m, tea.Quit
+ }</span>
+ }
+ }
+ <span class="cov1" title="1">if raw == "G" </span><span class="cov1" title="1">{ // Shift+G jumps to end
+ if n := len(m.list.Items()); n &gt; 0 </span><span class="cov1" title="1">{ m.list.Select(n - 1) }</span>
+ }
+ <span class="cov1" title="1">return m, nil</span>
+}
+
+func (m model) View() string <span class="cov0" title="0">{
+ if m.done </span><span class="cov0" title="0">{
+ return ""
+ }</span>
+ <span class="cov0" title="0">return m.list.View()</span>
+}
+
+// RunTUI returns the chosen ActionKind.
+func RunTUI() (ActionKind, error) <span class="cov0" title="0">{
+ p := tea.NewProgram(newModel())
+ md, err := p.Run()
+ if err != nil </span><span class="cov0" title="0">{
+ return ActionSkip, err
+ }</span>
+ <span class="cov0" title="0">if m, ok := md.(model); ok </span><span class="cov0" title="0">{
+ if m.chosen == "" </span><span class="cov0" title="0">{
+ return ActionSkip, nil
+ }</span>
+ <span class="cov0" title="0">return m.chosen, nil</span>
+ }
+ <span class="cov0" title="0">return ActionSkip, fmt.Errorf("unexpected model type")</span>
+}
+</pre>
+
+ <pre class="file" id="file8" style="display: none">package hexaiaction
+
+import (
+ "fmt"
+ "io"
+
+ "github.com/charmbracelet/bubbles/list"
+ tea "github.com/charmbracelet/bubbletea"
+ "github.com/charmbracelet/lipgloss"
+)
+
+// oneLineDelegate renders a single compact line per item, no spacing.
+type oneLineDelegate struct{}
+
+var (
+ hotStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("205"))
+ cursorStyle = lipgloss.NewStyle().Bold(true)
+)
+
+func (oneLineDelegate) Height() int <span class="cov8" title="10">{ return 1 }</span>
+func (oneLineDelegate) Spacing() int <span class="cov10" title="16">{ return 0 }</span>
+func (oneLineDelegate) Update(tea.Msg, *list.Model) tea.Cmd <span class="cov0" title="0">{ return nil }</span>
+func (oneLineDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) <span class="cov1" title="1">{
+ title := listItem.FilterValue()
+ hk := '?'
+ if it, ok := listItem.(item); ok </span><span class="cov1" title="1">{
+ hk = it.hotkey
+ }</span>
+ <span class="cov1" title="1">hot := hotStyle.Render(fmt.Sprintf(" (%c)", hk))
+ cursor := " "
+ if index == m.Index() </span><span class="cov1" title="1">{
+ cursor = cursorStyle.Render("&gt; ")
+ }</span>
+ <span class="cov1" title="1">fmt.Fprintf(w, "%s%s%s", cursor, title, hot)</span>
+}
+</pre>
+
+ <pre class="file" id="file9" style="display: none">// Summary: Hexai CLI runner; reads input, creates an LLM client, builds messages,
// streams or collects the model output, and prints a short summary to stderr.
package hexaicli
import (
- "bufio"
- "context"
- "fmt"
- "io"
- "log"
- "os"
- "strings"
- "time"
+ "bufio"
+ "context"
+ "fmt"
+ "io"
+ "log"
+ "os"
+ "strings"
+ "time"
- "codeberg.org/snonux/hexai/internal/appconfig"
- "codeberg.org/snonux/hexai/internal/llm"
- "codeberg.org/snonux/hexai/internal/logging"
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/logging"
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/llmutils"
)
// Run executes the Hexai CLI behavior given arguments and I/O streams.
@@ -1032,24 +1464,24 @@ func Run(ctx context.Context, args []string, stdin io.Reader, stdout, stderr io.
// Load configuration with a logger so file-based config is respected.
logger := log.New(stderr, "hexai ", log.LstdFlags|log.Lmsgprefix)
cfg := appconfig.Load(logger)
- client, err := newClientFromConfig(cfg)
- if err != nil </span><span class="cov1" title="1">{
- fmt.Fprintf(stderr, logging.AnsiBase+"hexai: LLM disabled: %v"+logging.AnsiReset+"\n", err)
- return err
- }</span>
- // Inline the flow here to use configured CLI prompts.
- <span class="cov0" title="0">input, rerr := readInput(stdin, args)
- if rerr != nil </span><span class="cov0" title="0">{
- fmt.Fprintln(stderr, logging.AnsiBase+rerr.Error()+logging.AnsiReset)
- return rerr
- }</span>
- <span class="cov0" title="0">printProviderInfo(stderr, client)
- msgs := buildMessagesFromConfig(cfg, input)
- if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil </span><span class="cov0" title="0">{
- fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err)
- return err
- }</span>
- <span class="cov0" title="0">return nil</span>
+ client, err := llmutils.NewClientFromApp(cfg)
+ if err != nil </span><span class="cov1" title="1">{
+ fmt.Fprintf(stderr, logging.AnsiBase+"hexai: LLM disabled: %v"+logging.AnsiReset+"\n", err)
+ return err
+ }</span>
+ // Inline the flow here to use configured CLI prompts.
+ <span class="cov0" title="0">input, rerr := readInput(stdin, args)
+ if rerr != nil </span><span class="cov0" title="0">{
+ fmt.Fprintln(stderr, logging.AnsiBase+rerr.Error()+logging.AnsiReset)
+ return rerr
+ }</span>
+ <span class="cov0" title="0">printProviderInfo(stderr, client)
+ msgs := buildMessagesFromConfig(cfg, input)
+ if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil </span><span class="cov0" title="0">{
+ fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err)
+ return err
+ }</span>
+ <span class="cov0" title="0">return nil</span>
}
// RunWithClient executes the CLI flow using an already-constructed client.
@@ -1061,7 +1493,7 @@ func RunWithClient(ctx context.Context, args []string, stdin io.Reader, stdout,
return err
}</span>
<span class="cov1" title="1">printProviderInfo(stderr, client)
- msgs := buildMessages(input)
+ msgs := buildMessages(input)
if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil </span><span class="cov1" title="1">{
fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err)
return err
@@ -1090,31 +1522,7 @@ func readInput(stdin io.Reader, args []string) (string, error) <span class="cov9
}
// newClientFromConfig builds an LLM client from the app config and env keys.
-func newClientFromConfig(cfg appconfig.App) (llm.Client, error) <span class="cov6" title="3">{
- llmCfg := llm.Config{
- Provider: cfg.Provider,
- OpenAIBaseURL: cfg.OpenAIBaseURL,
- OpenAIModel: cfg.OpenAIModel,
- OpenAITemperature: cfg.OpenAITemperature,
- OllamaBaseURL: cfg.OllamaBaseURL,
- OllamaModel: cfg.OllamaModel,
- OllamaTemperature: cfg.OllamaTemperature,
- CopilotBaseURL: cfg.CopilotBaseURL,
- CopilotModel: cfg.CopilotModel,
- CopilotTemperature: cfg.CopilotTemperature,
- }
- // Prefer HEXAI_OPENAI_API_KEY; fall back to OPENAI_API_KEY
- oaKey := os.Getenv("HEXAI_OPENAI_API_KEY")
- if strings.TrimSpace(oaKey) == "" </span><span class="cov6" title="3">{
- oaKey = os.Getenv("OPENAI_API_KEY")
- }</span>
- // Prefer HEXAI_COPILOT_API_KEY; fall back to COPILOT_API_KEY
- <span class="cov6" title="3">cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
- if strings.TrimSpace(cpKey) == "" </span><span class="cov6" title="3">{
- cpKey = os.Getenv("COPILOT_API_KEY")
- }</span>
- <span class="cov6" title="3">return llm.NewFromConfig(llmCfg, oaKey, cpKey)</span>
-}
+// client construction moved to internal/llmutils
// buildMessages creates system and user messages based on input content.
func buildMessages(input string) []llm.Message <span class="cov10" title="6">{
@@ -1130,33 +1538,33 @@ func buildMessages(input string) []llm.Message <span class="cov10" title="6">{
}
// buildMessagesFromConfig uses configured CLI system prompts.
-func buildMessagesFromConfig(cfg appconfig.App, input string) []llm.Message <span class="cov0" title="0">{
- lower := strings.ToLower(input)
- system := cfg.PromptCLIDefaultSystem
- if strings.Contains(lower, "explain") </span><span class="cov0" title="0">{
- if strings.TrimSpace(cfg.PromptCLIExplainSystem) != "" </span><span class="cov0" title="0">{
- system = cfg.PromptCLIExplainSystem
+func buildMessagesFromConfig(cfg appconfig.App, input string) []llm.Message <span class="cov4" title="2">{
+ lower := strings.ToLower(input)
+ system := cfg.PromptCLIDefaultSystem
+ if strings.Contains(lower, "explain") </span><span class="cov1" title="1">{
+ if strings.TrimSpace(cfg.PromptCLIExplainSystem) != "" </span><span class="cov1" title="1">{
+ system = cfg.PromptCLIExplainSystem
+ }</span>
+ }
+ <span class="cov4" title="2">return []llm.Message{
+ {Role: "system", Content: system},
+ {Role: "user", Content: input},
}</span>
- }
- <span class="cov0" title="0">return []llm.Message{
- {Role: "system", Content: system},
- {Role: "user", Content: input},
- }</span>
}
// runChat executes the chat request, handling streaming and summary output.
-func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input string, out io.Writer, errw io.Writer) error <span class="cov7" title="4">{
+func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input string, out io.Writer, errw io.Writer) error <span class="cov9" title="5">{
start := time.Now()
var output string
- if s, ok := client.(llm.Streamer); ok </span><span class="cov1" title="1">{
+ if s, ok := client.(llm.Streamer); ok </span><span class="cov4" title="2">{
var b strings.Builder
- if err := s.ChatStream(ctx, msgs, func(chunk string) </span><span class="cov6" title="3">{
+ if err := s.ChatStream(ctx, msgs, func(chunk string) </span><span class="cov9" title="5">{
b.WriteString(chunk)
fmt.Fprint(out, chunk)
}</span>); err != nil <span class="cov0" title="0">{
return err
}</span>
- <span class="cov1" title="1">output = b.String()</span>
+ <span class="cov4" title="2">output = b.String()</span>
} else<span class="cov6" title="3"> {
txt, err := client.Chat(ctx, msgs)
if err != nil </span><span class="cov4" title="2">{
@@ -1165,7 +1573,7 @@ func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input s
<span class="cov1" title="1">output = txt
fmt.Fprint(out, output)</span>
}
- <span class="cov4" title="2">dur := time.Since(start)
+ <span class="cov6" title="3">dur := time.Since(start)
fmt.Fprintf(errw, "\n"+logging.AnsiBase+"done provider=%s model=%s time=%s in_bytes=%d out_bytes=%d"+logging.AnsiReset+"\n",
client.Name(), client.DefaultModel(), dur.Round(time.Millisecond), len(input), len(output))
return nil</span>
@@ -1173,11 +1581,16 @@ func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input s
// printProviderInfo writes the provider/model line to stderr.
func printProviderInfo(errw io.Writer, client llm.Client) <span class="cov4" title="2">{
- fmt.Fprintf(errw, logging.AnsiBase+"provider=%s model=%s"+logging.AnsiReset+"\n", client.Name(), client.DefaultModel())
+ fmt.Fprintf(errw, logging.AnsiBase+"provider=%s model=%s"+logging.AnsiReset+"\n", client.Name(), client.DefaultModel())
+}</span>
+
+// newClientFromConfig is kept for tests; delegates to llmutils.
+func newClientFromConfig(cfg appconfig.App) (llm.Client, error) <span class="cov4" title="2">{
+ return llmutils.NewClientFromApp(cfg)
}</span>
</pre>
- <pre class="file" id="file4" style="display: none">// Summary: Hexai LSP runner; configures logging, loads config, builds the LLM client,
+ <pre class="file" id="file10" style="display: none">// Summary: Hexai LSP runner; configures logging, loads config, builds the LLM client,
// and constructs/runs the LSP server (with injectable factory for tests).
package hexailsp
@@ -1218,7 +1631,7 @@ func Run(logPath string, stdin io.Reader, stdout io.Writer, stderr io.Writer) er
// RunWithFactory is the testable entrypoint. When client is nil, it is built from cfg+env.
// When factory is nil, lsp.NewServer is used.
-func RunWithFactory(logPath string, stdin io.Reader, stdout io.Writer, logger *log.Logger, cfg appconfig.App, client llm.Client, factory ServerFactory) error <span class="cov10" title="6">{
+func RunWithFactory(logPath string, stdin io.Reader, stdout io.Writer, logger *log.Logger, cfg appconfig.App, client llm.Client, factory ServerFactory) error <span class="cov10" title="7">{
normalizeLoggingConfig(&amp;cfg)
client = buildClientIfNil(cfg, client)
factory = ensureFactory(factory)
@@ -1228,23 +1641,23 @@ func RunWithFactory(logPath string, stdin io.Reader, stdout io.Writer, logger *l
if err := server.Run(); err != nil </span><span class="cov0" title="0">{
logger.Fatalf("server error: %v", err)
}</span>
- <span class="cov10" title="6">return nil</span>
+ <span class="cov10" title="7">return nil</span>
}
// --- helpers to keep RunWithFactory small ---
-func normalizeLoggingConfig(cfg *appconfig.App) <span class="cov10" title="6">{
+func normalizeLoggingConfig(cfg *appconfig.App) <span class="cov10" title="7">{
cfg.ContextMode = strings.ToLower(strings.TrimSpace(cfg.ContextMode))
- if cfg.LogPreviewLimit &gt;= 0 </span><span class="cov10" title="6">{
+ if cfg.LogPreviewLimit &gt;= 0 </span><span class="cov10" title="7">{
logging.SetLogPreviewLimit(cfg.LogPreviewLimit)
}</span>
}
-func buildClientIfNil(cfg appconfig.App, client llm.Client) llm.Client <span class="cov10" title="6">{
+func buildClientIfNil(cfg appconfig.App, client llm.Client) llm.Client <span class="cov10" title="7">{
if client != nil </span><span class="cov0" title="0">{
return client
}</span>
- <span class="cov10" title="6">llmCfg := llm.Config{
+ <span class="cov10" title="7">llmCfg := llm.Config{
Provider: cfg.Provider,
OpenAIBaseURL: cfg.OpenAIBaseURL,
OpenAIModel: cfg.OpenAIModel,
@@ -1258,25 +1671,25 @@ func buildClientIfNil(cfg appconfig.App, client llm.Client) llm.Client <span cla
}
// Prefer HEXAI_OPENAI_API_KEY; fall back to OPENAI_API_KEY
oaKey := os.Getenv("HEXAI_OPENAI_API_KEY")
- if strings.TrimSpace(oaKey) == "" </span><span class="cov10" title="6">{
+ if strings.TrimSpace(oaKey) == "" </span><span class="cov10" title="7">{
oaKey = os.Getenv("OPENAI_API_KEY")
}</span>
// Prefer HEXAI_COPILOT_API_KEY; fall back to COPILOT_API_KEY
- <span class="cov10" title="6">cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
- if strings.TrimSpace(cpKey) == "" </span><span class="cov10" title="6">{
+ <span class="cov10" title="7">cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
+ if strings.TrimSpace(cpKey) == "" </span><span class="cov10" title="7">{
cpKey = os.Getenv("COPILOT_API_KEY")
}</span>
- <span class="cov10" title="6">if c, err := llm.NewFromConfig(llmCfg, oaKey, cpKey); err != nil </span><span class="cov1" title="1">{
+ <span class="cov10" title="7">if c, err := llm.NewFromConfig(llmCfg, oaKey, cpKey); err != nil </span><span class="cov1" title="1">{
logging.Logf("lsp ", "llm disabled: %v", err)
return nil
- }</span> else<span class="cov9" title="5"> {
+ }</span> else<span class="cov9" title="6"> {
logging.Logf("lsp ", "llm enabled provider=%s model=%s", c.Name(), c.DefaultModel())
return c
}</span>
}
-func ensureFactory(factory ServerFactory) ServerFactory <span class="cov10" title="6">{
- if factory != nil </span><span class="cov9" title="5">{
+func ensureFactory(factory ServerFactory) ServerFactory <span class="cov10" title="7">{
+ if factory != nil </span><span class="cov9" title="6">{
return factory
}</span>
<span class="cov1" title="1">return func(r io.Reader, w io.Writer, logger *log.Logger, opts lsp.ServerOptions) ServerRunner </span><span class="cov1" title="1">{
@@ -1284,46 +1697,46 @@ func ensureFactory(factory ServerFactory) ServerFactory <span class="cov10" titl
}</span>
}
-func makeServerOptions(cfg appconfig.App, logContext bool, client llm.Client) lsp.ServerOptions <span class="cov10" title="6">{
- return lsp.ServerOptions{
- LogContext: logContext,
- MaxTokens: cfg.MaxTokens,
- ContextMode: cfg.ContextMode,
- WindowLines: cfg.ContextWindowLines,
- MaxContextTokens: cfg.MaxContextTokens,
- CodingTemperature: cfg.CodingTemperature,
- Client: client,
- TriggerCharacters: cfg.TriggerCharacters,
- ManualInvokeMinPrefix: cfg.ManualInvokeMinPrefix,
- CompletionDebounceMs: cfg.CompletionDebounceMs,
- CompletionThrottleMs: cfg.CompletionThrottleMs,
- InlineOpen: cfg.InlineOpen,
- InlineClose: cfg.InlineClose,
- ChatSuffix: cfg.ChatSuffix,
- ChatPrefixes: cfg.ChatPrefixes,
-
- // Prompts
- PromptCompSysGeneral: cfg.PromptCompletionSystemGeneral,
- PromptCompSysParams: cfg.PromptCompletionSystemParams,
- PromptCompSysInline: cfg.PromptCompletionSystemInline,
- PromptCompUserGeneral: cfg.PromptCompletionUserGeneral,
- PromptCompUserParams: cfg.PromptCompletionUserParams,
- PromptCompExtraHeader: cfg.PromptCompletionExtraHeader,
- PromptNativeCompletion: cfg.PromptNativeCompletion,
- PromptChatSystem: cfg.PromptChatSystem,
- PromptRewriteSystem: cfg.PromptCodeActionRewriteSystem,
- PromptDiagnosticsSystem: cfg.PromptCodeActionDiagnosticsSystem,
- PromptDocumentSystem: cfg.PromptCodeActionDocumentSystem,
- PromptRewriteUser: cfg.PromptCodeActionRewriteUser,
- PromptDiagnosticsUser: cfg.PromptCodeActionDiagnosticsUser,
- PromptDocumentUser: cfg.PromptCodeActionDocumentUser,
- PromptGoTestSystem: cfg.PromptCodeActionGoTestSystem,
- PromptGoTestUser: cfg.PromptCodeActionGoTestUser,
- }
+func makeServerOptions(cfg appconfig.App, logContext bool, client llm.Client) lsp.ServerOptions <span class="cov10" title="7">{
+ return lsp.ServerOptions{
+ LogContext: logContext,
+ MaxTokens: cfg.MaxTokens,
+ ContextMode: cfg.ContextMode,
+ WindowLines: cfg.ContextWindowLines,
+ MaxContextTokens: cfg.MaxContextTokens,
+ CodingTemperature: cfg.CodingTemperature,
+ Client: client,
+ TriggerCharacters: cfg.TriggerCharacters,
+ ManualInvokeMinPrefix: cfg.ManualInvokeMinPrefix,
+ CompletionDebounceMs: cfg.CompletionDebounceMs,
+ CompletionThrottleMs: cfg.CompletionThrottleMs,
+ InlineOpen: cfg.InlineOpen,
+ InlineClose: cfg.InlineClose,
+ ChatSuffix: cfg.ChatSuffix,
+ ChatPrefixes: cfg.ChatPrefixes,
+
+ // Prompts
+ PromptCompSysGeneral: cfg.PromptCompletionSystemGeneral,
+ PromptCompSysParams: cfg.PromptCompletionSystemParams,
+ PromptCompSysInline: cfg.PromptCompletionSystemInline,
+ PromptCompUserGeneral: cfg.PromptCompletionUserGeneral,
+ PromptCompUserParams: cfg.PromptCompletionUserParams,
+ PromptCompExtraHeader: cfg.PromptCompletionExtraHeader,
+ PromptNativeCompletion: cfg.PromptNativeCompletion,
+ PromptChatSystem: cfg.PromptChatSystem,
+ PromptRewriteSystem: cfg.PromptCodeActionRewriteSystem,
+ PromptDiagnosticsSystem: cfg.PromptCodeActionDiagnosticsSystem,
+ PromptDocumentSystem: cfg.PromptCodeActionDocumentSystem,
+ PromptRewriteUser: cfg.PromptCodeActionRewriteUser,
+ PromptDiagnosticsUser: cfg.PromptCodeActionDiagnosticsUser,
+ PromptDocumentUser: cfg.PromptCodeActionDocumentUser,
+ PromptGoTestSystem: cfg.PromptCodeActionGoTestSystem,
+ PromptGoTestUser: cfg.PromptCodeActionGoTestUser,
+ }
}</span>
</pre>
- <pre class="file" id="file5" style="display: none">// Summary: GitHub Copilot client for chat and Codex-style code completion.
+ <pre class="file" id="file11" style="display: none">// Summary: GitHub Copilot client for chat and Codex-style code completion.
package llm
import (
@@ -1388,16 +1801,16 @@ type copilotChatResponse struct {
}
// Constructor (kept among the first functions by convention)
-func newCopilot(baseURL, model, apiKey string, defaultTemp *float64) Client <span class="cov3" title="8">{
- if strings.TrimSpace(baseURL) == "" </span><span class="cov0" title="0">{
+func newCopilot(baseURL, model, apiKey string, defaultTemp *float64) Client <span class="cov3" title="9">{
+ if strings.TrimSpace(baseURL) == "" </span><span class="cov1" title="1">{
baseURL = "https://api.githubcopilot.com"
}</span>
- <span class="cov3" title="8">if strings.TrimSpace(model) == "" </span><span class="cov0" title="0">{
+ <span class="cov3" title="9">if strings.TrimSpace(model) == "" </span><span class="cov0" title="0">{
// GitHub Models (Copilot API) commonly supports gpt-4o/gpt-4o-mini.
// Default to a broadly available, cost-effective option.
model = "gpt-4o-mini"
}</span>
- <span class="cov3" title="8">return copilotClient{
+ <span class="cov3" title="9">return copilotClient{
httpClient: &amp;http.Client{Timeout: 30 * time.Second},
apiKey: apiKey,
baseURL: strings.TrimRight(baseURL, "/"),
@@ -1718,7 +2131,7 @@ func (c copilotClient) CodeCompletion(ctx context.Context, prompt string, suffix
// (no streaming decoder needed; we parse whole body lines)
</pre>
- <pre class="file" id="file6" style="display: none">// Summary: Ollama client against a local server; supports chat responses and streaming via /api/chat.
+ <pre class="file" id="file12" style="display: none">// Summary: Ollama client against a local server; supports chat responses and streaming via /api/chat.
package llm
import (
@@ -1761,14 +2174,14 @@ type ollamaChatResponse struct {
}
// Constructor (kept among the first functions by convention)
-func newOllama(baseURL, model string, defaultTemp *float64) Client <span class="cov9" title="11">{
- if strings.TrimSpace(baseURL) == "" </span><span class="cov0" title="0">{
+func newOllama(baseURL, model string, defaultTemp *float64) Client <span class="cov10" title="13">{
+ if strings.TrimSpace(baseURL) == "" </span><span class="cov3" title="2">{
baseURL = "http://localhost:11434"
}</span>
- <span class="cov9" title="11">if strings.TrimSpace(model) == "" </span><span class="cov0" title="0">{
+ <span class="cov10" title="13">if strings.TrimSpace(model) == "" </span><span class="cov3" title="2">{
model = "qwen3-coder:30b-a3b-q4_K_M`"
}</span>
- <span class="cov9" title="11">return ollamaClient{
+ <span class="cov10" title="13">return ollamaClient{
httpClient: &amp;http.Client{Timeout: 30 * time.Second},
baseURL: strings.TrimRight(baseURL, "/"),
defaultModel: model,
@@ -1821,8 +2234,8 @@ func (c ollamaClient) Chat(ctx context.Context, messages []Message, opts ...Requ
}
// Provider metadata
-func (c ollamaClient) Name() string <span class="cov1" title="1">{ return "ollama" }</span>
-func (c ollamaClient) DefaultModel() string <span class="cov1" title="1">{ return c.defaultModel }</span>
+func (c ollamaClient) Name() string <span class="cov3" title="2">{ return "ollama" }</span>
+func (c ollamaClient) DefaultModel() string <span class="cov3" title="2">{ return c.defaultModel }</span>
// Streaming support (optional)
func (c ollamaClient) ChatStream(ctx context.Context, messages []Message, onDelta func(string), opts ...RequestOption) error <span class="cov4" title="3">{
@@ -1855,7 +2268,7 @@ func (c ollamaClient) ChatStream(ctx context.Context, messages []Message, onDelt
}</span>
<span class="cov4" title="3">dec := json.NewDecoder(resp.Body)
- for </span><span class="cov6" title="4">{
+ for </span><span class="cov5" title="4">{
var ev ollamaChatResponse
if err := dec.Decode(&amp;ev); err != nil </span><span class="cov1" title="1">{
if errors.Is(err, io.EOF) </span><span class="cov0" title="0">{
@@ -1888,28 +2301,28 @@ func (c ollamaClient) logStart(stream bool, o Options, messages []Message) <span
<span class="cov8" title="9">c.chatLogger.LogStart(stream, o.Model, o.Temperature, o.MaxTokens, o.Stop, logMessages)</span>
}
-func buildOllamaRequest(o Options, messages []Message, defaultTemp *float64, stream bool) ollamaChatRequest <span class="cov10" title="12">{
+func buildOllamaRequest(o Options, messages []Message, defaultTemp *float64, stream bool) ollamaChatRequest <span class="cov9" title="12">{
req := ollamaChatRequest{Model: o.Model, Stream: stream}
req.Messages = make([]oaMessage, len(messages))
- for i, m := range messages </span><span class="cov10" title="12">{
+ for i, m := range messages </span><span class="cov9" title="12">{
req.Messages[i] = oaMessage{Role: m.Role, Content: m.Content}
}</span>
- <span class="cov10" title="12">optsMap := map[string]any{}
+ <span class="cov9" title="12">optsMap := map[string]any{}
if o.Temperature != 0 </span><span class="cov1" title="1">{
optsMap["temperature"] = o.Temperature
}</span> else<span class="cov9" title="11"> if defaultTemp != nil </span><span class="cov4" title="3">{
optsMap["temperature"] = *defaultTemp
}</span>
- <span class="cov10" title="12">if o.MaxTokens &gt; 0 </span><span class="cov3" title="2">{
+ <span class="cov9" title="12">if o.MaxTokens &gt; 0 </span><span class="cov3" title="2">{
optsMap["num_predict"] = o.MaxTokens
}</span>
- <span class="cov10" title="12">if len(o.Stop) &gt; 0 </span><span class="cov3" title="2">{
+ <span class="cov9" title="12">if len(o.Stop) &gt; 0 </span><span class="cov3" title="2">{
optsMap["stop"] = o.Stop
}</span>
- <span class="cov10" title="12">if len(optsMap) &gt; 0 </span><span class="cov6" title="4">{
+ <span class="cov9" title="12">if len(optsMap) &gt; 0 </span><span class="cov5" title="4">{
req.Options = optsMap
}</span>
- <span class="cov10" title="12">return req</span>
+ <span class="cov9" title="12">return req</span>
}
func (c ollamaClient) doJSON(ctx context.Context, url string, body []byte) (*http.Response, error) <span class="cov8" title="9">{
@@ -1922,7 +2335,7 @@ func (c ollamaClient) doJSON(ctx context.Context, url string, body []byte) (*htt
}
func handleOllamaNon2xx(resp *http.Response, start time.Time) error <span class="cov8" title="9">{
- if resp.StatusCode &gt;= 200 &amp;&amp; resp.StatusCode &lt; 300 </span><span class="cov8" title="7">{
+ if resp.StatusCode &gt;= 200 &amp;&amp; resp.StatusCode &lt; 300 </span><span class="cov7" title="7">{
return nil
}</span>
<span class="cov3" title="2">var apiErr ollamaChatResponse
@@ -1936,7 +2349,7 @@ func handleOllamaNon2xx(resp *http.Response, start time.Time) error <span class=
}
</pre>
- <pre class="file" id="file7" style="display: none">// Summary: OpenAI client implementation for chat completions with optional streaming and detailed logging.
+ <pre class="file" id="file13" style="display: none">// Summary: OpenAI client implementation for chat completions with optional streaming and detailed logging.
package llm
import (
@@ -2013,14 +2426,14 @@ type oaStreamChunk struct {
// Constructor (kept among the first functions by convention)
// newOpenAI constructs an OpenAI client using explicit configuration values.
// The apiKey may be empty; calls will fail until a valid key is supplied.
-func newOpenAI(baseURL, model, apiKey string, defaultTemp *float64) Client <span class="cov10" title="16">{
- if strings.TrimSpace(baseURL) == "" </span><span class="cov6" title="5">{
+func newOpenAI(baseURL, model, apiKey string, defaultTemp *float64) Client <span class="cov10" title="17">{
+ if strings.TrimSpace(baseURL) == "" </span><span class="cov6" title="6">{
baseURL = "https://api.openai.com/v1"
}</span>
- <span class="cov10" title="16">if strings.TrimSpace(model) == "" </span><span class="cov6" title="5">{
+ <span class="cov10" title="17">if strings.TrimSpace(model) == "" </span><span class="cov6" title="6">{
model = "gpt-4.1"
}</span>
- <span class="cov10" title="16">return openAIClient{
+ <span class="cov10" title="17">return openAIClient{
httpClient: &amp;http.Client{Timeout: 30 * time.Second},
apiKey: apiKey,
baseURL: baseURL,
@@ -2125,12 +2538,12 @@ func (c openAIClient) ChatStream(ctx context.Context, messages []Message, onDelt
func (c openAIClient) logf(format string, args ...any) <span class="cov0" title="0">{ logging.Logf("llm/openai ", format, args...) }</span>
// helpers extracted to keep methods small
-func (c openAIClient) logStart(stream bool, o Options, messages []Message) <span class="cov8" title="9">{
+func (c openAIClient) logStart(stream bool, o Options, messages []Message) <span class="cov7" title="9">{
logMessages := make([]struct{ Role, Content string }, len(messages))
- for i, m := range messages </span><span class="cov8" title="9">{
+ for i, m := range messages </span><span class="cov7" title="9">{
logMessages[i] = struct{ Role, Content string }{m.Role, m.Content}
}</span>
- <span class="cov8" title="9">c.chatLogger.LogStart(stream, o.Model, o.Temperature, o.MaxTokens, o.Stop, logMessages)</span>
+ <span class="cov7" title="9">c.chatLogger.LogStart(stream, o.Model, o.Temperature, o.MaxTokens, o.Stop, logMessages)</span>
}
func buildOAChatRequest(o Options, messages []Message, defaultTemp *float64, stream bool) oaChatRequest <span class="cov8" title="11">{
@@ -2239,7 +2652,7 @@ func parseOpenAIStream(resp *http.Response, start time.Time, onDelta func(string
}
</pre>
- <pre class="file" id="file8" style="display: none">// Summary: LLM provider interfaces, request options, configuration, and factory to build a client from config.
+ <pre class="file" id="file14" style="display: none">// Summary: LLM provider interfaces, request options, configuration, and factory to build a client from config.
package llm
import (
@@ -2297,8 +2710,8 @@ type Options struct {
type RequestOption func(*Options)
func WithModel(model string) RequestOption <span class="cov1" title="1">{ return func(o *Options) </span><span class="cov1" title="1">{ o.Model = model }</span> }
-func WithTemperature(t float64) RequestOption <span class="cov1" title="1">{ return func(o *Options) </span><span class="cov1" title="1">{ o.Temperature = t }</span> }
-func WithMaxTokens(n int) RequestOption <span class="cov10" title="25">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> }
+func WithTemperature(t float64) RequestOption <span class="cov4" title="4">{ return func(o *Options) </span><span class="cov1" title="1">{ o.Temperature = t }</span> }
+func WithMaxTokens(n int) RequestOption <span class="cov10" title="32">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> }
func WithStop(stop ...string) RequestOption <span class="cov1" title="1">{
return func(o *Options) </span><span class="cov1" title="1">{ o.Stop = append([]string{}, stop...) }</span>
}
@@ -2323,44 +2736,44 @@ type Config struct {
// NewFromConfig creates an LLM client using only the supplied configuration.
// The OpenAI API key is supplied separately and may be read from the environment
// by the caller; other environment-based configuration is not used.
-func NewFromConfig(cfg Config, openAIAPIKey, copilotAPIKey string) (Client, error) <span class="cov8" title="14">{
+func NewFromConfig(cfg Config, openAIAPIKey, copilotAPIKey string) (Client, error) <span class="cov8" title="18">{
p := strings.ToLower(strings.TrimSpace(cfg.Provider))
if p == "" </span><span class="cov6" title="7">{
p = "openai"
}</span>
- <span class="cov8" title="14">switch p </span>{
- case "openai":<span class="cov7" title="10">
+ <span class="cov8" title="18">switch p </span>{
+ case "openai":<span class="cov7" title="11">
if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov4" title="4">{
return nil, errors.New("missing OPENAI_API_KEY for provider openai")
}</span>
// Set coding-friendly default temperature if none provided
- <span class="cov6" title="6">if cfg.OpenAITemperature == nil </span><span class="cov4" title="4">{
+ <span class="cov6" title="7">if cfg.OpenAITemperature == nil </span><span class="cov5" title="5">{
t := 0.2
cfg.OpenAITemperature = &amp;t
}</span>
- <span class="cov6" title="6">return newOpenAI(cfg.OpenAIBaseURL, cfg.OpenAIModel, openAIAPIKey, cfg.OpenAITemperature), nil</span>
- case "ollama":<span class="cov1" title="1">
- if cfg.OllamaTemperature == nil </span><span class="cov1" title="1">{
+ <span class="cov6" title="7">return newOpenAI(cfg.OpenAIBaseURL, cfg.OpenAIModel, openAIAPIKey, cfg.OpenAITemperature), nil</span>
+ case "ollama":<span class="cov3" title="3">
+ if cfg.OllamaTemperature == nil </span><span class="cov2" title="2">{
t := 0.2
cfg.OllamaTemperature = &amp;t
}</span>
- <span class="cov1" title="1">return newOllama(cfg.OllamaBaseURL, cfg.OllamaModel, cfg.OllamaTemperature), nil</span>
- case "copilot":<span class="cov2" title="2">
+ <span class="cov3" title="3">return newOllama(cfg.OllamaBaseURL, cfg.OllamaModel, cfg.OllamaTemperature), nil</span>
+ case "copilot":<span class="cov3" title="3">
if strings.TrimSpace(copilotAPIKey) == "" </span><span class="cov1" title="1">{
return nil, errors.New("missing COPILOT_API_KEY for provider copilot")
}</span>
- <span class="cov1" title="1">if cfg.CopilotTemperature == nil </span><span class="cov1" title="1">{
+ <span class="cov2" title="2">if cfg.CopilotTemperature == nil </span><span class="cov2" title="2">{
t := 0.2
cfg.CopilotTemperature = &amp;t
}</span>
- <span class="cov1" title="1">return newCopilot(cfg.CopilotBaseURL, cfg.CopilotModel, copilotAPIKey, cfg.CopilotTemperature), nil</span>
+ <span class="cov2" title="2">return newCopilot(cfg.CopilotBaseURL, cfg.CopilotModel, copilotAPIKey, cfg.CopilotTemperature), nil</span>
default:<span class="cov1" title="1">
return nil, errors.New("unknown LLM provider: " + p)</span>
}
}
</pre>
- <pre class="file" id="file9" style="display: none">package llm
+ <pre class="file" id="file15" style="display: none">package llm
import "errors"
@@ -2368,7 +2781,44 @@ import "errors"
func nilStringErr(msg string) (string, error) <span class="cov10" title="2">{ return "", errors.New(msg) }</span>
</pre>
- <pre class="file" id="file10" style="display: none">package logging
+ <pre class="file" id="file16" style="display: none">package llmutils
+
+import (
+ "os"
+ "strings"
+
+ "codeberg.org/snonux/hexai/internal/appconfig"
+ "codeberg.org/snonux/hexai/internal/llm"
+)
+
+// NewClientFromApp builds an llm.Client using app config and environment keys.
+func NewClientFromApp(cfg appconfig.App) (llm.Client, error) <span class="cov10" title="5">{
+ llmCfg := llm.Config{
+ Provider: cfg.Provider,
+ OpenAIBaseURL: cfg.OpenAIBaseURL,
+ OpenAIModel: cfg.OpenAIModel,
+ OpenAITemperature: cfg.OpenAITemperature,
+ OllamaBaseURL: cfg.OllamaBaseURL,
+ OllamaModel: cfg.OllamaModel,
+ OllamaTemperature: cfg.OllamaTemperature,
+ CopilotBaseURL: cfg.CopilotBaseURL,
+ CopilotModel: cfg.CopilotModel,
+ CopilotTemperature: cfg.CopilotTemperature,
+ }
+ oaKey := os.Getenv("HEXAI_OPENAI_API_KEY")
+ if strings.TrimSpace(oaKey) == "" </span><span class="cov8" title="4">{
+ oaKey = os.Getenv("OPENAI_API_KEY")
+ }</span>
+ <span class="cov10" title="5">cpKey := os.Getenv("HEXAI_COPILOT_API_KEY")
+ if strings.TrimSpace(cpKey) == "" </span><span class="cov10" title="5">{
+ cpKey = os.Getenv("COPILOT_API_KEY")
+ }</span>
+ <span class="cov10" title="5">return llm.NewFromConfig(llmCfg, oaKey, cpKey)</span>
+}
+
+</pre>
+
+ <pre class="file" id="file17" style="display: none">package logging
// ChatLogger provides a structured way to log chat interactions.
type ChatLogger struct {
@@ -2376,7 +2826,7 @@ type ChatLogger struct {
}
// NewChatLogger creates a new ChatLogger for a given provider.
-func NewChatLogger(provider string) ChatLogger <span class="cov10" title="36">{
+func NewChatLogger(provider string) ChatLogger <span class="cov10" title="40">{
return ChatLogger{Provider: provider}
}</span>
@@ -2392,14 +2842,14 @@ func (cl ChatLogger) LogStart(stream bool, model string, temp float64, maxTokens
}</span>
<span class="cov8" title="24">Logf("llm/"+cl.Provider+" ", "%s start model=%s temp=%.2f max_tokens=%d stop=%d messages=%d",
chatOrStream, model, temp, maxTokens, len(stop), len(messages))
- for i, m := range messages </span><span class="cov9" title="25">{
+ for i, m := range messages </span><span class="cov8" title="24">{
Logf("llm/"+cl.Provider+" ", "msg[%d] role=%s size=%d preview=%s%s%s",
i, m.Role, len(m.Content), AnsiCyan, PreviewForLog(m.Content), AnsiBase)
}</span>
}
</pre>
- <pre class="file" id="file11" style="display: none">// Summary: ANSI-styled logging utilities with a bound standard logger and configurable preview truncation.
+ <pre class="file" id="file18" style="display: none">// Summary: ANSI-styled logging utilities with a bound standard logger and configurable preview truncation.
package logging
import (
@@ -2425,14 +2875,14 @@ const AnsiBase = AnsiBgBlack + AnsiGrey
var std *log.Logger
// Bind sets the underlying standard logger to use for Logf.
-func Bind(l *log.Logger) <span class="cov3" title="4">{ std = l }</span>
+func Bind(l *log.Logger) <span class="cov2" title="3">{ std = l }</span>
// Logf prints a formatted message with a module prefix and base ANSI style.
func Logf(prefix, format string, args ...any) <span class="cov10" title="143">{
- if std == nil </span><span class="cov9" title="102">{
+ if std == nil </span><span class="cov9" title="103">{
return
}</span>
- <span class="cov7" title="41">msg := fmt.Sprintf(format, args...)
+ <span class="cov7" title="40">msg := fmt.Sprintf(format, args...)
std.Print(AnsiBase + prefix + msg + AnsiReset)</span>
}
@@ -2441,21 +2891,21 @@ var logPreviewLimit int // 0 means unlimited
// SetLogPreviewLimit sets the maximum number of characters to log for
// request/response previews. Set to 0 for unlimited.
-func SetLogPreviewLimit(n int) <span class="cov5" title="10">{ logPreviewLimit = n }</span>
+func SetLogPreviewLimit(n int) <span class="cov4" title="9">{ logPreviewLimit = n }</span>
// PreviewForLog returns the string truncated to the configured preview limit.
-func PreviewForLog(s string) string <span class="cov7" title="35">{
- if logPreviewLimit &gt; 0 </span><span class="cov3" title="5">{
- if len(s) &lt;= logPreviewLimit </span><span class="cov2" title="2">{
+func PreviewForLog(s string) string <span class="cov7" title="32">{
+ if logPreviewLimit &gt; 0 </span><span class="cov2" title="3">{
+ if len(s) &lt;= logPreviewLimit </span><span class="cov0" title="0">{
return s
}</span>
<span class="cov2" title="3">return s[:logPreviewLimit] + "…"</span>
}
- <span class="cov7" title="30">return s</span>
+ <span class="cov7" title="29">return s</span>
}
</pre>
- <pre class="file" id="file12" style="display: none">// Summary: Builds additional context snippets based on configured mode and truncates text by token heuristic.
+ <pre class="file" id="file19" style="display: none">// Summary: Builds additional context snippets based on configured mode and truncates text by token heuristic.
package lsp
import (
@@ -2541,7 +2991,7 @@ func truncateToApproxTokens(text string, maxTokens int) string <span class="cov8
}
</pre>
- <pre class="file" id="file13" style="display: none">// Summary: In-memory document model for the LSP; tracks text, lines, and applies edits.
+ <pre class="file" id="file20" style="display: none">// Summary: In-memory document model for the LSP; tracks text, lines, and applies edits.
package lsp
import (
@@ -2567,20 +3017,20 @@ func (s *Server) deleteDocument(uri string) <span class="cov1" title="1">{
delete(s.docs, uri)
}</span>
-func (s *Server) markActivity() <span class="cov3" title="4">{
+func (s *Server) markActivity() <span class="cov4" title="4">{
s.mu.Lock()
s.lastInput = time.Now()
s.mu.Unlock()
}</span>
-func (s *Server) getDocument(uri string) *document <span class="cov9" title="51">{
+func (s *Server) getDocument(uri string) *document <span class="cov10" title="52">{
s.mu.RLock()
defer s.mu.RUnlock()
return s.docs[uri]
}</span>
// splitLines splits the input string into lines, normalizing line endings to '\n'.
-func splitLines(sx string) []string <span class="cov10" title="76">{
+func splitLines(sx string) []string <span class="cov9" title="42">{
sx = strings.ReplaceAll(sx, "\r\n", "\n")
return strings.Split(sx, "\n")
}</span>
@@ -2590,28 +3040,28 @@ func (s *Server) lineContext(uri string, pos Position) (above, current, below, f
if d == nil || len(d.lines) == 0 </span><span class="cov1" title="1">{
return "", "", "", ""
}</span>
- <span class="cov3" title="4">idx := pos.Line
+ <span class="cov4" title="4">idx := pos.Line
if idx &lt; 0 </span><span class="cov0" title="0">{
idx = 0
}</span>
- <span class="cov3" title="4">if idx &gt;= len(d.lines) </span><span class="cov0" title="0">{
+ <span class="cov4" title="4">if idx &gt;= len(d.lines) </span><span class="cov0" title="0">{
idx = len(d.lines) - 1
}</span>
- <span class="cov3" title="4">current = d.lines[idx]
- if idx-1 &gt;= 0 </span><span class="cov3" title="4">{
+ <span class="cov4" title="4">current = d.lines[idx]
+ if idx-1 &gt;= 0 </span><span class="cov4" title="4">{
above = d.lines[idx-1]
}</span>
- <span class="cov3" title="4">if idx+1 &lt; len(d.lines) </span><span class="cov3" title="4">{
+ <span class="cov4" title="4">if idx+1 &lt; len(d.lines) </span><span class="cov4" title="4">{
below = d.lines[idx+1]
}</span>
- <span class="cov3" title="4">for i := idx; i &gt;= 0; i-- </span><span class="cov4" title="6">{
+ <span class="cov4" title="4">for i := idx; i &gt;= 0; i-- </span><span class="cov5" title="6">{
line := strings.TrimSpace(d.lines[i])
- if hasAny(line, []string{"func ", "def ", "class ", "fn ", "procedure ", "sub "}) </span><span class="cov3" title="4">{
+ if hasAny(line, []string{"func ", "def ", "class ", "fn ", "procedure ", "sub "}) </span><span class="cov4" title="4">{
funcCtx = line
break</span>
}
}
- <span class="cov3" title="4">return above, current, below, funcCtx</span>
+ <span class="cov4" title="4">return above, current, below, funcCtx</span>
}
// isDefiningNewFunction returns true when the cursor appears to be within
@@ -2646,7 +3096,7 @@ func (s *Server) isDefiningNewFunction(uri string, pos Position) bool <span clas
return false
}</span>
// Scan for '{' from sigStart up to cursor position; if found before or at cursor, we're in body
- <span class="cov3" title="3">for i := sigStart; i &lt;= idx; i++ </span><span class="cov3" title="4">{
+ <span class="cov3" title="3">for i := sigStart; i &lt;= idx; i++ </span><span class="cov4" title="4">{
line := d.lines[i]
brace := strings.Index(line, "{")
if brace &gt;= 0 </span><span class="cov2" title="2">{
@@ -2662,39 +3112,39 @@ func (s *Server) isDefiningNewFunction(uri string, pos Position) bool <span clas
<span class="cov1" title="1">return true</span>
}
-func hasAny(s string, needles []string) bool <span class="cov4" title="6">{
- for _, n := range needles </span><span class="cov6" title="16">{
- if strings.Contains(s, n) </span><span class="cov3" title="4">{
+func hasAny(s string, needles []string) bool <span class="cov5" title="6">{
+ for _, n := range needles </span><span class="cov7" title="16">{
+ if strings.Contains(s, n) </span><span class="cov4" title="4">{
return true
}</span>
}
<span class="cov2" title="2">return false</span>
}
-func trimLen(s string) string <span class="cov8" title="40">{
+func trimLen(s string) string <span class="cov9" title="42">{
s = strings.TrimSpace(s)
if len(s) &gt; 200 </span><span class="cov1" title="1">{
return s[:200] + "…"
}</span>
- <span class="cov8" title="39">return s</span>
+ <span class="cov9" title="41">return s</span>
}
-func firstLine(s string) string <span class="cov7" title="22">{
+func firstLine(s string) string <span class="cov8" title="25">{
s = strings.ReplaceAll(s, "\r\n", "\n")
- if idx := strings.IndexByte(s, '\n'); idx &gt;= 0 </span><span class="cov4" title="5">{
+ if idx := strings.IndexByte(s, '\n'); idx &gt;= 0 </span><span class="cov5" title="6">{
return s[:idx]
}</span>
- <span class="cov6" title="17">return s</span>
+ <span class="cov7" title="19">return s</span>
}
</pre>
- <pre class="file" id="file14" style="display: none">// Summary: LSP JSON-RPC handlers; implements core methods and integrates with the LLM client when enabled.
+ <pre class="file" id="file21" style="display: none">// Summary: LSP JSON-RPC handlers; implements core methods and integrates with the LLM client when enabled.
package lsp
import (
- "encoding/json"
- "fmt"
- "strings"
+ "encoding/json"
+ "fmt"
+ "strings"
)
func (s *Server) handle(req Request) <span class="cov2" title="2">{
@@ -2716,14 +3166,14 @@ func (s *Server) handle(req Request) <span class="cov2" title="2">{
// a line comment (//, #, --). Returns the instruction string and the selection
// text cleaned of the matched instruction marker or comment.
func instructionFromSelection(sel string) (string, string) <span class="cov3" title="3">{
- lines := splitLines(sel)
- for idx, line := range lines </span><span class="cov3" title="3">{
- if instr, cleaned, ok := findFirstInstructionInLine(line); ok &amp;&amp; strings.TrimSpace(instr) != "" </span><span class="cov1" title="1">{
- lines[idx] = cleaned
- return instr, strings.Join(lines, "\n")
- }</span>
- }
- <span class="cov2" title="2">return "", sel</span>
+ lines := splitLines(sel)
+ for idx, line := range lines </span><span class="cov3" title="3">{
+ if instr, cleaned, ok := findFirstInstructionInLine(line); ok &amp;&amp; strings.TrimSpace(instr) != "" </span><span class="cov1" title="1">{
+ lines[idx] = cleaned
+ return instr, strings.Join(lines, "\n")
+ }</span>
+ }
+ <span class="cov2" title="2">return "", sel</span>
}
// findFirstInstructionInLine returns the earliest instruction marker on the
@@ -2736,51 +3186,51 @@ func instructionFromSelection(sel string) (string, string) <span class="cov3" ti
// - # text
// - -- text
func findFirstInstructionInLine(line string) (instr string, cleaned string, ok bool) <span class="cov8" title="22">{
- type cand struct {
- start, end int
- text string
- }
- cands := []cand{}
- if t, l, r, ok := findStrictInlineTag(line); ok </span><span class="cov5" title="6">{
- cands = append(cands, cand{start: l, end: r, text: t})
- }</span>
- <span class="cov8" title="22">if i := strings.Index(line, "/*"); i &gt;= 0 </span><span class="cov2" title="2">{
- if j := strings.Index(line[i+2:], "*/"); j &gt;= 0 </span><span class="cov2" title="2">{
- start := i
- end := i + 2 + j + 2
- text := strings.TrimSpace(line[i+2 : i+2+j])
- cands = append(cands, cand{start: start, end: end, text: text})
- }</span>
- }
- <span class="cov8" title="22">if i := strings.Index(line, "&lt;!--"); i &gt;= 0 </span><span class="cov2" title="2">{
- if j := strings.Index(line[i+4:], "--&gt;"); j &gt;= 0 </span><span class="cov2" title="2">{
- start := i
- end := i + 4 + j + 3
- text := strings.TrimSpace(line[i+4 : i+4+j])
- cands = append(cands, cand{start: start, end: end, text: text})
- }</span>
- }
- <span class="cov8" title="22">if i := strings.Index(line, "//"); i &gt;= 0 </span><span class="cov4" title="4">{
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
- }</span>
- <span class="cov8" title="22">if i := strings.Index(line, "#"); i &gt;= 0 </span><span class="cov2" title="2">{
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
+ type cand struct {
+ start, end int
+ text string
+ }
+ cands := []cand{}
+ if t, l, r, ok := findStrictInlineTag(line); ok </span><span class="cov5" title="6">{
+ cands = append(cands, cand{start: l, end: r, text: t})
+ }</span>
+ <span class="cov8" title="22">if i := strings.Index(line, "/*"); i &gt;= 0 </span><span class="cov2" title="2">{
+ if j := strings.Index(line[i+2:], "*/"); j &gt;= 0 </span><span class="cov2" title="2">{
+ start := i
+ end := i + 2 + j + 2
+ text := strings.TrimSpace(line[i+2 : i+2+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
}</span>
- <span class="cov8" title="22">if i := strings.Index(line, "--"); i &gt;= 0 </span><span class="cov4" title="4">{
- cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }
+ <span class="cov8" title="22">if i := strings.Index(line, "&lt;!--"); i &gt;= 0 </span><span class="cov2" title="2">{
+ if j := strings.Index(line[i+4:], "--&gt;"); j &gt;= 0 </span><span class="cov2" title="2">{
+ start := i
+ end := i + 4 + j + 3
+ text := strings.TrimSpace(line[i+4 : i+4+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
}</span>
- <span class="cov8" title="22">if len(cands) == 0 </span><span class="cov5" title="6">{
- return "", line, false
+ }
+ <span class="cov8" title="22">if i := strings.Index(line, "//"); i &gt;= 0 </span><span class="cov4" title="4">{
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }</span>
+ <span class="cov8" title="22">if i := strings.Index(line, "#"); i &gt;= 0 </span><span class="cov2" title="2">{
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
+ }</span>
+ <span class="cov8" title="22">if i := strings.Index(line, "--"); i &gt;= 0 </span><span class="cov4" title="4">{
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }</span>
+ <span class="cov8" title="22">if len(cands) == 0 </span><span class="cov5" title="6">{
+ return "", line, false
+ }</span>
+ // pick earliest start index
+ <span class="cov7" title="16">best := cands[0]
+ for _, c := range cands[1:] </span><span class="cov4" title="4">{
+ if c.start &gt;= 0 &amp;&amp; (best.start &lt; 0 || c.start &lt; best.start) </span><span class="cov1" title="1">{
+ best = c
}</span>
- // pick earliest start index
- <span class="cov7" title="16">best := cands[0]
- for _, c := range cands[1:] </span><span class="cov4" title="4">{
- if c.start &gt;= 0 &amp;&amp; (best.start &lt; 0 || c.start &lt; best.start) </span><span class="cov1" title="1">{
- best = c
- }</span>
- }
- <span class="cov7" title="16">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
- return best.text, cleaned, true</span>
+ }
+ <span class="cov7" title="16">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
+ return best.text, cleaned, true</span>
}
// diagnosticsInRange parses the CodeAction context and returns diagnostics
@@ -3135,7 +3585,7 @@ func (s *Server) fallbackCompletionItems(docStr string) []CompletionItem <span c
}</span>
</pre>
- <pre class="file" id="file15" style="display: none">// Summary: Code Action handlers and helpers split from handlers.go for clarity.
+ <pre class="file" id="file22" style="display: none">// Summary: Code Action handlers and helpers split from handlers.go for clarity.
package lsp
import (
@@ -3202,7 +3652,7 @@ func (s *Server) buildRewriteCodeAction(p CodeActionParams, sel string) *CodeAct
<span class="cov2" title="2">return nil</span>
}
-func (s *Server) buildDiagnosticsCodeAction(p CodeActionParams, sel string) *CodeAction <span class="cov4" title="4">{
+func (s *Server) buildDiagnosticsCodeAction(p CodeActionParams, sel string) *CodeAction <span class="cov3" title="4">{
diags := s.diagnosticsInRange(p.Context, p.Range)
if len(diags) == 0 </span><span class="cov2" title="2">{
return nil
@@ -3219,11 +3669,11 @@ func (s *Server) buildDiagnosticsCodeAction(p CodeActionParams, sel string) *Cod
return &amp;ca</span>
}
-func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class="cov6" title="12">{
+func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class="cov5" title="12">{
if s.llmClient == nil || len(ca.Data) == 0 </span><span class="cov0" title="0">{
return ca, false
}</span>
- <span class="cov6" title="12">var payload struct {
+ <span class="cov5" title="12">var payload struct {
Type string `json:"type"`
URI string `json:"uri"`
Range Range `json:"range"`
@@ -3234,16 +3684,16 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class
if err := json.Unmarshal(ca.Data, &amp;payload); err != nil </span><span class="cov0" title="0">{
return ca, false
}</span>
- <span class="cov6" title="12">switch payload.Type </span>{
- case "rewrite":<span class="cov4" title="4">
- sys := s.promptRewriteSystem
- user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": payload.Instruction, "selection": payload.Selection})
- ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
- defer cancel()
- messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ <span class="cov5" title="12">switch payload.Type </span>{
+ case "rewrite":<span class="cov3" title="4">
+ sys := s.promptRewriteSystem
+ user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": payload.Instruction, "selection": payload.Selection})
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+ defer cancel()
+ messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
opts := s.llmRequestOpts()
- if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov4" title="4">{
- if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov4" title="4">{
+ if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov3" title="4">{
+ if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov3" title="4">{
edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
ca.Edit = &amp;edit
return ca, true
@@ -3251,37 +3701,37 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class
} else<span class="cov0" title="0"> {
logging.Logf("lsp ", "codeAction rewrite llm error: %v", err)
}</span>
- case "diagnostics":<span class="cov4" title="5">
- sys := s.promptDiagnosticsSystem
- var b strings.Builder
- for i, dgn := range payload.Diagnostics </span><span class="cov5" title="6">{
- if dgn.Source != "" </span><span class="cov0" title="0">{
- fmt.Fprintf(&amp;b, "%d. [%s] %s\n", i+1, dgn.Source, dgn.Message)
- }</span> else<span class="cov5" title="6"> {
- fmt.Fprintf(&amp;b, "%d. %s\n", i+1, dgn.Message)
- }</span>
- }
- <span class="cov4" title="5">diagList := b.String()
- user := renderTemplate(s.promptDiagnosticsUser, map[string]string{"diagnostics": diagList, "selection": payload.Selection})
- ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second)
- defer cancel()
- messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
- opts := s.llmRequestOpts()
- if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov4" title="5">{
- if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov4" title="5">{
- edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
- ca.Edit = &amp;edit
- return ca, true
- }</span>
- } else<span class="cov0" title="0"> {
- logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err)
- }</span>
- case "document":<span class="cov3" title="3">
- sys := s.promptDocumentSystem
- user := renderTemplate(s.promptDocumentUser, map[string]string{"selection": payload.Selection})
- ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
- defer cancel()
- messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ case "diagnostics":<span class="cov4" title="5">
+ sys := s.promptDiagnosticsSystem
+ var b strings.Builder
+ for i, dgn := range payload.Diagnostics </span><span class="cov4" title="6">{
+ if dgn.Source != "" </span><span class="cov0" title="0">{
+ fmt.Fprintf(&amp;b, "%d. [%s] %s\n", i+1, dgn.Source, dgn.Message)
+ }</span> else<span class="cov4" title="6"> {
+ fmt.Fprintf(&amp;b, "%d. %s\n", i+1, dgn.Message)
+ }</span>
+ }
+ <span class="cov4" title="5">diagList := b.String()
+ user := renderTemplate(s.promptDiagnosticsUser, map[string]string{"diagnostics": diagList, "selection": payload.Selection})
+ ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second)
+ defer cancel()
+ messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ opts := s.llmRequestOpts()
+ if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov4" title="5">{
+ if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov4" title="5">{
+ edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}}
+ ca.Edit = &amp;edit
+ return ca, true
+ }</span>
+ } else<span class="cov0" title="0"> {
+ logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err)
+ }</span>
+ case "document":<span class="cov3" title="3">
+ sys := s.promptDocumentSystem
+ user := renderTemplate(s.promptDocumentUser, map[string]string{"selection": payload.Selection})
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+ defer cancel()
+ messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
opts := s.llmRequestOpts()
if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov3" title="3">{
if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov3" title="3">{
@@ -3324,58 +3774,58 @@ func (s *Server) handleCodeActionResolve(req Request) <span class="cov2" title="
// diagnosticsInRange parses the CodeAction context and returns diagnostics
// that overlap the given selection range. If the context is missing or does
// not contain diagnostics, returns an empty slice.
-func (s *Server) diagnosticsInRange(ctxRaw json.RawMessage, sel Range) []Diagnostic <span class="cov4" title="5">{
- if len(ctxRaw) == 0 </span><span class="cov2" title="2">{
+func (s *Server) diagnosticsInRange(ctxRaw json.RawMessage, sel Range) []Diagnostic <span class="cov4" title="7">{
+ if len(ctxRaw) == 0 </span><span class="cov3" title="3">{
return nil
}</span>
- <span class="cov3" title="3">var ctx CodeActionContext
+ <span class="cov3" title="4">var ctx CodeActionContext
if err := json.Unmarshal(ctxRaw, &amp;ctx); err != nil </span><span class="cov0" title="0">{
return nil
}</span>
- <span class="cov3" title="3">if len(ctx.Diagnostics) == 0 </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if len(ctx.Diagnostics) == 0 </span><span class="cov0" title="0">{
return nil
}</span>
- <span class="cov3" title="3">out := make([]Diagnostic, 0, len(ctx.Diagnostics))
- for _, d := range ctx.Diagnostics </span><span class="cov5" title="6">{
- if rangesOverlap(d.Range, sel) </span><span class="cov3" title="3">{
+ <span class="cov3" title="4">out := make([]Diagnostic, 0, len(ctx.Diagnostics))
+ for _, d := range ctx.Diagnostics </span><span class="cov4" title="7">{
+ if rangesOverlap(d.Range, sel) </span><span class="cov3" title="4">{
out = append(out, d)
}</span>
}
- <span class="cov3" title="3">return out</span>
+ <span class="cov3" title="4">return out</span>
}
// rangesOverlap reports whether two LSP ranges overlap at all.
-func rangesOverlap(a, b Range) bool <span class="cov5" title="8">{
+func rangesOverlap(a, b Range) bool <span class="cov5" title="10">{
// Normalize ordering
if greaterPos(a.Start, a.End) </span><span class="cov0" title="0">{
a.Start, a.End = a.End, a.Start
}</span>
- <span class="cov5" title="8">if greaterPos(b.Start, b.End) </span><span class="cov0" title="0">{
+ <span class="cov5" title="10">if greaterPos(b.Start, b.End) </span><span class="cov0" title="0">{
b.Start, b.End = b.End, b.Start
}</span>
// a ends before b starts
- <span class="cov5" title="8">if lessPos(a.End, b.Start) </span><span class="cov3" title="3">{
+ <span class="cov5" title="10">if lessPos(a.End, b.Start) </span><span class="cov3" title="3">{
return false
}</span>
// b ends before a starts
- <span class="cov4" title="5">if lessPos(b.End, a.Start) </span><span class="cov1" title="1">{
+ <span class="cov4" title="7">if lessPos(b.End, a.Start) </span><span class="cov1" title="1">{
return false
}</span>
- <span class="cov4" title="4">return true</span>
+ <span class="cov4" title="6">return true</span>
}
-func lessPos(p, q Position) bool <span class="cov7" title="14">{
- if p.Line != q.Line </span><span class="cov6" title="10">{
+func lessPos(p, q Position) bool <span class="cov6" title="19">{
+ if p.Line != q.Line </span><span class="cov6" title="14">{
return p.Line &lt; q.Line
}</span>
- <span class="cov4" title="4">return p.Character &lt; q.Character</span>
+ <span class="cov4" title="5">return p.Character &lt; q.Character</span>
}
-func greaterPos(p, q Position) bool <span class="cov7" title="17">{
- if p.Line != q.Line </span><span class="cov5" title="7">{
+func greaterPos(p, q Position) bool <span class="cov6" title="22">{
+ if p.Line != q.Line </span><span class="cov5" title="11">{
return p.Line &gt; q.Line
}</span>
- <span class="cov6" title="10">return p.Character &gt; q.Character</span>
+ <span class="cov5" title="11">return p.Character &gt; q.Character</span>
}
// --- Go unit test code action ---
@@ -3423,28 +3873,28 @@ func (s *Server) buildDocumentCodeAction(p CodeActionParams, sel string) *CodeAc
return &amp;ca</span>
}
-func (s *Server) resolveGoTest(uri string, pos Position) (WorkspaceEdit, string, Range, bool) <span class="cov2" title="2">{
+func (s *Server) resolveGoTest(uri string, pos Position) (WorkspaceEdit, string, Range, bool) <span class="cov3" title="3">{
path := strings.TrimPrefix(uri, "file://")
if !strings.HasSuffix(path, ".go") || strings.HasSuffix(path, "_test.go") </span><span class="cov0" title="0">{
return WorkspaceEdit{}, "", Range{}, false
}</span>
// Load source text
- <span class="cov2" title="2">_, lines := s.loadFileText(uri)
+ <span class="cov3" title="3">_, lines := s.loadFileText(uri)
if len(lines) == 0 </span><span class="cov0" title="0">{
return WorkspaceEdit{}, "", Range{}, false
}</span>
- <span class="cov2" title="2">pkg := parseGoPackageName(lines)
+ <span class="cov3" title="3">pkg := parseGoPackageName(lines)
fnStart, fnEnd := findGoFunctionAtLine(lines, pos.Line)
if fnStart &lt; 0 || fnEnd &lt; fnStart </span><span class="cov0" title="0">{
return WorkspaceEdit{}, "", Range{}, false
}</span>
- <span class="cov2" title="2">funcCode := strings.Join(lines[fnStart:fnEnd+1], "\n")
+ <span class="cov3" title="3">funcCode := strings.Join(lines[fnStart:fnEnd+1], "\n")
testFunc := s.generateGoTestFunction(funcCode)
if strings.TrimSpace(testFunc) == "" </span><span class="cov0" title="0">{
return WorkspaceEdit{}, "", Range{}, false
}</span>
// Determine test file target
- <span class="cov2" title="2">testPath := strings.TrimSuffix(path, ".go") + "_test.go"
+ <span class="cov3" title="3">testPath := strings.TrimSuffix(path, ".go") + "_test.go"
testURI := "file://" + testPath
// If test file exists, append test at EOF; otherwise, create a new file with package+import
@@ -3482,11 +3932,11 @@ func (s *Server) resolveGoTest(uri string, pos Position) (WorkspaceEdit, string,
return we, testURI, jump, true</span>
}
// Create new file content
- <span class="cov1" title="1">var content strings.Builder
+ <span class="cov2" title="2">var content strings.Builder
if pkg == "" </span><span class="cov0" title="0">{
pkg = filepath.Base(filepath.Dir(path))
}</span>
- <span class="cov1" title="1">content.WriteString("package ")
+ <span class="cov2" title="2">content.WriteString("package ")
content.WriteString(pkg)
content.WriteString("\n\n")
content.WriteString("import (\n\t\"testing\"\n)\n\n")
@@ -3501,69 +3951,69 @@ func (s *Server) resolveGoTest(uri string, pos Position) (WorkspaceEdit, string,
pre := content.String()
idx := strings.Index(pre, "func Test")
startLine := 0
- if idx &gt; 0 </span><span class="cov1" title="1">{
+ if idx &gt; 0 </span><span class="cov2" title="2">{
before := pre[:idx]
startLine = strings.Count(before, "\n")
}</span>
- <span class="cov1" title="1">jump := Range{Start: Position{Line: startLine, Character: 0}, End: Position{Line: startLine, Character: 0}}
+ <span class="cov2" title="2">jump := Range{Start: Position{Line: startLine, Character: 0}, End: Position{Line: startLine, Character: 0}}
return we, testURI, jump, true</span>
}
// loadFileText returns the file content and lines. It prefers the open document; otherwise reads from disk.
-func (s *Server) loadFileText(uri string) (string, []string) <span class="cov3" title="3">{
+func (s *Server) loadFileText(uri string) (string, []string) <span class="cov3" title="4">{
if d := s.getDocument(uri); d != nil </span><span class="cov2" title="2">{
return d.text, append([]string{}, d.lines...)
}</span>
- <span class="cov1" title="1">path := strings.TrimPrefix(uri, "file://")
+ <span class="cov2" title="2">path := strings.TrimPrefix(uri, "file://")
b, err := os.ReadFile(path)
if err != nil </span><span class="cov0" title="0">{
return "", nil
}</span>
- <span class="cov1" title="1">txt := string(b)
+ <span class="cov2" title="2">txt := string(b)
return txt, splitLines(txt)</span>
}
-func fileExists(path string) bool <span class="cov2" title="2">{
+func fileExists(path string) bool <span class="cov3" title="3">{
if _, err := os.Stat(path); err == nil </span><span class="cov1" title="1">{
return true
}</span>
- <span class="cov1" title="1">return false</span>
+ <span class="cov2" title="2">return false</span>
}
// parseGoPackageName returns the package name from file lines, or empty if not found.
-func parseGoPackageName(lines []string) string <span class="cov4" title="4">{
- for _, ln := range lines </span><span class="cov4" title="5">{
+func parseGoPackageName(lines []string) string <span class="cov4" title="5">{
+ for _, ln := range lines </span><span class="cov4" title="6">{
t := strings.TrimSpace(ln)
- if strings.HasPrefix(t, "package ") </span><span class="cov3" title="3">{
+ if strings.HasPrefix(t, "package ") </span><span class="cov3" title="4">{
name := strings.TrimSpace(strings.TrimPrefix(t, "package "))
// strip inline comments
if i := strings.Index(name, " "); i &gt;= 0 </span><span class="cov1" title="1">{
name = name[:i]
}</span>
- <span class="cov3" title="3">if i := strings.Index(name, "\t"); i &gt;= 0 </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if i := strings.Index(name, "\t"); i &gt;= 0 </span><span class="cov0" title="0">{
name = name[:i]
}</span>
- <span class="cov3" title="3">if i := strings.Index(name, "//"); i &gt;= 0 </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if i := strings.Index(name, "//"); i &gt;= 0 </span><span class="cov0" title="0">{
name = strings.TrimSpace(name[:i])
}</span>
- <span class="cov3" title="3">return name</span>
+ <span class="cov3" title="4">return name</span>
}
}
<span class="cov1" title="1">return ""</span>
}
// findGoFunctionAtLine finds the function enclosing or preceding line idx. Returns start and end line indexes.
-func findGoFunctionAtLine(lines []string, idx int) (int, int) <span class="cov2" title="2">{
+func findGoFunctionAtLine(lines []string, idx int) (int, int) <span class="cov3" title="4">{
if idx &lt; 0 </span><span class="cov0" title="0">{
idx = 0
}</span>
- <span class="cov2" title="2">if idx &gt;= len(lines) </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if idx &gt;= len(lines) </span><span class="cov0" title="0">{
idx = len(lines) - 1
}</span>
// find signature start
- <span class="cov2" title="2">start := -1
- for i := idx; i &gt;= 0; i-- </span><span class="cov2" title="2">{
- if strings.Contains(lines[i], "func ") </span><span class="cov2" title="2">{
+ <span class="cov3" title="4">start := -1
+ for i := idx; i &gt;= 0; i-- </span><span class="cov3" title="4">{
+ if strings.Contains(lines[i], "func ") </span><span class="cov3" title="4">{
start = i
break</span>
}
@@ -3571,45 +4021,45 @@ func findGoFunctionAtLine(lines []string, idx int) (int, int) <span class="cov2"
break</span>
}
}
- <span class="cov2" title="2">if start == -1 </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if start == -1 </span><span class="cov0" title="0">{
return -1, -1
}</span>
// find first '{'
- <span class="cov2" title="2">depth := 0
+ <span class="cov3" title="4">depth := 0
seenOpen := false
- for i := start; i &lt; len(lines); i++ </span><span class="cov2" title="2">{
+ for i := start; i &lt; len(lines); i++ </span><span class="cov4" title="5">{
ln := lines[i]
- for j := 0; j &lt; len(ln); j++ </span><span class="cov10" title="47">{
+ for j := 0; j &lt; len(ln); j++ </span><span class="cov10" title="106">{
switch ln[j] </span>{
- case '{':<span class="cov2" title="2">
+ case '{':<span class="cov3" title="3">
depth++
seenOpen = true</span>
- case '}':<span class="cov2" title="2">
- if depth &gt; 0 </span><span class="cov2" title="2">{
+ case '}':<span class="cov3" title="3">
+ if depth &gt; 0 </span><span class="cov3" title="3">{
depth--
}</span>
- <span class="cov2" title="2">if seenOpen &amp;&amp; depth == 0 </span><span class="cov2" title="2">{
+ <span class="cov3" title="3">if seenOpen &amp;&amp; depth == 0 </span><span class="cov3" title="3">{
return start, i
}</span>
}
}
}
// if never saw '{', assume single-line prototype; return that line
- <span class="cov0" title="0">if !seenOpen </span><span class="cov0" title="0">{
+ <span class="cov1" title="1">if !seenOpen </span><span class="cov1" title="1">{
return start, start
}</span>
<span class="cov0" title="0">return start, -1</span>
}
// generateGoTestFunction uses LLM to produce a test function; falls back to a stub when unavailable.
-func (s *Server) generateGoTestFunction(funcCode string) string <span class="cov3" title="3">{
- if s.llmClient != nil </span><span class="cov2" title="2">{
- sys := s.promptGoTestSystem
- user := renderTemplate(s.promptGoTestUser, map[string]string{"function": funcCode})
- ctx, cancel := context.WithTimeout(context.Background(), 8*time.Second)
- defer cancel()
- messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
- opts := s.llmRequestOpts()
+func (s *Server) generateGoTestFunction(funcCode string) string <span class="cov3" title="4">{
+ if s.llmClient != nil </span><span class="cov2" title="2">{
+ sys := s.promptGoTestSystem
+ user := renderTemplate(s.promptGoTestUser, map[string]string{"function": funcCode})
+ ctx, cancel := context.WithTimeout(context.Background(), 8*time.Second)
+ defer cancel()
+ messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ opts := s.llmRequestOpts()
if out, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov2" title="2">{
cleaned := strings.TrimSpace(stripCodeFences(out))
if cleaned != "" </span><span class="cov2" title="2">{
@@ -3620,22 +4070,22 @@ func (s *Server) generateGoTestFunction(funcCode string) string <span class="cov
}</span>
}
// Fallback stub
- <span class="cov1" title="1">name := deriveGoFuncName(funcCode)
+ <span class="cov2" title="2">name := deriveGoFuncName(funcCode)
if name == "" </span><span class="cov0" title="0">{
name = "Function"
}</span>
- <span class="cov1" title="1">return fmt.Sprintf("func Test%s(t *testing.T) {\n\t// TODO: implement tests for %s\n}\n", exportName(name), name)</span>
+ <span class="cov2" title="2">return fmt.Sprintf("func Test%s(t *testing.T) {\n\t// TODO: implement tests for %s\n}\n", exportName(name), name)</span>
}
// deriveGoFuncName extracts function or method name from code.
-func deriveGoFuncName(code string) string <span class="cov3" title="3">{
+func deriveGoFuncName(code string) string <span class="cov3" title="4">{
// look for line starting with func
line := firstLine(code)
line = strings.TrimSpace(line)
if !strings.HasPrefix(line, "func ") </span><span class="cov0" title="0">{
return ""
}</span>
- <span class="cov3" title="3">rest := strings.TrimSpace(strings.TrimPrefix(line, "func "))
+ <span class="cov3" title="4">rest := strings.TrimSpace(strings.TrimPrefix(line, "func "))
// method receiver
if strings.HasPrefix(rest, "(") </span><span class="cov1" title="1">{
// find ")"
@@ -3644,25 +4094,25 @@ func deriveGoFuncName(code string) string <span class="cov3" title="3">{
}</span>
}
// now rest should start with Name(
- <span class="cov3" title="3">if i := strings.Index(rest, "("); i &gt; 0 </span><span class="cov3" title="3">{
+ <span class="cov3" title="4">if i := strings.Index(rest, "("); i &gt; 0 </span><span class="cov3" title="4">{
return strings.TrimSpace(rest[:i])
}</span>
<span class="cov0" title="0">return ""</span>
}
-func exportName(name string) string <span class="cov1" title="1">{
+func exportName(name string) string <span class="cov2" title="2">{
if name == "" </span><span class="cov0" title="0">{
return name
}</span>
- <span class="cov1" title="1">r := []rune(name)
+ <span class="cov2" title="2">r := []rune(name)
if r[0] &gt;= 'a' &amp;&amp; r[0] &lt;= 'z' </span><span class="cov0" title="0">{
r[0] = r[0] - ('a' - 'A')
}</span>
- <span class="cov1" title="1">return string(r)</span>
+ <span class="cov2" title="2">return string(r)</span>
}
</pre>
- <pre class="file" id="file16" style="display: none">// Summary: Completion handlers split from handlers.go to reduce file size and isolate feature logic.
+ <pre class="file" id="file23" style="display: none">// Summary: Completion handlers split from handlers.go to reduce file size and isolate feature logic.
package lsp
import (
@@ -3889,13 +4339,13 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams,
if !ok </span><span class="cov6" title="6">{
return nil, false
}</span>
- <span class="cov6" title="5">before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position)
- path := strings.TrimPrefix(p.TextDocument.URI, "file://")
- // Build provider-native prompt from template
- prompt := renderTemplate(s.promptNativeCompletion, map[string]string{
- "path": path,
- "before": before,
- })
+ <span class="cov6" title="5">before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position)
+ path := strings.TrimPrefix(p.TextDocument.URI, "file://")
+ // Build provider-native prompt from template
+ prompt := renderTemplate(s.promptNativeCompletion, map[string]string{
+ "path": path,
+ "before": before,
+ })
lang := ""
temp := 0.0
if s.codingTemperature != nil </span><span class="cov0" title="0">{
@@ -4004,34 +4454,34 @@ func (s *Server) waitForThrottle(ctx context.Context) bool <span class="cov8" ti
// buildCompletionMessages constructs the LLM messages for completion.
func (s *Server) buildCompletionMessages(inlinePrompt, hasExtra bool, extraText string, inParams bool, p CompletionParams, above, current, below, funcCtx string) []llm.Message <span class="cov8" title="13">{
- // Vars for templates
- vars := map[string]string{
- "file": p.TextDocument.URI,
- "function": funcCtx,
- "above": above,
- "current": current,
- "below": below,
- "char": fmt.Sprintf("%d", p.Position.Character),
- }
- sys := s.promptCompSysGeneral
- userTpl := s.promptCompUserGeneral
- if inParams </span><span class="cov3" title="2">{
- sys = s.promptCompSysParams
- userTpl = s.promptCompUserParams
- }</span>
- <span class="cov8" title="13">if inlinePrompt &amp;&amp; strings.TrimSpace(s.promptCompSysInline) != "" </span><span class="cov1" title="1">{
- sys = s.promptCompSysInline
- }</span>
- <span class="cov8" title="13">user := renderTemplate(userTpl, vars)
- messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
- if hasExtra &amp;&amp; strings.TrimSpace(extraText) != "" </span><span class="cov1" title="1">{
- extra := renderTemplate(s.promptCompExtraHeader, map[string]string{"context": extraText})
- if strings.TrimSpace(extra) == "" </span><span class="cov0" title="0">{
- extra = extraText
- }</span>
- <span class="cov1" title="1">messages = append(messages, llm.Message{Role: "user", Content: extra})</span>
- }
- <span class="cov8" title="13">return messages</span>
+ // Vars for templates
+ vars := map[string]string{
+ "file": p.TextDocument.URI,
+ "function": funcCtx,
+ "above": above,
+ "current": current,
+ "below": below,
+ "char": fmt.Sprintf("%d", p.Position.Character),
+ }
+ sys := s.promptCompSysGeneral
+ userTpl := s.promptCompUserGeneral
+ if inParams </span><span class="cov3" title="2">{
+ sys = s.promptCompSysParams
+ userTpl = s.promptCompUserParams
+ }</span>
+ <span class="cov8" title="13">if inlinePrompt &amp;&amp; strings.TrimSpace(s.promptCompSysInline) != "" </span><span class="cov1" title="1">{
+ sys = s.promptCompSysInline
+ }</span>
+ <span class="cov8" title="13">user := renderTemplate(userTpl, vars)
+ messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}}
+ if hasExtra &amp;&amp; strings.TrimSpace(extraText) != "" </span><span class="cov1" title="1">{
+ extra := renderTemplate(s.promptCompExtraHeader, map[string]string{"context": extraText})
+ if strings.TrimSpace(extra) == "" </span><span class="cov0" title="0">{
+ extra = extraText
+ }</span>
+ <span class="cov1" title="1">messages = append(messages, llm.Message{Role: "user", Content: extra})</span>
+ }
+ <span class="cov8" title="13">return messages</span>
}
// postProcessCompletion normalizes and deduplicates completion text and applies indentation rules.
@@ -4057,7 +4507,7 @@ func (s *Server) postProcessCompletion(text string, leftOfCursor string, current
}
</pre>
- <pre class="file" id="file17" style="display: none">// Summary: Document open/change/close and in-editor chat handlers split out of handlers.go.
+ <pre class="file" id="file24" style="display: none">// Summary: Document open/change/close and in-editor chat handlers split out of handlers.go.
package lsp
import (
@@ -4215,9 +4665,9 @@ func (s *Server) detectAndHandleChat(uri string) <span class="cov7" title="5">{
go func(prompt string, remove int) </span><span class="cov5" title="3">{
ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
defer cancel()
- sys := s.promptChatSystem
- // Build short conversation history from the document above this line
- history := s.buildChatHistory(uri, lineIdx, prompt)
+ sys := s.promptChatSystem
+ // Build short conversation history from the document above this line
+ history := s.buildChatHistory(uri, lineIdx, prompt)
msgs := append([]llm.Message{{Role: "system", Content: sys}}, history...)
opts := s.llmRequestOpts()
logging.Logf("lsp ", "chat llm=requesting model=%s", s.llmClient.DefaultModel())
@@ -4386,7 +4836,7 @@ func (s *Server) deferShowDocument(uri string, sel Range) <span class="cov1" tit
}
</pre>
- <pre class="file" id="file18" style="display: none">// Summary: ExecuteCommand handler to support post-edit navigation (jump to generated test).
+ <pre class="file" id="file25" style="display: none">// Summary: ExecuteCommand handler to support post-edit navigation (jump to generated test).
package lsp
import (
@@ -4422,7 +4872,7 @@ func (s *Server) handleExecuteCommand(req Request) <span class="cov8" title="1">
}
</pre>
- <pre class="file" id="file19" style="display: none">// Summary: Initialization and lifecycle handlers split from handlers.go.
+ <pre class="file" id="file26" style="display: none">// Summary: Initialization and lifecycle handlers split from handlers.go.
package lsp
import (
@@ -4465,7 +4915,7 @@ func (s *Server) handleExit() <span class="cov0" title="0">{
}</span>
</pre>
- <pre class="file" id="file20" style="display: none">// Summary: Generic LSP helpers shared across handlers (LLM opts, prompts, text utils, counters).
+ <pre class="file" id="file27" style="display: none">// Summary: Generic LSP helpers shared across handlers (LLM opts, prompts, text utils, counters).
package lsp
import (
@@ -4474,6 +4924,7 @@ import (
"codeberg.org/snonux/hexai/internal/llm"
"codeberg.org/snonux/hexai/internal/logging"
+ "codeberg.org/snonux/hexai/internal/textutil"
)
// Configurable inline trigger characters (default to '&gt;') used by free helpers below.
@@ -4530,27 +4981,17 @@ func (s *Server) logLLMStats() <span class="cov5" title="8">{
}
// Completion prompt builders and filters
-func inParamList(current string, cursor int) bool <span class="cov5" title="11">{
- if !strings.Contains(current, "func ") </span><span class="cov4" title="6">{
+func inParamList(current string, cursor int) bool <span class="cov6" title="13">{
+ if !strings.Contains(current, "func ") </span><span class="cov4" title="7">{
return false
}</span>
- <span class="cov4" title="5">open := strings.Index(current, "(")
+ <span class="cov4" title="6">open := strings.Index(current, "(")
close := strings.Index(current, ")")
return open &gt;= 0 &amp;&amp; cursor &gt; open &amp;&amp; (close == -1 || cursor &lt;= close)</span>
}
// renderTemplate performs simple {{var}} replacement in a template string.
-func renderTemplate(t string, vars map[string]string) string <span class="cov7" title="33">{
- if t == "" </span><span class="cov5" title="9">{
- return t
- }</span>
- <span class="cov7" title="24">out := t
- for k, v := range vars </span><span class="cov9" title="79">{
- placeholder := "{{" + k + "}}"
- out = strings.ReplaceAll(out, placeholder, v)
- }</span>
- <span class="cov7" title="24">return out</span>
-}
+func renderTemplate(t string, vars map[string]string) string <span class="cov7" title="33">{ return textutil.RenderTemplate(t, vars) }</span>
func computeTextEditAndFilter(cleaned string, inParams bool, current string, p CompletionParams) (*TextEdit, string) <span class="cov6" title="17">{
if inParams </span><span class="cov3" title="3">{
@@ -4579,63 +5020,63 @@ func computeTextEditAndFilter(cleaned string, inParams bool, current string, p C
return te, filter</span>
}
-func computeWordStart(current string, at int) int <span class="cov7" title="23">{
+func computeWordStart(current string, at int) int <span class="cov7" title="24">{
if at &gt; len(current) </span><span class="cov0" title="0">{
at = len(current)
}</span>
- <span class="cov7" title="23">for at &gt; 0 </span><span class="cov8" title="39">{
+ <span class="cov7" title="24">for at &gt; 0 </span><span class="cov8" title="49">{
ch := current[at-1]
- if (ch &gt;= 'a' &amp;&amp; ch &lt;= 'z') || (ch &gt;= 'A' &amp;&amp; ch &lt;= 'Z') || (ch &gt;= '0' &amp;&amp; ch &lt;= '9') || ch == '_' </span><span class="cov6" title="21">{
+ if (ch &gt;= 'a' &amp;&amp; ch &lt;= 'z') || (ch &gt;= 'A' &amp;&amp; ch &lt;= 'Z') || (ch &gt;= '0' &amp;&amp; ch &lt;= '9') || ch == '_' </span><span class="cov7" title="31">{
at--
continue</span>
}
<span class="cov6" title="18">break</span>
}
- <span class="cov7" title="23">return at</span>
+ <span class="cov7" title="24">return at</span>
}
-func isIdentChar(ch byte) bool <span class="cov7" title="24">{
+func isIdentChar(ch byte) bool <span class="cov7" title="26">{
return (ch &gt;= 'a' &amp;&amp; ch &lt;= 'z') || (ch &gt;= 'A' &amp;&amp; ch &lt;= 'Z') || (ch &gt;= '0' &amp;&amp; ch &lt;= '9') || ch == '_'
}</span>
// Inline prompt utilities
-func lineHasInlinePrompt(line string) bool <span class="cov6" title="20">{
- if _, _, _, ok := findStrictInlineTag(line); ok </span><span class="cov3" title="3">{
+func lineHasInlinePrompt(line string) bool <span class="cov6" title="21">{
+ if _, _, _, ok := findStrictInlineTag(line); ok </span><span class="cov3" title="4">{
return true
}</span>
<span class="cov6" title="17">return hasDoubleOpenTrigger(line)</span>
}
-func leadingIndent(line string) string <span class="cov3" title="3">{
+func leadingIndent(line string) string <span class="cov3" title="4">{
i := 0
- for i &lt; len(line) </span><span class="cov5" title="10">{
- if line[i] == ' ' || line[i] == '\t' </span><span class="cov4" title="7">{
+ for i &lt; len(line) </span><span class="cov6" title="14">{
+ if line[i] == ' ' || line[i] == '\t' </span><span class="cov5" title="10">{
i++
continue</span>
}
- <span class="cov3" title="3">break</span>
+ <span class="cov3" title="4">break</span>
}
- <span class="cov3" title="3">if i == 0 </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if i == 0 </span><span class="cov0" title="0">{
return ""
}</span>
- <span class="cov3" title="3">return line[:i]</span>
+ <span class="cov3" title="4">return line[:i]</span>
}
-func applyIndent(indent, suggestion string) string <span class="cov3" title="3">{
+func applyIndent(indent, suggestion string) string <span class="cov3" title="4">{
if indent == "" || suggestion == "" </span><span class="cov0" title="0">{
return suggestion
}</span>
- <span class="cov3" title="3">lines := splitLines(suggestion)
- for i, ln := range lines </span><span class="cov5" title="8">{
+ <span class="cov3" title="4">lines := splitLines(suggestion)
+ for i, ln := range lines </span><span class="cov5" title="10">{
if strings.TrimSpace(ln) == "" </span><span class="cov1" title="1">{
continue</span>
}
- <span class="cov4" title="7">if strings.HasPrefix(ln, indent) </span><span class="cov0" title="0">{
+ <span class="cov5" title="9">if strings.HasPrefix(ln, indent) </span><span class="cov0" title="0">{
continue</span>
}
- <span class="cov4" title="7">lines[i] = indent + ln</span>
+ <span class="cov5" title="9">lines[i] = indent + ln</span>
}
- <span class="cov3" title="3">return strings.Join(lines, "\n")</span>
+ <span class="cov3" title="4">return strings.Join(lines, "\n")</span>
}
// --- Inline marker parsing and general string utilities ---
@@ -4643,36 +5084,36 @@ func applyIndent(indent, suggestion string) string <span class="cov3" title="3">
// findStrictInlineTag finds &gt;text&gt; (configurable), with no space after the first
// opening marker and no space immediately before the closing marker. Returns the
// text between markers, the start index, the end index just after closing, and ok.
-func findStrictInlineTag(line string) (string, int, int, bool) <span class="cov8" title="49">{
+func findStrictInlineTag(line string) (string, int, int, bool) <span class="cov8" title="50">{
pos := 0
- for pos &lt; len(line) </span><span class="cov9" title="64">{
+ for pos &lt; len(line) </span><span class="cov9" title="65">{
// find opening marker
j := strings.IndexByte(line[pos:], inlineOpenChar)
if j &lt; 0 </span><span class="cov7" title="27">{
return "", 0, 0, false
}</span>
- <span class="cov8" title="37">j += pos
+ <span class="cov8" title="38">j += pos
// ensure single open (not double) and non-space after
if j+1 &gt;= len(line) || line[j+1] == inlineOpenChar || line[j+1] == ' ' </span><span class="cov6" title="21">{
pos = j + 1
continue</span>
}
// find closing marker
- <span class="cov6" title="16">k := strings.IndexByte(line[j+1:], inlineCloseChar)
+ <span class="cov6" title="17">k := strings.IndexByte(line[j+1:], inlineCloseChar)
if k &lt; 0 </span><span class="cov1" title="1">{
return "", 0, 0, false
}</span>
- <span class="cov6" title="15">closeIdx := j + 1 + k
+ <span class="cov6" title="16">closeIdx := j + 1 + k
if closeIdx-1 &lt; 0 || line[closeIdx-1] == ' ' </span><span class="cov1" title="1">{
pos = closeIdx + 1
continue</span>
}
- <span class="cov6" title="14">inner := strings.TrimSpace(line[j+1 : closeIdx])
+ <span class="cov6" title="15">inner := strings.TrimSpace(line[j+1 : closeIdx])
if inner == "" </span><span class="cov0" title="0">{
pos = closeIdx + 1
continue</span>
}
- <span class="cov6" title="14">end := closeIdx + 1
+ <span class="cov6" title="15">end := closeIdx + 1
return inner, j, end, true</span>
}
<span class="cov4" title="7">return "", 0, 0, false</span>
@@ -4768,57 +5209,33 @@ func isIdentBoundary(ch byte) bool <span class="cov10" title="100">{
}</span>
// stripCodeFences removes surrounding Markdown code fences from a model response.
-func stripCodeFences(s string) string <span class="cov8" title="36">{
- t := strings.TrimSpace(s)
- if t == "" </span><span class="cov0" title="0">{
- return t
- }</span>
- <span class="cov8" title="36">lines := splitLines(t)
- start := 0
- for start &lt; len(lines) &amp;&amp; strings.TrimSpace(lines[start]) == "" </span><span class="cov0" title="0">{
- start++
- }</span>
- <span class="cov8" title="36">end := len(lines) - 1
- for end &gt;= 0 &amp;&amp; strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{
- end--
- }</span>
- <span class="cov8" title="36">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
- return t
- }</span>
- <span class="cov8" title="36">first := strings.TrimSpace(lines[start])
- last := strings.TrimSpace(lines[end])
- if strings.HasPrefix(first, "```") &amp;&amp; last == "```" &amp;&amp; end &gt; start </span><span class="cov5" title="8">{
- inner := strings.Join(lines[start+1:end], "\n")
- return inner
- }</span>
- <span class="cov7" title="28">return t</span>
-}
+func stripCodeFences(s string) string <span class="cov8" title="36">{ return textutil.StripCodeFences(s) }</span>
// stripInlineCodeSpan returns the contents of the first inline backtick code span if present.
-func stripInlineCodeSpan(s string) string <span class="cov5" title="10">{
+func stripInlineCodeSpan(s string) string <span class="cov5" title="11">{
t := strings.TrimSpace(s)
if t == "" </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov5" title="10">i := strings.IndexByte(t, '`')
+ <span class="cov5" title="11">i := strings.IndexByte(t, '`')
if i &lt; 0 </span><span class="cov2" title="2">{
return t
}</span>
- <span class="cov5" title="8">jrel := strings.IndexByte(t[i+1:], '`')
+ <span class="cov5" title="9">jrel := strings.IndexByte(t[i+1:], '`')
if jrel &lt; 0 </span><span class="cov2" title="2">{
return t
}</span>
- <span class="cov4" title="6">j := i + 1 + jrel
+ <span class="cov4" title="7">j := i + 1 + jrel
return t[i+1 : j]</span>
}
// labelForCompletion picks a short, readable label for the completion list.
-func labelForCompletion(cleaned, filter string) string <span class="cov6" title="18">{
+func labelForCompletion(cleaned, filter string) string <span class="cov6" title="20">{
label := trimLen(firstLine(cleaned))
- if filter != "" &amp;&amp; !strings.HasPrefix(strings.ToLower(label), strings.ToLower(filter)) </span><span class="cov3" title="4">{
+ if filter != "" &amp;&amp; !strings.HasPrefix(strings.ToLower(label), strings.ToLower(filter)) </span><span class="cov4" title="5">{
return filter
}</span>
- <span class="cov6" title="14">return label</span>
+ <span class="cov6" title="15">return label</span>
}
// extractRangeText returns the exact text within the given document range.
@@ -4879,89 +5296,89 @@ func (s *Server) collectPromptRemovalEdits(uri string) []TextEdit <span class="c
<span class="cov2" title="2">return edits</span>
}
-func promptRemovalEditsForLine(line string, lineNum int) []TextEdit <span class="cov5" title="10">{
- if hasDoubleOpenTrigger(line) </span><span class="cov3" title="3">{
+func promptRemovalEditsForLine(line string, lineNum int) []TextEdit <span class="cov5" title="11">{
+ if hasDoubleOpenTrigger(line) </span><span class="cov3" title="4">{
return []TextEdit{{Range: Range{Start: Position{Line: lineNum, Character: 0}, End: Position{Line: lineNum, Character: len(line)}}, NewText: ""}}
}</span>
<span class="cov4" title="7">return collectSemicolonMarkers(line, lineNum)</span>
}
-func hasDoubleOpenTrigger(line string) bool <span class="cov8" title="55">{
+func hasDoubleOpenTrigger(line string) bool <span class="cov8" title="56">{
pos := 0
- for pos &lt; len(line) </span><span class="cov8" title="57">{
+ for pos &lt; len(line) </span><span class="cov8" title="58">{
// look for double-open sequence
dbl := string([]byte{inlineOpenChar, inlineOpenChar})
j := strings.Index(line[pos:], dbl)
if j &lt; 0 </span><span class="cov8" title="36">{
return false
}</span>
- <span class="cov6" title="21">j += pos
+ <span class="cov7" title="22">j += pos
contentStart := j + len(dbl)
if contentStart &gt;= len(line) </span><span class="cov4" title="7">{
return false
}</span>
- <span class="cov6" title="14">first := line[contentStart]
+ <span class="cov6" title="15">first := line[contentStart]
if first == ' ' || first == inlineOpenChar </span><span class="cov3" title="4">{
pos = contentStart + 1
continue</span>
}
// find closing
- <span class="cov5" title="10">k := strings.IndexByte(line[contentStart+1:], inlineCloseChar)
+ <span class="cov5" title="11">k := strings.IndexByte(line[contentStart+1:], inlineCloseChar)
if k &lt; 0 </span><span class="cov0" title="0">{
return false
}</span>
- <span class="cov5" title="10">closeIdx := contentStart + 1 + k
+ <span class="cov5" title="11">closeIdx := contentStart + 1 + k
if closeIdx-1 &gt;= 0 &amp;&amp; line[closeIdx-1] == ' ' </span><span class="cov1" title="1">{
pos = closeIdx + 1
continue</span>
}
- <span class="cov5" title="9">return true</span>
+ <span class="cov5" title="10">return true</span>
}
<span class="cov3" title="3">return false</span>
}
-func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="cov5" title="8">{
+func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="cov5" title="9">{
var edits []TextEdit
startSemi := 0
- for startSemi &lt; len(line) </span><span class="cov5" title="12">{
+ for startSemi &lt; len(line) </span><span class="cov6" title="14">{
j := strings.IndexByte(line[startSemi:], inlineOpenChar)
- if j &lt; 0 </span><span class="cov4" title="7">{
+ if j &lt; 0 </span><span class="cov5" title="8">{
break</span>
}
- <span class="cov4" title="5">j += startSemi
+ <span class="cov4" title="6">j += startSemi
k := strings.IndexByte(line[j+1:], inlineCloseChar)
if k &lt; 0 </span><span class="cov0" title="0">{
break</span>
}
- <span class="cov4" title="5">if j+1 &gt;= len(line) || line[j+1] == ' ' </span><span class="cov0" title="0">{
+ <span class="cov4" title="6">if j+1 &gt;= len(line) || line[j+1] == ' ' </span><span class="cov0" title="0">{
startSemi = j + 1
continue</span>
}
- <span class="cov4" title="5">if line[j+1] == inlineOpenChar </span><span class="cov0" title="0">{ // skip double-open start
+ <span class="cov4" title="6">if line[j+1] == inlineOpenChar </span><span class="cov0" title="0">{ // skip double-open start
startSemi = j + 2
continue</span>
}
- <span class="cov4" title="5">closeIdx := j + 1 + k
+ <span class="cov4" title="6">closeIdx := j + 1 + k
if closeIdx-1 &lt; 0 || line[closeIdx-1] == ' ' </span><span class="cov0" title="0">{
startSemi = closeIdx + 1
continue</span>
}
- <span class="cov4" title="5">if closeIdx-(j+1) &lt; 1 </span><span class="cov0" title="0">{
+ <span class="cov4" title="6">if closeIdx-(j+1) &lt; 1 </span><span class="cov0" title="0">{
startSemi = closeIdx + 1
continue</span>
}
- <span class="cov4" title="5">endChar := closeIdx + 1
+ <span class="cov4" title="6">endChar := closeIdx + 1
if endChar &lt; len(line) &amp;&amp; line[endChar] == ' ' </span><span class="cov3" title="4">{
endChar++
}</span>
- <span class="cov4" title="5">edits = append(edits, TextEdit{Range: Range{Start: Position{Line: lineNum, Character: j}, End: Position{Line: lineNum, Character: endChar}}, NewText: ""})
+ <span class="cov4" title="6">edits = append(edits, TextEdit{Range: Range{Start: Position{Line: lineNum, Character: j}, End: Position{Line: lineNum, Character: endChar}}, NewText: ""})
startSemi = endChar</span>
}
- <span class="cov5" title="8">return edits</span>
+ <span class="cov5" title="9">return edits</span>
}
</pre>
- <pre class="file" id="file21" style="display: none">// Summary: Minimal LSP server over stdio; manages documents, dispatches requests, and tracks stats.
+ <pre class="file" id="file28" style="display: none">// Summary: Minimal LSP server over stdio; manages documents, dispatches requests, and tracks stats.
package lsp
import (
@@ -5021,29 +5438,29 @@ type Server struct {
inlineOpen string
inlineClose string
chatSuffix string
- chatPrefixes []string
-
- // Prompt templates
- // Completion
- promptCompSysGeneral string
- promptCompSysParams string
- promptCompSysInline string
- promptCompUserGeneral string
- promptCompUserParams string
- promptCompExtraHeader string
- // Provider-native code completion
- promptNativeCompletion string
- // In-editor chat
- promptChatSystem string
- // Code actions
- promptRewriteSystem string
- promptDiagnosticsSystem string
- promptDocumentSystem string
- promptRewriteUser string
- promptDiagnosticsUser string
- promptDocumentUser string
- promptGoTestSystem string
- promptGoTestUser string
+ chatPrefixes []string
+
+ // Prompt templates
+ // Completion
+ promptCompSysGeneral string
+ promptCompSysParams string
+ promptCompSysInline string
+ promptCompUserGeneral string
+ promptCompUserParams string
+ promptCompExtraHeader string
+ // Provider-native code completion
+ promptNativeCompletion string
+ // In-editor chat
+ promptChatSystem string
+ // Code actions
+ promptRewriteSystem string
+ promptDiagnosticsSystem string
+ promptDocumentSystem string
+ promptRewriteUser string
+ promptDiagnosticsUser string
+ promptDocumentUser string
+ promptGoTestSystem string
+ promptGoTestUser string
}
// ServerOptions collects configuration for NewServer to avoid long parameter lists.
@@ -5064,26 +5481,26 @@ type ServerOptions struct {
// Inline/chat triggers
InlineOpen string
InlineClose string
- ChatSuffix string
- ChatPrefixes []string
-
- // Prompt templates
- PromptCompSysGeneral string
- PromptCompSysParams string
- PromptCompSysInline string
- PromptCompUserGeneral string
- PromptCompUserParams string
- PromptCompExtraHeader string
- PromptNativeCompletion string
- PromptChatSystem string
- PromptRewriteSystem string
- PromptDiagnosticsSystem string
- PromptDocumentSystem string
- PromptRewriteUser string
- PromptDiagnosticsUser string
- PromptDocumentUser string
- PromptGoTestSystem string
- PromptGoTestUser string
+ ChatSuffix string
+ ChatPrefixes []string
+
+ // Prompt templates
+ PromptCompSysGeneral string
+ PromptCompSysParams string
+ PromptCompSysInline string
+ PromptCompUserGeneral string
+ PromptCompUserParams string
+ PromptCompExtraHeader string
+ PromptNativeCompletion string
+ PromptChatSystem string
+ PromptRewriteSystem string
+ PromptDiagnosticsSystem string
+ PromptDocumentSystem string
+ PromptRewriteUser string
+ PromptDiagnosticsUser string
+ PromptDocumentUser string
+ PromptGoTestSystem string
+ PromptGoTestUser string
}
func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server <span class="cov10" title="6">{
@@ -5142,29 +5559,29 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions)
}</span> else<span class="cov6" title="3"> {
s.chatSuffix = opts.ChatSuffix
}</span>
- <span class="cov10" title="6">if len(opts.ChatPrefixes) == 0 </span><span class="cov6" title="3">{
- s.chatPrefixes = []string{"?", "!", ":", ";"}
- }</span> else<span class="cov6" title="3"> {
- s.chatPrefixes = append([]string{}, opts.ChatPrefixes...)
- }</span>
+ <span class="cov10" title="6">if len(opts.ChatPrefixes) == 0 </span><span class="cov6" title="3">{
+ s.chatPrefixes = []string{"?", "!", ":", ";"}
+ }</span> else<span class="cov6" title="3"> {
+ s.chatPrefixes = append([]string{}, opts.ChatPrefixes...)
+ }</span>
- // Prompts
- <span class="cov10" title="6">s.promptCompSysGeneral = opts.PromptCompSysGeneral
- s.promptCompSysParams = opts.PromptCompSysParams
- s.promptCompSysInline = opts.PromptCompSysInline
- s.promptCompUserGeneral = opts.PromptCompUserGeneral
- s.promptCompUserParams = opts.PromptCompUserParams
- s.promptCompExtraHeader = opts.PromptCompExtraHeader
- s.promptNativeCompletion = opts.PromptNativeCompletion
- s.promptChatSystem = opts.PromptChatSystem
- s.promptRewriteSystem = opts.PromptRewriteSystem
- s.promptDiagnosticsSystem = opts.PromptDiagnosticsSystem
- s.promptDocumentSystem = opts.PromptDocumentSystem
- s.promptRewriteUser = opts.PromptRewriteUser
- s.promptDiagnosticsUser = opts.PromptDiagnosticsUser
- s.promptDocumentUser = opts.PromptDocumentUser
- s.promptGoTestSystem = opts.PromptGoTestSystem
- s.promptGoTestUser = opts.PromptGoTestUser
+ // Prompts
+ <span class="cov10" title="6">s.promptCompSysGeneral = opts.PromptCompSysGeneral
+ s.promptCompSysParams = opts.PromptCompSysParams
+ s.promptCompSysInline = opts.PromptCompSysInline
+ s.promptCompUserGeneral = opts.PromptCompUserGeneral
+ s.promptCompUserParams = opts.PromptCompUserParams
+ s.promptCompExtraHeader = opts.PromptCompExtraHeader
+ s.promptNativeCompletion = opts.PromptNativeCompletion
+ s.promptChatSystem = opts.PromptChatSystem
+ s.promptRewriteSystem = opts.PromptRewriteSystem
+ s.promptDiagnosticsSystem = opts.PromptDiagnosticsSystem
+ s.promptDocumentSystem = opts.PromptDocumentSystem
+ s.promptRewriteUser = opts.PromptRewriteUser
+ s.promptDiagnosticsUser = opts.PromptDiagnosticsUser
+ s.promptDocumentUser = opts.PromptDocumentUser
+ s.promptGoTestSystem = opts.PromptGoTestSystem
+ s.promptGoTestUser = opts.PromptGoTestUser
// Assign package-level inline trigger chars for free helper functions
if s.inlineOpen != "" </span><span class="cov10" title="6">{
@@ -5222,7 +5639,7 @@ func (s *Server) Run() error <span class="cov1" title="1">{
}
</pre>
- <pre class="file" id="file22" style="display: none">// Summary: LSP transport utilities to read and write JSON-RPC messages with Content-Length framing.
+ <pre class="file" id="file29" style="display: none">// Summary: LSP transport utilities to read and write JSON-RPC messages with Content-Length framing.
package lsp
import (
@@ -5290,7 +5707,7 @@ func (s *Server) writeMessage(v any) <span class="cov10" title="18">{
}
</pre>
- <pre class="file" id="file23" style="display: none">package testutil
+ <pre class="file" id="file30" style="display: none">package testutil
// MultilineDocBlock returns a realistic multi-line documentation block.
func MultilineDocBlock() string <span class="cov8" title="1">{
@@ -5318,6 +5735,122 @@ func MalformedJSON() string <span class="cov0" title="0">{
}</span>
</pre>
+ <pre class="file" id="file31" style="display: none">package textutil
+
+import "strings"
+
+// RenderTemplate performs simple {{var}} replacement in a template string.
+func RenderTemplate(t string, vars map[string]string) string <span class="cov8" title="44">{
+ if t == "" || len(vars) == 0 </span><span class="cov5" title="11">{
+ return t
+ }</span>
+ <span class="cov7" title="33">out := t
+ for k, v := range vars </span><span class="cov9" title="91">{
+ out = strings.ReplaceAll(out, "{{"+k+"}}", v)
+ }</span>
+ <span class="cov7" title="33">return out</span>
+}
+
+// StripCodeFences removes surrounding Markdown triple-backtick fences.
+func StripCodeFences(s string) string <span class="cov8" title="49">{
+ t := strings.TrimSpace(s)
+ if t == "" </span><span class="cov0" title="0">{
+ return t
+ }</span>
+ <span class="cov8" title="49">lines := strings.Split(t, "\n")
+ start := 0
+ for start &lt; len(lines) &amp;&amp; strings.TrimSpace(lines[start]) == "" </span><span class="cov0" title="0">{
+ start++
+ }</span>
+ <span class="cov8" title="49">end := len(lines) - 1
+ for end &gt;= 0 &amp;&amp; strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{
+ end--
+ }</span>
+ <span class="cov8" title="49">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
+ return t
+ }</span>
+ <span class="cov8" title="49">first := strings.TrimSpace(lines[start])
+ last := strings.TrimSpace(lines[end])
+ if strings.HasPrefix(first, "```") &amp;&amp; last == "```" &amp;&amp; end &gt; start </span><span class="cov6" title="19">{
+ inner := strings.Join(lines[start+1:end], "\n")
+ return inner
+ }</span>
+ <span class="cov7" title="30">return t</span>
+}
+
+// InstructionFromSelection extracts the first inline instruction and returns
+// (instruction, cleanedSelection). It detects markers on the earliest position
+// per line in precedence: strict ;text;, /* */, &lt;!-- --&gt;, //, #, --.
+func InstructionFromSelection(sel string) (string, string) <span class="cov5" title="13">{
+ lines := strings.Split(sel, "\n")
+ for idx, line := range lines </span><span class="cov5" title="13">{
+ if instr, cleaned, ok := FindFirstInstructionInLine(line); ok &amp;&amp; strings.TrimSpace(instr) != "" </span><span class="cov5" title="13">{
+ lines[idx] = cleaned
+ return instr, strings.Join(lines, "\n")
+ }</span>
+ }
+ <span class="cov0" title="0">return "", sel</span>
+}
+
+// FindFirstInstructionInLine returns (instruction, cleaned, ok) for a single line.
+func FindFirstInstructionInLine(line string) (instr, cleaned string, ok bool) <span class="cov6" title="14">{
+ type cand struct{ start, end int; text string }
+ cands := []cand{}
+ if t, l, r, ok := FindStrictInlineTag(line); ok </span><span class="cov3" title="4">{
+ cands = append(cands, cand{start: l, end: r, text: t})
+ }</span>
+ <span class="cov6" title="14">if i := strings.Index(line, "/*"); i &gt;= 0 </span><span class="cov2" title="2">{
+ if j := strings.Index(line[i+2:], "*/"); j &gt;= 0 </span><span class="cov2" title="2">{
+ start := i
+ end := i + 2 + j + 2
+ text := strings.TrimSpace(line[i+2 : i+2+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
+ }</span>
+ }
+ <span class="cov6" title="14">if i := strings.Index(line, "&lt;!--"); i &gt;= 0 </span><span class="cov2" title="2">{
+ if j := strings.Index(line[i+4:], "--&gt;"); j &gt;= 0 </span><span class="cov2" title="2">{
+ start := i
+ end := i + 4 + j + 3
+ text := strings.TrimSpace(line[i+4 : i+4+j])
+ cands = append(cands, cand{start: start, end: end, text: text})
+ }</span>
+ }
+ <span class="cov6" title="14">if i := strings.Index(line, "//"); i &gt;= 0 </span><span class="cov3" title="3">{
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }</span>
+ <span class="cov6" title="14">if i := strings.Index(line, "#"); i &gt;= 0 </span><span class="cov2" title="2">{
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+1:])})
+ }</span>
+ <span class="cov6" title="14">if i := strings.Index(line, "--"); i &gt;= 0 </span><span class="cov3" title="4">{
+ cands = append(cands, cand{start: i, end: len(line), text: strings.TrimSpace(line[i+2:])})
+ }</span>
+ <span class="cov6" title="14">if len(cands) == 0 </span><span class="cov0" title="0">{ return "", line, false }</span>
+ <span class="cov6" title="14">best := cands[0]
+ for _, c := range cands[1:] </span><span class="cov3" title="3">{
+ if c.start &gt;= 0 &amp;&amp; (best.start &lt; 0 || c.start &lt; best.start) </span><span class="cov0" title="0">{ best = c }</span>
+ }
+ <span class="cov6" title="14">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
+ return best.text, cleaned, true</span>
+}
+
+// FindStrictInlineTag finds ;text; with no spaces after/before semicolons.
+func FindStrictInlineTag(line string) (text string, left, right int, ok bool) <span class="cov6" title="16">{
+ for i := 0; i &lt; len(line); i++ </span><span class="cov10" title="112">{
+ if line[i] != ';' </span><span class="cov9" title="105">{ continue</span> }
+ <span class="cov4" title="7">if i+1 &lt; len(line) &amp;&amp; line[i+1] == ' ' </span><span class="cov1" title="1">{ continue</span> }
+ <span class="cov4" title="6">for j := i + 1; j &lt; len(line); j++ </span><span class="cov7" title="35">{
+ if line[j] == ';' </span><span class="cov4" title="5">{
+ if j-1 &gt;= 0 &amp;&amp; line[j-1] == ' ' </span><span class="cov0" title="0">{ continue</span> }
+ <span class="cov4" title="5">inner := strings.TrimSpace(line[i+1 : j])
+ if inner != "" </span><span class="cov4" title="5">{ return inner, i, j + 1, true }</span>
+ }
+ }
+ }
+ <span class="cov5" title="11">return "", -1, -1, false</span>
+}
+
+</pre>
+
</div>
</body>
<script>
diff --git a/docs/coverage.out b/docs/coverage.out
index 379cd96..36d1f38 100644
--- a/docs/coverage.out
+++ b/docs/coverage.out
@@ -1,12 +1,1622 @@
mode: atomic
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
-codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
-codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 1
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 1
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -15,6 +1625,8 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 7
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 6
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
@@ -25,94 +1637,94 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 6
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 27
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 27
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 6
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 27
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 27
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 20
codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 7
@@ -144,42 +1756,42 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 20
codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 2
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 20
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 14
codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 7
codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 14
@@ -279,47 +1891,143 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 5
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 4
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
@@ -631,6 +2339,11 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
@@ -726,30 +2439,30 @@ codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.31,31.99 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.99,34.4 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.2,36.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.50,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.2,57.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.44,58.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.51,63.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.2,65.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.46,66.52 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.52,71.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.2,73.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.44,75.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.2,76.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.43,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.2,79.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.44,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.2,82.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.21,84.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.2,87.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.30,88.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.63,90.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.2,93.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
@@ -834,19 +2547,19 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.24,120.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
@@ -960,8 +2673,8 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
@@ -1050,7 +2763,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.5,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
@@ -1086,15 +2799,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
@@ -1221,190 +2934,176 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.55,22.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
@@ -1429,10 +3128,10 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
@@ -1482,112 +3181,166 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
-codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 1
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 1
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 1
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
@@ -1619,42 +3372,42 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
@@ -1673,128 +3426,224 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 24
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 5
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 5
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 6
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 6
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 4
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 2
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
@@ -1925,11 +3774,11 @@ codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
@@ -2088,17 +3937,17 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
@@ -2106,7 +3955,12 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
@@ -2201,30 +4055,30 @@ codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.31,31.99 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.99,34.4 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.2,36.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.50,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.2,57.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.44,58.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.51,63.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.2,65.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.46,66.52 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.52,71.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.2,73.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.44,75.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.2,76.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.43,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.2,79.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.44,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.2,82.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.21,84.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.2,87.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.30,88.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.63,90.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.2,93.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
@@ -2309,19 +4163,19 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.24,120.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
@@ -2435,8 +4289,8 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
@@ -2525,7 +4379,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.5,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
@@ -2561,15 +4415,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
@@ -2696,190 +4550,176 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.55,22.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
@@ -2904,10 +4744,10 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
@@ -2957,6 +4797,58 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -2965,9 +4857,11 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
@@ -2975,94 +4869,94 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
@@ -3094,42 +4988,42 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
@@ -3229,47 +5123,143 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 3
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 7
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 8
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 7
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 7
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 7
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 3
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 7
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 2
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 4
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 3
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 3
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 10
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 16
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 1
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
@@ -3557,9 +5547,9 @@ codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 3
codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 7
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
@@ -3581,21 +5571,26 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 2
-codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 2
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 4
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
-codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 4
-codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 3
-codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 5
-codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 4
-codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 2
-codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 2
-codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
@@ -3676,30 +5671,30 @@ codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.31,31.99 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.99,34.4 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.2,36.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.50,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.2,57.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.44,58.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.51,63.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.2,65.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.46,66.52 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.52,71.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.2,73.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.44,75.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.2,76.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.43,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.2,79.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.44,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.2,82.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.21,84.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.2,87.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.30,88.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.63,90.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.2,93.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
@@ -3784,19 +5779,19 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.24,120.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
@@ -3910,8 +5905,8 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
@@ -4000,7 +5995,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.5,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
@@ -4036,15 +6031,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
@@ -4171,190 +6166,176 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.55,22.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
@@ -4379,10 +6360,10 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
@@ -4432,6 +6413,58 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 11
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 54
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 52
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 20
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 5
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -4440,9 +6473,11 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 2
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 1
@@ -4450,94 +6485,94 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
@@ -4569,42 +6604,42 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
@@ -4624,10 +6659,10 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 24
@@ -4704,71 +6739,1783 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 1
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 4
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 6
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 6
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 5
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 2
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 2
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 3
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 3
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 3
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 3
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 3
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 3
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 3
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 48
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 1
codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 1
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 1
codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 7
codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 7
codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 7
codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 5
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 5
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 7
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 6
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 1
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 1
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 6
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 7
codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
@@ -4875,11 +8622,11 @@ codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 1
codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
@@ -4895,8 +8642,8 @@ codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
-codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 1
codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
@@ -5038,17 +8785,17 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 7
codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 6
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 7
codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 6
codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 5
codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 3
codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 5
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
@@ -5056,16 +8803,21 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 5
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 6
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 6
-codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 7
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 3
codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 4
-codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 7
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 8
codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 1
codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 1
codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
@@ -5151,30 +8903,30 @@ codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.31,31.99 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.99,34.4 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.2,36.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.50,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.2,57.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.44,58.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.51,63.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.2,65.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.46,66.52 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.52,71.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.2,73.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.44,75.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.2,76.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.43,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.2,79.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.44,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.2,82.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.21,84.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.2,87.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.30,88.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.63,90.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.2,93.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
@@ -5259,19 +9011,19 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.24,120.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
@@ -5385,8 +9137,8 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
@@ -5475,7 +9227,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.5,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
@@ -5511,15 +9263,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
@@ -5646,190 +9398,176 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.55,22.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 1
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 1
@@ -5854,10 +9592,10 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 1
codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 1
@@ -5907,6 +9645,63 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -5915,6 +9710,8 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -5925,94 +9722,94 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
@@ -6044,42 +9841,42 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
@@ -6179,47 +9976,143 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
@@ -6244,11 +10137,4859 @@ codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 1
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 3
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 3
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 1
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 2
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 58
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 53
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 1
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 4
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 15
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 6
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:90.45,92.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:93.2,94.27 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:94.27,96.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.2,97.19 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:97.19,99.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:100.2,102.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:102.29,104.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:105.2,109.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:109.16,112.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:114.2,117.16 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:117.16,120.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:121.2,122.57 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:122.57,124.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:125.2,126.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:126.16,128.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.2,129.27 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:129.27,132.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:133.2,135.21 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:139.46,139.66 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:140.46,140.71 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:143.102,146.29 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:146.29,148.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.8,151.31 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:151.31,154.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.2,155.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:166.16,168.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.2,169.28 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:185.2,186.69 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:189.91,191.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.39,211.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:212.2,213.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:213.16,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:216.2,220.16 5 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:220.16,222.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:223.2,224.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:224.53,226.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:227.2,228.64 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:228.64,230.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.2,231.40 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:231.40,233.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:235.2,236.18 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:252.16,253.59 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:253.59,254.48 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:254.48,256.5 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:258.3,258.21 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:260.2,264.22 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:264.22,266.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:267.2,267.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:323.39,325.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.2,326.45 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:326.45,328.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.2,329.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:329.12,331.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:332.2,354.16 6 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:354.16,356.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:357.2,358.53 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:358.53,360.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:362.2,365.27 4 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:45.38,47.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.2,48.36 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:48.36,50.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:51.2,57.3 1 1
+codeberg.org/snonux/hexai/internal/llm/ollama.go:60.108,62.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:62.27,64.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.2,65.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:69.2,73.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:73.16,75.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:77.2,80.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:80.16,83.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:84.2,85.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:85.56,87.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:89.2,90.64 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:90.64,93.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.2,94.50 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:94.50,97.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:98.2,100.21 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:104.45,104.64 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:105.45,105.70 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:108.126,110.27 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:110.27,112.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.2,113.19 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:113.19,115.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:117.2,121.16 5 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:121.16,123.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:125.2,128.16 4 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:128.16,131.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:132.2,133.56 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:133.56,135.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:137.2,138.6 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:138.6,140.41 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:140.41,141.30 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:141.30,142.10 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:144.4,145.14 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.3,147.40 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:147.40,150.4 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.3,151.58 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:151.58,153.4 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.3,154.14 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:154.14,155.9 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:158.2,159.12 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:163.76,165.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:165.29,167.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:168.2,168.89 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:171.109,174.29 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:174.29,176.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:177.2,178.24 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:178.24,180.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.8,180.31 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:180.31,182.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.2,183.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:183.21,185.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.2,186.21 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:186.21,188.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.2,189.22 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:189.22,191.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:192.2,192.12 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:195.100,197.16 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:197.16,199.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:200.2,201.29 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:204.69,205.53 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:205.53,207.3 1 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:208.2,210.43 3 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:210.43,213.3 2 0
+codeberg.org/snonux/hexai/internal/llm/ollama.go:214.2,215.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:78.76,79.38 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 1
+codeberg.org/snonux/hexai/internal/llm/openai.go:95.108,96.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:96.20,98.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:99.2,100.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:100.27,102.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.2,103.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:103.19,105.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:106.2,110.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:110.16,113.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:114.2,119.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:119.16,122.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:123.2,124.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:124.56,126.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:127.2,128.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:128.16,130.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.2,131.27 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:131.27,134.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:135.2,137.21 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:141.45,141.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:146.126,147.20 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:147.20,149.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:150.2,151.27 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:151.27,153.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.2,154.19 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:154.19,156.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:157.2,161.16 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:161.16,164.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:165.2,170.16 4 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:170.16,173.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:174.2,175.56 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:175.56,177.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.2,179.64 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:179.64,181.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:182.2,183.12 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:187.56,187.104 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:190.76,192.29 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:192.29,194.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:195.2,195.89 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:198.105,201.29 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:201.29,203.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.2,204.24 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:204.24,206.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.8,206.31 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:206.31,209.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.2,210.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:210.21,212.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.2,213.21 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:213.21,215.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:216.2,216.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:219.127,221.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:221.16,223.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:224.2,225.28 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:225.28,227.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:228.2,228.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:231.152,233.16 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:233.16,235.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:236.2,238.28 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:238.28,240.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:241.2,241.29 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:244.69,245.53 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:245.53,247.3 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:248.2,250.55 3 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:250.55,253.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:254.2,255.68 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:258.85,260.64 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:260.64,263.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:264.2,264.17 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:267.90,273.21 5 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:273.21,275.41 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:275.41,276.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:278.3,279.45 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:279.45,280.9 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:282.3,283.65 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:283.65,284.12 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.3,286.54 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:286.54,289.4 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.3,290.36 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:290.36,291.30 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:291.30,293.5 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.2,296.38 1 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:296.38,299.3 2 0
+codeberg.org/snonux/hexai/internal/llm/openai.go:300.2,300.12 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.47,58.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:58.73,58.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.47,59.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:59.73,59.94 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
+codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
+codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 1
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 2
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 2
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 2
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:27.26,27.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:46.37,47.25 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:47.25,48.32 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:48.32,50.4 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:21.16,22.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:23.26,24.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:38.35,41.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:42.2,45.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:45.15,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:48.2,49.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:49.13,51.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:52.2,53.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:58.14,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:62.2,62.59 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:68.20,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:71.2,72.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:77.21,79.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.2,80.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:80.53,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:51.13,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.2,54.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:54.25,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:57.2,58.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:58.16,60.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.2,61.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:80.35,82.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:83.2,84.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:84.13,86.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.2,87.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:87.25,89.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:91.2,92.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:92.28,93.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:93.44,95.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.3,98.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:98.40,99.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.2,102.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:102.20,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.2,106.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:106.35,109.17 3 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:109.17,110.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:110.15,112.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.4,114.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:114.29,116.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:119.2,119.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:209.32,211.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:213.14,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:255.33,260.4 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:264.2,265.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:268.51,272.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.55,20.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:20.23,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:23.3,23.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.2,26.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:35.53,37.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.2,38.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:38.57,40.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.2,41.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:38.2,39.73 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.67,45.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:45.22,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:48.2,52.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.51,84.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:86.2,91.86 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.83,105.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.2,108.126 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:121.32,123.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.2,126.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:126.29,128.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:129.2,132.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:132.16,136.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:137.2,141.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:141.19,143.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:144.2,145.75 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:158.8,161.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:162.2,162.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.35,174.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:175.3,176.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:191.24,193.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:194.2,195.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.14,61.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,62.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.13,68.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.2,69.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.35,102.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.2,103.30 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:107.39,109.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.4,111.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.37,122.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,125.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.12,126.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.3,130.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.17,137.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,151.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.19,152.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.3,156.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:166.18,169.5 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,171.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.17,173.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,174.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:185.14,187.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.2,200.54 8 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.14,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.2,213.31 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.12,218.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.3,220.61 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.61,221.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,224.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.53,235.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.3,236.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.12,237.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,242.6 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:260.17,262.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.2,264.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.10,32.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:11.48,13.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:13.24,15.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:27.22,28.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:30.3,32.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:35.18,37.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:38.4,38.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.24,43.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:44.2,45.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:45.50,47.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:48.2,48.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:53.16,56.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:57.2,58.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:58.57,61.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.2,62.45 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:62.45,65.3 2 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
+codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:32.3,33.22 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:35.2,37.70 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:42.159,49.37 6 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:49.37,51.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:52.2,52.12 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:57.49,59.30 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:59.30,61.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:64.72,65.19 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:65.19,67.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.36 3 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0
+codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:70.36,74.3 1 0
+codeberg.org/snonux/hexai/internal/llm/copilot.go:75.2,82.3 1 9
codeberg.org/snonux/hexai/internal/llm/copilot.go:85.109,86.39 1 5
codeberg.org/snonux/hexai/internal/llm/copilot.go:86.39,88.3 1 0
codeberg.org/snonux/hexai/internal/llm/copilot.go:90.2,90.45 1 5
@@ -6513,9 +15254,9 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 5
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6
codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 5
+codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 6
codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2
codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 1
@@ -6524,14 +15265,19 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 1
codeberg.org/snonux/hexai/internal/llm/provider.go:101.16,102.35 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:102.35,105.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:106.3,106.83 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:107.17,108.45 1 3
codeberg.org/snonux/hexai/internal/llm/provider.go:108.45,110.4 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.3,111.36 1 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 2
+codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 2
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 1
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 2
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 29
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 30
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 23
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 7
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:23.2,25.29 2 23
@@ -6626,30 +15372,30 @@ codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.31,31.99 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.99,34.4 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.2,36.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.50,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.2,57.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.44,58.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.51,63.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.2,65.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.46,66.52 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.52,71.4 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.2,73.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.44,75.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.2,76.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.43,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.2,79.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.44,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.2,82.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.21,84.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.2,87.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.30,88.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.63,90.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.2,93.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
@@ -6734,19 +15480,19 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.24,120.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
@@ -6860,8 +15606,8 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
@@ -6950,7 +15696,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.5,237.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0
@@ -6986,15 +15732,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
@@ -7121,190 +15867,176 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.55,22.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0
@@ -7329,10 +16061,10 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 0
codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0
codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0
@@ -7382,11 +16114,58 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -7395,6 +16174,8 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:11.13,12.94 1 0
+codeberg.org/snonux/hexai/cmd/internal/hexai-action/main.go:12.94,15.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0
@@ -7405,94 +16186,94 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.77 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.77,291.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.38,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.2,300.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:300.44,307.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.44,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.2,316.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:316.36,319.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.2,322.82 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.82,325.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.47,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.2,334.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:334.68,341.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.2,344.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.71,351.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.2,354.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:354.68,361.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.59,366.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:366.67,368.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.3,369.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.66,371.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.3,372.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:372.66,374.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.3,375.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:375.65,377.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.3,378.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.64,380.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.3,381.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:381.65,383.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.53,388.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.2,390.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:390.59,391.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.67,393.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.3,394.71 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.71,396.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.3,397.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:397.68,399.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.3,400.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:400.65,402.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.3,403.69 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:403.69,405.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.3,406.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:406.66,408.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.3,409.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:409.66,411.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.3,412.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:412.64,414.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.2,417.45 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:417.45,418.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:418.60,420.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.3,421.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:421.60,423.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.2,426.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:426.67,428.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:430.2,430.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:435.16,436.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:436.43,438.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:439.3,439.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:442.2,447.22 5 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:447.22,448.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:448.20,450.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:451.3,451.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:455.2,464.21 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:464.21,465.216 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:465.216,466.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.3,468.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:468.41,470.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.2,473.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:473.19,475.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:479.2,481.53 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:481.53,482.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:482.59,483.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:484.15,485.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:486.13,487.35 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:488.17,489.40 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.2,493.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:493.50,494.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:494.52,495.26 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:496.15,497.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:498.13,499.29 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:500.17,501.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:505.2,505.18 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0
@@ -7524,42 +16305,42 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:566.66,568.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.2,569.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:569.65,571.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.2,572.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:572.65,574.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.2,575.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:575.64,577.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.2,578.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:578.63,580.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.2,581.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:581.64,583.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.2,585.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:585.59,587.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.2,589.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:589.53,591.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.2,593.66 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:593.66,595.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.2,596.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:596.70,598.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.2,599.67 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:599.67,601.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.2,602.64 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:602.64,604.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.2,605.68 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:605.68,607.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.2,608.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:608.65,610.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.2,611.65 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:611.65,613.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.2,614.63 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:614.63,616.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.2,618.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:618.59,620.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.2,621.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:621.59,623.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0
@@ -7659,47 +16440,143 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:20.50,22.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:22.16,24.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:25.2,26.15 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:26.15,28.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:29.2,32.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:32.27,34.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:34.26,36.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.2,39.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:39.18,41.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:43.2,45.28 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:45.28,47.14 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:47.14,49.9 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:51.3,51.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:53.2,55.60 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/parse.go:60.54,60.103 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:14.54,14.97 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:17.35,17.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:23.121,27.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:29.128,31.26 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:31.26,32.33 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:32.33,33.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:35.3,36.23 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:36.23,38.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:40.2,42.69 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:45.109,49.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:51.106,55.2 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:57.86,60.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:60.19,62.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:63.5,63.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:66.120,69.19 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:69.19,71.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:72.5,72.52 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:76.57,78.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:78.37,80.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:81.5,81.16 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:85.79,87.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/prompts.go:89.78,91.2 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:16.80,20.16 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:20.16,23.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:24.2,25.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:25.16,28.3 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.2,29.46 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:29.46,31.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:32.2,33.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:33.16,35.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:36.2,37.16 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:37.16,39.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:40.2,41.12 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:44.146,45.14 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:46.18,47.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:48.21,50.37 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:50.37,53.4 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:54.3,56.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:57.25,60.79 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:61.22,64.57 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:65.20,68.55 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/run.go:69.10,70.30 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:18.36,18.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:19.36,19.53 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:20.36,20.54 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:28.23,41.2 7 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:43.31,43.45 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:45.57,46.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:47.18,48.27 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:49.25,50.40 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:52.2,54.15 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:57.62,60.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:61.21,65.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:66.18,67.55 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:67.55,71.10 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:72.22,73.28 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:74.20,75.26 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:76.22,77.25 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:78.16,79.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:79.44,79.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:80.29,82.41 2 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:82.41,83.91 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:83.91,88.14 4 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.5,91.19 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:91.19,92.44 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:92.44,92.68 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:94.5,94.18 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:97.30,98.12 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:98.12,100.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:101.2,101.22 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:105.35,108.16 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:108.16,110.3 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.2,111.29 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:111.29,112.21 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:112.21,114.4 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:115.3,115.23 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui.go:117.2,117.56 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:20.61,20.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:21.61,21.73 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:22.61,22.75 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:23.89,26.38 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:26.38,28.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:29.5,31.27 3 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:31.27,33.6 1 0
+codeberg.org/snonux/hexai/internal/hexaiaction/tui_delegate.go:34.5,34.49 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:23.95,28.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:28.16,31.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.2,34.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:34.17,37.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:38.2,40.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:40.74,43.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:44.2,44.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.124,51.16 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:51.16,54.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.2,57.74 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:57.74,60.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.2,61.12 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.64,67.82 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.82,70.3 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:71.2,72.9 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.40,74.59 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:75.23,76.24 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:77.21,78.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:79.10,80.91 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.48,91.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:91.40,93.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:94.2,97.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:101.77,104.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.40,105.58 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:105.58,107.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:109.2,112.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.125,119.40 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:119.40,121.56 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.56,124.4 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.18,126.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.3,127.22 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.8,130.17 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.17,132.4 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.3,134.26 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:136.2,139.12 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:143.59,145.2 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:148.65,150.2 1 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:25.85,27.38 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:27.38,29.17 2 0
codeberg.org/snonux/hexai/internal/hexailsp/run.go:29.17,31.4 1 0
@@ -8011,6 +16888,11 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0
codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0
codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0
codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:12.62,26.39 3 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:26.39,28.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:29.5,30.39 2 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:30.39,32.6 1 0
+codeberg.org/snonux/hexai/internal/llmutils/client.go:33.5,33.51 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:18.3,20.12 2 0
codeberg.org/snonux/hexai/internal/logging/chatlogger.go:20.12,22.3 1 0
@@ -8056,8 +16938,8 @@ codeberg.org/snonux/hexai/internal/lsp/context.go:83.2,83.19 1 1
codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 32
codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 1
codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 4
-codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 51
-codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 76
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 52
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 42
codeberg.org/snonux/hexai/internal/lsp/document.go:45.96,47.35 2 5
codeberg.org/snonux/hexai/internal/lsp/document.go:47.35,49.3 1 1
codeberg.org/snonux/hexai/internal/lsp/document.go:50.2,51.13 2 4
@@ -8096,40 +16978,40 @@ codeberg.org/snonux/hexai/internal/lsp/document.go:122.46,123.28 1 6
codeberg.org/snonux/hexai/internal/lsp/document.go:123.28,124.29 1 16
codeberg.org/snonux/hexai/internal/lsp/document.go:124.29,126.4 1 4
codeberg.org/snonux/hexai/internal/lsp/document.go:128.2,128.14 1 2
-codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 40
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 42
codeberg.org/snonux/hexai/internal/lsp/document.go:133.18,135.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 39
-codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 22
-codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 17
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 41
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 25
+codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 19
codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.22,17.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.31 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.31,31.99 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.99,34.4 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.2,36.16 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.50 3 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.50,56.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.2,57.44 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.44,58.51 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.51,63.4 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.2,65.46 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.46,66.52 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.52,71.4 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.2,73.44 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.44,75.3 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.2,76.43 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.43,78.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.2,79.44 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.44,81.3 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.2,82.21 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.21,84.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.2,87.30 2 16
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.30,88.63 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.63,90.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.2,93.33 2 16
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:28.60,30.34 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:30.34,31.105 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:31.105,34.10 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:36.5,36.19 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:48.86,54.53 3 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.6 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.5,57.47 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:57.47,58.57 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:58.57,63.10 4 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.5,65.49 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:65.49,66.58 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:66.58,71.10 4 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.5,73.47 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:73.47,75.6 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.5,76.46 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:76.46,78.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.5,79.47 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:79.47,81.6 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.5,82.24 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:82.24,84.6 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:86.5,87.33 2 16
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:87.33,88.69 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:88.69,90.10 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:92.5,93.36 2 16
codeberg.org/snonux/hexai/internal/lsp/handlers.go:117.72,120.2 2 11
codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 14
codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0
@@ -8214,19 +17096,19 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:86.45,88.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:89.2,97.58 2 12
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.24,120.49 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.21,120.43 3 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.24,123.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.10,125.5 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.9,141.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.18,149.72 7 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0
@@ -8240,31 +17122,31 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 10
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 10
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 10
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 7
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 11
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 3
@@ -8277,15 +17159,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 1
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 1
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 1
@@ -8295,72 +17177,72 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 1
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 3
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 47
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 106
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.24 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.24,476.71 7 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 4
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 1
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 1
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0
@@ -8430,7 +17312,7 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:216.50,218.3 1 5
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:219.2,219.23 1 7
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.193,225.9 2 11
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.5,237.32 6 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.2,237.32 6 5
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 5
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 5
@@ -8466,15 +17348,15 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 2
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.14 4 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.14,357.3 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.2,358.68 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.68,360.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,363.52 3 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.52,365.37 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.37,367.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.3,368.73 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.2,370.17 1 13
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 10
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0
@@ -8601,190 +17483,176 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:16.2,27.27 2 2
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:30.38,32.2 1 0
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:34.46,36.2 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:38.31,41.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.55,22.32 2 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 33
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 24
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 79
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 24
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 23
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 23
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 39
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 23
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 24
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 20
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 49
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 64
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 27
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 37
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 16
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 16
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 20
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 100
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 77
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 23
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 23
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 100
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 28
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 55
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 57
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 36
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:21.55,23.32 2 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.32,25.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:26.2,26.13 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:30.41,35.2 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:37.41,42.2 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.32,47.23 3 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.23,49.3 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.2,51.24 2 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.24,53.3 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.2,57.15 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.15,59.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:60.2,63.211 4 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.51,68.41 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.62,77.105 1 33
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.118,80.14 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.14,83.16 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:83.16,86.35 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:86.35,88.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.4,89.36 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.36,91.5 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.4,94.59 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.59,96.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.21 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.2,103.19 4 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.51,107.23 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:107.23,109.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.2,110.13 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:110.13,112.100 2 49
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.100,114.12 2 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.3,116.8 1 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.11 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.32,123.2 1 26
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.44,127.50 1 21
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.50,129.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.2,130.35 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:133.40,135.20 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.20,136.40 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.40,138.12 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.3,140.8 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.2,142.12 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.12,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.2,145.17 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.52,149.38 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.38,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:152.2,153.27 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.27,154.34 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.34,155.12 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.3,157.36 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.36,158.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.3,160.25 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.2,162.34 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.64,172.22 2 50
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:172.22,175.12 2 65
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.12,177.4 1 27
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.3,180.74 2 38
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.74,182.12 2 21
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.3,186.12 2 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.12,188.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.3,190.48 2 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.48,192.12 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.18 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.18,197.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.3,200.29 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.2,202.24 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.41,212.31 3 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:212.31,214.3 1 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.2,215.29 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:215.29,217.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.2,218.31 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:218.31,220.32 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.32,222.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.83,231.102 2 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:231.102,233.36 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.36,235.136 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:235.136,237.5 1 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.4,240.34 3 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.34,242.5 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.2,246.65 1 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.65,247.53 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.53,249.37 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.37,251.137 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.137,253.6 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.5,256.35 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.35,258.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.2,262.19 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:266.80,267.22 1 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.22,269.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,272.40 3 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.40,274.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,275.34 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.34,276.31 1 100
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.31,277.12 1 77
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.3,280.16 2 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.16,281.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.3,283.32 1 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.32,285.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.2,287.19 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:290.36,292.2 1 100
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.39,295.77 1 36
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.43,300.13 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.13,302.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.2,304.11 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.11,306.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.2,308.14 2 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.14,310.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.2,312.19 2 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:316.56,318.89 2 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.89,320.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,321.14 1 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:325.52,326.32 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.32,328.28 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:328.28,330.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.3,331.34 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.34,333.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.3,334.42 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:334.42,336.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.3,337.49 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,342.27 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:342.27,344.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.2,345.36 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.36,347.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.2,351.49 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.49,353.24 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.24,355.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.2,359.25 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.25,361.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.2,362.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:362.33,364.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:365.2,366.19 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.67,372.35 2 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.35,374.3 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.2,376.31 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:376.31,378.3 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:379.2,379.14 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.69,383.32 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.32,385.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.2,386.47 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:389.45,391.22 2 56
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.22,395.12 3 58
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.12,397.4 1 36
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.3,400.32 3 22
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:400.32,402.4 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.3,404.46 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.46,406.12 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.3,410.12 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:410.12,412.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:413.3,414.49 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.49,416.12 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.3,418.14 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.2,420.14 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.67,426.28 3 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:426.28,428.12 2 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,429.9 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.12 3 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.12,434.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,436.43 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.43,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.3,440.34 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:440.34,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:444.3,445.48 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.48,447.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.3,449.25 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.25,451.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.3,454.50 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:454.50,456.4 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.3,458.22 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.2,460.14 1 9
codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 5
codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 5
codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 5
@@ -8809,10 +17677,10 @@ codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1
codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 5
codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 3
codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.2,182.33 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:182.33,184.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.8,186.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/server.go:189.2,207.24 17 5
codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 5
codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 5
codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 5
@@ -8862,3 +17730,55 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 1
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 1
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.34 1 33
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.34,9.6 1 9
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.5,11.28 2 24
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.28,13.6 1 79
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.5,14.15 1 24
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.16 2 36
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.16,22.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.5,25.69 3 36
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.69,27.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.5,29.57 2 36
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.57,31.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.5,32.54 1 36
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.54,34.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.5,37.72 3 36
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.72,40.6 2 8
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.5,41.13 1 28
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.34 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.34,50.105 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.105,53.10 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.5,55.19 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,62.53 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:62.53,64.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.5,65.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.47,66.57 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:66.57,71.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.5,73.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:73.49,74.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:74.58,79.10 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.5,81.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:81.47,83.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.5,84.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.46,86.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.5,87.47 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.47,89.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.5,90.24 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.24,90.50 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:91.5,92.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:92.33,93.69 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.69,93.81 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:95.5,96.36 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:100.79,101.36 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:101.36,102.27 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.27,102.37 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.9,103.48 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:103.48,103.58 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.9,104.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:104.44,105.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:105.31,106.49 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:106.49,106.59 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.17,108.32 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.32,108.64 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.5,112.29 1 0