summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-06 11:14:27 +0300
committerPaul Buetow <paul@buetow.org>2025-09-06 11:14:27 +0300
commitfb267966f7840df222338f57023273a993a73c9a (patch)
treed10066412f08b386a6f9fe9289f27124c6ebe9d6
parent1bf4251a7edbd00902f22db77031d0f998569614 (diff)
use TOML not JSON for configuration
-rw-r--r--AGENTS.md2
-rw-r--r--PROJECTSTATUS.md16
-rw-r--r--config.json.example30
-rw-r--r--config.toml.example34
-rw-r--r--docs/configuration.md75
-rw-r--r--docs/coverage.html2838
-rw-r--r--docs/coverage.out11632
-rw-r--r--go.mod6
-rw-r--r--go.sum2
-rw-r--r--internal/appconfig/config.go70
-rw-r--r--internal/appconfig/config_test.go72
-rw-r--r--internal/hexaicli/run_test.go2
-rw-r--r--internal/hexaicli/testhelpers_test.go11
13 files changed, 7486 insertions, 7304 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 629c5de..8758804 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -10,7 +10,7 @@
- If possible, construct individual methods so that they can be unit tested. But only if it doesn't add too much boilerplate to the code base.
- Aim for at least 85% unit test coverage of all source code.
-- Ensure that all unit tests pass before merging any changes.
+- Ensure that all unit tests pass before commiting any changes.
- Always run the gofumpt code reformatter on all go files modified.
- There should be no source code file larger than 1000 lines. If so, split it up into multiple.
- There should be no function larger then 50 lines. If so, refactor or split up into multiple smaller functions.
diff --git a/PROJECTSTATUS.md b/PROJECTSTATUS.md
index cc87928..4114df6 100644
--- a/PROJECTSTATUS.md
+++ b/PROJECTSTATUS.md
@@ -4,26 +4,22 @@
### New features
-* [X] Create "generate unit test" code action for selected code block => write test to FILE_test.go file
+* [ ] Have all text LLM prompts be configurable. With defaults as of now.
* [ ] implement a code action for selected code block the way via a unix pipe as faster access in helix
+ - pipe selected code to external command and replace selection with output
+ - the external command should open a menu to select an action (e.g. "format", "refactor", "explain", "test", etc.) and then apply it to the selected code
+ - the external menu can be opened in a separate tmux pane
+* [ ] Fish and zsh and bash shell integration for command completion? Have access to the current shell history (N last commands), current directory content, and current directory name.
+* [X] Create "generate unit test" code action for selected code block => write test to FILE_test.go file
* [X] Use hexai as a gh copilot... CLI replacemant for command line questions
* [X] Resolve diagnostics code action feature
* [X] LSP server to be used with the Helix text editor
* [X] Code completion using LLMs
-* [ ] Have all text LLM prompts be configurable. With defaults as of now.
* [X] Text completion in general
* [/] Be a replacement for 'github copilot cli'
* [X] Be able to perform inline chats (keeping history in the document)
-* [ ] Be able to switch the underlying model via a prompt
* [X] Fine tune when Large Language Model (LLM) completions trigger, as it seems that there are some cases where the Large Language Model (LLM) receives a request but Helix isn't suggesting any completions. There seems to be something odd with the in logic. Investigate the TriggerChar logic and make sure it matches Helix's expectations.
* [X] Can anything else can be done with LSP?
-* [ ] Fish and zsh and bash shell integration for command completion? Have access to the current shell history (N last commands), current directory content, and current directory name.
-
-Be able to select code blocks and perform code actions on them
-
-* [X] Commenting exiting code
-* [X] Add unit test (for Go)
-* [X] Code refactoring (via comment instruction)
Be able to switch LLMs.
diff --git a/config.json.example b/config.json.example
deleted file mode 100644
index 7a4298c..0000000
--- a/config.json.example
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "max_tokens": 4000,
- "context_mode": "file-on-new-func",
- "context_window_lines": 120,
- "max_context_tokens": 4000,
- "log_preview_limit": 100,
- "completion_debounce_ms": 200,
- "completion_throttle_ms": 0,
- "no_disk_io": true,
- "trigger_characters": [".", ":", "/", "_", " "],
- "inline_open": ">",
- "inline_close": ">",
- "chat_suffix": ">",
- "chat_prefixes": ["?", "!", ":", ";"],
- "coding_temperature": 0.2,
-
- "provider": "openai",
-
- "openai_model": "gpt-4.1",
- "openai_base_url": "https://api.openai.com/v1",
- "openai_temperature": 0.2,
-
- "ollama_model": "qwen3-coder:30b-a3b-q4_K_M",
- "ollama_base_url": "http://localhost:11434",
- "ollama_temperature": 0.2,
-
- "copilot_model": "gpt-4o-mini",
- "copilot_base_url": "https://api.githubcopilot.com",
- "copilot_temperature": 0.2
-}
diff --git a/config.toml.example b/config.toml.example
new file mode 100644
index 0000000..70b4442
--- /dev/null
+++ b/config.toml.example
@@ -0,0 +1,34 @@
+max_tokens = 4000
+context_mode = "file-on-new-func"
+context_window_lines = 120
+max_context_tokens = 4000
+log_preview_limit = 100
+completion_debounce_ms = 200
+completion_throttle_ms = 0
+# Optional: disable disk IO while building context (reserved)
+# no_disk_io = true
+trigger_characters = [".", ":", "/", "_", " "]
+inline_open = ">"
+inline_close = ">"
+chat_suffix = ">"
+chat_prefixes = ["?", "!", ":", ";"]
+coding_temperature = 0.2
+
+# Provider: openai | copilot | ollama
+provider = "openai"
+
+# OpenAI
+openai_model = "gpt-4.1"
+openai_base_url = "https://api.openai.com/v1"
+openai_temperature = 0.2
+
+# Ollama
+ollama_model = "qwen3-coder:30b-a3b-q4_K_M"
+ollama_base_url = "http://localhost:11434"
+ollama_temperature = 0.2
+
+# GitHub Copilot
+copilot_model = "gpt-4o-mini"
+copilot_base_url = "https://api.githubcopilot.com"
+copilot_temperature = 0.2
+
diff --git a/docs/configuration.md b/docs/configuration.md
index 3b862af..d52323c 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -7,36 +7,39 @@ environment overrides, provider selection, and temperature behavior.
The config file is optional.
-- Location: `$XDG_CONFIG_HOME/hexai/config.json` (usually `~/.config/hexai/config.json`).
+- Location: `$XDG_CONFIG_HOME/hexai/config.toml` (usually `~/.config/hexai/config.toml`).
- Example:
-```json
-{
- "max_tokens": 4000,
- "context_mode": "always-full",
- "context_window_lines": 120,
- "max_context_tokens": 4000,
- "log_preview_limit": 100,
- "completion_debounce_ms": 200,
- "completion_throttle_ms": 0,
- "no_disk_io": true,
- "trigger_characters": [".", ":", "/", "_", " " ],
- "inline_open": ">",
- "inline_close": ">",
- "chat_suffix": ">",
- "chat_prefixes": ["?", "!", ":", ";"],
- "coding_temperature": 0.2,
- "provider": "ollama",
- "copilot_model": "gpt-4o-mini",
- "copilot_base_url": "https://api.githubcopilot.com",
- "copilot_temperature": 0.2,
- "openai_model": "gpt-4.1",
- "openai_base_url": "https://api.openai.com/v1",
- "openai_temperature": 0.2,
- "ollama_model": "qwen3-coder:30b-a3b-q4_K_M",
- "ollama_base_url": "http://localhost:11434",
- "ollama_temperature": 0.2
-}
+```toml
+max_tokens = 4000
+context_mode = "always-full"
+context_window_lines = 120
+max_context_tokens = 4000
+log_preview_limit = 100
+completion_debounce_ms = 200
+completion_throttle_ms = 0
+# no_disk_io is reserved for future use
+trigger_characters = [".", ":", "/", "_", " "]
+inline_open = ">"
+inline_close = ">"
+chat_suffix = ">"
+chat_prefixes = ["?", "!", ":", ";"]
+coding_temperature = 0.2
+
+# choose one provider: openai | copilot | ollama
+provider = "ollama"
+
+copilot_model = "gpt-4o-mini"
+copilot_base_url = "https://api.githubcopilot.com"
+copilot_temperature = 0.2
+
+openai_model = "gpt-4.1"
+openai_base_url = "https://api.openai.com/v1"
+openai_temperature = 0.2
+
+ollama_model = "qwen3-coder:30b-a3b-q4_K_M"
+ollama_base_url = "http://localhost:11434"
+ollama_temperature = 0.2
```
Key fields:
@@ -60,14 +63,12 @@ Key fields:
Defaults use `>` for inline prompts and chat suffix. You can change them, e.g.:
-```json
-{
- "inline_open": "<",
- "inline_close": ">",
- "chat_suffix": "/",
- "chat_prefixes": ["?", "!"],
- "trigger_characters": [".", ":", "/", "_", " "]
-}
+```toml
+inline_open = "<"
+inline_close = ">"
+chat_suffix = "/"
+chat_prefixes = ["?", "!"]
+trigger_characters = [".", ":", "/", "_", " "]
```
Notes:
@@ -77,7 +78,7 @@ Notes:
## Environment overrides
- All config-file options can be overridden by environment variables prefixed with `HEXAI_`.
-- Env values take precedence over `config.json`.
+- Env values take precedence over `config.toml`.
- Examples:
- `HEXAI_PROVIDER`, `HEXAI_MAX_TOKENS`, `HEXAI_CONTEXT_MODE`, `HEXAI_CONTEXT_WINDOW_LINES`, `HEXAI_MAX_CONTEXT_TOKENS`, `HEXAI_LOG_PREVIEW_LIMIT`
- `HEXAI_CODING_TEMPERATURE`
diff --git a/docs/coverage.html b/docs/coverage.html
index d940029..49b89df 100644
--- a/docs/coverage.html
+++ b/docs/coverage.html
@@ -59,7 +59,7 @@
<option value="file1">codeberg.org/snonux/hexai/cmd/hexai/main.go (0.0%)</option>
- <option value="file2">codeberg.org/snonux/hexai/internal/appconfig/config.go (86.9%)</option>
+ <option value="file2">codeberg.org/snonux/hexai/internal/appconfig/config.go (87.0%)</option>
<option value="file3">codeberg.org/snonux/hexai/internal/hexaicli/run.go (91.4%)</option>
@@ -83,19 +83,19 @@
<option value="file13">codeberg.org/snonux/hexai/internal/lsp/document.go (90.1%)</option>
- <option value="file14">codeberg.org/snonux/hexai/internal/lsp/handlers.go (90.5%)</option>
+ <option value="file14">codeberg.org/snonux/hexai/internal/lsp/handlers.go (92.1%)</option>
<option value="file15">codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go (81.2%)</option>
- <option value="file16">codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go (86.1%)</option>
+ <option value="file16">codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go (87.5%)</option>
- <option value="file17">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (87.4%)</option>
+ <option value="file17">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (88.9%)</option>
<option value="file18">codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go (75.0%)</option>
<option value="file19">codeberg.org/snonux/hexai/internal/lsp/handlers_init.go (55.6%)</option>
- <option value="file20">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (88.2%)</option>
+ <option value="file20">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (88.5%)</option>
<option value="file21">codeberg.org/snonux/hexai/internal/lsp/server.go (77.9%)</option>
@@ -178,117 +178,118 @@ 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.json and merges defaults.
+ <pre class="file" id="file2" style="display: none">// Summary: Application configuration model and loader; reads ~/.config/hexai/config.toml and merges defaults.
package appconfig
import (
- "encoding/json"
- "fmt"
- "log"
- "os"
- "path/filepath"
- "slices"
- "strconv"
- "strings"
+ "fmt"
+ "log"
+ "os"
+ "path/filepath"
+ "slices"
+ "strconv"
+ "strings"
+
+ "github.com/pelletier/go-toml/v2"
)
-// App holds user-configurable settings read from ~/.config/hexai/config.json.
+// App holds user-configurable settings read from ~/.config/hexai/config.toml.
type App struct {
- MaxTokens int `json:"max_tokens"`
- ContextMode string `json:"context_mode"`
- ContextWindowLines int `json:"context_window_lines"`
- MaxContextTokens int `json:"max_context_tokens"`
- LogPreviewLimit int `json:"log_preview_limit"`
+ MaxTokens int `json:"max_tokens" toml:"max_tokens"`
+ ContextMode string `json:"context_mode" toml:"context_mode"`
+ ContextWindowLines int `json:"context_window_lines" toml:"context_window_lines"`
+ MaxContextTokens int `json:"max_context_tokens" toml:"max_context_tokens"`
+ LogPreviewLimit int `json:"log_preview_limit" toml:"log_preview_limit"`
// Single knob for LSP requests; if set, overrides hardcoded temps in LSP.
- CodingTemperature *float64 `json:"coding_temperature"`
- // Minimum identifier characters required for manual (TriggerKind=1) invoke
- // to proceed without structural triggers. 0 means always allow.
- ManualInvokeMinPrefix int `json:"manual_invoke_min_prefix"`
-
- // Completion debounce in milliseconds. When &gt; 0, the server waits until
- // there has been no text change for at least this duration before sending
- // an LLM completion request.
- CompletionDebounceMs int `json:"completion_debounce_ms"`
- // Completion throttle in milliseconds. When &gt; 0, caps the minimum spacing
- // between LLM requests (both chat and code-completer paths).
- CompletionThrottleMs int `json:"completion_throttle_ms"`
-
- TriggerCharacters []string `json:"trigger_characters"`
- Provider string `json:"provider"`
+ CodingTemperature *float64 `json:"coding_temperature" toml:"coding_temperature"`
+ // Minimum identifier characters required for manual (TriggerKind=1) invoke
+ // to proceed without structural triggers. 0 means always allow.
+ ManualInvokeMinPrefix int `json:"manual_invoke_min_prefix" toml:"manual_invoke_min_prefix"`
+
+ // Completion debounce in milliseconds. When &gt; 0, the server waits until
+ // there has been no text change for at least this duration before sending
+ // an LLM completion request.
+ CompletionDebounceMs int `json:"completion_debounce_ms" toml:"completion_debounce_ms"`
+ // Completion throttle in milliseconds. When &gt; 0, caps the minimum spacing
+ // between LLM requests (both chat and code-completer paths).
+ CompletionThrottleMs int `json:"completion_throttle_ms" toml:"completion_throttle_ms"`
+
+ TriggerCharacters []string `json:"trigger_characters" toml:"trigger_characters"`
+ Provider string `json:"provider" toml:"provider"`
// Inline prompt trigger characters (default: &gt;text&gt; and &gt;&gt;text&gt;)
- InlineOpen string `json:"inline_open"`
- InlineClose string `json:"inline_close"`
+ InlineOpen string `json:"inline_open" toml:"inline_open"`
+ InlineClose string `json:"inline_close" toml:"inline_close"`
// In-editor chat triggers (default: suffix "&gt;" after one of [?, !, :, ;])
- ChatSuffix string `json:"chat_suffix"`
- ChatPrefixes []string `json:"chat_prefixes"`
+ ChatSuffix string `json:"chat_suffix" toml:"chat_suffix"`
+ ChatPrefixes []string `json:"chat_prefixes" toml:"chat_prefixes"`
// Provider-specific options
- OpenAIBaseURL string `json:"openai_base_url"`
- OpenAIModel string `json:"openai_model"`
+ OpenAIBaseURL string `json:"openai_base_url" toml:"openai_base_url"`
+ OpenAIModel string `json:"openai_model" toml:"openai_model"`
// Default temperature for OpenAI requests (nil means use provider default)
- OpenAITemperature *float64 `json:"openai_temperature"`
- OllamaBaseURL string `json:"ollama_base_url"`
- OllamaModel string `json:"ollama_model"`
+ OpenAITemperature *float64 `json:"openai_temperature" toml:"openai_temperature"`
+ OllamaBaseURL string `json:"ollama_base_url" toml:"ollama_base_url"`
+ OllamaModel string `json:"ollama_model" toml:"ollama_model"`
// Default temperature for Ollama requests (nil means use provider default)
- OllamaTemperature *float64 `json:"ollama_temperature"`
- CopilotBaseURL string `json:"copilot_base_url"`
- CopilotModel string `json:"copilot_model"`
+ 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"`
+ CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"`
}
// Constructor: defaults for App (kept first among functions)
func newDefaultConfig() App <span class="cov5" title="9">{
// Coding-friendly default temperature across providers
- // Users can override per provider in config.json (including 0.0).
+ // Users can override per provider in config.toml (including 0.0).
t := 0.2
return App{
- MaxTokens: 4000,
- ContextMode: "always-full",
- ContextWindowLines: 120,
- MaxContextTokens: 4000,
- LogPreviewLimit: 100,
- CodingTemperature: &amp;t,
- OpenAITemperature: &amp;t,
- OllamaTemperature: &amp;t,
- CopilotTemperature: &amp;t,
- ManualInvokeMinPrefix: 0,
- CompletionDebounceMs: 200,
- CompletionThrottleMs: 0,
- // Inline/chat trigger defaults
- InlineOpen: "&gt;",
- InlineClose: "&gt;",
- ChatSuffix: "&gt;",
- ChatPrefixes: []string{"?", "!", ":", ";"},
- }
+ MaxTokens: 4000,
+ ContextMode: "always-full",
+ ContextWindowLines: 120,
+ MaxContextTokens: 4000,
+ LogPreviewLimit: 100,
+ CodingTemperature: &amp;t,
+ OpenAITemperature: &amp;t,
+ OllamaTemperature: &amp;t,
+ CopilotTemperature: &amp;t,
+ ManualInvokeMinPrefix: 0,
+ CompletionDebounceMs: 200,
+ CompletionThrottleMs: 0,
+ // Inline/chat trigger defaults
+ InlineOpen: "&gt;",
+ InlineClose: "&gt;",
+ ChatSuffix: "&gt;",
+ ChatPrefixes: []string{"?", "!", ":", ";"},
+ }
}</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="cov4" title="8">{
- cfg := newDefaultConfig()
- if logger == nil </span><span class="cov3" title="3">{
- return cfg // Return defaults if no logger is provided (e.g. in tests)
- }</span>
-
- <span class="cov4" title="5">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="5"> {
- if fileCfg, err := loadFromFile(configPath, logger); err == nil &amp;&amp; fileCfg != nil </span><span class="cov3" title="3">{
- cfg.mergeWith(fileCfg)
- }</span>
- // When the config file is missing or invalid, we keep defaults and still
- // apply any environment overrides below.
- }
-
- // Environment overrides (take precedence over file)
- <span class="cov4" title="5">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
- cfg.mergeWith(envCfg)
- }</span>
- <span class="cov4" title="5">return cfg</span>
+ cfg := newDefaultConfig()
+ if logger == nil </span><span class="cov3" title="3">{
+ return cfg // Return defaults if no logger is provided (e.g. in tests)
+ }</span>
+
+ <span class="cov4" title="5">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="5"> {
+ if fileCfg, err := loadFromFile(configPath, logger); err == nil &amp;&amp; fileCfg != nil </span><span class="cov3" title="3">{
+ cfg.mergeWith(fileCfg)
+ }</span>
+ // When the config file is missing or invalid, we keep defaults and still
+ // apply any environment overrides below.
+ }
+
+ // Environment overrides (take precedence over file)
+ <span class="cov4" title="5">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{
+ cfg.mergeWith(envCfg)
+ }</span>
+ <span class="cov4" title="5">return cfg</span>
}
// Private helpers
@@ -296,26 +297,29 @@ func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="co
f, err := os.Open(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 config file %s: %v", path, err)
+ logger.Printf("cannot open TOML config file %s: %v", path, err)
}</span>
<span class="cov2" title="2">return nil, err</span>
}
<span class="cov3" title="4">defer f.Close()
- dec := json.NewDecoder(f)
+ dec := toml.NewDecoder(f)
var fileCfg App
if err := dec.Decode(&amp;fileCfg); err != nil </span><span class="cov1" title="1">{
if logger != nil </span><span class="cov1" title="1">{
- logger.Printf("invalid config file %s: %v", path, err)
+ logger.Printf("invalid TOML config file %s: %v", path, err)
}</span>
<span class="cov1" title="1">return nil, err</span>
}
+ <span class="cov3" title="3">if logger != nil </span><span class="cov3" title="3">{
+ logger.Printf("loaded configuration from %s (TOML)", path)
+ }</span>
<span class="cov3" title="3">return &amp;fileCfg, nil</span>
}
func (a *App) mergeWith(other *App) <span class="cov3" title="4">{
- a.mergeBasics(other)
- a.mergeProviderFields(other)
+ a.mergeBasics(other)
+ a.mergeProviderFields(other)
}</span>
// mergeBasics merges general (non-provider) fields.
@@ -335,32 +339,36 @@ func (a *App) mergeBasics(other *App) <span class="cov3" title="4">{
<span class="cov3" title="4">if other.LogPreviewLimit &gt;= 0 </span><span class="cov3" title="4">{
a.LogPreviewLimit = other.LogPreviewLimit
}</span>
- <span class="cov3" title="4">if other.CodingTemperature != nil </span><span class="cov3" title="3">{ // allow explicit 0.0
- a.CodingTemperature = other.CodingTemperature
- }</span>
- <span class="cov3" title="4">if other.ManualInvokeMinPrefix &gt;= 0 </span><span class="cov3" title="4">{
- a.ManualInvokeMinPrefix = other.ManualInvokeMinPrefix
- }</span>
- <span class="cov3" title="4">if other.CompletionDebounceMs &gt; 0 </span><span class="cov3" title="3">{ a.CompletionDebounceMs = other.CompletionDebounceMs }</span>
- <span class="cov3" title="4">if other.CompletionThrottleMs &gt; 0 </span><span class="cov3" title="3">{ a.CompletionThrottleMs = other.CompletionThrottleMs }</span>
- <span class="cov3" title="4">if len(other.TriggerCharacters) &gt; 0 </span><span class="cov3" title="3">{
- a.TriggerCharacters = slices.Clone(other.TriggerCharacters)
- }</span>
- <span class="cov3" title="4">if s := strings.TrimSpace(other.InlineOpen); s != "" </span><span class="cov0" title="0">{
- a.InlineOpen = s
- }</span>
- <span class="cov3" title="4">if s := strings.TrimSpace(other.InlineClose); s != "" </span><span class="cov0" title="0">{
- a.InlineClose = s
- }</span>
- <span class="cov3" title="4">if s := strings.TrimSpace(other.ChatSuffix); s != "" </span><span class="cov0" title="0">{
- a.ChatSuffix = s
- }</span>
- <span class="cov3" title="4">if len(other.ChatPrefixes) &gt; 0 </span><span class="cov0" title="0">{
- a.ChatPrefixes = slices.Clone(other.ChatPrefixes)
- }</span>
- <span class="cov3" title="4">if s := strings.TrimSpace(other.Provider); s != "" </span><span class="cov3" title="4">{
- a.Provider = s
- }</span>
+ <span class="cov3" title="4">if other.CodingTemperature != nil </span><span class="cov3" title="3">{ // allow explicit 0.0
+ a.CodingTemperature = other.CodingTemperature
+ }</span>
+ <span class="cov3" title="4">if other.ManualInvokeMinPrefix &gt;= 0 </span><span class="cov3" title="4">{
+ a.ManualInvokeMinPrefix = other.ManualInvokeMinPrefix
+ }</span>
+ <span class="cov3" title="4">if other.CompletionDebounceMs &gt; 0 </span><span class="cov3" title="3">{
+ a.CompletionDebounceMs = other.CompletionDebounceMs
+ }</span>
+ <span class="cov3" title="4">if other.CompletionThrottleMs &gt; 0 </span><span class="cov3" title="3">{
+ a.CompletionThrottleMs = other.CompletionThrottleMs
+ }</span>
+ <span class="cov3" title="4">if len(other.TriggerCharacters) &gt; 0 </span><span class="cov3" title="3">{
+ a.TriggerCharacters = slices.Clone(other.TriggerCharacters)
+ }</span>
+ <span class="cov3" title="4">if s := strings.TrimSpace(other.InlineOpen); s != "" </span><span class="cov0" title="0">{
+ a.InlineOpen = s
+ }</span>
+ <span class="cov3" title="4">if s := strings.TrimSpace(other.InlineClose); s != "" </span><span class="cov0" title="0">{
+ a.InlineClose = s
+ }</span>
+ <span class="cov3" title="4">if s := strings.TrimSpace(other.ChatSuffix); s != "" </span><span class="cov0" title="0">{
+ a.ChatSuffix = s
+ }</span>
+ <span class="cov3" title="4">if len(other.ChatPrefixes) &gt; 0 </span><span class="cov0" title="0">{
+ a.ChatPrefixes = slices.Clone(other.ChatPrefixes)
+ }</span>
+ <span class="cov3" title="4">if s := strings.TrimSpace(other.Provider); s != "" </span><span class="cov3" title="4">{
+ a.Provider = s
+ }</span>
}
// mergeProviderFields merges per-provider configuration.
@@ -397,15 +405,15 @@ func (a *App) mergeProviderFields(other *App) <span class="cov3" title="4">{
func getConfigPath() (string, error) <span class="cov4" title="6">{
var configPath string
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" </span><span class="cov4" title="5">{
- configPath = filepath.Join(xdgConfigHome, "hexai", "config.json")
+ configPath = filepath.Join(xdgConfigHome, "hexai", "config.toml")
}</span> else<span class="cov1" title="1"> {
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.json")</span>
+ <span class="cov1" title="1">configPath = filepath.Join(home, ".config", "hexai", "config.toml")</span>
}
- <span class="cov4" title="6">return configPath, nil</span>
+ <span class="cov4" title="6">return configPath, nil</span>
}
// --- Environment overrides ---
@@ -413,100 +421,157 @@ func getConfigPath() (string, error) <span class="cov4" title="6">{
// 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="5">{
- var out App
- var any bool
-
- // helpers
- getenv := func(k string) string </span><span class="cov10" title="120">{ return strings.TrimSpace(os.Getenv(k)) }</span>
- <span class="cov4" title="5">parseInt := func(k string) (int, bool) </span><span class="cov7" title="35">{
- v := getenv(k)
- if v == "" </span><span class="cov7" title="28">{ return 0, false }</span>
- <span class="cov4" title="7">n, err := strconv.Atoi(v)
- if err != nil </span><span class="cov0" title="0">{ if logger != nil </span><span class="cov0" title="0">{ logger.Printf("invalid %s: %v", k, err) }</span> ; <span class="cov0" title="0">return 0, false</span> }
- <span class="cov4" title="7">return n, true</span>
- }
- <span class="cov4" title="5">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov6" title="20">{
- v := getenv(k)
- if v == "" </span><span class="cov6" title="16">{ return nil, false }</span>
- <span class="cov3" title="4">f, err := strconv.ParseFloat(v, 64)
- if err != nil </span><span class="cov0" title="0">{
- if logger != nil </span><span class="cov0" title="0">{ logger.Printf("invalid %s: %v", k, err) }</span>
- <span class="cov0" title="0">return nil, false</span>
+ var out App
+ var any bool
+
+ // helpers
+ getenv := func(k string) string </span><span class="cov10" title="120">{ return strings.TrimSpace(os.Getenv(k)) }</span>
+ <span class="cov4" title="5">parseInt := func(k string) (int, bool) </span><span class="cov7" title="35">{
+ v := getenv(k)
+ if v == "" </span><span class="cov7" title="28">{
+ return 0, false
+ }</span>
+ <span class="cov4" title="7">n, err := strconv.Atoi(v)
+ if err != nil </span><span class="cov0" title="0">{
+ if logger != nil </span><span class="cov0" title="0">{
+ logger.Printf("invalid %s: %v", k, err)
+ }</span>
+ <span class="cov0" title="0">return 0, false</span>
+ }
+ <span class="cov4" title="7">return n, true</span>
}
- <span class="cov3" title="4">return &amp;f, true</span>
- }
-
- <span class="cov4" title="5">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
- out.MaxTokens = n; any = true
- }</span>
- <span class="cov4" title="5">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
- out.ContextMode = s; any = true
- }</span>
- <span class="cov4" title="5">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="5">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="5">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="5">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="5">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="5">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="5">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
- out.CodingTemperature = f; any = true
- }</span>
- <span class="cov4" title="5">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="cov3" title="3">{
- if t := strings.TrimSpace(p); t != "" </span><span class="cov3" title="3">{
- out.TriggerCharacters = append(out.TriggerCharacters, t)
- }</span>
+ <span class="cov4" title="5">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov6" title="20">{
+ v := getenv(k)
+ if v == "" </span><span class="cov6" title="16">{
+ return nil, false
+ }</span>
+ <span class="cov3" title="4">f, err := strconv.ParseFloat(v, 64)
+ if err != nil </span><span class="cov0" title="0">{
+ if logger != nil </span><span class="cov0" title="0">{
+ logger.Printf("invalid %s: %v", k, err)
+ }</span>
+ <span class="cov0" title="0">return nil, false</span>
+ }
+ <span class="cov3" title="4">return &amp;f, true</span>
+ }
+
+ <span class="cov4" title="5">if n, ok := parseInt("HEXAI_MAX_TOKENS"); ok </span><span class="cov1" title="1">{
+ out.MaxTokens = n
+ any = true
+ }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_CONTEXT_MODE"); s != "" </span><span class="cov1" title="1">{
+ out.ContextMode = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">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="5">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="5">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="5">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="5">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="5">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="5">if f, ok := parseFloatPtr("HEXAI_CODING_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ out.CodingTemperature = f
+ any = true
+ }</span>
+ <span class="cov4" title="5">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="cov3" title="3">{
+ if t := strings.TrimSpace(p); t != "" </span><span class="cov3" title="3">{
+ out.TriggerCharacters = append(out.TriggerCharacters, t)
+ }</span>
+ }
+ <span class="cov1" title="1">any = true</span>
}
- <span class="cov1" title="1">any = true</span>
- }
- <span class="cov4" title="5">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{ out.InlineOpen = s; any = true }</span>
- <span class="cov4" title="5">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{ out.InlineClose = s; any = true }</span>
- <span class="cov4" title="5">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{ out.ChatSuffix = s; any = true }</span>
- <span class="cov4" title="5">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">{
- if t := strings.TrimSpace(p); t != "" </span><span class="cov0" title="0">{
- out.ChatPrefixes = append(out.ChatPrefixes, t)
- }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_INLINE_OPEN"); s != "" </span><span class="cov0" title="0">{
+ out.InlineOpen = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_INLINE_CLOSE"); s != "" </span><span class="cov0" title="0">{
+ out.InlineClose = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_CHAT_SUFFIX"); s != "" </span><span class="cov0" title="0">{
+ out.ChatSuffix = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">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">{
+ if t := strings.TrimSpace(p); t != "" </span><span class="cov0" title="0">{
+ out.ChatPrefixes = append(out.ChatPrefixes, t)
+ }</span>
+ }
+ <span class="cov0" title="0">any = true</span>
}
- <span class="cov0" title="0">any = true</span>
- }
- <span class="cov4" title="5">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
- out.Provider = s; any = true
- }</span>
-
- // Provider-specific
- <span class="cov4" title="5">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{ out.OpenAIBaseURL = s; any = true }</span>
- <span class="cov4" title="5">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{ out.OpenAIModel = s; any = true }</span>
- <span class="cov4" title="5">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{ out.OpenAITemperature = f; any = true }</span>
-
- <span class="cov4" title="5">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{ out.OllamaBaseURL = s; any = true }</span>
- <span class="cov4" title="5">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{ out.OllamaModel = s; any = true }</span>
- <span class="cov4" title="5">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{ out.OllamaTemperature = f; any = true }</span>
-
- <span class="cov4" title="5">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{ out.CopilotBaseURL = s; any = true }</span>
- <span class="cov4" title="5">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{ out.CopilotModel = s; any = true }</span>
- <span class="cov4" title="5">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{ out.CopilotTemperature = f; any = true }</span>
-
- <span class="cov4" title="5">if !any </span><span class="cov3" title="4">{
- return nil
- }</span>
- <span class="cov1" title="1">return &amp;out</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_PROVIDER"); s != "" </span><span class="cov1" title="1">{
+ out.Provider = s
+ any = true
+ }</span>
+
+ // Provider-specific
+ <span class="cov4" title="5">if s := getenv("HEXAI_OPENAI_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ out.OpenAIBaseURL = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_OPENAI_MODEL"); s != "" </span><span class="cov1" title="1">{
+ out.OpenAIModel = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if f, ok := parseFloatPtr("HEXAI_OPENAI_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ out.OpenAITemperature = f
+ any = true
+ }</span>
+
+ <span class="cov4" title="5">if s := getenv("HEXAI_OLLAMA_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ out.OllamaBaseURL = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_OLLAMA_MODEL"); s != "" </span><span class="cov1" title="1">{
+ out.OllamaModel = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if f, ok := parseFloatPtr("HEXAI_OLLAMA_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ out.OllamaTemperature = f
+ any = true
+ }</span>
+
+ <span class="cov4" title="5">if s := getenv("HEXAI_COPILOT_BASE_URL"); s != "" </span><span class="cov1" title="1">{
+ out.CopilotBaseURL = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if s := getenv("HEXAI_COPILOT_MODEL"); s != "" </span><span class="cov1" title="1">{
+ out.CopilotModel = s
+ any = true
+ }</span>
+ <span class="cov4" title="5">if f, ok := parseFloatPtr("HEXAI_COPILOT_TEMPERATURE"); ok </span><span class="cov1" title="1">{
+ out.CopilotTemperature = f
+ any = true
+ }</span>
+
+ <span class="cov4" title="5">if !any </span><span class="cov3" title="4">{
+ return nil
+ }</span>
+ <span class="cov1" title="1">return &amp;out</span>
}
</pre>
@@ -515,14 +580,14 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="5">{
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"
@@ -532,14 +597,14 @@ import (
// Run executes the Hexai CLI behavior given arguments and I/O streams.
// It assumes flags have already been parsed by the caller.
func Run(ctx context.Context, args []string, stdin io.Reader, stdout, stderr io.Writer) error <span class="cov1" title="1">{
- // 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>
+ // 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>
<span class="cov0" title="0">return RunWithClient(ctx, args, stdin, stdout, stderr, client)</span>
}
@@ -583,29 +648,29 @@ 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>
+ 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>
}
// buildMessages creates system and user messages based on input content.
@@ -681,7 +746,7 @@ type ServerFactory func(r io.Reader, w io.Writer, logger *log.Logger, opts lsp.S
func Run(logPath string, stdin io.Reader, stdout io.Writer, stderr io.Writer) error <span class="cov1" title="1">{
logger := log.New(stderr, "hexai-lsp ", log.LstdFlags|log.Lmsgprefix)
if strings.TrimSpace(logPath) != "" </span><span class="cov1" title="1">{
- f, err := os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
+ f, err := os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0o644)
if err != nil </span><span class="cov0" title="0">{
logger.Fatalf("failed to open log file: %v", err)
}</span>
@@ -733,16 +798,16 @@ func buildClientIfNil(cfg appconfig.App, client llm.Client) llm.Client <span cla
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="cov10" title="6">{
- 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">{
- cpKey = os.Getenv("COPILOT_API_KEY")
- }</span>
+ // 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">{
+ 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">{
+ 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">{
logging.Logf("lsp ", "llm disabled: %v", err)
return nil
@@ -762,23 +827,23 @@ func ensureFactory(factory ServerFactory) ServerFactory <span class="cov10" titl
}
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,
- }
+ 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,
+ }
}</span>
</pre>
@@ -788,6 +853,7 @@ package llm
import (
"bytes"
"context"
+ "encoding/base64"
"encoding/json"
"errors"
"fmt"
@@ -797,7 +863,6 @@ import (
"strings"
"time"
- "encoding/base64"
appver "codeberg.org/snonux/hexai/internal"
"codeberg.org/snonux/hexai/internal/logging"
)
@@ -946,10 +1011,14 @@ func buildCopilotChatRequest(o Options, messages []Message, defaultTemp *float64
}
func (c copilotClient) postJSON(ctx context.Context, url string, body []byte, headers map[string]string) (*http.Response, error) <span class="cov3" title="8">{
- req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, bytes.NewReader(body))
- if err != nil </span><span class="cov0" title="0">{ return nil, err }</span>
- <span class="cov3" title="8">for k, v := range headers </span><span class="cov6" title="88">{ req.Header.Set(k, v) }</span>
- <span class="cov3" title="8">return c.httpClient.Do(req)</span>
+ req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, bytes.NewReader(body))
+ if err != nil </span><span class="cov0" title="0">{
+ return nil, err
+ }</span>
+ <span class="cov3" title="8">for k, v := range headers </span><span class="cov6" title="88">{
+ req.Header.Set(k, v)
+ }</span>
+ <span class="cov3" title="8">return c.httpClient.Do(req)</span>
}
func handleCopilotNon2xx(resp *http.Response, start time.Time) error <span class="cov3" title="6">{
@@ -978,55 +1047,73 @@ func decodeCopilotChat(resp *http.Response, start time.Time) (copilotChatRespons
// --- Copilot session token management ---
type ghCopilotTokenResp struct {
- Token string `json:"token"`
+ Token string `json:"token"`
}
func (c *copilotClient) ensureSession(ctx context.Context) error <span class="cov4" title="16">{
- // If token valid for &gt;60s, reuse
- if c.sessionToken != "" &amp;&amp; time.Now().Add(60*time.Second).Before(c.tokenExpiry) </span><span class="cov3" title="8">{
- return nil
- }</span>
- <span class="cov3" title="8">if strings.TrimSpace(c.apiKey) == "" </span><span class="cov0" title="0">{
- return errors.New("missing Copilot API key")
- }</span>
- <span class="cov3" title="8">req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://api.github.com/copilot_internal/v2/token", nil)
- if err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov3" title="8">req.Header.Set("Authorization", "Bearer "+c.apiKey)
- req.Header.Set("Accept", "application/json")
- req.Header.Set("User-Agent", "hexai/"+appver.Version)
- resp, err := c.httpClient.Do(req)
- if err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov3" title="8">defer resp.Body.Close()
- if resp.StatusCode &lt; 200 || resp.StatusCode &gt;= 300 </span><span class="cov0" title="0">{
- return fmt.Errorf("copilot token http error: %d", resp.StatusCode)
- }</span>
- <span class="cov3" title="8">var out ghCopilotTokenResp
- if err := json.NewDecoder(resp.Body).Decode(&amp;out); err != nil </span><span class="cov0" title="0">{ return err }</span>
- <span class="cov3" title="8">if strings.TrimSpace(out.Token) == "" </span><span class="cov0" title="0">{ return errors.New("empty copilot session token") }</span>
- // Parse JWT exp
- <span class="cov3" title="8">exp := parseJWTExp(out.Token)
- if exp.IsZero() </span><span class="cov3" title="8">{ exp = time.Now().Add(10 * time.Minute) }</span>
- <span class="cov3" title="8">c.sessionToken = out.Token
- c.tokenExpiry = exp
- return nil</span>
+ // If token valid for &gt;60s, reuse
+ if c.sessionToken != "" &amp;&amp; time.Now().Add(60*time.Second).Before(c.tokenExpiry) </span><span class="cov3" title="8">{
+ return nil
+ }</span>
+ <span class="cov3" title="8">if strings.TrimSpace(c.apiKey) == "" </span><span class="cov0" title="0">{
+ return errors.New("missing Copilot API key")
+ }</span>
+ <span class="cov3" title="8">req, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://api.github.com/copilot_internal/v2/token", nil)
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov3" title="8">req.Header.Set("Authorization", "Bearer "+c.apiKey)
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", "hexai/"+appver.Version)
+ resp, err := c.httpClient.Do(req)
+ if err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov3" title="8">defer resp.Body.Close()
+ if resp.StatusCode &lt; 200 || resp.StatusCode &gt;= 300 </span><span class="cov0" title="0">{
+ return fmt.Errorf("copilot token http error: %d", resp.StatusCode)
+ }</span>
+ <span class="cov3" title="8">var out ghCopilotTokenResp
+ if err := json.NewDecoder(resp.Body).Decode(&amp;out); err != nil </span><span class="cov0" title="0">{
+ return err
+ }</span>
+ <span class="cov3" title="8">if strings.TrimSpace(out.Token) == "" </span><span class="cov0" title="0">{
+ return errors.New("empty copilot session token")
+ }</span>
+ // Parse JWT exp
+ <span class="cov3" title="8">exp := parseJWTExp(out.Token)
+ if exp.IsZero() </span><span class="cov3" title="8">{
+ exp = time.Now().Add(10 * time.Minute)
+ }</span>
+ <span class="cov3" title="8">c.sessionToken = out.Token
+ c.tokenExpiry = exp
+ return nil</span>
}
var jwtExpRe = regexp.MustCompile(`"exp"\s*:\s*([0-9]+)`) // fallback if we can't base64 decode
func parseJWTExp(token string) time.Time <span class="cov3" title="9">{
- parts := strings.Split(token, ".")
- if len(parts) &lt; 2 </span><span class="cov3" title="8">{ return time.Time{} }</span>
- <span class="cov1" title="1">b, err := base64.RawURLEncoding.DecodeString(parts[1])
- if err != nil </span><span class="cov0" title="0">{
- if m := jwtExpRe.FindStringSubmatch(token); len(m) == 2 </span><span class="cov0" title="0">{
- if n, err2 := parseInt64(m[1]); err2 == nil </span><span class="cov0" title="0">{ return time.Unix(n, 0) }</span>
+ parts := strings.Split(token, ".")
+ if len(parts) &lt; 2 </span><span class="cov3" title="8">{
+ return time.Time{}
+ }</span>
+ <span class="cov1" title="1">b, err := base64.RawURLEncoding.DecodeString(parts[1])
+ if err != nil </span><span class="cov0" title="0">{
+ if m := jwtExpRe.FindStringSubmatch(token); len(m) == 2 </span><span class="cov0" title="0">{
+ if n, err2 := parseInt64(m[1]); err2 == nil </span><span class="cov0" title="0">{
+ return time.Unix(n, 0)
+ }</span>
+ }
+ <span class="cov0" title="0">return time.Time{}</span>
+ }
+ <span class="cov1" title="1">var payload struct {
+ Exp int64 `json:"exp"`
}
- <span class="cov0" title="0">return time.Time{}</span>
- }
- <span class="cov1" title="1">var payload struct{ Exp int64 `json:"exp"` }
- _ = json.Unmarshal(b, &amp;payload)
- if payload.Exp == 0 </span><span class="cov0" title="0">{ return time.Time{} }</span>
- <span class="cov1" title="1">return time.Unix(payload.Exp, 0)</span>
+ _ = json.Unmarshal(b, &amp;payload)
+ if payload.Exp == 0 </span><span class="cov0" title="0">{
+ return time.Time{}
+ }</span>
+ <span class="cov1" title="1">return time.Unix(payload.Exp, 0)</span>
}
func parseInt64(s string) (int64, error) <span class="cov1" title="1">{ var n int64; _, err := fmt.Sscan(s, &amp;n); return n, err }</span>
@@ -1034,99 +1121,120 @@ func parseInt64(s string) (int64, error) <span class="cov1" title="1">{ var n in
// --- Copilot headers ---
func (c *copilotClient) headersChat() map[string]string <span class="cov3" title="5">{
- _ = c.ensureSession(context.Background())
- h := map[string]string{
- "Content-Type": "application/json; charset=utf-8",
- "Accept": "application/json",
- "Authorization": "Bearer " + c.sessionToken,
- "User-Agent": "GitHubCopilotChat/0.8.0",
- "Editor-Plugin-Version": "copilot-chat/0.8.0",
- "Editor-Version": "vscode/1.85.1",
- "Openai-Intent": "conversation-panel",
- "Openai-Organization": "github-copilot",
- "VScode-MachineId": randHex(64),
- "VScode-SessionId": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
- "X-Request-Id": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
- }
- return h
+ _ = c.ensureSession(context.Background())
+ h := map[string]string{
+ "Content-Type": "application/json; charset=utf-8",
+ "Accept": "application/json",
+ "Authorization": "Bearer " + c.sessionToken,
+ "User-Agent": "GitHubCopilotChat/0.8.0",
+ "Editor-Plugin-Version": "copilot-chat/0.8.0",
+ "Editor-Version": "vscode/1.85.1",
+ "Openai-Intent": "conversation-panel",
+ "Openai-Organization": "github-copilot",
+ "VScode-MachineId": randHex(64),
+ "VScode-SessionId": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
+ "X-Request-Id": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
+ }
+ return h
}</span>
func (c *copilotClient) headersGhost() map[string]string <span class="cov2" title="3">{
- _ = c.ensureSession(context.Background())
- h := map[string]string{
- "Content-Type": "application/json; charset=utf-8",
- "Accept": "*/*",
- "Authorization": "Bearer " + c.sessionToken,
- "User-Agent": "GithubCopilot/1.155.0",
- "Editor-Plugin-Version": "copilot/1.155.0",
- "Editor-Version": "vscode/1.85.1",
- "Openai-Intent": "copilot-ghost",
- "Openai-Organization": "github-copilot",
- "VScode-MachineId": randHex(64),
- "VScode-SessionId": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
- "X-Request-Id": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
- }
- return h
+ _ = c.ensureSession(context.Background())
+ h := map[string]string{
+ "Content-Type": "application/json; charset=utf-8",
+ "Accept": "*/*",
+ "Authorization": "Bearer " + c.sessionToken,
+ "User-Agent": "GithubCopilot/1.155.0",
+ "Editor-Plugin-Version": "copilot/1.155.0",
+ "Editor-Version": "vscode/1.85.1",
+ "Openai-Intent": "copilot-ghost",
+ "Openai-Organization": "github-copilot",
+ "VScode-MachineId": randHex(64),
+ "VScode-SessionId": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
+ "X-Request-Id": randHex(8) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(4) + "-" + randHex(12),
+ }
+ return h
}</span>
func randHex(n int) string <span class="cov6" title="88">{
- const hex = "0123456789abcdef"
- b := make([]byte, n)
- for i := range b </span><span class="cov10" title="1024">{
- b[i] = hex[int(time.Now().UnixNano()+int64(i))%len(hex)]
- }</span>
- <span class="cov6" title="88">return string(b)</span>
+ const hex = "0123456789abcdef"
+ b := make([]byte, n)
+ for i := range b </span><span class="cov10" title="1024">{
+ b[i] = hex[int(time.Now().UnixNano()+int64(i))%len(hex)]
+ }</span>
+ <span class="cov6" title="88">return string(b)</span>
}
// --- Codex-style code completion ---
// CodeCompletion implements CodeCompleter; returns up to n suggestions.
func (c copilotClient) CodeCompletion(ctx context.Context, prompt string, suffix string, n int, language string, temperature float64) ([]string, error) <span class="cov2" title="3">{
- if strings.TrimSpace(c.apiKey) == "" </span><span class="cov0" title="0">{ return nil, errors.New("missing Copilot API key") }</span>
- <span class="cov2" title="3">if err := c.ensureSession(ctx); err != nil </span><span class="cov0" title="0">{ return nil, err }</span>
- <span class="cov2" title="3">if n &lt;= 0 </span><span class="cov0" title="0">{ n = 1 }</span>
- <span class="cov2" title="3">maxTokens := 500
- body := map[string]any{
- "extra": map[string]any{
- "language": language,
- "next_indent": 0,
- "prompt_tokens": 500,
- "suffix_tokens": 400,
- "trim_by_indentation": true,
- },
- "max_tokens": maxTokens,
- "n": n,
- "nwo": "hexai",
- "prompt": prompt,
- "stop": []string{"\n\n"},
- "stream": true,
- "suffix": suffix,
- "temperature": temperature,
- "top_p": 1,
- }
- buf, _ := json.Marshal(body)
- url := "https://copilot-proxy.githubusercontent.com/v1/engines/copilot-codex/completions"
- resp, err := c.postJSON(ctx, url, buf, c.headersGhost())
- if err != nil </span><span class="cov0" title="0">{ return nil, err }</span>
- <span class="cov2" title="3">defer resp.Body.Close()
- if resp.StatusCode &lt; 200 || resp.StatusCode &gt;= 300 </span><span class="cov0" title="0">{
- return nil, fmt.Errorf("copilot codex http error: %d", resp.StatusCode)
- }</span>
- // Read all and parse lines that start with "data: " accumulating by index
- <span class="cov2" title="3">raw, _ := io.ReadAll(resp.Body)
- byIndex := make(map[int]string)
- lines := strings.Split(string(raw), "\n")
- for _, ln := range lines </span><span class="cov3" title="10">{
- if !strings.HasPrefix(ln, "data: ") </span><span class="cov2" title="3">{ continue</span> }
- <span class="cov3" title="7">var evt struct{ Choices []struct{ Index int `json:"index"`; Text string `json:"text"` } `json:"choices"` }
- if err := json.Unmarshal([]byte(strings.TrimPrefix(ln, "data: ")), &amp;evt); err != nil </span><span class="cov2" title="4">{ continue</span> }
- <span class="cov2" title="3">for _, ch := range evt.Choices </span><span class="cov2" title="3">{ byIndex[ch.Index] += ch.Text }</span>
- }
- <span class="cov2" title="3">out := make([]string, 0, len(byIndex))
- for i := 0; i &lt; n; i++ </span><span class="cov2" title="4">{
- if s, ok := byIndex[i]; ok &amp;&amp; strings.TrimSpace(s) != "" </span><span class="cov2" title="3">{ out = append(out, s) }</span>
- }
- <span class="cov2" title="3">return out, nil</span>
+ if strings.TrimSpace(c.apiKey) == "" </span><span class="cov0" title="0">{
+ return nil, errors.New("missing Copilot API key")
+ }</span>
+ <span class="cov2" title="3">if err := c.ensureSession(ctx); err != nil </span><span class="cov0" title="0">{
+ return nil, err
+ }</span>
+ <span class="cov2" title="3">if n &lt;= 0 </span><span class="cov0" title="0">{
+ n = 1
+ }</span>
+ <span class="cov2" title="3">maxTokens := 500
+ body := map[string]any{
+ "extra": map[string]any{
+ "language": language,
+ "next_indent": 0,
+ "prompt_tokens": 500,
+ "suffix_tokens": 400,
+ "trim_by_indentation": true,
+ },
+ "max_tokens": maxTokens,
+ "n": n,
+ "nwo": "hexai",
+ "prompt": prompt,
+ "stop": []string{"\n\n"},
+ "stream": true,
+ "suffix": suffix,
+ "temperature": temperature,
+ "top_p": 1,
+ }
+ buf, _ := json.Marshal(body)
+ url := "https://copilot-proxy.githubusercontent.com/v1/engines/copilot-codex/completions"
+ resp, err := c.postJSON(ctx, url, buf, c.headersGhost())
+ if err != nil </span><span class="cov0" title="0">{
+ return nil, err
+ }</span>
+ <span class="cov2" title="3">defer resp.Body.Close()
+ if resp.StatusCode &lt; 200 || resp.StatusCode &gt;= 300 </span><span class="cov0" title="0">{
+ return nil, fmt.Errorf("copilot codex http error: %d", resp.StatusCode)
+ }</span>
+ // Read all and parse lines that start with "data: " accumulating by index
+ <span class="cov2" title="3">raw, _ := io.ReadAll(resp.Body)
+ byIndex := make(map[int]string)
+ lines := strings.Split(string(raw), "\n")
+ for _, ln := range lines </span><span class="cov3" title="10">{
+ if !strings.HasPrefix(ln, "data: ") </span><span class="cov2" title="3">{
+ continue</span>
+ }
+ <span class="cov3" title="7">var evt struct {
+ Choices []struct {
+ Index int `json:"index"`
+ Text string `json:"text"`
+ } `json:"choices"`
+ }
+ if err := json.Unmarshal([]byte(strings.TrimPrefix(ln, "data: ")), &amp;evt); err != nil </span><span class="cov2" title="4">{
+ continue</span>
+ }
+ <span class="cov2" title="3">for _, ch := range evt.Choices </span><span class="cov2" title="3">{
+ byIndex[ch.Index] += ch.Text
+ }</span>
+ }
+ <span class="cov2" title="3">out := make([]string, 0, len(byIndex))
+ for i := 0; i &lt; n; i++ </span><span class="cov2" title="4">{
+ if s, ok := byIndex[i]; ok &amp;&amp; strings.TrimSpace(s) != "" </span><span class="cov2" title="3">{
+ out = append(out, s)
+ }</span>
+ }
+ <span class="cov2" title="3">return out, nil</span>
}
// newLineDataReader wraps a streaming body and exposes a JSON decoder that
@@ -1685,20 +1793,20 @@ type Client interface {
// token-by-token streaming responses. Callers can type-assert to Streamer and
// fall back to Client.Chat when not implemented.
type Streamer interface {
- // ChatStream sends chat messages and invokes onDelta with incremental text
- // chunks as they are produced by the model. Implementations should call
- // onDelta with empty strings sparingly (prefer only non-empty chunks).
- ChatStream(ctx context.Context, messages []Message, onDelta func(string), opts ...RequestOption) error
+ // ChatStream sends chat messages and invokes onDelta with incremental text
+ // chunks as they are produced by the model. Implementations should call
+ // onDelta with empty strings sparingly (prefer only non-empty chunks).
+ ChatStream(ctx context.Context, messages []Message, onDelta func(string), opts ...RequestOption) error
}
// CodeCompleter is an optional interface for providers that support a
// prompt/suffix code-completion API (e.g., Copilot Codex endpoint). Clients
// can type-assert to this and prefer it over chat when available.
type CodeCompleter interface {
- // CodeCompletion requests up to n suggestions given a left-hand prompt and
- // right-hand suffix around the cursor. Language is advisory and may be
- // ignored. Temperature applies when provider supports it.
- CodeCompletion(ctx context.Context, prompt string, suffix string, n int, language string, temperature float64) ([]string, error)
+ // CodeCompletion requests up to n suggestions given a left-hand prompt and
+ // right-hand suffix around the cursor. Language is advisory and may be
+ // ignored. Temperature applies when provider supports it.
+ CodeCompletion(ctx context.Context, prompt string, suffix string, n int, language string, temperature float64) ([]string, error)
}
// Options for a request. Providers may ignore unsupported fields.
@@ -1714,65 +1822,65 @@ 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="19">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> }
+func WithMaxTokens(n int) RequestOption <span class="cov10" title="20">{ 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>
}
// Config defines provider configuration read from the Hexai config file.
type Config struct {
- Provider string
- // OpenAI options
- OpenAIBaseURL string
- OpenAIModel string
- OpenAITemperature *float64
- // Ollama options
- OllamaBaseURL string
- OllamaModel string
- OllamaTemperature *float64
- // Copilot options
- CopilotBaseURL string
- CopilotModel string
- CopilotTemperature *float64
+ Provider string
+ // OpenAI options
+ OpenAIBaseURL string
+ OpenAIModel string
+ OpenAITemperature *float64
+ // Ollama options
+ OllamaBaseURL string
+ OllamaModel string
+ OllamaTemperature *float64
+ // Copilot options
+ CopilotBaseURL string
+ CopilotModel string
+ CopilotTemperature *float64
}
// 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="cov9" title="14">{
- p := strings.ToLower(strings.TrimSpace(cfg.Provider))
- if p == "" </span><span class="cov6" title="6">{
- p = "openai"
- }</span>
- <span class="cov9" title="14">switch p </span>{
- case "openai":<span class="cov8" title="10">
- if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov5" 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="cov5" title="4">{
- 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">{
- 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="cov3" title="2">
- 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">{
- t := 0.2
- cfg.CopilotTemperature = &amp;t
- }</span>
- <span class="cov1" title="1">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>
- }
+func NewFromConfig(cfg Config, openAIAPIKey, copilotAPIKey string) (Client, error) <span class="cov8" title="14">{
+ p := strings.ToLower(strings.TrimSpace(cfg.Provider))
+ if p == "" </span><span class="cov6" title="6">{
+ p = "openai"
+ }</span>
+ <span class="cov8" title="14">switch p </span>{
+ case "openai":<span class="cov7" title="10">
+ if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov5" 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="cov5" title="4">{
+ 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">{
+ 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="cov3" title="2">
+ 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">{
+ t := 0.2
+ cfg.CopilotTemperature = &amp;t
+ }</span>
+ <span class="cov1" title="1">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>
@@ -1800,7 +1908,8 @@ func NewChatLogger(provider string) ChatLogger <span class="cov10" title="36">{
func (cl ChatLogger) LogStart(stream bool, model string, temp float64, maxTokens int, stop []string, messages []struct {
Role string
Content string
-}) <span class="cov8" title="24">{
+},
+) <span class="cov8" title="24">{
chatOrStream := "chat"
if stream </span><span class="cov6" title="8">{
chatOrStream = "stream"
@@ -1824,13 +1933,13 @@ import (
// ANSI color utilities shared across Hexai.
const (
- AnsiBgBlack = "\x1b[40m"
- AnsiGrey = "\x1b[90m"
- AnsiCyan = "\x1b[36m"
- AnsiGreen = "\x1b[32m"
- AnsiYellow = "\x1b[33m"
- AnsiRed = "\x1b[31m"
- AnsiReset = "\x1b[0m"
+ AnsiBgBlack = "\x1b[40m"
+ AnsiGrey = "\x1b[90m"
+ AnsiCyan = "\x1b[36m"
+ AnsiGreen = "\x1b[32m"
+ AnsiYellow = "\x1b[33m"
+ AnsiRed = "\x1b[31m"
+ AnsiReset = "\x1b[0m"
)
// AnsiBase is the default style: black background + grey foreground.
@@ -1843,11 +1952,11 @@ var std *log.Logger
func Bind(l *log.Logger) <span class="cov3" title="4">{ 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="137">{
+func Logf(prefix, format string, args ...any) <span class="cov10" title="141">{
if std == nil </span><span class="cov9" title="101">{
return
}</span>
- <span class="cov7" title="36">msg := fmt.Sprintf(format, args...)
+ <span class="cov7" title="40">msg := fmt.Sprintf(format, args...)
std.Print(AnsiBase + prefix + msg + AnsiReset)</span>
}
@@ -1864,7 +1973,7 @@ func PreviewForLog(s string) string <span class="cov7" title="35">{
if len(s) &lt;= logPreviewLimit </span><span class="cov2" title="2">{
return s
}</span>
- <span class="cov3" title="3">return s[:logPreviewLimit] + "…"</span>
+ <span class="cov2" title="3">return s[:logPreviewLimit] + "…"</span>
}
<span class="cov7" title="30">return s</span>
}
@@ -1874,8 +1983,9 @@ func PreviewForLog(s string) string <span class="cov7" title="35">{
package lsp
import (
- "codeberg.org/snonux/hexai/internal/logging"
"strings"
+
+ "codeberg.org/snonux/hexai/internal/logging"
)
// buildAdditionalContext builds extra context messages based on the configured mode.
@@ -1969,7 +2079,7 @@ type document struct {
lines []string
}
-func (s *Server) setDocument(uri, text string) <span class="cov8" title="25">{
+func (s *Server) setDocument(uri, text string) <span class="cov8" title="27">{
s.mu.Lock()
defer s.mu.Unlock()
s.docs[uri] = &amp;document{uri: uri, text: text, lines: splitLines(text)}
@@ -1981,20 +2091,20 @@ func (s *Server) deleteDocument(uri string) <span class="cov1" title="1">{
delete(s.docs, uri)
}</span>
-func (s *Server) markActivity() <span class="cov4" title="4">{
+func (s *Server) markActivity() <span class="cov3" title="4">{
s.mu.Lock()
s.lastInput = time.Now()
s.mu.Unlock()
}</span>
-func (s *Server) getDocument(uri string) *document <span class="cov9" title="40">{
+func (s *Server) getDocument(uri string) *document <span class="cov9" title="46">{
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="62">{
+func splitLines(sx string) []string <span class="cov10" title="66">{
sx = strings.ReplaceAll(sx, "\r\n", "\n")
return strings.Split(sx, "\n")
}</span>
@@ -2004,28 +2114,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="cov4" title="4">idx := pos.Line
+ <span class="cov3" title="4">idx := pos.Line
if idx &lt; 0 </span><span class="cov0" title="0">{
idx = 0
}</span>
- <span class="cov4" title="4">if idx &gt;= len(d.lines) </span><span class="cov0" title="0">{
+ <span class="cov3" title="4">if idx &gt;= len(d.lines) </span><span class="cov0" title="0">{
idx = len(d.lines) - 1
}</span>
- <span class="cov4" title="4">current = d.lines[idx]
- if idx-1 &gt;= 0 </span><span class="cov4" title="4">{
+ <span class="cov3" title="4">current = d.lines[idx]
+ if idx-1 &gt;= 0 </span><span class="cov3" title="4">{
above = d.lines[idx-1]
}</span>
- <span class="cov4" title="4">if idx+1 &lt; len(d.lines) </span><span class="cov4" title="4">{
+ <span class="cov3" title="4">if idx+1 &lt; len(d.lines) </span><span class="cov3" title="4">{
below = d.lines[idx+1]
}</span>
- <span class="cov4" title="4">for i := idx; i &gt;= 0; i-- </span><span class="cov4" title="6">{
+ <span class="cov3" title="4">for i := idx; i &gt;= 0; i-- </span><span class="cov4" title="6">{
line := strings.TrimSpace(d.lines[i])
- if hasAny(line, []string{"func ", "def ", "class ", "fn ", "procedure ", "sub "}) </span><span class="cov4" title="4">{
+ if hasAny(line, []string{"func ", "def ", "class ", "fn ", "procedure ", "sub "}) </span><span class="cov3" title="4">{
funcCtx = line
break</span>
}
}
- <span class="cov4" title="4">return</span>
+ <span class="cov3" title="4">return above, current, below, funcCtx</span>
}
// isDefiningNewFunction returns true when the cursor appears to be within
@@ -2060,7 +2170,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="cov4" title="4">{
+ <span class="cov3" title="3">for i := sigStart; i &lt;= idx; i++ </span><span class="cov3" title="4">{
line := d.lines[i]
brace := strings.Index(line, "{")
if brace &gt;= 0 </span><span class="cov2" title="2">{
@@ -2077,28 +2187,28 @@ func (s *Server) isDefiningNewFunction(uri string, pos Position) bool <span clas
}
func hasAny(s string, needles []string) bool <span class="cov4" title="6">{
- for _, n := range needles </span><span class="cov7" title="16">{
- if strings.Contains(s, n) </span><span class="cov4" title="4">{
+ for _, n := range needles </span><span class="cov6" title="16">{
+ if strings.Contains(s, n) </span><span class="cov3" title="4">{
return true
}</span>
}
<span class="cov2" title="2">return false</span>
}
-func trimLen(s string) string <span class="cov8" title="38">{
+func trimLen(s string) string <span class="cov8" title="39">{
s = strings.TrimSpace(s)
if len(s) &gt; 200 </span><span class="cov1" title="1">{
return s[:200] + "…"
}</span>
- <span class="cov8" title="37">return s</span>
+ <span class="cov8" title="38">return s</span>
}
-func firstLine(s string) string <span class="cov7" title="20">{
+func firstLine(s string) string <span class="cov7" title="21">{
s = strings.ReplaceAll(s, "\r\n", "\n")
- if idx := strings.IndexByte(s, '\n'); idx &gt;= 0 </span><span class="cov4" title="4">{
+ if idx := strings.IndexByte(s, '\n'); idx &gt;= 0 </span><span class="cov4" title="5">{
return s[:idx]
}</span>
- <span class="cov7" title="16">return s</span>
+ <span class="cov6" title="16">return s</span>
}
</pre>
@@ -2155,7 +2265,7 @@ func findFirstInstructionInLine(line string) (instr string, cleaned string, ok b
text string
}
cands := []cand{}
- if t, l, r, ok := findStrictSemicolonTag(line); ok </span><span class="cov5" title="6">{
+ 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">{
@@ -2187,13 +2297,13 @@ func findFirstInstructionInLine(line string) (instr string, cleaned string, ok b
return "", line, false
}</span>
// pick earliest start index
- <span class="cov8" title="16">best := cands[0]
+ <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="cov8" title="16">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
+ <span class="cov7" title="16">cleaned = strings.TrimRight(line[:best.start]+line[best.end:], " \t")
return best.text, cleaned, true</span>
}
@@ -2292,33 +2402,33 @@ func (s *Server) reply(id json.RawMessage, result any, err *RespError) <span cla
// --- small completion cache (last ~10 entries) ---
-func (s *Server) completionCacheKey(p CompletionParams, above, current, below, funcCtx string, inParams bool, hasExtra bool, extraText string) string <span class="cov7" title="12">{
+func (s *Server) completionCacheKey(p CompletionParams, above, current, below, funcCtx string, inParams bool, hasExtra bool, extraText string) string <span class="cov7" title="13">{
// Normalize left-of-cursor by trimming trailing spaces/tabs
idx := p.Position.Character
if idx &gt; len(current) </span><span class="cov0" title="0">{
idx = len(current)
}</span>
- <span class="cov7" title="12">left := strings.TrimRight(current[:idx], " \t")
+ <span class="cov7" title="13">left := strings.TrimRight(current[:idx], " \t")
right := ""
if idx &lt; len(current) </span><span class="cov0" title="0">{
right = current[idx:]
}</span>
- <span class="cov7" title="12">prov := ""
+ <span class="cov7" title="13">prov := ""
model := ""
- if s.llmClient != nil </span><span class="cov7" title="12">{
+ if s.llmClient != nil </span><span class="cov7" title="13">{
prov = s.llmClient.Name()
model = s.llmClient.DefaultModel()
}</span>
- <span class="cov7" title="12">temp := ""
+ <span class="cov7" title="13">temp := ""
if s.codingTemperature != nil </span><span class="cov0" title="0">{
temp = fmt.Sprintf("%.3f", *s.codingTemperature)
}</span>
- <span class="cov7" title="12">extra := ""
+ <span class="cov7" title="13">extra := ""
if hasExtra </span><span class="cov0" title="0">{
extra = strings.TrimSpace(extraText)
}</span>
// Compose a key from essential context parts
- <span class="cov7" title="12">return strings.Join([]string{
+ <span class="cov7" title="13">return strings.Join([]string{
"v1", // version for future-proofing
prov,
model,
@@ -2347,13 +2457,13 @@ func (s *Server) completionCacheGet(key string) (string, bool) <span class="cov6
return v, true</span>
}
-func (s *Server) completionCachePut(key, value string) <span class="cov6" title="9">{
+func (s *Server) completionCachePut(key, value string) <span class="cov6" title="10">{
s.mu.Lock()
defer s.mu.Unlock()
- if s.compCache == nil </span><span class="cov1" title="1">{
+ if s.compCache == nil </span><span class="cov2" title="2">{
s.compCache = make(map[string]string)
}</span>
- <span class="cov6" title="9">if _, exists := s.compCache[key]; !exists </span><span class="cov6" title="9">{
+ <span class="cov6" title="10">if _, exists := s.compCache[key]; !exists </span><span class="cov6" title="10">{
s.compCacheOrder = append(s.compCacheOrder, key)
s.compCache[key] = value
if len(s.compCacheOrder) &gt; 10 </span><span class="cov0" title="0">{
@@ -2362,7 +2472,7 @@ func (s *Server) completionCachePut(key, value string) <span class="cov6" title=
s.compCacheOrder = s.compCacheOrder[1:]
delete(s.compCache, old)
}</span>
- <span class="cov6" title="9">return</span>
+ <span class="cov6" title="10">return</span>
}
// update existing and mark most-recent
<span class="cov0" title="0">s.compCache[key] = value
@@ -2389,30 +2499,30 @@ func (s *Server) compCacheTouchLocked(key string) <span class="cov1" title="1">{
// by typing one of our configured trigger characters. It checks the LSP
// CompletionContext if provided and also falls back to inspecting the character
// immediately to the left of the cursor.
-func (s *Server) isTriggerEvent(p CompletionParams, current string) bool <span class="cov8" title="21">{
+func (s *Server) isTriggerEvent(p CompletionParams, current string) bool <span class="cov9" title="25">{
// 1) Inspect LSP completion context if present
- if p.Context != nil </span><span class="cov6" title="8">{
+ if p.Context != nil </span><span class="cov7" title="11">{
var ctx struct {
TriggerKind int `json:"triggerKind"`
TriggerCharacter string `json:"triggerCharacter,omitempty"`
}
- if raw, ok := p.Context.(json.RawMessage); ok </span><span class="cov5" title="7">{
+ if raw, ok := p.Context.(json.RawMessage); ok </span><span class="cov6" title="10">{
_ = json.Unmarshal(raw, &amp;ctx)
}</span> else<span class="cov1" title="1"> {
b, _ := json.Marshal(p.Context)
_ = json.Unmarshal(b, &amp;ctx)
}</span>
- // If configured and the line contains a bare double-open marker (e.g., '&gt;&gt;' with no '&gt;&gt;text&gt;'),
- // do not treat as a trigger source.
- <span class="cov6" title="8">if s.inlineOpen != "" &amp;&amp; strings.Contains(current, s.inlineOpen+s.inlineOpen) &amp;&amp; !hasDoubleSemicolonTrigger(current) </span><span class="cov0" title="0">{
- return false
- }</span>
- // TriggerKind 1 = Invoked (manual). Always allow manual invoke.
- <span class="cov6" title="8">if ctx.TriggerKind == 1 </span><span class="cov5" title="6">{
- return true
- }</span>
+ // If configured and the line contains a bare double-open marker (e.g., '&gt;&gt;' with no '&gt;&gt;text&gt;'),
+ // do not treat as a trigger source.
+ <span class="cov7" title="11">if s.inlineOpen != "" &amp;&amp; strings.Contains(current, s.inlineOpen+s.inlineOpen) &amp;&amp; !hasDoubleOpenTrigger(current) </span><span class="cov1" title="1">{
+ return false
+ }</span>
+ // TriggerKind 1 = Invoked (manual). Always allow manual invoke.
+ <span class="cov6" title="10">if ctx.TriggerKind == 1 </span><span class="cov5" title="6">{
+ return true
+ }</span>
// TriggerKind 2 is TriggerCharacter per LSP spec
- <span class="cov2" title="2">if ctx.TriggerKind == 2 </span><span class="cov2" title="2">{
+ <span class="cov4" title="4">if ctx.TriggerKind == 2 </span><span class="cov3" title="3">{
if ctx.TriggerCharacter != "" </span><span class="cov2" title="2">{
for _, c := range s.triggerChars </span><span class="cov1" title="1">{
if c == ctx.TriggerCharacter </span><span class="cov1" title="1">{
@@ -2422,37 +2532,37 @@ func (s *Server) isTriggerEvent(p CompletionParams, current string) bool <span c
<span class="cov1" title="1">return false</span>
}
// No character provided but reported as TriggerCharacter; be conservative
- <span class="cov0" title="0">return false</span>
+ <span class="cov1" title="1">return false</span>
}
// For TriggerForIncomplete (3), require manual char check below
}
// 2) Fallback: check the character immediately prior to cursor
- <span class="cov7" title="13">idx := p.Position.Character
+ <span class="cov7" title="15">idx := p.Position.Character
if idx &lt;= 0 || idx &gt; len(current) </span><span class="cov0" title="0">{
return false
}</span>
- // Bare double-open should not trigger via fallback char either (only when configured)
- <span class="cov7" title="13">if s.inlineOpen != "" &amp;&amp; strings.Contains(current, s.inlineOpen+s.inlineOpen) &amp;&amp; !hasDoubleSemicolonTrigger(current) </span><span class="cov1" title="1">{
- return false
- }</span>
- <span class="cov7" title="12">ch := string(current[idx-1])
- for _, c := range s.triggerChars </span><span class="cov10" title="34">{
- if c == ch </span><span class="cov5" title="5">{
+ // Bare double-open should not trigger via fallback char either (only when configured)
+ <span class="cov7" title="15">if s.inlineOpen != "" &amp;&amp; strings.Contains(current, s.inlineOpen+s.inlineOpen) &amp;&amp; !hasDoubleOpenTrigger(current) </span><span class="cov1" title="1">{
+ return false
+ }</span>
+ <span class="cov7" title="14">ch := string(current[idx-1])
+ for _, c := range s.triggerChars </span><span class="cov10" title="36">{
+ if c == ch </span><span class="cov5" title="6">{
return true
}</span>
}
- <span class="cov5" title="7">return false</span>
+ <span class="cov6" title="8">return false</span>
}
-func (s *Server) makeCompletionItems(cleaned string, inParams bool, current string, p CompletionParams, docStr string) []CompletionItem <span class="cov6" title="10">{
+func (s *Server) makeCompletionItems(cleaned string, inParams bool, current string, p CompletionParams, docStr string) []CompletionItem <span class="cov7" title="11">{
te, filter := computeTextEditAndFilter(cleaned, inParams, current, p)
rm := s.collectPromptRemovalEdits(p.TextDocument.URI)
label := labelForCompletion(cleaned, filter)
detail := "Hexai LLM completion"
- if s.llmClient != nil </span><span class="cov6" title="10">{
+ if s.llmClient != nil </span><span class="cov7" title="11">{
detail = "Hexai " + s.llmClient.Name() + ":" + s.llmClient.DefaultModel()
}</span>
- <span class="cov6" title="10">return []CompletionItem{{
+ <span class="cov7" title="11">return []CompletionItem{{
Label: label,
Kind: 1,
Detail: detail,
@@ -2553,15 +2663,16 @@ func (s *Server) fallbackCompletionItems(docStr string) []CompletionItem <span c
package lsp
import (
- "context"
- "encoding/json"
- "fmt"
- "codeberg.org/snonux/hexai/internal/llm"
- "codeberg.org/snonux/hexai/internal/logging"
- "strings"
- "time"
- "os"
- "path/filepath"
+ "context"
+ "encoding/json"
+ "fmt"
+ "os"
+ "path/filepath"
+ "strings"
+ "time"
+
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/logging"
)
func (s *Server) handleCodeAction(req Request) <span class="cov3" title="3">{
@@ -2579,24 +2690,24 @@ func (s *Server) handleCodeAction(req Request) <span class="cov3" title="3">{
}</span>
<span class="cov2" title="2">return</span>
}
- <span class="cov1" title="1">sel := extractRangeText(d, p.Range)
-
- actions := make([]CodeAction, 0, 4)
- if a := s.buildRewriteCodeAction(p, sel); a != nil </span><span class="cov0" title="0">{
- actions = append(actions, *a)
- }</span>
- <span class="cov1" title="1">if a := s.buildDiagnosticsCodeAction(p, sel); a != nil </span><span class="cov0" title="0">{
- actions = append(actions, *a)
- }</span>
- <span class="cov1" title="1">if a := s.buildDocumentCodeAction(p, sel); a != nil </span><span class="cov1" title="1">{
- actions = append(actions, *a)
- }</span>
- <span class="cov1" title="1">if a := s.buildGoUnitTestCodeAction(p); a != nil </span><span class="cov1" title="1">{
- actions = append(actions, *a)
- }</span>
- <span class="cov1" title="1">if len(req.ID) != 0 </span><span class="cov1" title="1">{
- s.reply(req.ID, actions, nil)
- }</span>
+ <span class="cov1" title="1">sel := extractRangeText(d, p.Range)
+
+ actions := make([]CodeAction, 0, 4)
+ if a := s.buildRewriteCodeAction(p, sel); a != nil </span><span class="cov0" title="0">{
+ actions = append(actions, *a)
+ }</span>
+ <span class="cov1" title="1">if a := s.buildDiagnosticsCodeAction(p, sel); a != nil </span><span class="cov0" title="0">{
+ actions = append(actions, *a)
+ }</span>
+ <span class="cov1" title="1">if a := s.buildDocumentCodeAction(p, sel); a != nil </span><span class="cov1" title="1">{
+ actions = append(actions, *a)
+ }</span>
+ <span class="cov1" title="1">if a := s.buildGoUnitTestCodeAction(p); a != nil </span><span class="cov1" title="1">{
+ actions = append(actions, *a)
+ }</span>
+ <span class="cov1" title="1">if len(req.ID) != 0 </span><span class="cov1" title="1">{
+ s.reply(req.ID, actions, nil)
+ }</span>
}
func (s *Server) buildRewriteCodeAction(p CodeActionParams, sel string) *CodeAction <span class="cov3" title="3">{
@@ -2647,8 +2758,8 @@ 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="9">switch payload.Type </span>{
- case "rewrite":<span class="cov3" title="3">
+ <span class="cov6" title="9">switch payload.Type </span>{
+ case "rewrite":<span class="cov3" title="3">
sys := "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."
user := fmt.Sprintf("Instruction: %s\n\nSelected code to transform:\n%s", payload.Instruction, payload.Selection)
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
@@ -2664,7 +2775,7 @@ 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="4">
+ case "diagnostics":<span class="cov4" title="4">
sys := "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."
var b strings.Builder
b.WriteString("Diagnostics to resolve (selection only):\n")
@@ -2690,34 +2801,34 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class
} else<span class="cov0" title="0"> {
logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err)
}</span>
- case "document":<span class="cov2" title="2">
- sys := "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."
- user := "Add documentation comments to this code:\n" + 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="cov2" title="2">{
- if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov2" title="2">{
- 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 document llm error: %v", err)
- }</span>
- case "go_test":<span class="cov0" title="0">
- if edit, jumpURI, jumpRange, ok := s.resolveGoTest(payload.URI, payload.Range.Start); ok </span><span class="cov0" title="0">{
- ca.Edit = &amp;edit
- // After edit is applied, ask client to jump to new test function
- ca.Command = &amp;Command{Title: "Jump to generated test", Command: "hexai.showDocument", Arguments: []any{jumpURI, jumpRange}}
- // Also send a server-initiated showDocument shortly after resolve to cover
- // clients that do not execute commands from code actions.
- s.deferShowDocument(jumpURI, jumpRange)
- return ca, true
- }</span>
- }
- <span class="cov0" title="0">return ca, false</span>
+ case "document":<span class="cov2" title="2">
+ sys := "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."
+ user := "Add documentation comments to this code:\n" + 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="cov2" title="2">{
+ if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov2" title="2">{
+ 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 document llm error: %v", err)
+ }</span>
+ case "go_test":<span class="cov0" title="0">
+ if edit, jumpURI, jumpRange, ok := s.resolveGoTest(payload.URI, payload.Range.Start); ok </span><span class="cov0" title="0">{
+ ca.Edit = &amp;edit
+ // After edit is applied, ask client to jump to new test function
+ ca.Command = &amp;Command{Title: "Jump to generated test", Command: "hexai.showDocument", Arguments: []any{jumpURI, jumpRange}}
+ // Also send a server-initiated showDocument shortly after resolve to cover
+ // clients that do not execute commands from code actions.
+ s.deferShowDocument(jumpURI, jumpRange)
+ return ca, true
+ }</span>
+ }
+ <span class="cov0" title="0">return ca, false</span>
}
func (s *Server) handleCodeActionResolve(req Request) <span class="cov2" title="2">{
@@ -2795,256 +2906,284 @@ func greaterPos(p, q Position) bool <span class="cov7" title="17">{
// --- Go unit test code action ---
func (s *Server) buildGoUnitTestCodeAction(p CodeActionParams) *CodeAction <span class="cov3" title="3">{
- uri := p.TextDocument.URI
- if uri == "" || !strings.HasSuffix(strings.TrimPrefix(uri, "file://"), ".go") </span><span class="cov0" title="0">{
- return nil
- }</span>
- // Skip if already a _test.go file
- <span class="cov3" title="3">if strings.HasSuffix(strings.TrimPrefix(uri, "file://"), "_test.go") </span><span class="cov1" title="1">{
- return nil
- }</span>
- // Heuristic: only offer when a function context is found above the cursor
- <span class="cov2" title="2">_, _, _, funcCtx := s.lineContext(uri, p.Range.Start)
- if !strings.Contains(funcCtx, "func ") </span><span class="cov0" title="0">{
- return nil
- }</span>
- <span class="cov2" title="2">payload := struct {
- Type string `json:"type"`
- URI string `json:"uri"`
- Range Range `json:"range"`
- }{Type: "go_test", URI: uri, Range: p.Range}
- raw, _ := json.Marshal(payload)
- ca := CodeAction{Title: "Hexai: implement unit test", Kind: "quickfix", Data: raw}
- return &amp;ca</span>
+ uri := p.TextDocument.URI
+ if uri == "" || !strings.HasSuffix(strings.TrimPrefix(uri, "file://"), ".go") </span><span class="cov0" title="0">{
+ return nil
+ }</span>
+ // Skip if already a _test.go file
+ <span class="cov3" title="3">if strings.HasSuffix(strings.TrimPrefix(uri, "file://"), "_test.go") </span><span class="cov1" title="1">{
+ return nil
+ }</span>
+ // Heuristic: only offer when a function context is found above the cursor
+ <span class="cov2" title="2">_, _, _, funcCtx := s.lineContext(uri, p.Range.Start)
+ if !strings.Contains(funcCtx, "func ") </span><span class="cov0" title="0">{
+ return nil
+ }</span>
+ <span class="cov2" title="2">payload := struct {
+ Type string `json:"type"`
+ URI string `json:"uri"`
+ Range Range `json:"range"`
+ }{Type: "go_test", URI: uri, Range: p.Range}
+ raw, _ := json.Marshal(payload)
+ ca := CodeAction{Title: "Hexai: implement unit test", Kind: "quickfix", Data: raw}
+ return &amp;ca</span>
}
// buildDocumentCodeAction offers to document the selected code by injecting comments.
func (s *Server) buildDocumentCodeAction(p CodeActionParams, sel string) *CodeAction <span class="cov2" title="2">{
- if s.llmClient == nil </span><span class="cov0" title="0">{
- return nil
- }</span>
- <span class="cov2" title="2">if strings.TrimSpace(sel) == "" </span><span class="cov0" title="0">{
- return nil
- }</span>
- <span class="cov2" title="2">payload := struct {
- Type string `json:"type"`
- URI string `json:"uri"`
- Range Range `json:"range"`
- Selection string `json:"selection"`
- }{Type: "document", URI: p.TextDocument.URI, Range: p.Range, Selection: sel}
- raw, _ := json.Marshal(payload)
- ca := CodeAction{Title: "Hexai: document code", Kind: "refactor.rewrite", Data: raw}
- return &amp;ca</span>
+ if s.llmClient == nil </span><span class="cov0" title="0">{
+ return nil
+ }</span>
+ <span class="cov2" title="2">if strings.TrimSpace(sel) == "" </span><span class="cov0" title="0">{
+ return nil
+ }</span>
+ <span class="cov2" title="2">payload := struct {
+ Type string `json:"type"`
+ URI string `json:"uri"`
+ Range Range `json:"range"`
+ Selection string `json:"selection"`
+ }{Type: "document", URI: p.TextDocument.URI, Range: p.Range, Selection: sel}
+ raw, _ := json.Marshal(payload)
+ ca := CodeAction{Title: "Hexai: document code", Kind: "refactor.rewrite", Data: raw}
+ return &amp;ca</span>
}
func (s *Server) resolveGoTest(uri string, pos Position) (WorkspaceEdit, string, Range, bool) <span class="cov2" title="2">{
- 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)
- if len(lines) == 0 </span><span class="cov0" title="0">{
- return WorkspaceEdit{}, "", Range{}, false
- }</span>
- <span class="cov2" title="2">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")
- 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"
- testURI := "file://" + testPath
-
- // If test file exists, append test at EOF; otherwise, create a new file with package+import
- if fileExists(testPath) </span><span class="cov1" title="1">{
- // Build an insertion at end of file
- _, tLines := s.loadFileText(testURI)
- // Fallback when not open and cannot read: still insert at line 0
- lineIdx := 0
- col := 0
- if len(tLines) &gt; 0 </span><span class="cov1" title="1">{
- lineIdx = len(tLines) - 1
- col = len(tLines[lineIdx])
+ 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)
+ if len(lines) == 0 </span><span class="cov0" title="0">{
+ return WorkspaceEdit{}, "", Range{}, false
+ }</span>
+ <span class="cov2" title="2">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")
+ 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"
+ testURI := "file://" + testPath
+
+ // If test file exists, append test at EOF; otherwise, create a new file with package+import
+ if fileExists(testPath) </span><span class="cov1" title="1">{
+ // Build an insertion at end of file
+ _, tLines := s.loadFileText(testURI)
+ // Fallback when not open and cannot read: still insert at line 0
+ lineIdx := 0
+ col := 0
+ if len(tLines) &gt; 0 </span><span class="cov1" title="1">{
+ lineIdx = len(tLines) - 1
+ col = len(tLines[lineIdx])
+ }</span>
+ <span class="cov1" title="1">var b strings.Builder
+ // Ensure at least two newlines before the new test
+ if len(tLines) == 0 || (len(tLines) &gt; 0 &amp;&amp; !strings.HasSuffix(strings.Join(tLines, "\n"), "\n\n")) </span><span class="cov0" title="0">{
+ b.WriteString("\n\n")
+ }</span>
+ <span class="cov1" title="1">b.WriteString(testFunc)
+ insert := b.String()
+ edit := TextEdit{Range: Range{Start: Position{Line: lineIdx, Character: col}, End: Position{Line: lineIdx, Character: col}}, NewText: insert}
+ we := WorkspaceEdit{Changes: map[string][]TextEdit{testURI: {edit}}}
+ // Compute jump range start
+ // Count how many prefix newlines added before the test function
+ prefixNL := 0
+ if strings.HasPrefix(insert, "\n\n") </span><span class="cov0" title="0">{
+ prefixNL = 2
+ }</span>
+ <span class="cov1" title="1">startLine := lineIdx + prefixNL
+ // If we inserted with two newlines and last line wasn't blank, first newline moves to next line
+ if prefixNL &gt; 0 </span><span class="cov0" title="0">{
+ startLine = lineIdx + prefixNL
+ }</span>
+ <span class="cov1" title="1">jump := Range{Start: Position{Line: startLine, Character: 0}, End: Position{Line: startLine, Character: 0}}
+ return we, testURI, jump, true</span>
+ }
+ // Create new file content
+ <span class="cov1" title="1">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 ")
+ content.WriteString(pkg)
+ content.WriteString("\n\n")
+ content.WriteString("import (\n\t\"testing\"\n)\n\n")
+ content.WriteString(testFunc)
+ full := content.String()
+ // Use documentChanges with create + full content insert
+ create := CreateFile{Kind: "create", URI: testURI}
+ tde := TextDocumentEdit{TextDocument: VersionedTextDocumentIdentifier{URI: testURI}, Edits: []TextEdit{{Range: Range{Start: Position{Line: 0, Character: 0}, End: Position{Line: 0, Character: 0}}, NewText: full}}}
+ we := WorkspaceEdit{DocumentChanges: []any{create, tde}}
+ // Find start line of first test function
+ // Count lines before the substring "func Test"
+ pre := content.String()
+ idx := strings.Index(pre, "func Test")
+ startLine := 0
+ if idx &gt; 0 </span><span class="cov1" title="1">{
+ before := pre[:idx]
+ startLine = strings.Count(before, "\n")
}</span>
- <span class="cov1" title="1">var b strings.Builder
- // Ensure at least two newlines before the new test
- if len(tLines) == 0 || (len(tLines) &gt; 0 &amp;&amp; !strings.HasSuffix(strings.Join(tLines, "\n"), "\n\n")) </span><span class="cov0" title="0">{
- b.WriteString("\n\n")
- }</span>
- <span class="cov1" title="1">b.WriteString(testFunc)
- insert := b.String()
- edit := TextEdit{Range: Range{Start: Position{Line: lineIdx, Character: col}, End: Position{Line: lineIdx, Character: col}}, NewText: insert}
- we := WorkspaceEdit{Changes: map[string][]TextEdit{testURI: {edit}}}
- // Compute jump range start
- // Count how many prefix newlines added before the test function
- prefixNL := 0
- if strings.HasPrefix(insert, "\n\n") </span><span class="cov0" title="0">{ prefixNL = 2 }</span>
- <span class="cov1" title="1">startLine := lineIdx + prefixNL
- // If we inserted with two newlines and last line wasn't blank, first newline moves to next line
- if prefixNL &gt; 0 </span><span class="cov0" title="0">{ startLine = lineIdx + prefixNL }</span>
<span class="cov1" title="1">jump := Range{Start: Position{Line: startLine, Character: 0}, End: Position{Line: startLine, Character: 0}}
return we, testURI, jump, true</span>
- }
- // Create new file content
- <span class="cov1" title="1">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 ")
- content.WriteString(pkg)
- content.WriteString("\n\n")
- content.WriteString("import (\n\t\"testing\"\n)\n\n")
- content.WriteString(testFunc)
- full := content.String()
- // Use documentChanges with create + full content insert
- create := CreateFile{Kind: "create", URI: testURI}
- tde := TextDocumentEdit{TextDocument: VersionedTextDocumentIdentifier{URI: testURI}, Edits: []TextEdit{{Range: Range{Start: Position{Line: 0, Character: 0}, End: Position{Line: 0, Character: 0}}, NewText: full}}}
- we := WorkspaceEdit{DocumentChanges: []any{create, tde}}
- // Find start line of first test function
- // Count lines before the substring "func Test"
- pre := content.String()
- idx := strings.Index(pre, "func Test")
- startLine := 0
- if idx &gt; 0 </span><span class="cov1" title="1">{
- 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}}
- 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">{
- 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://")
- 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)
- return txt, splitLines(txt)</span>
+ 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://")
+ 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)
+ return txt, splitLines(txt)</span>
}
func fileExists(path string) bool <span class="cov2" title="2">{
- if _, err := os.Stat(path); err == nil </span><span class="cov1" title="1">{
- return true
- }</span>
- <span class="cov1" title="1">return false</span>
+ if _, err := os.Stat(path); err == nil </span><span class="cov1" title="1">{
+ return true
+ }</span>
+ <span class="cov1" title="1">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">{
- t := strings.TrimSpace(ln)
- if strings.HasPrefix(t, "package ") </span><span class="cov3" title="3">{
- 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">{ name = name[:i] }</span>
- <span class="cov3" title="3">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>
+ for _, ln := range lines </span><span class="cov4" title="5">{
+ t := strings.TrimSpace(ln)
+ if strings.HasPrefix(t, "package ") </span><span class="cov3" title="3">{
+ 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">{
+ name = name[:i]
+ }</span>
+ <span class="cov3" title="3">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="cov1" title="1">return ""</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">{
- 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">{ 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">{
- start = i
- break</span>
- }
- <span class="cov0" title="0">if strings.Contains(lines[i], "}") </span><span class="cov0" title="0">{
- break</span>
+ 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">{
+ 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">{
+ start = i
+ break</span>
+ }
+ <span class="cov0" title="0">if strings.Contains(lines[i], "}") </span><span class="cov0" title="0">{
+ break</span>
+ }
}
- }
- <span class="cov2" title="2">if start == -1 </span><span class="cov0" title="0">{ return -1, -1 }</span>
- // find first '{'
- <span class="cov2" title="2">depth := 0
- seenOpen := false
- for i := start; i &lt; len(lines); i++ </span><span class="cov2" title="2">{
- ln := lines[i]
- for j := 0; j &lt; len(ln); j++ </span><span class="cov10" title="47">{
- switch ln[j] </span>{
- case '{':<span class="cov2" title="2">
- depth++
- seenOpen = true</span>
- case '}':<span class="cov2" title="2">
- if depth &gt; 0 </span><span class="cov2" title="2">{ depth-- }</span>
- <span class="cov2" title="2">if seenOpen &amp;&amp; depth == 0 </span><span class="cov2" title="2">{
- return start, i
- }</span>
- }
+ <span class="cov2" title="2">if start == -1 </span><span class="cov0" title="0">{
+ return -1, -1
+ }</span>
+ // find first '{'
+ <span class="cov2" title="2">depth := 0
+ seenOpen := false
+ for i := start; i &lt; len(lines); i++ </span><span class="cov2" title="2">{
+ ln := lines[i]
+ for j := 0; j &lt; len(ln); j++ </span><span class="cov10" title="47">{
+ switch ln[j] </span>{
+ case '{':<span class="cov2" title="2">
+ depth++
+ seenOpen = true</span>
+ case '}':<span class="cov2" title="2">
+ if depth &gt; 0 </span><span class="cov2" title="2">{
+ depth--
+ }</span>
+ <span class="cov2" title="2">if seenOpen &amp;&amp; depth == 0 </span><span class="cov2" title="2">{
+ 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">{
- return start, start
- }</span>
- <span class="cov0" title="0">return start, -1</span>
+ // if never saw '{', assume single-line prototype; return that line
+ <span class="cov0" title="0">if !seenOpen </span><span class="cov0" title="0">{
+ 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="cov2" title="2">{
- if s.llmClient != nil </span><span class="cov1" title="1">{
- sys := "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."
- user := "Function under test:\n" + 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="cov1" title="1">{
- cleaned := strings.TrimSpace(stripCodeFences(out))
- if cleaned != "" </span><span class="cov1" title="1">{ return cleaned }</span>
- } else<span class="cov0" title="0"> {
- logging.Logf("lsp ", "codeAction go_test llm error: %v", err)
+ if s.llmClient != nil </span><span class="cov1" title="1">{
+ sys := "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."
+ user := "Function under test:\n" + 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="cov1" title="1">{
+ cleaned := strings.TrimSpace(stripCodeFences(out))
+ if cleaned != "" </span><span class="cov1" title="1">{
+ return cleaned
+ }</span>
+ } else<span class="cov0" title="0"> {
+ logging.Logf("lsp ", "codeAction go_test llm error: %v", err)
+ }</span>
+ }
+ // Fallback stub
+ <span class="cov1" title="1">name := deriveGoFuncName(funcCode)
+ if name == "" </span><span class="cov0" title="0">{
+ name = "Function"
}</span>
- }
- // Fallback stub
- <span class="cov1" title="1">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="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>
}
// deriveGoFuncName extracts function or method name from code.
func deriveGoFuncName(code string) string <span class="cov3" title="3">{
- // 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 "))
- // method receiver
- if strings.HasPrefix(rest, "(") </span><span class="cov1" title="1">{
- // find ")"
- if i := strings.Index(rest, ")"); i &gt;= 0 &amp;&amp; i+1 &lt; len(rest) </span><span class="cov1" title="1">{
- rest = strings.TrimSpace(rest[i+1:])
- }</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">{
- return strings.TrimSpace(rest[:i])
- }</span>
- <span class="cov0" title="0">return ""</span>
+ // 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 "))
+ // method receiver
+ if strings.HasPrefix(rest, "(") </span><span class="cov1" title="1">{
+ // find ")"
+ if i := strings.Index(rest, ")"); i &gt;= 0 &amp;&amp; i+1 &lt; len(rest) </span><span class="cov1" title="1">{
+ rest = strings.TrimSpace(rest[i+1:])
+ }</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">{
+ return strings.TrimSpace(rest[:i])
+ }</span>
+ <span class="cov0" title="0">return ""</span>
}
func exportName(name string) string <span class="cov1" title="1">{
- if name == "" </span><span class="cov0" title="0">{ return name }</span>
- <span class="cov1" title="1">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>
+ if name == "" </span><span class="cov0" title="0">{
+ return name
+ }</span>
+ <span class="cov1" title="1">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>
}
</pre>
@@ -3052,13 +3191,14 @@ func exportName(name string) string <span class="cov1" title="1">{
package lsp
import (
- "context"
- "encoding/json"
- "fmt"
- "codeberg.org/snonux/hexai/internal/llm"
- "codeberg.org/snonux/hexai/internal/logging"
- "strings"
- "time"
+ "context"
+ "encoding/json"
+ "fmt"
+ "strings"
+ "time"
+
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/logging"
)
func (s *Server) handleCompletion(req Request) <span class="cov1" title="1">{
@@ -3120,8 +3260,8 @@ func (s *Server) logCompletionContext(p CompletionParams, above, current, below,
}</span>
func (s *Server) tryLLMCompletion(p CompletionParams, above, current, below, funcCtx, docStr string, hasExtra bool, extraText string) ([]CompletionItem, bool) <span class="cov10" title="18">{
- ctx, cancel := context.WithTimeout(context.Background(), 6*time.Second)
- defer cancel()
+ ctx, cancel := context.WithTimeout(context.Background(), 6*time.Second)
+ defer cancel()
inlinePrompt := lineHasInlinePrompt(current)
if !inlinePrompt &amp;&amp; !s.isTriggerEvent(p, current) </span><span class="cov7" title="8">{
@@ -3143,20 +3283,20 @@ func (s *Server) tryLLMCompletion(p CompletionParams, above, current, below, fun
logging.AnsiGreen, logging.PreviewForLog(cleaned), logging.AnsiBase)
return s.makeCompletionItems(cleaned, inParams, current, p, docStr), true
}</span>
- <span class="cov7" title="9">if (isBareDoubleSemicolon(current) || isBareDoubleSemicolon(below)) </span><span class="cov1" title="1">{
- logging.Logf("lsp ", "%scompletion skip=empty-double-semicolon line=%d char=%d current=%q%s", logging.AnsiYellow, p.Position.Line, p.Position.Character, trimLen(current), logging.AnsiBase)
- return []CompletionItem{}, true
- }</span>
+ <span class="cov7" title="9">if isBareDoubleOpen(current) || isBareDoubleOpen(below) </span><span class="cov1" title="1">{
+ logging.Logf("lsp ", "%scompletion skip=empty-double-semicolon line=%d char=%d current=%q%s", logging.AnsiYellow, p.Position.Line, p.Position.Character, trimLen(current), logging.AnsiBase)
+ return []CompletionItem{}, true
+ }</span>
<span class="cov7" title="8">if !inParams &amp;&amp; !s.prefixHeuristicAllows(inlinePrompt, current, p, manualInvoke) </span><span class="cov0" title="0">{
logging.Logf("lsp ", "%scompletion skip=short-prefix line=%d char=%d current=%q%s", logging.AnsiYellow, p.Position.Line, p.Position.Character, trimLen(current), logging.AnsiBase)
return []CompletionItem{}, true
}</span>
- // Provider-native path
- <span class="cov7" title="8">if items, ok := s.tryProviderNativeCompletion(current, p, above, below, funcCtx, docStr, hasExtra, extraText, inParams); ok </span><span class="cov1" title="1">{
- return items, true
- }</span>
+ // Provider-native path
+ <span class="cov7" title="8">if items, ok := s.tryProviderNativeCompletion(current, p, above, below, funcCtx, docStr, hasExtra, extraText, inParams); ok </span><span class="cov1" title="1">{
+ return items, true
+ }</span>
// Chat path
<span class="cov7" title="7">messages := s.buildCompletionMessages(inlinePrompt, hasExtra, extraText, inParams, p, above, current, below, funcCtx)
@@ -3170,12 +3310,12 @@ func (s *Server) tryLLMCompletion(p CompletionParams, above, current, below, fun
if s.codingTemperature != nil </span><span class="cov0" title="0">{
opts = append(opts, llm.WithTemperature(*s.codingTemperature))
}</span>
- // Debounce and throttle before making the LLM call
- <span class="cov7" title="7">s.waitForDebounce(ctx)
- if !s.waitForThrottle(ctx) </span><span class="cov0" title="0">{
- return nil, false
- }</span>
- <span class="cov7" title="7">logging.Logf("lsp ", "completion llm=requesting model=%s", s.llmClient.DefaultModel())
+ // Debounce and throttle before making the LLM call
+ <span class="cov7" title="7">s.waitForDebounce(ctx)
+ if !s.waitForThrottle(ctx) </span><span class="cov0" title="0">{
+ return nil, false
+ }</span>
+ <span class="cov7" title="7">logging.Logf("lsp ", "completion llm=requesting model=%s", s.llmClient.DefaultModel())
text, err := s.llmClient.Chat(ctx, messages, opts...)
if err != nil </span><span class="cov0" title="0">{
@@ -3212,20 +3352,24 @@ func parseManualInvoke(ctx any) bool <span class="cov8" title="11">{
}
// shouldSuppressForChatTriggerEOL returns true when a chat trigger like "&gt;" follows ?, !, :, or ; at EOL.
-func (s *Server) shouldSuppressForChatTriggerEOL(current string, p CompletionParams) bool <span class="cov8" title="12">{
- t := strings.TrimRight(current, " \t")
- if s.chatSuffix == "" </span><span class="cov6" title="5">{ return false }</span>
- <span class="cov7" title="7">if strings.HasSuffix(t, s.chatSuffix) </span><span class="cov3" title="2">{
- if len(t) &lt; len(s.chatSuffix)+1 </span><span class="cov0" title="0">{ return false }</span>
- <span class="cov3" title="2">prev := string(t[len(t)-len(s.chatSuffix)-1])
- for _, pf := range s.chatPrefixes </span><span class="cov7" title="8">{
- if prev == pf </span><span class="cov1" title="1">{
- logging.Logf("lsp ", "completion skip=chat-trigger-eol uri=%s line=%d", p.TextDocument.URI, p.Position.Line)
- return true
- }</span>
+func (s *Server) shouldSuppressForChatTriggerEOL(current string, p CompletionParams) bool <span class="cov9" title="15">{
+ t := strings.TrimRight(current, " \t")
+ if s.chatSuffix == "" </span><span class="cov6" title="6">{
+ return false
+ }</span>
+ <span class="cov7" title="9">if strings.HasSuffix(t, s.chatSuffix) </span><span class="cov5" title="4">{
+ if len(t) &lt; len(s.chatSuffix)+1 </span><span class="cov0" title="0">{
+ return false
+ }</span>
+ <span class="cov5" title="4">prev := string(t[len(t)-len(s.chatSuffix)-1])
+ for _, pf := range s.chatPrefixes </span><span class="cov8" title="10">{
+ if prev == pf </span><span class="cov3" title="2">{
+ logging.Logf("lsp ", "completion skip=chat-trigger-eol uri=%s line=%d", p.TextDocument.URI, p.Position.Line)
+ return true
+ }</span>
+ }
}
- }
- <span class="cov6" title="6">return false</span>
+ <span class="cov7" title="7">return false</span>
}
// prefixHeuristicAllows applies minimal prefix rules unless inlinePrompt or structural triggers apply.
@@ -3265,12 +3409,12 @@ func (s *Server) prefixHeuristicAllows(inlinePrompt bool, current string, p Comp
}
// tryProviderNativeCompletion attempts provider-native completion and returns items when successful.
-func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams, above, below, funcCtx, docStr string, hasExtra bool, extraText string, inParams bool) ([]CompletionItem, bool) <span class="cov7" title="9">{
+func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams, above, below, funcCtx, docStr string, hasExtra bool, extraText string, inParams bool) ([]CompletionItem, bool) <span class="cov8" title="10">{
cc, ok := s.llmClient.(llm.CodeCompleter)
if !ok </span><span class="cov6" title="6">{
return nil, false
}</span>
- <span class="cov4" title="3">before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position)
+ <span class="cov5" title="4">before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position)
path := strings.TrimPrefix(p.TextDocument.URI, "file://")
prompt := "// Path: " + path + "\n" + before
lang := ""
@@ -3278,34 +3422,34 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams,
if s.codingTemperature != nil </span><span class="cov0" title="0">{
temp = *s.codingTemperature
}</span>
- <span class="cov4" title="3">prov := ""
- if s.llmClient != nil </span><span class="cov4" title="3">{
+ <span class="cov5" title="4">prov := ""
+ if s.llmClient != nil </span><span class="cov5" title="4">{
prov = s.llmClient.Name()
}</span>
- <span class="cov4" title="3">logging.Logf("lsp ", "completion path=codex provider=%s uri=%s", prov, path)
- ctx2, cancel2 := context.WithTimeout(context.Background(), 8*time.Second)
- defer cancel2()
-
- // Debounce and throttle prior to provider-native call
- s.waitForDebounce(ctx2)
- if !s.waitForThrottle(ctx2) </span><span class="cov0" title="0">{
- return nil, false
- }</span>
- <span class="cov4" title="3">suggestions, err := cc.CodeCompletion(ctx2, prompt, after, 1, lang, temp)
- if err == nil &amp;&amp; len(suggestions) &gt; 0 </span><span class="cov3" title="2">{
+ <span class="cov5" title="4">logging.Logf("lsp ", "completion path=codex provider=%s uri=%s", prov, path)
+ ctx2, cancel2 := context.WithTimeout(context.Background(), 8*time.Second)
+ defer cancel2()
+
+ // Debounce and throttle prior to provider-native call
+ s.waitForDebounce(ctx2)
+ if !s.waitForThrottle(ctx2) </span><span class="cov0" title="0">{
+ return nil, false
+ }</span>
+ <span class="cov5" title="4">suggestions, err := cc.CodeCompletion(ctx2, prompt, after, 1, lang, temp)
+ if err == nil &amp;&amp; len(suggestions) &gt; 0 </span><span class="cov4" title="3">{
cleaned := strings.TrimSpace(suggestions[0])
- if cleaned != "" </span><span class="cov3" title="2">{
+ if cleaned != "" </span><span class="cov4" title="3">{
cleaned = stripDuplicateAssignmentPrefix(current[:p.Position.Character], cleaned)
- if cleaned != "" </span><span class="cov3" title="2">{
+ if cleaned != "" </span><span class="cov4" title="3">{
cleaned = stripDuplicateGeneralPrefix(current[:p.Position.Character], cleaned)
}</span>
- <span class="cov3" title="2">if cleaned != "" &amp;&amp; hasDoubleSemicolonTrigger(current) </span><span class="cov0" title="0">{
+ <span class="cov4" title="3">if cleaned != "" &amp;&amp; hasDoubleOpenTrigger(current) </span><span class="cov1" title="1">{
indent := leadingIndent(current)
- if indent != "" </span><span class="cov0" title="0">{
+ if indent != "" </span><span class="cov1" title="1">{
cleaned = applyIndent(indent, cleaned)
}</span>
}
- <span class="cov3" title="2">if strings.TrimSpace(cleaned) != "" </span><span class="cov3" title="2">{
+ <span class="cov4" title="3">if strings.TrimSpace(cleaned) != "" </span><span class="cov4" title="3">{
key := s.completionCacheKey(p, above, current, below, funcCtx, inParams, hasExtra, extraText)
s.completionCachePut(key, cleaned)
return s.makeCompletionItems(cleaned, inParams, current, p, docStr), true
@@ -3319,64 +3463,64 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams,
// waitForDebounce sleeps until there has been no input activity for at least
// completionDebounce. If debounce is zero or ctx is done, it returns promptly.
-func (s *Server) waitForDebounce(ctx context.Context) <span class="cov8" title="10">{
- d := s.completionDebounce
- if d &lt;= 0 </span><span class="cov7" title="9">{
- return
- }</span>
- <span class="cov1" title="1">for </span><span class="cov3" title="2">{
- s.mu.RLock()
- last := s.lastInput
- s.mu.RUnlock()
- if last.IsZero() </span><span class="cov0" title="0">{
- return
- }</span>
- <span class="cov3" title="2">since := time.Since(last)
- if since &gt;= d </span><span class="cov1" title="1">{
- return
- }</span>
- <span class="cov1" title="1">rem := d - since
- timer := time.NewTimer(rem)
- select </span>{
- case &lt;-ctx.Done():<span class="cov0" title="0">
- timer.Stop()
- return</span>
- case &lt;-timer.C:<span class="cov1" title="1"></span>
- // loop and re-evaluate in case input occurred during sleep
+func (s *Server) waitForDebounce(ctx context.Context) <span class="cov8" title="12">{
+ d := s.completionDebounce
+ if d &lt;= 0 </span><span class="cov8" title="10">{
+ return
+ }</span>
+ <span class="cov3" title="2">for </span><span class="cov5" title="4">{
+ s.mu.RLock()
+ last := s.lastInput
+ s.mu.RUnlock()
+ if last.IsZero() </span><span class="cov0" title="0">{
+ return
+ }</span>
+ <span class="cov5" title="4">since := time.Since(last)
+ if since &gt;= d </span><span class="cov3" title="2">{
+ return
+ }</span>
+ <span class="cov3" title="2">rem := d - since
+ timer := time.NewTimer(rem)
+ select </span>{
+ case &lt;-ctx.Done():<span class="cov0" title="0">
+ timer.Stop()
+ return</span>
+ case &lt;-timer.C:<span class="cov3" title="2"></span>
+ // loop and re-evaluate in case input occurred during sleep
+ }
}
- }
}
// waitForThrottle enforces a minimum spacing between LLM calls. Returns false
// if the context is canceled while waiting.
-func (s *Server) waitForThrottle(ctx context.Context) bool <span class="cov8" title="10">{
- interval := s.throttleInterval
- if interval &lt;= 0 </span><span class="cov7" title="8">{
- return true
- }</span>
- <span class="cov3" title="2">var wait time.Duration
- for </span><span class="cov4" title="3">{
- s.mu.Lock()
- next := s.lastLLMCall.Add(interval)
- now := time.Now()
- if now.Before(next) </span><span class="cov1" title="1">{
- wait = next.Sub(now)
- s.mu.Unlock()
- timer := time.NewTimer(wait)
- select </span>{
- case &lt;-ctx.Done():<span class="cov0" title="0">
- timer.Stop()
- return false</span>
- case &lt;-timer.C:<span class="cov1" title="1">
- // try again to set the next call time
- continue</span>
- }
+func (s *Server) waitForThrottle(ctx context.Context) bool <span class="cov8" title="12">{
+ interval := s.throttleInterval
+ if interval &lt;= 0 </span><span class="cov7" title="9">{
+ return true
+ }</span>
+ <span class="cov4" title="3">var wait time.Duration
+ for </span><span class="cov6" title="5">{
+ s.mu.Lock()
+ next := s.lastLLMCall.Add(interval)
+ now := time.Now()
+ if now.Before(next) </span><span class="cov3" title="2">{
+ wait = next.Sub(now)
+ s.mu.Unlock()
+ timer := time.NewTimer(wait)
+ select </span>{
+ case &lt;-ctx.Done():<span class="cov0" title="0">
+ timer.Stop()
+ return false</span>
+ case &lt;-timer.C:<span class="cov3" title="2">
+ // try again to set the next call time
+ continue</span>
+ }
+ }
+ // we are allowed to proceed now; record this call as the latest
+ <span class="cov4" title="3">s.lastLLMCall = now
+ s.mu.Unlock()
+ return true</span>
}
- // we are allowed to proceed now; record this call as the latest
- <span class="cov3" title="2">s.lastLLMCall = now
- s.mu.Unlock()
- return true</span>
- }
}
// buildCompletionMessages constructs the LLM messages for completion.
@@ -3409,7 +3553,7 @@ func (s *Server) postProcessCompletion(text string, leftOfCursor string, current
<span class="cov8" title="10">if cleaned != "" </span><span class="cov8" title="10">{
cleaned = stripDuplicateGeneralPrefix(leftOfCursor, cleaned)
}</span>
- <span class="cov8" title="10">if cleaned != "" &amp;&amp; hasDoubleSemicolonTrigger(currentLine) </span><span class="cov1" title="1">{
+ <span class="cov8" title="10">if cleaned != "" &amp;&amp; hasDoubleOpenTrigger(currentLine) </span><span class="cov1" title="1">{
if indent := leadingIndent(currentLine); indent != "" </span><span class="cov1" title="1">{
cleaned = applyIndent(indent, cleaned)
}</span>
@@ -3422,18 +3566,21 @@ func (s *Server) postProcessCompletion(text string, leftOfCursor string, current
package lsp
import (
- "context"
- "encoding/json"
- "codeberg.org/snonux/hexai/internal/llm"
- "codeberg.org/snonux/hexai/internal/logging"
- "strings"
- "time"
+ "context"
+ "encoding/json"
+ "strings"
+ "time"
+
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/logging"
)
// Package-level chat trigger vars for helpers without Server receiver.
// NewServer assigns these from configuration on startup.
-var chatSuffixChar byte = '&gt;'
-var chatPrefixSingles = []string{"?", "!", ":", ";"}
+var (
+ chatSuffixChar byte = '&gt;'
+ chatPrefixSingles = []string{"?", "!", ":", ";"}
+)
func (s *Server) handleDidOpen(req Request) <span class="cov1" title="1">{
var p DidOpenTextDocumentParams
@@ -3466,33 +3613,33 @@ func (s *Server) handleDidClose(req Request) <span class="cov1" title="1">{
// docBeforeAfter returns the full document text split at the given position.
// The returned strings are the text before the cursor (inclusive of anything
// left of the position) and the text after the cursor.
-func (s *Server) docBeforeAfter(uri string, pos Position) (string, string) <span class="cov6" title="4">{
+func (s *Server) docBeforeAfter(uri string, pos Position) (string, string) <span class="cov7" title="6">{
d := s.getDocument(uri)
- if d == nil </span><span class="cov5" title="3">{
+ if d == nil </span><span class="cov6" title="4">{
return "", ""
}</span>
// Clamp indices
- <span class="cov1" title="1">line := pos.Line
+ <span class="cov3" title="2">line := pos.Line
if line &lt; 0 </span><span class="cov0" title="0">{
line = 0
}</span>
- <span class="cov1" title="1">if line &gt;= len(d.lines) </span><span class="cov0" title="0">{
+ <span class="cov3" title="2">if line &gt;= len(d.lines) </span><span class="cov1" title="1">{
line = len(d.lines) - 1
}</span>
- <span class="cov1" title="1">col := pos.Character
+ <span class="cov3" title="2">col := pos.Character
if col &lt; 0 </span><span class="cov0" title="0">{
col = 0
}</span>
- <span class="cov1" title="1">if col &gt; len(d.lines[line]) </span><span class="cov0" title="0">{
+ <span class="cov3" title="2">if col &gt; len(d.lines[line]) </span><span class="cov1" title="1">{
col = len(d.lines[line])
}</span>
// Build before
- <span class="cov1" title="1">var b strings.Builder
- for i := 0; i &lt; line; i++ </span><span class="cov1" title="1">{
+ <span class="cov3" title="2">var b strings.Builder
+ for i := 0; i &lt; line; i++ </span><span class="cov3" title="2">{
b.WriteString(d.lines[i])
b.WriteByte('\n')
}</span>
- <span class="cov1" title="1">b.WriteString(d.lines[line][:col])
+ <span class="cov3" title="2">b.WriteString(d.lines[line][:col])
before := b.String()
// Build after
var a strings.Builder
@@ -3501,7 +3648,7 @@ func (s *Server) docBeforeAfter(uri string, pos Position) (string, string) <span
a.WriteByte('\n')
a.WriteString(d.lines[i])
}</span>
- <span class="cov1" title="1">return before, a.String()</span>
+ <span class="cov3" title="2">return before, a.String()</span>
}
// --- in-editor chat (";C ...") ---
@@ -3509,61 +3656,68 @@ func (s *Server) docBeforeAfter(uri string, pos Position) (string, string) <span
// detectAndHandleChat scans the current document for any line that starts with
// a new trigger pair (e.g., "?&gt;" ",&gt;" ":&gt;" ";&gt;") at EOL and inserts the LLM
// reply below.
-func (s *Server) detectAndHandleChat(uri string) <span class="cov5" title="3">{
+func (s *Server) detectAndHandleChat(uri string) <span class="cov6" title="4">{
if s.llmClient == nil </span><span class="cov1" title="1">{
return
}</span>
- <span class="cov3" title="2">d := s.getDocument(uri)
+ <span class="cov5" title="3">d := s.getDocument(uri)
if d == nil || len(d.lines) == 0 </span><span class="cov0" title="0">{
return
}</span>
- <span class="cov3" title="2">for i, raw := range d.lines </span><span class="cov6" title="4">{
+ <span class="cov5" title="3">for i, raw := range d.lines </span><span class="cov7" title="5">{
// Find last non-space character index
j := len(raw) - 1
- for j &gt;= 0 </span><span class="cov5" title="3">{
+ for j &gt;= 0 </span><span class="cov6" title="4">{
if raw[j] == ' ' || raw[j] == '\t' </span><span class="cov0" title="0">{
j--
continue</span>
}
- <span class="cov5" title="3">break</span>
+ <span class="cov6" title="4">break</span>
+ }
+ <span class="cov7" title="5">if j &lt; 0 </span><span class="cov1" title="1">{
+ continue</span>
+ }
+ // Check suffix/prefix according to configuration
+ <span class="cov6" title="4">if s.chatSuffix == "" </span><span class="cov3" title="2">{
+ continue</span>
+ }
+ // Last non-space must equal suffix
+ <span class="cov3" title="2">if string(raw[j]) != s.chatSuffix </span><span class="cov0" title="0">{
+ continue</span>
+ }
+ // Require at least one char before suffix and that char must be in chatPrefixes
+ <span class="cov3" title="2">if j &lt; 1 </span><span class="cov0" title="0">{
+ continue</span>
+ }
+ <span class="cov3" title="2">prev := string(raw[j-1])
+ isTrigger := false
+ for _, pfx := range s.chatPrefixes </span><span class="cov3" title="2">{
+ if prev == pfx </span><span class="cov3" title="2">{
+ isTrigger = true
+ break</span>
+ }
+ }
+ <span class="cov3" title="2">if !isTrigger </span><span class="cov0" title="0">{
+ continue</span>
}
- <span class="cov6" title="4">if j &lt; 0 </span><span class="cov1" title="1">{
- continue</span>
- }
- // Check suffix/prefix according to configuration
- <span class="cov5" title="3">if s.chatSuffix == "" </span><span class="cov3" title="2">{
- continue</span>
- }
- // Last non-space must equal suffix
- <span class="cov1" title="1">if string(raw[j]) != s.chatSuffix </span><span class="cov0" title="0">{
- continue</span>
- }
- // Require at least one char before suffix and that char must be in chatPrefixes
- <span class="cov1" title="1">if j &lt; 1 </span><span class="cov0" title="0">{ continue</span> }
- <span class="cov1" title="1">prev := string(raw[j-1])
- isTrigger := false
- for _, pfx := range s.chatPrefixes </span><span class="cov1" title="1">{
- if prev == pfx </span><span class="cov1" title="1">{ isTrigger = true; break</span> }
- }
- <span class="cov1" title="1">if !isTrigger </span><span class="cov0" title="0">{ continue</span> }
// Avoid double-answering: if the next non-empty line starts with '&gt;' we skip.
- <span class="cov1" title="1">k := i + 1
- for k &lt; len(d.lines) &amp;&amp; strings.TrimSpace(d.lines[k]) == "" </span><span class="cov3" title="2">{
+ <span class="cov3" title="2">k := i + 1
+ for k &lt; len(d.lines) &amp;&amp; strings.TrimSpace(d.lines[k]) == "" </span><span class="cov6" title="4">{
k++
}</span>
- <span class="cov1" title="1">if k &lt; len(d.lines) &amp;&amp; strings.HasPrefix(strings.TrimSpace(d.lines[k]), "&gt;") </span><span class="cov0" title="0">{
+ <span class="cov3" title="2">if k &lt; len(d.lines) &amp;&amp; strings.HasPrefix(strings.TrimSpace(d.lines[k]), "&gt;") </span><span class="cov0" title="0">{
continue</span>
}
// Derive prompt by removing only the trailing '&gt;'
- <span class="cov1" title="1">removeCount := len(s.chatSuffix)
+ <span class="cov3" title="2">removeCount := len(s.chatSuffix)
base := raw[:j+1-removeCount]
- prompt := strings.TrimSpace(base)
+ prompt := strings.TrimSpace(base)
if prompt == "" </span><span class="cov0" title="0">{
continue</span>
}
- <span class="cov1" title="1">lineIdx := i
+ <span class="cov3" title="2">lineIdx := i
lastIdx := j
- go func(prompt string, remove int) </span><span class="cov1" title="1">{
+ go func(prompt string, remove int) </span><span class="cov3" title="2">{
ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
defer cancel()
sys := "You are a helpful coding assistant. Answer concisely and clearly."
@@ -3577,26 +3731,26 @@ func (s *Server) detectAndHandleChat(uri string) <span class="cov5" title="3">{
logging.Logf("lsp ", "chat llm error: %v", err)
return
}</span>
- <span class="cov1" title="1">out := strings.TrimSpace(stripCodeFences(text))
+ <span class="cov3" title="2">out := strings.TrimSpace(stripCodeFences(text))
if out == "" </span><span class="cov0" title="0">{
return
}</span>
- <span class="cov1" title="1">s.applyChatEdits(uri, lineIdx, lastIdx, remove, "&gt; "+out)</span>
+ <span class="cov3" title="2">s.applyChatEdits(uri, lineIdx, lastIdx, remove, "&gt; "+out)</span>
}(prompt, removeCount)
// Only handle one per change tick to avoid flooding
- <span class="cov1" title="1">break</span>
+ <span class="cov3" title="2">break</span>
}
}
// applyChatEdits removes the triggering punctuation at end of the line and
// inserts two newlines followed by a new line with the response prefixed.
-func (s *Server) applyChatEdits(uri string, lineIdx int, lastNonSpace int, removeCount int, response string) <span class="cov1" title="1">{
+func (s *Server) applyChatEdits(uri string, lineIdx int, lastNonSpace int, removeCount int, response string) <span class="cov3" title="2">{
d := s.getDocument(uri)
if d == nil </span><span class="cov0" title="0">{
return
}</span>
// 1) Delete the trailing punctuation (1 or 2 chars)
- <span class="cov1" title="1">delStart := Position{Line: lineIdx, Character: lastNonSpace + 1 - removeCount}
+ <span class="cov3" title="2">delStart := Position{Line: lineIdx, Character: lastNonSpace + 1 - removeCount}
delEnd := Position{Line: lineIdx, Character: lastNonSpace + 1}
// 2) Insert two newlines and the response at end-of-line, then one extra blank line
insPos := Position{Line: lineIdx, Character: len(d.lines[lineIdx])}
@@ -3612,12 +3766,12 @@ func (s *Server) applyChatEdits(uri string, lineIdx int, lastNonSpace int, remov
// buildChatHistory walks upwards from the current line to collect the most recent
// Q/A pairs in the in-editor transcript. Returns messages ending with current prompt.
-func (s *Server) buildChatHistory(uri string, lineIdx int, currentPrompt string) []llm.Message <span class="cov3" title="2">{
+func (s *Server) buildChatHistory(uri string, lineIdx int, currentPrompt string) []llm.Message <span class="cov5" title="3">{
d := s.getDocument(uri)
if d == nil </span><span class="cov0" title="0">{
return []llm.Message{{Role: "user", Content: currentPrompt}}
}</span>
- <span class="cov3" title="2">type pair struct{ q, a string }
+ <span class="cov5" title="3">type pair struct{ q, a string }
pairs := []pair{}
i := lineIdx - 1
for i &gt;= 0 &amp;&amp; len(pairs) &lt; 3 </span><span class="cov3" title="2">{
@@ -3651,7 +3805,7 @@ func (s *Server) buildChatHistory(uri string, lineIdx int, currentPrompt string)
pairs = append([]pair{{q: q, a: strings.Join(replyLines, "\n")}}, pairs...)
i--</span>
}
- <span class="cov3" title="2">msgs := make([]llm.Message, 0, len(pairs)*2+1)
+ <span class="cov5" title="3">msgs := make([]llm.Message, 0, len(pairs)*2+1)
for _, p := range pairs </span><span class="cov3" title="2">{
if strings.TrimSpace(p.q) != "" </span><span class="cov3" title="2">{
msgs = append(msgs, llm.Message{Role: "user", Content: p.q})
@@ -3660,51 +3814,47 @@ func (s *Server) buildChatHistory(uri string, lineIdx int, currentPrompt string)
msgs = append(msgs, llm.Message{Role: "assistant", Content: p.a})
}</span>
}
- <span class="cov3" title="2">msgs = append(msgs, llm.Message{Role: "user", Content: currentPrompt})
+ <span class="cov5" title="3">msgs = append(msgs, llm.Message{Role: "user", Content: currentPrompt})
return msgs</span>
}
// stripTrailingTrigger removes the trailing chat trigger punctuation from a line if present.
-func stripTrailingTrigger(sx string) string <span class="cov8" title="7">{
- s := strings.TrimRight(sx, " \t")
- if len(s) == 0 </span><span class="cov0" title="0">{
- return sx
- }</span>
- // Configurable suffix removal when preceded by configured prefixes
- <span class="cov8" title="7">if len(s) &gt;= 2 &amp;&amp; s[len(s)-1] == chatSuffixChar </span><span class="cov6" title="4">{
- prev := string(s[len(s)-2])
- for _, pf := range chatPrefixSingles </span><span class="cov10" title="10">{
- if prev == pf </span><span class="cov6" title="4">{
- return strings.TrimRight(s[:len(s)-1], " \t")
- }</span>
+func stripTrailingTrigger(sx string) string <span class="cov8" title="8">{
+ s := strings.TrimRight(sx, " \t")
+ if len(s) == 0 </span><span class="cov0" title="0">{
+ return sx
+ }</span>
+ // Configurable suffix removal when preceded by configured prefixes
+ <span class="cov8" title="8">if len(s) &gt;= 2 &amp;&amp; s[len(s)-1] == chatSuffixChar </span><span class="cov7" title="5">{
+ prev := string(s[len(s)-2])
+ for _, pf := range chatPrefixSingles </span><span class="cov10" title="11">{
+ if prev == pf </span><span class="cov7" title="5">{
+ return strings.TrimRight(s[:len(s)-1], " \t")
+ }</span>
+ }
+ }
+ // Legacy: remove one trailing punctuation (?, !, :) to build history nicely
+ <span class="cov5" title="3">last := s[len(s)-1]
+ switch last </span>{
+ case '?', '!', ':':<span class="cov1" title="1">
+ return strings.TrimRight(s[:len(s)-1], " \t")</span>
+ default:<span class="cov3" title="2">
+ return sx</span>
}
- }
- // Legacy: inline cleanup for old semicolon form ";;"
- <span class="cov5" title="3">if strings.HasSuffix(s, ";;") </span><span class="cov0" title="0">{
- return strings.TrimRight(strings.TrimSuffix(s, ";;"), " \t")
- }</span>
- // Legacy: remove one trailing punctuation (?, !, :) to build history nicely
- <span class="cov5" title="3">last := s[len(s)-1]
- switch last </span>{
- case '?', '!', ':':<span class="cov1" title="1">
- return strings.TrimRight(s[:len(s)-1], " \t")</span>
- default:<span class="cov3" title="2">
- return sx</span>
- }
}
// clientApplyEdit sends a workspace/applyEdit request to the client.
-func (s *Server) clientApplyEdit(label string, edit WorkspaceEdit) <span class="cov1" title="1">{
- params := ApplyWorkspaceEditParams{Label: label, Edit: edit}
- id := s.nextReqID()
- req := Request{JSONRPC: "2.0", ID: id, Method: "workspace/applyEdit"}
- b, _ := json.Marshal(params)
- req.Params = b
- s.writeMessage(req)
+func (s *Server) clientApplyEdit(label string, edit WorkspaceEdit) <span class="cov3" title="2">{
+ params := ApplyWorkspaceEditParams{Label: label, Edit: edit}
+ id := s.nextReqID()
+ req := Request{JSONRPC: "2.0", ID: id, Method: "workspace/applyEdit"}
+ b, _ := json.Marshal(params)
+ req.Params = b
+ s.writeMessage(req)
}</span>
// nextReqID returns a unique json.RawMessage id for server-initiated requests.
-func (s *Server) nextReqID() json.RawMessage <span class="cov6" title="4">{
+func (s *Server) nextReqID() json.RawMessage <span class="cov7" title="5">{
s.mu.Lock()
s.nextID++
idNum := s.nextID
@@ -3715,29 +3865,29 @@ func (s *Server) nextReqID() json.RawMessage <span class="cov6" title="4">{
// clientShowDocument asks the client to open/focus a document and select a range.
func (s *Server) clientShowDocument(uri string, sel *Range) <span class="cov5" title="3">{
- var params struct {
- URI string `json:"uri"`
- External bool `json:"external,omitempty"`
- TakeFocus bool `json:"takeFocus,omitempty"`
- Selection *Range `json:"selection,omitempty"`
- }
- params.URI = uri
- params.TakeFocus = true
- params.Selection = sel
- id := s.nextReqID()
- req := Request{JSONRPC: "2.0", ID: id, Method: "window/showDocument"}
- b, _ := json.Marshal(params)
- req.Params = b
- s.writeMessage(req)
+ var params struct {
+ URI string `json:"uri"`
+ External bool `json:"external,omitempty"`
+ TakeFocus bool `json:"takeFocus,omitempty"`
+ Selection *Range `json:"selection,omitempty"`
+ }
+ params.URI = uri
+ params.TakeFocus = true
+ params.Selection = sel
+ id := s.nextReqID()
+ req := Request{JSONRPC: "2.0", ID: id, Method: "window/showDocument"}
+ b, _ := json.Marshal(params)
+ req.Params = b
+ s.writeMessage(req)
}</span>
// deferShowDocument schedules a showDocument after a short delay to allow the client
// time to apply any pending edits (e.g., create the file before focusing it).
func (s *Server) deferShowDocument(uri string, sel Range) <span class="cov1" title="1">{
- go func() </span><span class="cov1" title="1">{
- time.Sleep(120 * time.Millisecond)
- s.clientShowDocument(uri, &amp;sel)
- }</span>()
+ go func() </span><span class="cov1" title="1">{
+ time.Sleep(120 * time.Millisecond)
+ s.clientShowDocument(uri, &amp;sel)
+ }</span>()
}
</pre>
@@ -3745,46 +3895,46 @@ func (s *Server) deferShowDocument(uri string, sel Range) <span class="cov1" tit
package lsp
import (
- "encoding/json"
+ "encoding/json"
)
func (s *Server) handleExecuteCommand(req Request) <span class="cov8" title="1">{
- var p ExecuteCommandParams
- if err := json.Unmarshal(req.Params, &amp;p); err != nil </span><span class="cov0" title="0">{
- s.reply(req.ID, nil, nil)
- return
- }</span>
- <span class="cov8" title="1">switch p.Command </span>{
- case "hexai.showDocument":<span class="cov8" title="1">
- if len(p.Arguments) &gt;= 2 </span><span class="cov8" title="1">{
- uri, _ := p.Arguments[0].(string)
- var r Range
- // Convert second arg to Range via re-marshal to be robust across clients
- if b, err := json.Marshal(p.Arguments[1]); err == nil </span><span class="cov8" title="1">{
- _ = json.Unmarshal(b, &amp;r)
- }</span>
- <span class="cov8" title="1">if uri != "" </span><span class="cov8" title="1">{
- s.clientShowDocument(uri, &amp;r)
- }</span>
+ var p ExecuteCommandParams
+ if err := json.Unmarshal(req.Params, &amp;p); err != nil </span><span class="cov0" title="0">{
+ s.reply(req.ID, nil, nil)
+ return
+ }</span>
+ <span class="cov8" title="1">switch p.Command </span>{
+ case "hexai.showDocument":<span class="cov8" title="1">
+ if len(p.Arguments) &gt;= 2 </span><span class="cov8" title="1">{
+ uri, _ := p.Arguments[0].(string)
+ var r Range
+ // Convert second arg to Range via re-marshal to be robust across clients
+ if b, err := json.Marshal(p.Arguments[1]); err == nil </span><span class="cov8" title="1">{
+ _ = json.Unmarshal(b, &amp;r)
+ }</span>
+ <span class="cov8" title="1">if uri != "" </span><span class="cov8" title="1">{
+ s.clientShowDocument(uri, &amp;r)
+ }</span>
+ }
+ <span class="cov8" title="1">s.reply(req.ID, nil, nil)
+ return</span>
+ default:<span class="cov0" title="0">
+ // Unknown command; no-op
+ s.reply(req.ID, nil, nil)
+ return</span>
}
- <span class="cov8" title="1">s.reply(req.ID, nil, nil)
- return</span>
- default:<span class="cov0" title="0">
- // Unknown command; no-op
- s.reply(req.ID, nil, nil)
- return</span>
- }
}
-
</pre>
<pre class="file" id="file19" style="display: none">// Summary: Initialization and lifecycle handlers split from handlers.go.
package lsp
import (
+ "os"
+
"codeberg.org/snonux/hexai/internal"
"codeberg.org/snonux/hexai/internal/logging"
- "os"
)
func (s *Server) handleInitialize(req Request) <span class="cov10" title="2">{
@@ -3824,59 +3974,62 @@ func (s *Server) handleExit() <span class="cov0" title="0">{
package lsp
import (
- "fmt"
- "codeberg.org/snonux/hexai/internal/llm"
- "codeberg.org/snonux/hexai/internal/logging"
- "strings"
- "time"
+ "fmt"
+ "strings"
+ "time"
+
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/logging"
)
// Configurable inline trigger characters (default to '&gt;') used by free helpers below.
// NewServer assigns these based on ServerOptions.
-var inlineOpenChar byte = '&gt;'
-var inlineCloseChar byte = '&gt;'
+var (
+ inlineOpenChar byte = '&gt;'
+ inlineCloseChar byte = '&gt;'
+)
// llmRequestOpts builds request options from server settings.
-func (s *Server) llmRequestOpts() []llm.RequestOption <span class="cov5" title="11">{
+func (s *Server) llmRequestOpts() []llm.RequestOption <span class="cov5" title="12">{
opts := []llm.RequestOption{llm.WithMaxTokens(s.maxTokens)}
if s.codingTemperature != nil </span><span class="cov0" title="0">{
opts = append(opts, llm.WithTemperature(*s.codingTemperature))
}</span>
- <span class="cov5" title="11">return opts</span>
+ <span class="cov5" title="12">return opts</span>
}
// small helpers for LLM traffic stats
-func (s *Server) incSentCounters(n int) <span class="cov4" title="7">{
+func (s *Server) incSentCounters(n int) <span class="cov5" title="8">{
s.mu.Lock()
s.llmReqTotal++
s.llmSentBytesTotal += int64(n)
s.mu.Unlock()
}</span>
-func (s *Server) incRecvCounters(n int) <span class="cov4" title="7">{
+func (s *Server) incRecvCounters(n int) <span class="cov5" title="8">{
s.mu.Lock()
s.llmRespTotal++
s.llmRespBytesTotal += int64(n)
s.mu.Unlock()
}</span>
-func (s *Server) logLLMStats() <span class="cov4" title="7">{
+func (s *Server) logLLMStats() <span class="cov5" title="8">{
s.mu.RLock()
avgSent := int64(0)
- if s.llmReqTotal &gt; 0 </span><span class="cov4" title="7">{
+ if s.llmReqTotal &gt; 0 </span><span class="cov5" title="8">{
avgSent = s.llmSentBytesTotal / s.llmReqTotal
}</span>
- <span class="cov4" title="7">avgRecv := int64(0)
- if s.llmRespTotal &gt; 0 </span><span class="cov4" title="7">{
+ <span class="cov5" title="8">avgRecv := int64(0)
+ if s.llmRespTotal &gt; 0 </span><span class="cov5" title="8">{
avgRecv = s.llmRespBytesTotal / s.llmRespTotal
}</span>
- <span class="cov4" title="7">reqs, sentTot, recvTot := s.llmReqTotal, s.llmSentBytesTotal, s.llmRespBytesTotal
+ <span class="cov5" title="8">reqs, sentTot, recvTot := s.llmReqTotal, s.llmSentBytesTotal, s.llmRespBytesTotal
s.mu.RUnlock()
mins := time.Since(s.startTime).Minutes()
if mins &lt;= 0 </span><span class="cov0" title="0">{
mins = 0.001
}</span>
- <span class="cov4" title="7">rpm := float64(reqs) / mins
+ <span class="cov5" title="8">rpm := float64(reqs) / mins
sentPerMin := float64(sentTot) / mins
recvPerMin := float64(recvTot) / mins
logging.Logf("lsp ", "llm stats reqs=%d avg_sent=%d avg_recv=%d sent_total=%d recv_total=%d rpm=%.2f sent_per_min=%.0f recv_per_min=%.0f", reqs, avgSent, avgRecv, sentTot, recvTot, rpm, sentPerMin, recvPerMin)</span>
@@ -3903,7 +4056,7 @@ func buildPrompts(inParams bool, p CompletionParams, above, current, below, func
return sys, user</span>
}
-func computeTextEditAndFilter(cleaned string, inParams bool, current string, p CompletionParams) (*TextEdit, string) <span class="cov6" title="15">{
+func computeTextEditAndFilter(cleaned string, inParams bool, current string, p CompletionParams) (*TextEdit, string) <span class="cov6" title="16">{
if inParams </span><span class="cov3" title="3">{
open := strings.Index(current, "(")
close := strings.Index(current, ")")
@@ -3924,25 +4077,25 @@ func computeTextEditAndFilter(cleaned string, inParams bool, current string, p C
<span class="cov3" title="3">return te, filter</span>
}
}
- <span class="cov5" title="12">startChar := computeWordStart(current, p.Position.Character)
+ <span class="cov6" title="13">startChar := computeWordStart(current, p.Position.Character)
te := &amp;TextEdit{Range: Range{Start: Position{Line: p.Position.Line, Character: startChar}, End: Position{Line: p.Position.Line, Character: p.Position.Character}}, NewText: cleaned}
filter := strings.TrimLeft(current[startChar:p.Position.Character], " \t")
return te, filter</span>
}
-func computeWordStart(current string, at int) int <span class="cov7" title="21">{
+func computeWordStart(current string, at int) int <span class="cov7" title="22">{
if at &gt; len(current) </span><span class="cov0" title="0">{
at = len(current)
}</span>
- <span class="cov7" title="21">for at &gt; 0 </span><span class="cov8" title="37">{
+ <span class="cov7" title="22">for at &gt; 0 </span><span class="cov8" title="38">{
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="20">{
at--
continue</span>
}
- <span class="cov6" title="17">break</span>
+ <span class="cov6" title="18">break</span>
}
- <span class="cov7" title="21">return at</span>
+ <span class="cov7" title="22">return at</span>
}
func isIdentChar(ch byte) bool <span class="cov7" title="24">{
@@ -3950,109 +4103,109 @@ func isIdentChar(ch byte) bool <span class="cov7" title="24">{
}</span>
// Inline prompt utilities
-func lineHasInlinePrompt(line string) bool <span class="cov6" title="18">{
- if _, _, _, ok := findStrictSemicolonTag(line); ok </span><span class="cov1" title="1">{
- return true
- }</span>
- <span class="cov6" title="17">return hasDoubleSemicolonTrigger(line)</span>
+func lineHasInlinePrompt(line string) bool <span class="cov6" title="20">{
+ if _, _, _, ok := findStrictInlineTag(line); ok </span><span class="cov3" title="3">{
+ return true
+ }</span>
+ <span class="cov6" title="17">return hasDoubleOpenTrigger(line)</span>
}
-func leadingIndent(line string) string <span class="cov2" title="2">{
+func leadingIndent(line string) string <span class="cov3" title="3">{
i := 0
- for i &lt; len(line) </span><span class="cov4" title="7">{
- if line[i] == ' ' || line[i] == '\t' </span><span class="cov4" title="5">{
+ for i &lt; len(line) </span><span class="cov5" title="10">{
+ if line[i] == ' ' || line[i] == '\t' </span><span class="cov4" title="7">{
i++
continue</span>
}
- <span class="cov2" title="2">break</span>
+ <span class="cov3" title="3">break</span>
}
- <span class="cov2" title="2">if i == 0 </span><span class="cov0" title="0">{
+ <span class="cov3" title="3">if i == 0 </span><span class="cov0" title="0">{
return ""
}</span>
- <span class="cov2" title="2">return line[:i]</span>
+ <span class="cov3" title="3">return line[:i]</span>
}
-func applyIndent(indent, suggestion string) string <span class="cov2" title="2">{
+func applyIndent(indent, suggestion string) string <span class="cov3" title="3">{
if indent == "" || suggestion == "" </span><span class="cov0" title="0">{
return suggestion
}</span>
- <span class="cov2" title="2">lines := splitLines(suggestion)
- for i, ln := range lines </span><span class="cov4" title="6">{
+ <span class="cov3" title="3">lines := splitLines(suggestion)
+ for i, ln := range lines </span><span class="cov5" title="8">{
if strings.TrimSpace(ln) == "" </span><span class="cov1" title="1">{
continue</span>
}
- <span class="cov4" title="5">if strings.HasPrefix(ln, indent) </span><span class="cov0" title="0">{
+ <span class="cov4" title="7">if strings.HasPrefix(ln, indent) </span><span class="cov0" title="0">{
continue</span>
}
- <span class="cov4" title="5">lines[i] = indent + ln</span>
+ <span class="cov4" title="7">lines[i] = indent + ln</span>
}
- <span class="cov2" title="2">return strings.Join(lines, "\n")</span>
+ <span class="cov3" title="3">return strings.Join(lines, "\n")</span>
}
// --- Inline marker parsing and general string utilities ---
-// findStrictSemicolonTag now finds &gt;text&gt; (configurable), with no space after the first
+// 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 findStrictSemicolonTag(line string) (string, int, int, bool) <span class="cov8" title="46">{
- pos := 0
- for pos &lt; len(line) </span><span class="cov9" title="58">{
- // 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="cov7" title="31">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="18">{
- pos = j + 1
- continue</span>
- }
- // find closing marker
- <span class="cov6" title="13">k := strings.IndexByte(line[j+1:], inlineCloseChar)
- if k &lt; 0 </span><span class="cov1" title="1">{
- return "", 0, 0, false
- }</span>
- <span class="cov5" title="12">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="cov5" title="11">inner := strings.TrimSpace(line[j+1 : closeIdx])
- if inner == "" </span><span class="cov0" title="0">{
- pos = closeIdx + 1
- continue</span>
+func findStrictInlineTag(line string) (string, int, int, bool) <span class="cov8" title="49">{
+ pos := 0
+ for pos &lt; len(line) </span><span class="cov9" title="64">{
+ // 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
+ // 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)
+ if k &lt; 0 </span><span class="cov1" title="1">{
+ return "", 0, 0, false
+ }</span>
+ <span class="cov6" title="15">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])
+ if inner == "" </span><span class="cov0" title="0">{
+ pos = closeIdx + 1
+ continue</span>
+ }
+ <span class="cov6" title="14">end := closeIdx + 1
+ return inner, j, end, true</span>
}
- <span class="cov5" title="11">end := closeIdx + 1
- return inner, j, end, true</span>
- }
- <span class="cov4" title="7">return "", 0, 0, false</span>
+ <span class="cov4" title="7">return "", 0, 0, false</span>
}
// isBareDoubleSemicolon reports whether the line contains a standalone
// double-semicolon marker with no inline content (";;" possibly with only
// whitespace after it). It explicitly excludes the valid form ";;text;".
-func isBareDoubleSemicolon(line string) bool <span class="cov6" title="19">{
- t := strings.TrimSpace(line)
- // check for double-open pattern
- dbl := string([]byte{inlineOpenChar, inlineOpenChar})
- if !strings.Contains(t, dbl) </span><span class="cov6" title="16">{
- return false
- }</span>
- <span class="cov3" title="3">if hasDoubleSemicolonTrigger(t) </span><span class="cov1" title="1">{
- return false
- }</span>
- <span class="cov2" title="2">if strings.HasPrefix(t, dbl) </span><span class="cov2" title="2">{
- rest := strings.TrimSpace(t[len(dbl):])
- if rest == "" || rest == ";" </span><span class="cov2" title="2">{
- return true
- }</span>
- }
- <span class="cov0" title="0">return false</span>
+func isBareDoubleOpen(line string) bool <span class="cov6" title="19">{
+ t := strings.TrimSpace(line)
+ // check for double-open pattern
+ dbl := string([]byte{inlineOpenChar, inlineOpenChar})
+ if !strings.Contains(t, dbl) </span><span class="cov6" title="16">{
+ return false
+ }</span>
+ <span class="cov3" title="3">if hasDoubleOpenTrigger(t) </span><span class="cov1" title="1">{
+ return false
+ }</span>
+ <span class="cov2" title="2">if strings.HasPrefix(t, dbl) </span><span class="cov2" title="2">{
+ rest := strings.TrimSpace(t[len(dbl):])
+ if rest == "" || rest == ";" </span><span class="cov2" title="2">{
+ return true
+ }</span>
+ }
+ <span class="cov0" title="0">return false</span>
}
// stripDuplicateAssignmentPrefix removes a duplicated assignment prefix from the suggestion.
-func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="17">{
+func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="18">{
s2 := strings.TrimLeft(suggestion, " \t")
// Prefer := if present at end of prefix
if idx := strings.LastIndex(prefixBeforeCursor, ":="); idx &gt;= 0 &amp;&amp; idx+2 &lt;= len(prefixBeforeCursor) </span><span class="cov3" title="4">{
@@ -4070,7 +4223,7 @@ func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) strin
}
}
// Fallback to plain '=' if present
- <span class="cov6" title="13">if idx := strings.LastIndex(prefixBeforeCursor, "="); idx &gt;= 0 </span><span class="cov2" title="2">{
+ <span class="cov6" title="14">if idx := strings.LastIndex(prefixBeforeCursor, "="); idx &gt;= 0 </span><span class="cov2" title="2">{
if !(idx &gt; 0 &amp;&amp; prefixBeforeCursor[idx-1] == ':') </span><span class="cov2" title="2">{ // not :=
tail := prefixBeforeCursor[idx+1:]
if strings.TrimSpace(tail) == "" </span><span class="cov2" title="2">{
@@ -4086,63 +4239,63 @@ func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) strin
}
}
}
- <span class="cov5" title="11">return suggestion</span>
+ <span class="cov5" title="12">return suggestion</span>
}
// stripDuplicateGeneralPrefix removes any already-typed prefix that the model repeated.
-func stripDuplicateGeneralPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="17">{
+func stripDuplicateGeneralPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="18">{
if suggestion == "" </span><span class="cov0" title="0">{
return suggestion
}</span>
- <span class="cov6" title="17">s := strings.TrimLeft(suggestion, " \t")
+ <span class="cov6" title="18">s := strings.TrimLeft(suggestion, " \t")
p := strings.TrimRight(prefixBeforeCursor, " \t")
if p != "" &amp;&amp; strings.HasPrefix(s, p) </span><span class="cov4" title="5">{
return strings.TrimLeft(s[len(p):], " \t")
}</span>
- <span class="cov5" title="12">for k := len(p) - 1; k &gt; 0; k-- </span><span class="cov10" title="94">{
- if !isIdentBoundary(p[k-1]) </span><span class="cov9" title="75">{
+ <span class="cov6" title="13">for k := len(p) - 1; k &gt; 0; k-- </span><span class="cov10" title="100">{
+ if !isIdentBoundary(p[k-1]) </span><span class="cov9" title="77">{
continue</span>
}
- <span class="cov6" title="19">suf := strings.TrimLeft(p[k:], " \t")
+ <span class="cov7" title="23">suf := strings.TrimLeft(p[k:], " \t")
if suf == "" </span><span class="cov0" title="0">{
continue</span>
}
- <span class="cov6" title="19">if strings.HasPrefix(s, suf) </span><span class="cov0" title="0">{
+ <span class="cov7" title="23">if strings.HasPrefix(s, suf) </span><span class="cov0" title="0">{
return strings.TrimLeft(s[len(suf):], " \t")
}</span>
}
- <span class="cov5" title="12">return suggestion</span>
+ <span class="cov6" title="13">return suggestion</span>
}
-func isIdentBoundary(ch byte) bool <span class="cov10" title="94">{
+func isIdentBoundary(ch byte) bool <span class="cov10" title="100">{
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>
// stripCodeFences removes surrounding Markdown code fences from a model response.
-func stripCodeFences(s string) string <span class="cov7" title="30">{
+func stripCodeFences(s string) string <span class="cov7" title="31">{
t := strings.TrimSpace(s)
if t == "" </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov7" title="30">lines := splitLines(t)
+ <span class="cov7" title="31">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="cov7" title="30">end := len(lines) - 1
+ <span class="cov7" title="31">end := len(lines) - 1
for end &gt;= 0 &amp;&amp; strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{
end--
}</span>
- <span class="cov7" title="30">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
+ <span class="cov7" title="31">if start &gt;= len(lines) || end &lt; 0 || start &gt; end </span><span class="cov0" title="0">{
return t
}</span>
- <span class="cov7" title="30">first := strings.TrimSpace(lines[start])
+ <span class="cov7" title="31">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="22">return t</span>
+ <span class="cov7" title="23">return t</span>
}
// stripInlineCodeSpan returns the contents of the first inline backtick code span if present.
@@ -4164,25 +4317,25 @@ func stripInlineCodeSpan(s string) string <span class="cov5" title="10">{
}
// labelForCompletion picks a short, readable label for the completion list.
-func labelForCompletion(cleaned, filter string) string <span class="cov6" title="16">{
+func labelForCompletion(cleaned, filter string) string <span class="cov6" title="17">{
label := trimLen(firstLine(cleaned))
if filter != "" &amp;&amp; !strings.HasPrefix(strings.ToLower(label), strings.ToLower(filter)) </span><span class="cov3" title="3">{
return filter
}</span>
- <span class="cov6" title="13">return label</span>
+ <span class="cov6" title="14">return label</span>
}
// extractRangeText returns the exact text within the given document range.
-func extractRangeText(d *document, r Range) string <span class="cov3" title="3">{
- if r.Start.Line == r.End.Line </span><span class="cov2" title="2">{
+func extractRangeText(d *document, r Range) string <span class="cov3" title="4">{
+ if r.Start.Line == r.End.Line </span><span class="cov3" title="3">{
line := d.lines[r.Start.Line]
if r.Start.Character &lt; 0 </span><span class="cov0" title="0">{
r.Start.Character = 0
}</span>
- <span class="cov2" title="2">if r.End.Character &gt; len(line) </span><span class="cov0" title="0">{
+ <span class="cov3" title="3">if r.End.Character &gt; len(line) </span><span class="cov0" title="0">{
r.End.Character = len(line)
}</span>
- <span class="cov2" title="2">if r.Start.Character &gt; r.End.Character </span><span class="cov0" title="0">{
+ <span class="cov3" title="3">if r.Start.Character &gt; r.End.Character </span><span class="cov1" title="1">{
return ""
}</span>
<span class="cov2" title="2">return line[r.Start.Character:r.End.Character]</span>
@@ -4218,9 +4371,9 @@ func extractRangeText(d *document, r Range) string <span class="cov3" title="3">
}
// collectPromptRemovalEdits returns edits to remove all inline prompt markers.
-func (s *Server) collectPromptRemovalEdits(uri string) []TextEdit <span class="cov5" title="11">{
+func (s *Server) collectPromptRemovalEdits(uri string) []TextEdit <span class="cov5" title="12">{
d := s.getDocument(uri)
- if d == nil || len(d.lines) == 0 </span><span class="cov5" title="10">{
+ if d == nil || len(d.lines) == 0 </span><span class="cov5" title="11">{
return nil
}</span>
<span class="cov1" title="1">var edits []TextEdit
@@ -4231,84 +4384,84 @@ func (s *Server) collectPromptRemovalEdits(uri string) []TextEdit <span class="c
}
func promptRemovalEditsForLine(line string, lineNum int) []TextEdit <span class="cov4" title="7">{
- if hasDoubleSemicolonTrigger(line) </span><span class="cov3" title="3">{
- return []TextEdit{{Range: Range{Start: Position{Line: lineNum, Character: 0}, End: Position{Line: lineNum, Character: len(line)}}, NewText: ""}}
- }</span>
- <span class="cov3" title="4">return collectSemicolonMarkers(line, lineNum)</span>
+ if hasDoubleOpenTrigger(line) </span><span class="cov3" title="3">{
+ return []TextEdit{{Range: Range{Start: Position{Line: lineNum, Character: 0}, End: Position{Line: lineNum, Character: len(line)}}, NewText: ""}}
+ }</span>
+ <span class="cov3" title="4">return collectSemicolonMarkers(line, lineNum)</span>
}
-func hasDoubleSemicolonTrigger(line string) bool <span class="cov8" title="49">{
- pos := 0
- for pos &lt; len(line) </span><span class="cov8" title="50">{
- // look for double-open sequence
- dbl := string([]byte{inlineOpenChar, inlineOpenChar})
- j := strings.Index(line[pos:], dbl)
- if j &lt; 0 </span><span class="cov7" title="32">{
- return false
- }</span>
- <span class="cov6" title="18">j += pos
- contentStart := j + len(dbl)
- if contentStart &gt;= len(line) </span><span class="cov4" title="6">{
- return false
- }</span>
- <span class="cov5" title="12">first := line[contentStart]
- if first == ' ' || first == inlineOpenChar </span><span class="cov3" title="3">{
- pos = contentStart + 1
- continue</span>
- }
- // find closing
- <span class="cov5" title="9">k := strings.IndexByte(line[contentStart+1:], inlineCloseChar)
- if k &lt; 0 </span><span class="cov0" title="0">{
- return false
- }</span>
- <span class="cov5" title="9">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>
+func hasDoubleOpenTrigger(line string) bool <span class="cov8" title="51">{
+ pos := 0
+ for pos &lt; len(line) </span><span class="cov8" title="53">{
+ // look for double-open sequence
+ dbl := string([]byte{inlineOpenChar, inlineOpenChar})
+ j := strings.Index(line[pos:], dbl)
+ if j &lt; 0 </span><span class="cov7" title="32">{
+ return false
+ }</span>
+ <span class="cov6" title="21">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]
+ 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)
+ if k &lt; 0 </span><span class="cov0" title="0">{
+ return false
+ }</span>
+ <span class="cov5" title="10">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="8">return true</span>
- }
- <span class="cov3" title="3">return false</span>
+ <span class="cov3" title="3">return false</span>
}
func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="cov4" title="5">{
- var edits []TextEdit
- startSemi := 0
- for startSemi &lt; len(line) </span><span class="cov5" title="9">{
- j := strings.IndexByte(line[startSemi:], inlineOpenChar)
- if j &lt; 0 </span><span class="cov3" title="4">{
- break</span>
- }
- <span class="cov4" title="5">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">{
- 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
- startSemi = j + 2
- continue</span>
- }
- <span class="cov4" title="5">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">{
- startSemi = closeIdx + 1
- continue</span>
+ var edits []TextEdit
+ startSemi := 0
+ for startSemi &lt; len(line) </span><span class="cov5" title="9">{
+ j := strings.IndexByte(line[startSemi:], inlineOpenChar)
+ if j &lt; 0 </span><span class="cov3" title="4">{
+ break</span>
+ }
+ <span class="cov4" title="5">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">{
+ 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
+ startSemi = j + 2
+ continue</span>
+ }
+ <span class="cov4" title="5">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">{
+ startSemi = closeIdx + 1
+ continue</span>
+ }
+ <span class="cov4" title="5">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: ""})
+ startSemi = endChar</span>
}
- <span class="cov4" title="5">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: ""})
- startSemi = endChar</span>
- }
- <span class="cov4" title="5">return edits</span>
+ <span class="cov4" title="5">return edits</span>
}
</pre>
@@ -4316,15 +4469,16 @@ func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="c
package lsp
import (
- "bufio"
- "encoding/json"
- "codeberg.org/snonux/hexai/internal/llm"
- "codeberg.org/snonux/hexai/internal/logging"
- "io"
- "log"
- "strings"
- "sync"
- "time"
+ "bufio"
+ "encoding/json"
+ "io"
+ "log"
+ "strings"
+ "sync"
+ "time"
+
+ "codeberg.org/snonux/hexai/internal/llm"
+ "codeberg.org/snonux/hexai/internal/logging"
)
// Server implements a minimal LSP over stdio.
@@ -4341,8 +4495,8 @@ type Server struct {
maxTokens int
contextMode string
windowLines int
- maxContextTokens int
- triggerChars []string
+ maxContextTokens int
+ triggerChars []string
// If set, used as the LSP coding temperature for all LLM calls
codingTemperature *float64
// LLM request stats
@@ -4354,114 +4508,138 @@ type Server struct {
// Small LRU cache for recent code completion outputs (keyed by context)
compCache map[string]string
compCacheOrder []string // most-recent at end; cap ~10
- // Outgoing JSON-RPC id counter for server-initiated requests
- nextID int64
+ // Outgoing JSON-RPC id counter for server-initiated requests
+ nextID int64
// Minimum identifier chars required for manual invoke to bypass prefix checks
manualInvokeMinPrefix int
- // Debounce and throttle settings
- completionDebounce time.Duration
- throttleInterval time.Duration
- lastLLMCall time.Time
+ // Debounce and throttle settings
+ completionDebounce time.Duration
+ throttleInterval time.Duration
+ lastLLMCall time.Time
- // Dispatch table for JSON-RPC methods → handler functions
- handlers map[string]func(Request)
+ // Dispatch table for JSON-RPC methods → handler functions
+ handlers map[string]func(Request)
- // Configurable trigger characters
- inlineOpen string
- inlineClose string
- chatSuffix string
- chatPrefixes []string
+ // Configurable trigger characters
+ inlineOpen string
+ inlineClose string
+ chatSuffix string
+ chatPrefixes []string
}
// ServerOptions collects configuration for NewServer to avoid long parameter lists.
type ServerOptions struct {
- LogContext bool
- MaxTokens int
- ContextMode string
- WindowLines int
- MaxContextTokens int
-
- Client llm.Client
- TriggerCharacters []string
- CodingTemperature *float64
- ManualInvokeMinPrefix int
- CompletionDebounceMs int
- CompletionThrottleMs int
-
- // Inline/chat triggers
- InlineOpen string
- InlineClose string
- ChatSuffix string
- ChatPrefixes []string
-}
-
-func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server <span class="cov10" title="4">{
+ LogContext bool
+ MaxTokens int
+ ContextMode string
+ WindowLines int
+ MaxContextTokens int
+
+ Client llm.Client
+ TriggerCharacters []string
+ CodingTemperature *float64
+ ManualInvokeMinPrefix int
+ CompletionDebounceMs int
+ CompletionThrottleMs int
+
+ // Inline/chat triggers
+ InlineOpen string
+ InlineClose string
+ ChatSuffix string
+ ChatPrefixes []string
+}
+
+func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server <span class="cov10" title="6">{
s := &amp;Server{in: bufio.NewReader(r), out: w, logger: logger, docs: make(map[string]*document), logContext: opts.LogContext}
maxTokens := opts.MaxTokens
- if maxTokens &lt;= 0 </span><span class="cov8" title="3">{
+ if maxTokens &lt;= 0 </span><span class="cov9" title="5">{
maxTokens = 500
}</span>
- <span class="cov10" title="4">s.maxTokens = maxTokens
+ <span class="cov10" title="6">s.maxTokens = maxTokens
contextMode := opts.ContextMode
- if contextMode == "" </span><span class="cov8" title="3">{
+ if contextMode == "" </span><span class="cov9" title="5">{
contextMode = "file-on-new-func"
}</span>
- <span class="cov10" title="4">windowLines := opts.WindowLines
- if windowLines &lt;= 0 </span><span class="cov8" title="3">{
+ <span class="cov10" title="6">windowLines := opts.WindowLines
+ if windowLines &lt;= 0 </span><span class="cov9" title="5">{
windowLines = 120
}</span>
- <span class="cov10" title="4">maxContextTokens := opts.MaxContextTokens
- if maxContextTokens &lt;= 0 </span><span class="cov8" title="3">{
+ <span class="cov10" title="6">maxContextTokens := opts.MaxContextTokens
+ if maxContextTokens &lt;= 0 </span><span class="cov9" title="5">{
maxContextTokens = 2000
}</span>
- <span class="cov10" title="4">s.contextMode = contextMode
+ <span class="cov10" title="6">s.contextMode = contextMode
s.windowLines = windowLines
s.maxContextTokens = maxContextTokens
s.startTime = time.Now()
s.llmClient = opts.Client
- if len(opts.TriggerCharacters) == 0 </span><span class="cov10" title="4">{
+ if len(opts.TriggerCharacters) == 0 </span><span class="cov10" title="6">{
// Defaults (no space to avoid auto-trigger after whitespace)
s.triggerChars = []string{".", ":", "/", "_", ")", "{"}
}</span> else<span class="cov0" title="0"> {
s.triggerChars = append([]string{}, opts.TriggerCharacters...)
}</span>
- <span class="cov10" title="4">s.codingTemperature = opts.CodingTemperature
- s.compCache = make(map[string]string)
- s.manualInvokeMinPrefix = opts.ManualInvokeMinPrefix
- if opts.CompletionDebounceMs &gt; 0 </span><span class="cov1" title="1">{
- s.completionDebounce = time.Duration(opts.CompletionDebounceMs) * time.Millisecond
- }</span>
- <span class="cov10" title="4">if opts.CompletionThrottleMs &gt; 0 </span><span class="cov0" title="0">{
- s.throttleInterval = time.Duration(opts.CompletionThrottleMs) * time.Millisecond
- }</span>
- // Trigger character config (with sane defaults if missing)
- <span class="cov10" title="4">if strings.TrimSpace(opts.InlineOpen) == "" </span><span class="cov8" title="3">{ s.inlineOpen = "&gt;" }</span> else<span class="cov1" title="1"> { s.inlineOpen = opts.InlineOpen }</span>
- <span class="cov10" title="4">if strings.TrimSpace(opts.InlineClose) == "" </span><span class="cov8" title="3">{ s.inlineClose = "&gt;" }</span> else<span class="cov1" title="1"> { s.inlineClose = opts.InlineClose }</span>
- <span class="cov10" title="4">if strings.TrimSpace(opts.ChatSuffix) == "" </span><span class="cov8" title="3">{ s.chatSuffix = "&gt;" }</span> else<span class="cov1" title="1"> { s.chatSuffix = opts.ChatSuffix }</span>
- <span class="cov10" title="4">if len(opts.ChatPrefixes) == 0 </span><span class="cov8" title="3">{ s.chatPrefixes = []string{"?","!",":",";"} }</span> else<span class="cov1" title="1"> { s.chatPrefixes = append([]string{}, opts.ChatPrefixes...) }</span>
-
- // Assign package-level inline trigger chars for free helper functions
- <span class="cov10" title="4">if s.inlineOpen != "" </span><span class="cov10" title="4">{ inlineOpenChar = s.inlineOpen[0] }</span>
- <span class="cov10" title="4">if s.inlineClose != "" </span><span class="cov10" title="4">{ inlineCloseChar = s.inlineClose[0] }</span>
- <span class="cov10" title="4">if s.chatSuffix != "" </span><span class="cov10" title="4">{ chatSuffixChar = s.chatSuffix[0] }</span>
- <span class="cov10" title="4">if len(s.chatPrefixes) &gt; 0 </span><span class="cov10" title="4">{ chatPrefixSingles = append([]string{}, s.chatPrefixes...) }</span>
+ <span class="cov10" title="6">s.codingTemperature = opts.CodingTemperature
+ s.compCache = make(map[string]string)
+ s.manualInvokeMinPrefix = opts.ManualInvokeMinPrefix
+ if opts.CompletionDebounceMs &gt; 0 </span><span class="cov1" title="1">{
+ s.completionDebounce = time.Duration(opts.CompletionDebounceMs) * time.Millisecond
+ }</span>
+ <span class="cov10" title="6">if opts.CompletionThrottleMs &gt; 0 </span><span class="cov0" title="0">{
+ s.throttleInterval = time.Duration(opts.CompletionThrottleMs) * time.Millisecond
+ }</span>
+ // Trigger character config (with sane defaults if missing)
+ <span class="cov10" title="6">if strings.TrimSpace(opts.InlineOpen) == "" </span><span class="cov7" title="4">{
+ s.inlineOpen = "&gt;"
+ }</span> else<span class="cov4" title="2"> {
+ s.inlineOpen = opts.InlineOpen
+ }</span>
+ <span class="cov10" title="6">if strings.TrimSpace(opts.InlineClose) == "" </span><span class="cov7" title="4">{
+ s.inlineClose = "&gt;"
+ }</span> else<span class="cov4" title="2"> {
+ s.inlineClose = opts.InlineClose
+ }</span>
+ <span class="cov10" title="6">if strings.TrimSpace(opts.ChatSuffix) == "" </span><span class="cov6" title="3">{
+ s.chatSuffix = "&gt;"
+ }</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>
+
+ // Assign package-level inline trigger chars for free helper functions
+ <span class="cov10" title="6">if s.inlineOpen != "" </span><span class="cov10" title="6">{
+ inlineOpenChar = s.inlineOpen[0]
+ }</span>
+ <span class="cov10" title="6">if s.inlineClose != "" </span><span class="cov10" title="6">{
+ inlineCloseChar = s.inlineClose[0]
+ }</span>
+ <span class="cov10" title="6">if s.chatSuffix != "" </span><span class="cov10" title="6">{
+ chatSuffixChar = s.chatSuffix[0]
+ }</span>
+ <span class="cov10" title="6">if len(s.chatPrefixes) &gt; 0 </span><span class="cov10" title="6">{
+ chatPrefixSingles = append([]string{}, s.chatPrefixes...)
+ }</span>
// Initialize dispatch table
- <span class="cov10" title="4">s.handlers = map[string]func(Request){
- "initialize": s.handleInitialize,
- "initialized": func(_ Request) </span><span class="cov0" title="0">{ s.handleInitialized() }</span>,
- "shutdown": s.handleShutdown,
- "exit": func(_ Request) <span class="cov0" title="0">{ s.handleExit() }</span>,
- "textDocument/didOpen": s.handleDidOpen,
- "textDocument/didChange": s.handleDidChange,
- "textDocument/didClose": s.handleDidClose,
- "textDocument/completion": s.handleCompletion,
- "textDocument/codeAction": s.handleCodeAction,
- "codeAction/resolve": s.handleCodeActionResolve,
+ <span class="cov10" title="6">s.handlers = map[string]func(Request){
+ "initialize": s.handleInitialize,
+ "initialized": func(_ Request) </span><span class="cov0" title="0">{ s.handleInitialized() }</span>,
+ "shutdown": s.handleShutdown,
+ "exit": func(_ Request) <span class="cov0" title="0">{ s.handleExit() }</span>,
+ "textDocument/didOpen": s.handleDidOpen,
+ "textDocument/didChange": s.handleDidChange,
+ "textDocument/didClose": s.handleDidClose,
+ "textDocument/completion": s.handleCompletion,
+ "textDocument/codeAction": s.handleCodeAction,
+ "codeAction/resolve": s.handleCodeActionResolve,
"workspace/executeCommand": s.handleExecuteCommand,
}
- <span class="cov10" title="4">return s</span>
+ <span class="cov10" title="6">return s</span>
}
func (s *Server) Run() error <span class="cov1" title="1">{
@@ -4496,11 +4674,12 @@ package lsp
import (
"encoding/json"
"fmt"
- "codeberg.org/snonux/hexai/internal/logging"
"io"
"net/textproto"
"strconv"
"strings"
+
+ "codeberg.org/snonux/hexai/internal/logging"
)
func (s *Server) readMessage() ([]byte, error) <span class="cov3" title="2">{
@@ -4539,18 +4718,18 @@ func (s *Server) readMessage() ([]byte, error) <span class="cov3" title="2">{
<span class="cov1" title="1">return buf, nil</span>
}
-func (s *Server) writeMessage(v any) <span class="cov10" title="15">{
+func (s *Server) writeMessage(v any) <span class="cov10" title="17">{
data, err := json.Marshal(v)
if err != nil </span><span class="cov0" title="0">{
logging.Logf("lsp ", "marshal error: %v", err)
return
}</span>
- <span class="cov10" title="15">header := fmt.Sprintf("Content-Length: %d\r\n\r\n", len(data))
+ <span class="cov10" title="17">header := fmt.Sprintf("Content-Length: %d\r\n\r\n", len(data))
if _, err := io.WriteString(s.out, header); err != nil </span><span class="cov0" title="0">{
logging.Logf("lsp ", "write header error: %v", err)
return
}</span>
- <span class="cov10" title="15">if _, err := s.out.Write(data); err != nil </span><span class="cov0" title="0">{
+ <span class="cov10" title="17">if _, err := s.out.Write(data); err != nil </span><span class="cov0" title="0">{
logging.Logf("lsp ", "write body error: %v", err)
return
}</span>
@@ -4561,29 +4740,28 @@ func (s *Server) writeMessage(v any) <span class="cov10" title="15">{
// MultilineDocBlock returns a realistic multi-line documentation block.
func MultilineDocBlock() string <span class="cov8" title="1">{
- return "// add adds two numbers\n// returns their sum"
+ return "// add adds two numbers\n// returns their sum"
}</span>
// MultilineChatReply returns a multi-line assistant reply for chat tests.
func MultilineChatReply() string <span class="cov8" title="1">{
- return "Hello, world!\nThis is a multi-line reply."
+ return "Hello, world!\nThis is a multi-line reply."
}</span>
// MultilineFunctionSuggestion returns a more realistic multi-line function body suggestion.
func MultilineFunctionSuggestion() string <span class="cov8" title="1">{
- return "(ctx context.Context, input string) (*CustData, error) {\n // TODO: implement\n return &amp;CustData{}, nil\n}"
+ return "(ctx context.Context, input string) (*CustData, error) {\n // TODO: implement\n return &amp;CustData{}, nil\n}"
}</span>
// MarkdownCodeFence returns a fenced markdown snippet used in post-processing tests.
func MarkdownCodeFence() string <span class="cov0" title="0">{
- return "```go\nname := value\n```"
+ return "```go\nname := value\n```"
}</span>
// MalformedJSON returns a deliberately malformed JSON string.
func MalformedJSON() string <span class="cov0" title="0">{
- return "{\"choices\":[{\"delta\":{\"content\":\"oops\"}}]"
+ return "{\"choices\":[{\"delta\":{\"content\":\"oops\"}}]"
}</span>
-
</pre>
</div>
diff --git a/docs/coverage.out b/docs/coverage.out
index 3f45e70..8d4bdb0 100644
--- a/docs/coverage.out
+++ b/docs/coverage.out
@@ -15,157 +15,159 @@ 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:62.29,85.2 2 5
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.35,91.22 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.22,93.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:95.5,96.19 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:96.19,99.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:99.11,100.91 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:100.91,102.10 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.5,108.53 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.53,110.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:111.5,111.15 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:115.66,117.16 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:117.16,118.43 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:118.43,120.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:121.3,121.18 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:123.2,127.45 4 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:127.45,128.20 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:128.20,130.4 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:131.3,131.18 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:133.2,133.22 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:136.37,139.2 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.39,143.25 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:143.25,145.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,146.56 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.56,148.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.2,149.34 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.34,151.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.2,152.32 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.32,154.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.2,155.32 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.32,157.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.5,158.39 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.39,160.6 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.5,161.41 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.41,163.6 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.5,164.39 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.39,164.94 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.5,165.39 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.39,165.94 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.5,166.41 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.41,168.6 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.5,169.58 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.58,171.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.5,172.59 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.59,174.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.5,175.58 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.58,177.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.5,178.36 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.36,180.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.5,181.56 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.56,183.6 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:187.47,188.58 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:188.58,190.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.2,191.56 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.56,193.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.2,194.36 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.36,196.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.2,197.58 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.58,199.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.2,200.56 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.56,202.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.2,203.36 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.36,205.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.2,206.59 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.59,208.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.2,209.57 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.57,211.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.2,212.37 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.37,214.3 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:217.38,219.72 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:219.72,221.3 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:221.8,223.17 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:223.17,225.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:226.3,226.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:228.5,228.27 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:235.43,240.37 3 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:240.37,240.79 1 72
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.5,241.44 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.44,243.20 2 21
-codeberg.org/snonux/hexai/internal/appconfig/config.go:243.20,243.39 1 14
-codeberg.org/snonux/hexai/internal/appconfig/config.go:244.9,245.23 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.23,245.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.42,245.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.88,245.103 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:246.9,246.23 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.5,248.54 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.54,250.20 2 12
-codeberg.org/snonux/hexai/internal/appconfig/config.go:250.20,250.41 1 8
-codeberg.org/snonux/hexai/internal/appconfig/config.go:251.9,252.23 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:252.23,253.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:253.30,253.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:254.13,254.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:256.9,256.24 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.5,259.50 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.50,261.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.5,262.51 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.51,264.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.5,265.60 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.60,267.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.5,268.58 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.58,270.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.5,271.57 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.57,273.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.5,274.64 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.64,276.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.5,277.62 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.62,279.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.5,280.62 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.62,282.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.5,283.63 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.63,285.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.5,286.57 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.33 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:289.33,290.51 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:290.51,292.14 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.9,294.19 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.5,296.50 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.50,296.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.5,297.51 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.51,297.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.5,298.50 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.50,298.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.5,299.52 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.52,302.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:302.33,303.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:303.51,305.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:307.9,307.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.5,309.47 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.47,311.6 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.5,314.54 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,314.91 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.5,315.51 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.51,315.86 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.63 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.63,316.104 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.5,318.54 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.54,318.91 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.5,319.51 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.51,319.86 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.5,320.63 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.63,320.104 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.55 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.55,322.93 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.5,323.52 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.52,323.88 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.5,324.64 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.64,324.106 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.5,326.13 1 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.13,328.6 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:329.5,329.16 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/appconfig/config.go:63.29,86.2 2 5
+codeberg.org/snonux/hexai/internal/appconfig/config.go:90.35,92.19 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:92.19,94.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:96.2,97.16 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:97.16,100.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:100.8,101.85 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:101.85,103.4 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.2,109.50 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.50,111.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:112.2,112.12 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:116.66,118.16 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:118.16,119.43 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:119.43,121.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:122.3,122.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:124.2,128.45 4 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:128.45,129.20 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:129.20,131.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:132.3,132.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.2,134.19 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.19,136.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:137.2,137.22 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.37,143.2 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.39,147.25 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.25,149.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,150.56 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.56,152.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.2,153.34 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.34,155.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.2,156.32 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.32,158.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.32 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.32,161.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.36 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.36,164.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.2,165.38 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.38,167.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.2,168.36 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.36,170.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.2,171.36 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.36,173.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.2,174.38 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.38,176.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.2,177.55 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.55,179.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,180.56 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.56,182.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.2,183.55 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.55,185.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.2,186.33 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.33,188.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.2,189.53 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.53,191.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:195.47,196.58 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:196.58,198.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.2,199.56 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.56,201.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.2,202.36 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.36,204.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.2,205.58 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.58,207.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.2,208.56 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.56,210.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.2,211.36 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.36,213.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.2,214.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.59,216.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.2,217.57 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.57,219.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.2,220.37 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.37,222.3 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:225.38,227.72 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:227.72,229.3 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:229.8,231.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:231.17,233.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:234.3,234.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:236.2,236.24 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:243.43,248.34 3 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:248.34,248.76 1 72
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.2,249.41 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.41,251.14 2 21
+codeberg.org/snonux/hexai/internal/appconfig/config.go:251.14,253.4 1 14
+codeberg.org/snonux/hexai/internal/appconfig/config.go:254.3,255.17 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:255.17,256.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:256.21,258.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:259.4,259.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:261.3,261.17 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.2,263.51 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.51,265.14 2 12
+codeberg.org/snonux/hexai/internal/appconfig/config.go:265.14,267.4 1 8
+codeberg.org/snonux/hexai/internal/appconfig/config.go:268.3,269.17 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:269.17,270.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:270.21,272.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:273.4,273.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:275.3,275.18 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.2,278.47 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.47,281.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.2,282.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.48,285.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.2,286.57 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.2,290.55 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.55,293.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.54 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.54,297.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.2,298.61 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.61,301.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.2,302.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.59,305.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.59 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.59,309.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.60 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.60,313.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.2,314.54 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,317.27 3 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:317.27,318.42 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:318.42,320.5 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.3,322.13 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.2,324.47 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.47,327.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.48,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.2,332.47 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.47,335.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.2,336.49 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.49,339.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:339.27,340.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.42,342.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.3,344.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.2,346.44 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.44,349.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.2,352.51 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.51,355.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.2,356.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.48,359.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.60 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.60,363.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.51 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.51,368.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.2,369.48 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.48,372.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.2,373.60 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.60,376.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.2,378.52 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.52,381.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.2,382.49 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.49,385.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.61 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.61,389.3 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.2,391.10 1 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.10,393.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.2,394.13 1 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.16,30.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.2,32.64 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.124,39.16 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.16,42.3 2 0
@@ -179,11 +181,11 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.40,62.59 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:63.23,64.24 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.21,66.22 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.10,68.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.39 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.39,90.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.5,93.39 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.39,95.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.5,96.51 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.36 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.36,90.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.2,93.36 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.36,95.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.2,96.48 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.48,103.40 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.40,105.3 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:106.2,109.3 1 0
@@ -209,10 +211,10 @@ 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.39 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.39,84.6 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.5,87.39 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.39,89.6 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
@@ -260,73 +262,73 @@ 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.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:166.19,166.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.5,167.31 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.31,167.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:168.5,168.32 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:171.70,172.53 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.53,174.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.2,177.74 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:177.74,180.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.2,182.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:185.91,187.64 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:187.64,190.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.2,191.17 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:200.66,202.85 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:202.85,204.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.5,205.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.42,207.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:208.5,209.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.19,209.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:210.5,214.19 5 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:214.19,214.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:215.5,216.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.56,218.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:219.5,220.67 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:220.67,220.81 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.5,221.43 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.43,221.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.5,224.21 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:224.21,224.63 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:225.5,227.15 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:232.42,234.23 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:234.23,234.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.5,236.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.19,237.65 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:237.65,238.57 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:238.57,238.83 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:240.9,240.27 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:242.5,244.25 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:244.25,244.47 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:245.5,245.37 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.42,248.100 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:252.57,268.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.58,286.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:288.28,291.22 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:291.22,293.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:294.5,294.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:300.153,301.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:301.42,301.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.5,302.48 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.48,302.67 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.5,303.15 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.15,303.24 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:304.5,326.19 6 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.19,326.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:327.5,328.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:328.56,330.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.5,335.30 4 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:335.30,336.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:336.45,336.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:337.9,338.94 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:338.94,338.104 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.9,339.40 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.40,339.72 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:341.5,342.28 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:342.28,343.66 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:343.66,343.90 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:345.5,345.20 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
@@ -490,29 +492,29 @@ 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.16 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.16,89.6 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.5,90.14 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.19,92.50 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.50,94.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.9,96.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.41,99.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.9,100.103 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.19,102.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.41,105.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.9,106.89 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.20,108.51 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.51,110.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.9,111.42 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.42,114.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.9,115.108 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.13,117.61 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/logging/chatlogger.go:9.48,11.2 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:17.4,19.12 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:19.12,21.3 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:22.2,24.29 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:24.29,27.3 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
@@ -523,33 +525,33 @@ 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:15.96,17.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:18.17,19.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:20.16,21.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:22.26,23.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:23.14,25.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:26.3,26.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:27.21,28.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:29.10,31.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:35.65,37.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:37.35,40.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:41.2,44.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:44.15,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:47.2,48.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:48.13,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:51.2,52.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:55.53,57.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:57.14,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:61.2,61.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:66.64,67.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:67.20,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:70.2,71.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:71.27,73.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:75.2,76.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:76.21,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.2,79.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.53,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:82.2,82.19 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
@@ -568,7 +570,7 @@ 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.8 1 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
@@ -607,8 +609,8 @@ 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.53 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.3 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
@@ -659,10 +661,10 @@ 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.9,303.126 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.126,305.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.9,307.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.33,309.10 1 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
@@ -672,8 +674,8 @@ 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.5,331.122 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.122,333.6 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
@@ -682,674 +684,672 @@ 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:16.48,18.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:18.55,19.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.23,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:22.3,22.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:24.2,25.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.57,26.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.23,28.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:29.3,29.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:31.5,34.56 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:34.56,36.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.5,37.60 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.60,39.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.5,40.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.57,42.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.5,43.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.54,45.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.5,46.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.25,48.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:51.85,52.85 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,63.3 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:64.2,64.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:67.89,69.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:69.21,71.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:72.2,81.12 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:84.70,85.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.45,87.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:88.2,96.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:96.58,98.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:99.5,99.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.20,107.72 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:107.72,108.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.66,112.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:113.9,115.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:116.24,120.43 4 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.21,149.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.78,150.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.75,154.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.15,157.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.20,159.98 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.98,167.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.5,169.21 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.83 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.83,250.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.5,252.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.74,254.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.5,257.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.44,259.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.5,267.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.27,274.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.5,275.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.37,277.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.5,286.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.79 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.79,293.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.5,296.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.24,298.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.5,301.39 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.39,303.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.5,306.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.42,308.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.5,314.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.29,320.28 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.28,323.10 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.9,326.108 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.108,328.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.9,336.46 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.46,336.62 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.9,339.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.25,339.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.9,341.39 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.5,345.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.18,345.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:346.5,361.16 13 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:361.16,364.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:365.5,366.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:370.62,371.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.42,373.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:374.5,376.19 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.19,378.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:379.5,380.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.35,384.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:384.44,386.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:387.5,387.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.48,392.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:392.30,394.45 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.45,397.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.54,397.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.13,398.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.55,398.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.13,399.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.55,399.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.13,400.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.5,403.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.63,408.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:408.16,408.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.5,409.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.26,409.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:411.5,412.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.31,413.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.48,415.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.9,417.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.44,418.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.5,421.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.20,421.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.5,425.41 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:425.41,427.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.38,428.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.22,431.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:432.22,433.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.30,433.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.17,434.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.43,436.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.5,441.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.18,443.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.5,444.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.65,449.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:449.27,456.77 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:456.77,458.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:458.30,458.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:459.15,461.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.5,465.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.19,465.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:466.5,466.118 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.43,474.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:474.42,474.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:475.5,477.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.37,479.69 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.69,481.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.5,484.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.45,486.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.5,487.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.37,491.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.19,491.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:492.5,493.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:493.35,495.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:496.5,496.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:14.48,17.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:17.55,24.19 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:24.19,26.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.3,27.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.25,31.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:31.10,34.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:37.2,38.73 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:43.67,44.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.22,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:47.2,51.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:51.48,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:53.8,56.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:57.2,57.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:62.99,65.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:67.98,70.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:72.160,77.52 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:77.52,80.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.2,81.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.51,83.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:85.2,90.86 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:90.86,95.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.5,96.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.73,99.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.2,101.83 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.83,104.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.5,107.129 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.129,109.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:112.2,115.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:115.29,117.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:118.2,120.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:120.32,122.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:124.5,125.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.32,127.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:128.5,131.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:131.16,135.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:136.2,140.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:140.19,142.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:143.2,144.75 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:148.38,149.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.16,151.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:152.2,155.42 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:155.42,157.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:157.8,160.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:161.2,161.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:165.91,167.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:167.27,167.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.5,168.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.43,169.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:169.41,169.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:170.9,171.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.43,172.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.27,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:178.5,178.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:182.119,186.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:186.24,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:189.2,190.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:190.13,192.68 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:192.68,194.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.2,196.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.19,198.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:200.2,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.12,203.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:203.28,205.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:207.3,207.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:209.2,211.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:211.50,213.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,214.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:218.193,220.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:220.9,222.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.2,228.32 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.32,230.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:231.2,232.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:232.24,234.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:235.2,241.33 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.33,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.5,245.40 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:245.40,247.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:247.20,249.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.21,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.4,252.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.59,254.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.4,258.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.40,262.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.8,264.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.23,266.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.55,274.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:274.15,276.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.5,277.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.9,281.26 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.26,283.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:284.9,285.23 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:285.23,287.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:288.9,290.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:291.27,293.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.24,294.24 0 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:302.60,304.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:304.22,306.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.5,308.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:308.9,312.29 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.29,316.20 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.31,319.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:320.28,322.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.9,328.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:333.177,339.33 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:339.33,341.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.2,342.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.18,344.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:345.2,345.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:349.101,351.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:351.57,352.78 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:352.78,354.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.2,356.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.19,358.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.2,359.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.19,361.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.2,362.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.61,363.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.57,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:18.45,20.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:20.55,23.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:26.47,28.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:28.55,29.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.32,31.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.3,34.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:38.46,40.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:40.55,43.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:49.76,51.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:51.14,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:55.2,56.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:56.14,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.2,59.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.26,61.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,63.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:63.13,65.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.2,66.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.30,68.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:70.2,71.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:71.28,74.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:75.2,80.43 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.43,83.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:84.2,84.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:92.50,93.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.24,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.2,97.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.35,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.5,100.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.33,103.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.14,104.39 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.39,106.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.4,108.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.9,110.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.18,111.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.9,114.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.31,115.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.9,118.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.43,119.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.9,122.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.18,122.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:123.9,125.44 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.44,126.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.28,126.53 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.9,128.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.23,128.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.3,131.63 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.63,133.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.3,134.80 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.80,135.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:138.9,141.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.19,142.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,146.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:146.38,156.18 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.18,159.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.4,161.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:161.17,163.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:164.4,164.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.3,167.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:173.110,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:175.14,177.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:179.2,190.54 8 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.96,197.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:197.14,199.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:200.2,203.31 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:203.31,204.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:204.53,206.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.3,207.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.12,208.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.3,210.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.61,211.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.3,214.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.14,216.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.36,219.13 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:221.4,221.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.53,225.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.12,227.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,232.6 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.2,235.26 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:235.26,236.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.35,238.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.35,241.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.2,244.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:248.45,250.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.20,252.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.5,254.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.53,256.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.46,257.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:257.27,259.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.5,263.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.35,265.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.5,268.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.24,270.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:271.13,272.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.68,284.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:287.46,294.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:297.61,312.2 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.59,317.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:317.15,320.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.58,13.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.5,14.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.31,16.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.34,20.67 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.67,22.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.13,23.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.26,25.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.9,28.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.13,32.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:10.48,12.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:12.24,14.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:15.2,26.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:29.38,31.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:33.46,35.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:37.31,40.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:18.55,20.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.32,22.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.2,23.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.41,32.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:34.41,39.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:41.32,44.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.23,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.2,48.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.24,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,54.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.15,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.2,60.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:64.51,65.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:65.41,67.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.2,70.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.110,74.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:74.14,78.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.2,81.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.56 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.56,134.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.5,135.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.67,177.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.25,180.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.18,182.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.9,185.80 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.80,187.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.9,191.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.18,193.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.9,195.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.54,197.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.9,200.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.24,202.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.9,205.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.5,207.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.46,217.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.34,219.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.5,220.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.37,222.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.5,223.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.34,225.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.38,227.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.5,229.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,302.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:302.13,304.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.2,307.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.66,309.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.2,311.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.54,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,314.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.51,316.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,319.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:319.69,322.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.2,323.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.43,329.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:329.13,331.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.2,333.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.11,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.14,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.56,347.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.89,349.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.52,355.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:355.32,357.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.28,359.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.3,360.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.34,362.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.42,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:368.2,371.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.27,373.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.2,374.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.36,376.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,380.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.49,382.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.24,384.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.2,388.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.25,390.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.33,393.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,395.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:399.67,401.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:401.35,403.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.2,405.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.31,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,408.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.69,412.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.40,414.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.5,415.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.50,420.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.25,424.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.18,426.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.9,429.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:429.38,431.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.9,433.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.52,435.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.9,439.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:439.18,441.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.9,443.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.55,445.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.9,447.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.5,449.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.67,455.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.31,457.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.18,458.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.9,462.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.18,463.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.9,465.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.49,467.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.9,469.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.40,471.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.9,474.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:474.54,476.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.9,478.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.31,480.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.9,483.56 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:483.56,485.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.9,487.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.5,489.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:85.90,88.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:88.20,90.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:91.2,93.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:93.23,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:96.2,97.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:97.22,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:100.2,101.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:101.27,103.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:104.2,110.38 6 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:110.38,113.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:113.8,115.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:116.5,119.38 4 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:119.38,121.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.5,122.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.38,124.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.5,126.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.49,126.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.76,126.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.5,127.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.50,127.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.78,127.115 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.5,128.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.49,128.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.76,128.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.5,129.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.36,129.82 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.87,129.149 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.5,132.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.27,132.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.5,133.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.28,133.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.5,134.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.27,134.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.5,135.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.32,135.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,139.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:139.46,139.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.46,141.64 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:150.2,150.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:153.30,154.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:154.6,156.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:156.20,158.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.3,159.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.17,161.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:162.3,163.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.52,165.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.3,167.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.23,169.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.3,172.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.15,174.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:14.48,17.6 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:17.6,19.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:19.17,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.3,22.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.17,23.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:25.3,26.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:26.22,27.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:29.3,31.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:32.25,34.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:34.18,36.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:37.4,37.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.2,40.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.24,42.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:43.2,44.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:44.50,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:47.2,47.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:50.38,52.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:52.16,55.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:56.2,57.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:57.57,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.2,61.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.45,64.3 2 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,121.43 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.43,122.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:122.24,124.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:124.10,126.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:128.3,134.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.72,135.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:135.66,139.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:140.9,142.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:143.18,150.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.72,151.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:151.66,155.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:156.9,158.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.17,160.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:160.92,168.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:170.2,170.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:173.55,175.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.56,176.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:176.23,178.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:179.3,179.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.2,181.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.49,184.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:185.2,185.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.85,192.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:192.22,194.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.2,196.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:196.53,198.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.2,199.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.31,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.2,203.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.36,204.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:204.34,206.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:208.2,208.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:212.37,214.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:214.32,216.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.2,217.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.32,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.2,221.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.29,223.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.2,225.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.29,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:228.2,228.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.34,232.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:232.22,234.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:235.2,235.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.37,239.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:239.22,241.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:242.2,242.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:247.76,249.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:249.80,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.2,253.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.71,255.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.2,258.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:258.41,260.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:261.2,268.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.86,273.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:273.24,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.2,276.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.34,278.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:279.2,287.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:290.95,292.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:292.76,294.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.2,297.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:297.21,299.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:300.2,302.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:302.36,304.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:305.2,307.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:307.39,309.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:311.2,315.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:315.26,321.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:321.22,324.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:325.3,327.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:327.102,329.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:330.3,337.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.40,339.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.3,342.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:342.19,344.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.3,346.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.2,350.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:350.15,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:353.2,368.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:368.13,371.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:372.2,373.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.62,378.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:378.39,380.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:381.2,383.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.16,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:386.2,387.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.35,391.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.41,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.2,394.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.48,399.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.27,401.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:401.39,404.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:404.45,406.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.4,407.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.46,409.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.4,410.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.46,412.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.4,413.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:416.2,416.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.63,421.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.13,423.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.2,424.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.23,426.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.2,429.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.28,430.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:430.42,432.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.3,434.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.38,435.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.2,438.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.17,440.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:442.2,444.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.38,446.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:446.32,447.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.13,450.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.13,452.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:452.18,454.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.5,455.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.31,457.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.2,462.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.15,464.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.2,465.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.65,470.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.24,477.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.71,479.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.21,481.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:482.9,484.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.2,488.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:488.16,490.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.2,491.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:495.43,499.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:499.39,501.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:502.2,504.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:504.34,506.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:506.63,508.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.2,511.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.42,513.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:514.2,514.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.37,518.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:518.16,520.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.2,522.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:522.32,524.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:525.2,525.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,233.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:233.32,235.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:236.2,237.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.24,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,246.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:246.30,248.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.2,250.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.40,252.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.20,254.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.4,257.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.54,259.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:259.21,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.4,263.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.40,267.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.8,269.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.23,271.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.2,272.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.55,279.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:279.12,281.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.2,282.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.6,286.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.20,288.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:289.3,290.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.17,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,295.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:296.21,298.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:299.18,299.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.60,309.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:309.19,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.2,313.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.6,317.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.23,321.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:322.22,324.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:325.19,327.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:331.3,333.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:338.177,344.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:344.33,346.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.2,347.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.18,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:350.2,350.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.101,356.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.57,357.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:357.78,359.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,361.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.19,363.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.2,364.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.19,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.56,368.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.57,370.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:372.2,372.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:76.110,77.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.14,81.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.2,84.18 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:87.118,88.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.14,91.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.16,94.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.35,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.36,99.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.4,102.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.59,104.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.4,105.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:108.2,111.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:114.51,115.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.23,117.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.13,120.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:120.100,122.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:124.3,124.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.2,126.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:129.32,131.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:134.44,135.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.50,137.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.2,138.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:143.20,144.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.40,146.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.3,148.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.12,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.2,153.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:156.52,157.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.38,159.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.2,161.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.27,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.34,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.36,166.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:168.3,168.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.2,170.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.64,180.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.22,183.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.12,185.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.3,188.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:188.74,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:193.3,194.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.12,196.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:197.3,198.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.48,200.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.3,203.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.18,205.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.3,208.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:210.2,210.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:216.41,220.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.31,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.29,225.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.2,226.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.31,228.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.32,230.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:232.2,232.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.83,239.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:239.102,241.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:241.36,243.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.136,245.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.4,248.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:248.34,250.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.2,254.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.65,255.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.53,257.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:257.37,259.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.137,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.5,264.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:264.35,266.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,270.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:274.80,275.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.22,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:278.2,280.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.40,282.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.2,283.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.34,284.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.31,285.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.3,288.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.16,289.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.3,291.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.32,293.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.2,295.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.36,300.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.39,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,310.66 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.66,312.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.2,314.54 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.54,316.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,317.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.51,319.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:320.2,322.69 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:322.69,325.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.43,332.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.13,334.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:335.2,336.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.11,338.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,340.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.14,342.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:343.2,344.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.56,350.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.89,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,353.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.52,358.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.32,360.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.28,362.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.34,365.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.42,368.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:369.3,369.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.2,374.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.27,376.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,377.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.36,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,383.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.49,385.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:385.24,387.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:390.2,391.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.25,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,394.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.33,396.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:397.2,398.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:402.67,404.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.35,406.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:407.2,408.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.31,410.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.2,411.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.69,415.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.32,417.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.2,418.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:421.45,423.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.22,427.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.12,429.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:430.3,432.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.32,434.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:435.3,436.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.46,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.12,444.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,446.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.49,448.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.3,450.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.2,452.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.67,458.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.28,460.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.12,461.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:463.3,465.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.12,466.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.3,468.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.43,470.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.3,472.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.34,474.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:476.3,477.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.48,479.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.3,481.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.25,483.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:485.3,486.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.50,488.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.3,490.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:492.2,492.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:86.90,89.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:89.20,91.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:92.2,94.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:94.23,96.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:97.2,98.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:98.22,100.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:101.2,102.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:102.27,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:105.2,111.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:111.38,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:114.8,116.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:117.2,120.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:120.35,122.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.2,123.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.35,125.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.2,127.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.46,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.8,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,132.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.47,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.8,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,137.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.46,139.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:139.8,141.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.2,142.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.33,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:144.8,146.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.2,152.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.25,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.2,155.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.24,157.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.2,158.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.29,160.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:162.2,164.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.47,164.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:166.47,166.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:175.2,175.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.30,179.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.6,181.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.20,183.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.3,184.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.17,186.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:187.3,188.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.52,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.3,192.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.23,194.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:196.3,197.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:197.15,199.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
@@ -1363,157 +1363,159 @@ 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:62.29,85.2 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.35,91.22 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.22,93.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:95.5,96.19 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:96.19,99.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:99.11,100.91 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:100.91,102.10 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.5,108.53 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.53,110.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:111.5,111.15 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:115.66,117.16 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:117.16,118.43 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:118.43,120.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:121.3,121.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:123.2,127.45 4 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:127.45,128.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:128.20,130.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:131.3,131.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:133.2,133.22 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:136.37,139.2 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.39,143.25 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:143.25,145.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,146.56 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.56,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.2,149.34 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.34,151.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.2,152.32 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.32,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.2,155.32 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.32,157.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.5,158.39 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.39,160.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.5,161.41 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.41,163.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.5,164.39 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.39,164.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.5,165.39 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.39,165.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.5,166.41 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.41,168.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.5,169.58 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.58,171.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.5,172.59 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.59,174.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.5,175.58 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.58,177.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.5,178.36 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.36,180.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.5,181.56 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.56,183.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:187.47,188.58 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:188.58,190.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.2,191.56 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.56,193.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.2,194.36 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.36,196.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.2,197.58 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.58,199.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.2,200.56 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.56,202.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.2,203.36 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.36,205.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.2,206.59 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.59,208.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.2,209.57 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.57,211.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.2,212.37 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.37,214.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:217.38,219.72 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:219.72,221.3 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:221.8,223.17 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:223.17,225.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:226.3,226.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:228.5,228.27 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:235.43,240.37 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:240.37,240.79 1 24
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.5,241.44 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.44,243.20 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:243.20,243.39 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:244.9,245.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.23,245.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.42,245.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.88,245.103 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:246.9,246.23 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.5,248.54 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.54,250.20 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:250.20,250.41 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:251.9,252.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:252.23,253.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:253.30,253.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:254.13,254.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:256.9,256.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.5,259.50 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.50,261.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.5,262.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.51,264.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.5,265.60 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.60,267.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.5,268.58 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.58,270.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.5,271.57 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.57,273.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.5,274.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.64,276.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.5,277.62 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.62,279.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.5,280.62 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.62,282.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.5,283.63 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.63,285.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.5,286.57 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:289.33,290.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:290.51,292.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.9,294.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.5,296.50 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.50,296.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.5,297.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.51,297.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.5,298.50 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.50,298.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.5,299.52 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.52,302.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:302.33,303.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:303.51,305.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:307.9,307.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.5,309.47 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.47,311.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.5,314.54 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,314.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.5,315.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.51,315.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.63 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.63,316.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.5,318.54 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.54,318.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.5,319.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.51,319.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.5,320.63 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.63,320.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.55 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.55,322.93 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.5,323.52 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.52,323.88 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.5,324.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.64,324.106 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.5,326.13 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.13,328.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:329.5,329.16 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/appconfig/config.go:63.29,86.2 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:90.35,92.19 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:92.19,94.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:96.2,97.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:97.16,100.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:100.8,101.85 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:101.85,103.4 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.2,109.50 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.50,111.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:112.2,112.12 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:116.66,118.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:118.16,119.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:119.43,121.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:122.3,122.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:124.2,128.45 4 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:128.45,129.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:129.20,131.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:132.3,132.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.2,134.19 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.19,136.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:137.2,137.22 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.37,143.2 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.39,147.25 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.25,149.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,150.56 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.56,152.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.2,153.34 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.34,155.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.2,156.32 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.32,158.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.32 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.32,161.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.36 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.36,164.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.2,165.38 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.38,167.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.2,168.36 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.36,170.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.2,171.36 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.36,173.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.2,174.38 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.38,176.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.2,177.55 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.55,179.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,180.56 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.56,182.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.2,183.55 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.55,185.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.2,186.33 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.33,188.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.2,189.53 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.53,191.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:195.47,196.58 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:196.58,198.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.2,199.56 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.56,201.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.2,202.36 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.36,204.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.2,205.58 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.58,207.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.2,208.56 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.56,210.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.2,211.36 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.36,213.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.2,214.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.59,216.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.2,217.57 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.57,219.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.2,220.37 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.37,222.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:225.38,227.72 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:227.72,229.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:229.8,231.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:231.17,233.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:234.3,234.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:236.2,236.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:243.43,248.34 3 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:248.34,248.76 1 24
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.2,249.41 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.41,251.14 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:251.14,253.4 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:254.3,255.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:255.17,256.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:256.21,258.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:259.4,259.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:261.3,261.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.2,263.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.51,265.14 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:265.14,267.4 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:268.3,269.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:269.17,270.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:270.21,272.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:273.4,273.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:275.3,275.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.2,278.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.47,281.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.2,282.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.48,285.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.2,286.57 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.2,290.55 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.55,293.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.54,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.2,298.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.61,301.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.2,302.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.59,305.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.59,309.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.60,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.2,314.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,317.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:317.27,318.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:318.42,320.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.3,322.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.2,324.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.47,327.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.48,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.2,332.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.47,335.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.2,336.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.49,339.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:339.27,340.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.42,342.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.3,344.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.2,346.44 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.44,349.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.2,352.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.51,355.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.2,356.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.48,359.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.60,363.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.51,368.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.2,369.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.48,372.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.2,373.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.60,376.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.2,378.52 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.52,381.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.2,382.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.49,385.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.61,389.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.2,391.10 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.10,393.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.2,394.13 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.16 4 1
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.16,30.3 2 1
codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.2,32.64 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.124,39.16 2 1
codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.16,42.3 2 0
@@ -1527,11 +1529,11 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.40,62.59 1 1
codeberg.org/snonux/hexai/internal/hexaicli/run.go:63.23,64.24 1 1
codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.21,66.22 1 2
codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.10,68.91 1 1
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.39 3 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.39,90.6 1 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.5,93.39 2 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.39,95.6 1 3
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.5,96.51 1 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.36 3 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.36,90.3 1 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.2,93.36 2 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.36,95.3 1 3
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.2,96.48 1 3
codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.48,103.40 3 6
codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.40,105.3 1 1
codeberg.org/snonux/hexai/internal/hexaicli/run.go:106.2,109.3 1 6
@@ -1557,10 +1559,10 @@ 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.39 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.39,84.6 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.5,87.39 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.39,89.6 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
@@ -1608,73 +1610,73 @@ 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.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:166.19,166.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.5,167.31 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.31,167.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:168.5,168.32 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:171.70,172.53 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.53,174.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.2,177.74 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:177.74,180.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.2,182.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:185.91,187.64 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:187.64,190.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.2,191.17 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:200.66,202.85 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:202.85,204.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.5,205.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.42,207.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:208.5,209.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.19,209.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:210.5,214.19 5 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:214.19,214.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:215.5,216.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.56,218.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:219.5,220.67 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:220.67,220.81 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.5,221.43 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.43,221.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.5,224.21 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:224.21,224.63 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:225.5,227.15 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:232.42,234.23 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:234.23,234.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.5,236.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.19,237.65 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:237.65,238.57 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:238.57,238.83 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:240.9,240.27 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:242.5,244.25 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:244.25,244.47 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:245.5,245.37 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.42,248.100 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:252.57,268.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.58,286.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:288.28,291.22 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:291.22,293.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:294.5,294.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:300.153,301.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:301.42,301.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.5,302.48 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.48,302.67 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.5,303.15 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.15,303.24 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:304.5,326.19 6 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.19,326.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:327.5,328.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:328.56,330.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.5,335.30 4 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:335.30,336.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:336.45,336.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:337.9,338.94 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:338.94,338.104 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.9,339.40 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.40,339.72 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:341.5,342.28 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:342.28,343.66 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:343.66,343.90 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:345.5,345.20 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
@@ -1838,29 +1840,29 @@ 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.16 2 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.16,89.6 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.5,90.14 1 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.19,92.50 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.50,94.10 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.9,96.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.41,99.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.9,100.103 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.19,102.41 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.41,105.10 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.9,106.89 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.20,108.51 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.51,110.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.9,111.42 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.42,114.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.9,115.108 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.13,117.61 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 0
+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/logging/chatlogger.go:9.48,11.2 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:17.4,19.12 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:19.12,21.3 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:22.2,24.29 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:24.29,27.3 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
@@ -1871,33 +1873,33 @@ 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:15.96,17.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:18.17,19.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:20.16,21.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:22.26,23.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:23.14,25.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:26.3,26.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:27.21,28.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:29.10,31.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:35.65,37.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:37.35,40.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:41.2,44.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:44.15,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:47.2,48.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:48.13,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:51.2,52.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:55.53,57.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:57.14,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:61.2,61.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:66.64,67.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:67.20,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:70.2,71.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:71.27,73.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:75.2,76.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:76.21,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.2,79.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.53,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:82.2,82.19 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
@@ -1916,7 +1918,7 @@ 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.8 1 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
@@ -1955,8 +1957,8 @@ 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.53 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.3 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
@@ -2007,10 +2009,10 @@ 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.9,303.126 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.126,305.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.9,307.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.33,309.10 1 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
@@ -2020,8 +2022,8 @@ 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.5,331.122 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.122,333.6 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
@@ -2030,674 +2032,672 @@ 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:16.48,18.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:18.55,19.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.23,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:22.3,22.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:24.2,25.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.57,26.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.23,28.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:29.3,29.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:31.5,34.56 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:34.56,36.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.5,37.60 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.60,39.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.5,40.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.57,42.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.5,43.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.54,45.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.5,46.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.25,48.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:51.85,52.85 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,63.3 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:64.2,64.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:67.89,69.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:69.21,71.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:72.2,81.12 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:84.70,85.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.45,87.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:88.2,96.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:96.58,98.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:99.5,99.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.20,107.72 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:107.72,108.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.66,112.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:113.9,115.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:116.24,120.43 4 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.21,149.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.78,150.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.75,154.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.15,157.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.20,159.98 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.98,167.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.5,169.21 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.83 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.83,250.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.5,252.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.74,254.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.5,257.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.44,259.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.5,267.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.27,274.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.5,275.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.37,277.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.5,286.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.79 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.79,293.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.5,296.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.24,298.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.5,301.39 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.39,303.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.5,306.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.42,308.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.5,314.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.29,320.28 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.28,323.10 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.9,326.108 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.108,328.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.9,336.46 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.46,336.62 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.9,339.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.25,339.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.9,341.39 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.5,345.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.18,345.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:346.5,361.16 13 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:361.16,364.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:365.5,366.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:370.62,371.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.42,373.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:374.5,376.19 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.19,378.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:379.5,380.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.35,384.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:384.44,386.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:387.5,387.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.48,392.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:392.30,394.45 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.45,397.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.54,397.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.13,398.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.55,398.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.13,399.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.55,399.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.13,400.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.5,403.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.63,408.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:408.16,408.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.5,409.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.26,409.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:411.5,412.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.31,413.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.48,415.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.9,417.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.44,418.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.5,421.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.20,421.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.5,425.41 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:425.41,427.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.38,428.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.22,431.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:432.22,433.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.30,433.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.17,434.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.43,436.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.5,441.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.18,443.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.5,444.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.65,449.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:449.27,456.77 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:456.77,458.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:458.30,458.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:459.15,461.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.5,465.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.19,465.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:466.5,466.118 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.43,474.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:474.42,474.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:475.5,477.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.37,479.69 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.69,481.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.5,484.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.45,486.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.5,487.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.37,491.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.19,491.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:492.5,493.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:493.35,495.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:496.5,496.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:14.48,17.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:17.55,24.19 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:24.19,26.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.3,27.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.25,31.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:31.10,34.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:37.2,38.73 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:43.67,44.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.22,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:47.2,51.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:51.48,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:53.8,56.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:57.2,57.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:62.99,65.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:67.98,70.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:72.160,77.52 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:77.52,80.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.2,81.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.51,83.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:85.2,90.86 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:90.86,95.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.5,96.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.73,99.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.2,101.83 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.83,104.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.5,107.129 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.129,109.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:112.2,115.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:115.29,117.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:118.2,120.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:120.32,122.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:124.5,125.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.32,127.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:128.5,131.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:131.16,135.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:136.2,140.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:140.19,142.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:143.2,144.75 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:148.38,149.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.16,151.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:152.2,155.42 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:155.42,157.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:157.8,160.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:161.2,161.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:165.91,167.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:167.27,167.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.5,168.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.43,169.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:169.41,169.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:170.9,171.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.43,172.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.27,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:178.5,178.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:182.119,186.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:186.24,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:189.2,190.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:190.13,192.68 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:192.68,194.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.2,196.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.19,198.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:200.2,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.12,203.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:203.28,205.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:207.3,207.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:209.2,211.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:211.50,213.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,214.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:218.193,220.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:220.9,222.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.2,228.32 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.32,230.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:231.2,232.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:232.24,234.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:235.2,241.33 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.33,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.5,245.40 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:245.40,247.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:247.20,249.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.21,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.4,252.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.59,254.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.4,258.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.40,262.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.8,264.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.23,266.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.55,274.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:274.15,276.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.5,277.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.9,281.26 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.26,283.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:284.9,285.23 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:285.23,287.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:288.9,290.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:291.27,293.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.24,294.24 0 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:302.60,304.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:304.22,306.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.5,308.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:308.9,312.29 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.29,316.20 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.31,319.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:320.28,322.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.9,328.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:333.177,339.33 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:339.33,341.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.2,342.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.18,344.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:345.2,345.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:349.101,351.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:351.57,352.78 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:352.78,354.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.2,356.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.19,358.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.2,359.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.19,361.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.2,362.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.61,363.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.57,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:18.45,20.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:20.55,23.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:26.47,28.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:28.55,29.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.32,31.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.3,34.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:38.46,40.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:40.55,43.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:49.76,51.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:51.14,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:55.2,56.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:56.14,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.2,59.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.26,61.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,63.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:63.13,65.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.2,66.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.30,68.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:70.2,71.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:71.28,74.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:75.2,80.43 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.43,83.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:84.2,84.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:92.50,93.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.24,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.2,97.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.35,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.5,100.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.33,103.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.14,104.39 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.39,106.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.4,108.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.9,110.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.18,111.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.9,114.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.31,115.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.9,118.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.43,119.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.9,122.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.18,122.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:123.9,125.44 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.44,126.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.28,126.53 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.9,128.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.23,128.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.3,131.63 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.63,133.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.3,134.80 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.80,135.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:138.9,141.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.19,142.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,146.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:146.38,156.18 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.18,159.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.4,161.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:161.17,163.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:164.4,164.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.3,167.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:173.110,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:175.14,177.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:179.2,190.54 8 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.96,197.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:197.14,199.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:200.2,203.31 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:203.31,204.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:204.53,206.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.3,207.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.12,208.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.3,210.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.61,211.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.3,214.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.14,216.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.36,219.13 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:221.4,221.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.53,225.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.12,227.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,232.6 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.2,235.26 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:235.26,236.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.35,238.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.35,241.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.2,244.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:248.45,250.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.20,252.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.5,254.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.53,256.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.46,257.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:257.27,259.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.5,263.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.35,265.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.5,268.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.24,270.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:271.13,272.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.68,284.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:287.46,294.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:297.61,312.2 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.59,317.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:317.15,320.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.58,13.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.5,14.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.31,16.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.34,20.67 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.67,22.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.13,23.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.26,25.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.9,28.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.13,32.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:10.48,12.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:12.24,14.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:15.2,26.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:29.38,31.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:33.46,35.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:37.31,40.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:18.55,20.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.32,22.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.2,23.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.41,32.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:34.41,39.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:41.32,44.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.23,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.2,48.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.24,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,54.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.15,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.2,60.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:64.51,65.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:65.41,67.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.2,70.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.110,74.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:74.14,78.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.2,81.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.56 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.56,134.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.5,135.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.67,177.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.25,180.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.18,182.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.9,185.80 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.80,187.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.9,191.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.18,193.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.9,195.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.54,197.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.9,200.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.24,202.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.9,205.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.5,207.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.46,217.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.34,219.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.5,220.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.37,222.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.5,223.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.34,225.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.38,227.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.5,229.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,302.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:302.13,304.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.2,307.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.66,309.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.2,311.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.54,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,314.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.51,316.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,319.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:319.69,322.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.2,323.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.43,329.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:329.13,331.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.2,333.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.11,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.14,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.56,347.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.89,349.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.52,355.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:355.32,357.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.28,359.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.3,360.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.34,362.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.42,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:368.2,371.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.27,373.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.2,374.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.36,376.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,380.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.49,382.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.24,384.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.2,388.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.25,390.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.33,393.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,395.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:399.67,401.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:401.35,403.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.2,405.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.31,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,408.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.69,412.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.40,414.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.5,415.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.50,420.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.25,424.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.18,426.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.9,429.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:429.38,431.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.9,433.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.52,435.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.9,439.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:439.18,441.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.9,443.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.55,445.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.9,447.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.5,449.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.67,455.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.31,457.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.18,458.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.9,462.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.18,463.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.9,465.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.49,467.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.9,469.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.40,471.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.9,474.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:474.54,476.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.9,478.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.31,480.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.9,483.56 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:483.56,485.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.9,487.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.5,489.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:85.90,88.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:88.20,90.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:91.2,93.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:93.23,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:96.2,97.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:97.22,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:100.2,101.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:101.27,103.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:104.2,110.38 6 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:110.38,113.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:113.8,115.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:116.5,119.38 4 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:119.38,121.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.5,122.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.38,124.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.5,126.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.49,126.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.76,126.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.5,127.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.50,127.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.78,127.115 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.5,128.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.49,128.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.76,128.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.5,129.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.36,129.82 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.87,129.149 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.5,132.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.27,132.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.5,133.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.28,133.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.5,134.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.27,134.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.5,135.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.32,135.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,139.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:139.46,139.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.46,141.64 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:150.2,150.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:153.30,154.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:154.6,156.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:156.20,158.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.3,159.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.17,161.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:162.3,163.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.52,165.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.3,167.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.23,169.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.3,172.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.15,174.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:14.48,17.6 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:17.6,19.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:19.17,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.3,22.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.17,23.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:25.3,26.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:26.22,27.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:29.3,31.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:32.25,34.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:34.18,36.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:37.4,37.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.2,40.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.24,42.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:43.2,44.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:44.50,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:47.2,47.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:50.38,52.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:52.16,55.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:56.2,57.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:57.57,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.2,61.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.45,64.3 2 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,121.43 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.43,122.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:122.24,124.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:124.10,126.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:128.3,134.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.72,135.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:135.66,139.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:140.9,142.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:143.18,150.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.72,151.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:151.66,155.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:156.9,158.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.17,160.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:160.92,168.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:170.2,170.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:173.55,175.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.56,176.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:176.23,178.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:179.3,179.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.2,181.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.49,184.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:185.2,185.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.85,192.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:192.22,194.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.2,196.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:196.53,198.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.2,199.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.31,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.2,203.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.36,204.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:204.34,206.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:208.2,208.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:212.37,214.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:214.32,216.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.2,217.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.32,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.2,221.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.29,223.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.2,225.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.29,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:228.2,228.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.34,232.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:232.22,234.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:235.2,235.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.37,239.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:239.22,241.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:242.2,242.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:247.76,249.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:249.80,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.2,253.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.71,255.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.2,258.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:258.41,260.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:261.2,268.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.86,273.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:273.24,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.2,276.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.34,278.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:279.2,287.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:290.95,292.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:292.76,294.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.2,297.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:297.21,299.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:300.2,302.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:302.36,304.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:305.2,307.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:307.39,309.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:311.2,315.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:315.26,321.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:321.22,324.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:325.3,327.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:327.102,329.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:330.3,337.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.40,339.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.3,342.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:342.19,344.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.3,346.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.2,350.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:350.15,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:353.2,368.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:368.13,371.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:372.2,373.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.62,378.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:378.39,380.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:381.2,383.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.16,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:386.2,387.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.35,391.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.41,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.2,394.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.48,399.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.27,401.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:401.39,404.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:404.45,406.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.4,407.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.46,409.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.4,410.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.46,412.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.4,413.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:416.2,416.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.63,421.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.13,423.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.2,424.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.23,426.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.2,429.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.28,430.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:430.42,432.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.3,434.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.38,435.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.2,438.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.17,440.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:442.2,444.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.38,446.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:446.32,447.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.13,450.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.13,452.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:452.18,454.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.5,455.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.31,457.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.2,462.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.15,464.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.2,465.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.65,470.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.24,477.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.71,479.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.21,481.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:482.9,484.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.2,488.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:488.16,490.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.2,491.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:495.43,499.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:499.39,501.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:502.2,504.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:504.34,506.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:506.63,508.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.2,511.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.42,513.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:514.2,514.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.37,518.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:518.16,520.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.2,522.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:522.32,524.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:525.2,525.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,233.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:233.32,235.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:236.2,237.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.24,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,246.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:246.30,248.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.2,250.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.40,252.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.20,254.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.4,257.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.54,259.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:259.21,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.4,263.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.40,267.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.8,269.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.23,271.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.2,272.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.55,279.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:279.12,281.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.2,282.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.6,286.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.20,288.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:289.3,290.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.17,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,295.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:296.21,298.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:299.18,299.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.60,309.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:309.19,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.2,313.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.6,317.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.23,321.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:322.22,324.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:325.19,327.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:331.3,333.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:338.177,344.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:344.33,346.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.2,347.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.18,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:350.2,350.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.101,356.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.57,357.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:357.78,359.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,361.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.19,363.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.2,364.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.19,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.56,368.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.57,370.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:372.2,372.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:76.110,77.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.14,81.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.2,84.18 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:87.118,88.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.14,91.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.16,94.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.35,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.36,99.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.4,102.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.59,104.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.4,105.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:108.2,111.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:114.51,115.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.23,117.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.13,120.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:120.100,122.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:124.3,124.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.2,126.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:129.32,131.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:134.44,135.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.50,137.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.2,138.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:143.20,144.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.40,146.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.3,148.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.12,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.2,153.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:156.52,157.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.38,159.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.2,161.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.27,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.34,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.36,166.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:168.3,168.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.2,170.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.64,180.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.22,183.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.12,185.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.3,188.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:188.74,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:193.3,194.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.12,196.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:197.3,198.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.48,200.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.3,203.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.18,205.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.3,208.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:210.2,210.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:216.41,220.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.31,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.29,225.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.2,226.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.31,228.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.32,230.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:232.2,232.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.83,239.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:239.102,241.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:241.36,243.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.136,245.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.4,248.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:248.34,250.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.2,254.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.65,255.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.53,257.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:257.37,259.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.137,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.5,264.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:264.35,266.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,270.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:274.80,275.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.22,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:278.2,280.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.40,282.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.2,283.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.34,284.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.31,285.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.3,288.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.16,289.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.3,291.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.32,293.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.2,295.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.36,300.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.39,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,310.66 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.66,312.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.2,314.54 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.54,316.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,317.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.51,319.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:320.2,322.69 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:322.69,325.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.43,332.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.13,334.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:335.2,336.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.11,338.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,340.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.14,342.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:343.2,344.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.56,350.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.89,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,353.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.52,358.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.32,360.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.28,362.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.34,365.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.42,368.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:369.3,369.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.2,374.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.27,376.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,377.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.36,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,383.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.49,385.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:385.24,387.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:390.2,391.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.25,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,394.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.33,396.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:397.2,398.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:402.67,404.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.35,406.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:407.2,408.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.31,410.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.2,411.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.69,415.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.32,417.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.2,418.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:421.45,423.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.22,427.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.12,429.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:430.3,432.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.32,434.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:435.3,436.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.46,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.12,444.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,446.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.49,448.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.3,450.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.2,452.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.67,458.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.28,460.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.12,461.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:463.3,465.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.12,466.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.3,468.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.43,470.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.3,472.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.34,474.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:476.3,477.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.48,479.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.3,481.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.25,483.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:485.3,486.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.50,488.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.3,490.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:492.2,492.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:86.90,89.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:89.20,91.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:92.2,94.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:94.23,96.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:97.2,98.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:98.22,100.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:101.2,102.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:102.27,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:105.2,111.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:111.38,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:114.8,116.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:117.2,120.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:120.35,122.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.2,123.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.35,125.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.2,127.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.46,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.8,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,132.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.47,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.8,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,137.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.46,139.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:139.8,141.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.2,142.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.33,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:144.8,146.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.2,152.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.25,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.2,155.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.24,157.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.2,158.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.29,160.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:162.2,164.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.47,164.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:166.47,166.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:175.2,175.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.30,179.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.6,181.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.20,183.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.3,184.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.17,186.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:187.3,188.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.52,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.3,192.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.23,194.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:196.3,197.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:197.15,199.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
@@ -2711,157 +2711,159 @@ 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:62.29,85.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.35,91.22 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.22,93.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:95.5,96.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:96.19,99.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:99.11,100.91 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:100.91,102.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.5,108.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.53,110.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:111.5,111.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:115.66,117.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:117.16,118.43 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:118.43,120.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:121.3,121.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:123.2,127.45 4 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:127.45,128.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:128.20,130.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:131.3,131.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:133.2,133.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:136.37,139.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.39,143.25 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:143.25,145.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,146.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.56,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.2,149.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.34,151.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.2,152.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.32,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.2,155.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.32,157.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.5,158.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.39,160.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.5,161.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.41,163.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.5,164.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.39,164.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.5,165.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.39,165.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.5,166.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.41,168.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.5,169.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.58,171.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.5,172.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.59,174.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.5,175.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.58,177.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.5,178.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.36,180.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.5,181.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.56,183.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:187.47,188.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:188.58,190.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.2,191.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.56,193.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.2,194.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.36,196.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.2,197.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.58,199.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.2,200.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.56,202.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.2,203.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.36,205.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.2,206.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.59,208.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.2,209.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.57,211.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.2,212.37 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.37,214.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:217.38,219.72 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:219.72,221.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:221.8,223.17 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:223.17,225.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:226.3,226.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:228.5,228.27 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:235.43,240.37 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:240.37,240.79 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.5,241.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.44,243.20 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:243.20,243.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:244.9,245.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.23,245.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.42,245.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.88,245.103 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:246.9,246.23 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.5,248.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.54,250.20 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:250.20,250.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:251.9,252.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:252.23,253.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:253.30,253.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:254.13,254.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:256.9,256.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.5,259.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.50,261.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.5,262.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.51,264.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.5,265.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.60,267.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.5,268.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.58,270.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.5,271.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.57,273.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.5,274.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.64,276.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.5,277.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.62,279.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.5,280.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.62,282.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.5,283.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.63,285.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.5,286.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:289.33,290.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:290.51,292.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.9,294.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.5,296.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.50,296.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.5,297.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.51,297.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.5,298.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.50,298.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.5,299.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.52,302.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:302.33,303.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:303.51,305.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:307.9,307.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.5,309.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.47,311.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.5,314.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,314.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.5,315.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.51,315.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.63,316.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.5,318.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.54,318.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.5,319.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.51,319.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.5,320.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.63,320.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.55,322.93 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.5,323.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.52,323.88 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.5,324.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.64,324.106 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.5,326.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.13,328.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:329.5,329.16 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/appconfig/config.go:63.29,86.2 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:90.35,92.19 2 3
+codeberg.org/snonux/hexai/internal/appconfig/config.go:92.19,94.3 1 2
+codeberg.org/snonux/hexai/internal/appconfig/config.go:96.2,97.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:97.16,100.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:100.8,101.85 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:101.85,103.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.2,109.50 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.50,111.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:112.2,112.12 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:116.66,118.16 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:118.16,119.43 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:119.43,121.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:122.3,122.18 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:124.2,128.45 4 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:128.45,129.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:129.20,131.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:132.3,132.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.2,134.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.19,136.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:137.2,137.22 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.37,143.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.39,147.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.25,149.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,150.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.56,152.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.2,153.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.34,155.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.2,156.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.32,158.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.32,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.36,164.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.2,165.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.38,167.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.2,168.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.36,170.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.2,171.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.36,173.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.2,174.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.38,176.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.2,177.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.55,179.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,180.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.56,182.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.2,183.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.55,185.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.2,186.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.33,188.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.2,189.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.53,191.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:195.47,196.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:196.58,198.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.2,199.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.56,201.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.2,202.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.36,204.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.2,205.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.58,207.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.2,208.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.56,210.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.2,211.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.36,213.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.2,214.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.59,216.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.2,217.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.57,219.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.2,220.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.37,222.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:225.38,227.72 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:227.72,229.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:229.8,231.17 2 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:231.17,233.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:234.3,234.70 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:236.2,236.24 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:243.43,248.34 3 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:248.34,248.76 1 24
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.2,249.41 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.41,251.14 2 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:251.14,253.4 1 7
+codeberg.org/snonux/hexai/internal/appconfig/config.go:254.3,255.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:255.17,256.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:256.21,258.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:259.4,259.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:261.3,261.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.2,263.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.51,265.14 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:265.14,267.4 1 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:268.3,269.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:269.17,270.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:270.21,272.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:273.4,273.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:275.3,275.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.2,278.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.47,281.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.2,282.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.48,285.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.2,286.57 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.2,290.55 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.55,293.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.54,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.2,298.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.61,301.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.2,302.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.59,305.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.59 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.59,309.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.60,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.2,314.54 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,317.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:317.27,318.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:318.42,320.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.3,322.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.2,324.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.47,327.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.48,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.2,332.47 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.47,335.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.2,336.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.49,339.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:339.27,340.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.42,342.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.3,344.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.2,346.44 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.44,349.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.2,352.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.51,355.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.2,356.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.48,359.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.60,363.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.51 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.51,368.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.2,369.48 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.48,372.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.2,373.60 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.60,376.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.2,378.52 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.52,381.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.2,382.49 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.49,385.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.61 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.61,389.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.2,391.10 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.10,393.3 1 1
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.2,394.13 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.16,30.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.2,32.64 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.124,39.16 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.16,42.3 2 0
@@ -2875,11 +2877,11 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.40,62.59 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:63.23,64.24 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.21,66.22 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.10,68.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.39 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.39,90.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.5,93.39 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.39,95.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.5,96.51 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.36 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.36,90.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.2,93.36 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.36,95.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.2,96.48 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.48,103.40 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.40,105.3 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:106.2,109.3 1 0
@@ -2893,30 +2895,30 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.17,129.4 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.3,131.26 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.2,136.12 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.59,142.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: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 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: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: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: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:65.19,67.3 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:68.2,82.39 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.39,84.6 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.5,87.39 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.39,89.6 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,126.2 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: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: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,126.2 1 6
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
@@ -2956,73 +2958,73 @@ 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.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:166.19,166.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.5,167.31 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.31,167.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:168.5,168.32 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:171.70,172.53 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.53,174.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.2,177.74 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:177.74,180.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.2,182.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:185.91,187.64 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:187.64,190.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.2,191.17 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:200.66,202.85 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:202.85,204.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.5,205.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.42,207.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:208.5,209.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.19,209.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:210.5,214.19 5 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:214.19,214.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:215.5,216.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.56,218.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:219.5,220.67 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:220.67,220.81 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.5,221.43 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.43,221.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.5,224.21 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:224.21,224.63 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:225.5,227.15 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:232.42,234.23 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:234.23,234.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.5,236.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.19,237.65 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:237.65,238.57 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:238.57,238.83 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:240.9,240.27 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:242.5,244.25 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:244.25,244.47 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:245.5,245.37 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.42,248.100 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:252.57,268.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.58,286.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:288.28,291.22 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:291.22,293.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:294.5,294.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:300.153,301.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:301.42,301.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.5,302.48 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.48,302.67 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.5,303.15 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.15,303.24 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:304.5,326.19 6 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.19,326.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:327.5,328.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:328.56,330.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.5,335.30 4 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:335.30,336.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:336.45,336.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:337.9,338.94 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:338.94,338.104 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.9,339.40 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.40,339.72 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:341.5,342.28 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:342.28,343.66 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:343.66,343.90 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:345.5,345.20 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
@@ -3091,11 +3093,11 @@ 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:78.76,79.38 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 5
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
@@ -3113,8 +3115,8 @@ 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:141.45,141.64 1 5
+codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 5
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
@@ -3186,66 +3188,66 @@ 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.16 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.16,89.6 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.5,90.14 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.19,92.50 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.50,94.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.9,96.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.41,99.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.9,100.103 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.19,102.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.41,105.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.9,106.89 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.20,108.51 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.51,110.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.9,111.42 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.42,114.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.9,115.108 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.13,117.61 1 0
+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 6
+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 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: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/logging/chatlogger.go:9.48,11.2 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:17.4,19.12 2 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:19.12,21.3 1 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:22.2,24.29 2 1
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:24.29,27.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/logging/logging.go:31.16,33.3 1 0
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 5
+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: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/lsp/context.go:15.96,17.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:18.17,19.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:20.16,21.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:22.26,23.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:23.14,25.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:26.3,26.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:27.21,28.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:29.10,31.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:35.65,37.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:37.35,40.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:41.2,44.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:44.15,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:47.2,48.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:48.13,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:51.2,52.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:55.53,57.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:57.14,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:61.2,61.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:66.64,67.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:67.20,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:70.2,71.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:71.27,73.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:75.2,76.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:76.21,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.2,79.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.53,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:82.2,82.19 1 0
+codeberg.org/snonux/hexai/internal/logging/logging.go:43.32,43.55 1 7
+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
+codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 1
+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
@@ -3264,7 +3266,7 @@ 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.8 1 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
@@ -3303,8 +3305,8 @@ 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.53 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.3 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
@@ -3355,10 +3357,10 @@ 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.9,303.126 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.126,305.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.9,307.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.33,309.10 1 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
@@ -3368,8 +3370,8 @@ 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.5,331.122 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.122,333.6 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
@@ -3378,674 +3380,672 @@ 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:16.48,18.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:18.55,19.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.23,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:22.3,22.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:24.2,25.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.57,26.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.23,28.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:29.3,29.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:31.5,34.56 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:34.56,36.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.5,37.60 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.60,39.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.5,40.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.57,42.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.5,43.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.54,45.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.5,46.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.25,48.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:51.85,52.85 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,63.3 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:64.2,64.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:67.89,69.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:69.21,71.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:72.2,81.12 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:84.70,85.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.45,87.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:88.2,96.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:96.58,98.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:99.5,99.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.20,107.72 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:107.72,108.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.66,112.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:113.9,115.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:116.24,120.43 4 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.21,149.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.78,150.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.75,154.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.15,157.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.20,159.98 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.98,167.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.5,169.21 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.83 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.83,250.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.5,252.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.74,254.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.5,257.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.44,259.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.5,267.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.27,274.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.5,275.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.37,277.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.5,286.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.79 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.79,293.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.5,296.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.24,298.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.5,301.39 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.39,303.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.5,306.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.42,308.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.5,314.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.29,320.28 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.28,323.10 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.9,326.108 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.108,328.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.9,336.46 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.46,336.62 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.9,339.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.25,339.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.9,341.39 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.5,345.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.18,345.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:346.5,361.16 13 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:361.16,364.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:365.5,366.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:370.62,371.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.42,373.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:374.5,376.19 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.19,378.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:379.5,380.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.35,384.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:384.44,386.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:387.5,387.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.48,392.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:392.30,394.45 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.45,397.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.54,397.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.13,398.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.55,398.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.13,399.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.55,399.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.13,400.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.5,403.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.63,408.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:408.16,408.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.5,409.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.26,409.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:411.5,412.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.31,413.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.48,415.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.9,417.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.44,418.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.5,421.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.20,421.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.5,425.41 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:425.41,427.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.38,428.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.22,431.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:432.22,433.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.30,433.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.17,434.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.43,436.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.5,441.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.18,443.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.5,444.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.65,449.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:449.27,456.77 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:456.77,458.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:458.30,458.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:459.15,461.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.5,465.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.19,465.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:466.5,466.118 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.43,474.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:474.42,474.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:475.5,477.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.37,479.69 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.69,481.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.5,484.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.45,486.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.5,487.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.37,491.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.19,491.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:492.5,493.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:493.35,495.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:496.5,496.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:14.48,17.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:17.55,24.19 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:24.19,26.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.3,27.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.25,31.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:31.10,34.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:37.2,38.73 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:43.67,44.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.22,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:47.2,51.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:51.48,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:53.8,56.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:57.2,57.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:62.99,65.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:67.98,70.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:72.160,77.52 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:77.52,80.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.2,81.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.51,83.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:85.2,90.86 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:90.86,95.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.5,96.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.73,99.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.2,101.83 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.83,104.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.5,107.129 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.129,109.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:112.2,115.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:115.29,117.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:118.2,120.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:120.32,122.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:124.5,125.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.32,127.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:128.5,131.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:131.16,135.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:136.2,140.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:140.19,142.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:143.2,144.75 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:148.38,149.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.16,151.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:152.2,155.42 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:155.42,157.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:157.8,160.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:161.2,161.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:165.91,167.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:167.27,167.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.5,168.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.43,169.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:169.41,169.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:170.9,171.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.43,172.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.27,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:178.5,178.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:182.119,186.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:186.24,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:189.2,190.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:190.13,192.68 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:192.68,194.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.2,196.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.19,198.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:200.2,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.12,203.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:203.28,205.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:207.3,207.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:209.2,211.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:211.50,213.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,214.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:218.193,220.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:220.9,222.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.2,228.32 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.32,230.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:231.2,232.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:232.24,234.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:235.2,241.33 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.33,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.5,245.40 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:245.40,247.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:247.20,249.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.21,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.4,252.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.59,254.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.4,258.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.40,262.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.8,264.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.23,266.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.55,274.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:274.15,276.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.5,277.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.9,281.26 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.26,283.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:284.9,285.23 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:285.23,287.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:288.9,290.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:291.27,293.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.24,294.24 0 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:302.60,304.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:304.22,306.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.5,308.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:308.9,312.29 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.29,316.20 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.31,319.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:320.28,322.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.9,328.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:333.177,339.33 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:339.33,341.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.2,342.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.18,344.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:345.2,345.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:349.101,351.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:351.57,352.78 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:352.78,354.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.2,356.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.19,358.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.2,359.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.19,361.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.2,362.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.61,363.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.57,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:18.45,20.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:20.55,23.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:26.47,28.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:28.55,29.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.32,31.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.3,34.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:38.46,40.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:40.55,43.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:49.76,51.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:51.14,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:55.2,56.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:56.14,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.2,59.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.26,61.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,63.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:63.13,65.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.2,66.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.30,68.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:70.2,71.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:71.28,74.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:75.2,80.43 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.43,83.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:84.2,84.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:92.50,93.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.24,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.2,97.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.35,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.5,100.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.33,103.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.14,104.39 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.39,106.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.4,108.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.9,110.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.18,111.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.9,114.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.31,115.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.9,118.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.43,119.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.9,122.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.18,122.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:123.9,125.44 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.44,126.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.28,126.53 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.9,128.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.23,128.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.3,131.63 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.63,133.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.3,134.80 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.80,135.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:138.9,141.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.19,142.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,146.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:146.38,156.18 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.18,159.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.4,161.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:161.17,163.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:164.4,164.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.3,167.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:173.110,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:175.14,177.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:179.2,190.54 8 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.96,197.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:197.14,199.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:200.2,203.31 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:203.31,204.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:204.53,206.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.3,207.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.12,208.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.3,210.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.61,211.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.3,214.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.14,216.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.36,219.13 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:221.4,221.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.53,225.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.12,227.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,232.6 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.2,235.26 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:235.26,236.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.35,238.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.35,241.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.2,244.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:248.45,250.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.20,252.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.5,254.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.53,256.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.46,257.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:257.27,259.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.5,263.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.35,265.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.5,268.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.24,270.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:271.13,272.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.68,284.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:287.46,294.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:297.61,312.2 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.59,317.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:317.15,320.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.58,13.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.5,14.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.31,16.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.34,20.67 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.67,22.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.13,23.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.26,25.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.9,28.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.13,32.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:10.48,12.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:12.24,14.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:15.2,26.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:29.38,31.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:33.46,35.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:37.31,40.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:18.55,20.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.32,22.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.2,23.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.41,32.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:34.41,39.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:41.32,44.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.23,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.2,48.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.24,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,54.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.15,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.2,60.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:64.51,65.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:65.41,67.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.2,70.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.110,74.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:74.14,78.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.2,81.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.56 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.56,134.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.5,135.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.67,177.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.25,180.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.18,182.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.9,185.80 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.80,187.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.9,191.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.18,193.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.9,195.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.54,197.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.9,200.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.24,202.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.9,205.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.5,207.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.46,217.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.34,219.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.5,220.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.37,222.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.5,223.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.34,225.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.38,227.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.5,229.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,302.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:302.13,304.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.2,307.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.66,309.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.2,311.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.54,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,314.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.51,316.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,319.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:319.69,322.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.2,323.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.43,329.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:329.13,331.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.2,333.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.11,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.14,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.56,347.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.89,349.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.52,355.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:355.32,357.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.28,359.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.3,360.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.34,362.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.42,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:368.2,371.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.27,373.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.2,374.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.36,376.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,380.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.49,382.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.24,384.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.2,388.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.25,390.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.33,393.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,395.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:399.67,401.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:401.35,403.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.2,405.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.31,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,408.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.69,412.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.40,414.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.5,415.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.50,420.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.25,424.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.18,426.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.9,429.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:429.38,431.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.9,433.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.52,435.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.9,439.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:439.18,441.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.9,443.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.55,445.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.9,447.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.5,449.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.67,455.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.31,457.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.18,458.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.9,462.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.18,463.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.9,465.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.49,467.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.9,469.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.40,471.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.9,474.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:474.54,476.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.9,478.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.31,480.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.9,483.56 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:483.56,485.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.9,487.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.5,489.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:85.90,88.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:88.20,90.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:91.2,93.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:93.23,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:96.2,97.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:97.22,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:100.2,101.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:101.27,103.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:104.2,110.38 6 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:110.38,113.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:113.8,115.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:116.5,119.38 4 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:119.38,121.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.5,122.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.38,124.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.5,126.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.49,126.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.76,126.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.5,127.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.50,127.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.78,127.115 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.5,128.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.49,128.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.76,128.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.5,129.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.36,129.82 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.87,129.149 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.5,132.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.27,132.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.5,133.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.28,133.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.5,134.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.27,134.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.5,135.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.32,135.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,139.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:139.46,139.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.46,141.64 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:150.2,150.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:153.30,154.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:154.6,156.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:156.20,158.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.3,159.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.17,161.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:162.3,163.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.52,165.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.3,167.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.23,169.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.3,172.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.15,174.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:14.48,17.6 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:17.6,19.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:19.17,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.3,22.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.17,23.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:25.3,26.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:26.22,27.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:29.3,31.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:32.25,34.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:34.18,36.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:37.4,37.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.2,40.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.24,42.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:43.2,44.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:44.50,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:47.2,47.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:50.38,52.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:52.16,55.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:56.2,57.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:57.57,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.2,61.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.45,64.3 2 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,121.43 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.43,122.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:122.24,124.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:124.10,126.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:128.3,134.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.72,135.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:135.66,139.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:140.9,142.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:143.18,150.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.72,151.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:151.66,155.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:156.9,158.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.17,160.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:160.92,168.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:170.2,170.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:173.55,175.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.56,176.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:176.23,178.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:179.3,179.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.2,181.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.49,184.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:185.2,185.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.85,192.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:192.22,194.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.2,196.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:196.53,198.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.2,199.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.31,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.2,203.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.36,204.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:204.34,206.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:208.2,208.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:212.37,214.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:214.32,216.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.2,217.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.32,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.2,221.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.29,223.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.2,225.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.29,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:228.2,228.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.34,232.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:232.22,234.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:235.2,235.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.37,239.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:239.22,241.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:242.2,242.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:247.76,249.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:249.80,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.2,253.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.71,255.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.2,258.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:258.41,260.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:261.2,268.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.86,273.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:273.24,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.2,276.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.34,278.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:279.2,287.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:290.95,292.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:292.76,294.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.2,297.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:297.21,299.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:300.2,302.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:302.36,304.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:305.2,307.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:307.39,309.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:311.2,315.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:315.26,321.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:321.22,324.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:325.3,327.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:327.102,329.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:330.3,337.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.40,339.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.3,342.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:342.19,344.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.3,346.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.2,350.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:350.15,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:353.2,368.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:368.13,371.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:372.2,373.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.62,378.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:378.39,380.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:381.2,383.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.16,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:386.2,387.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.35,391.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.41,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.2,394.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.48,399.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.27,401.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:401.39,404.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:404.45,406.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.4,407.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.46,409.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.4,410.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.46,412.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.4,413.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:416.2,416.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.63,421.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.13,423.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.2,424.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.23,426.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.2,429.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.28,430.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:430.42,432.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.3,434.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.38,435.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.2,438.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.17,440.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:442.2,444.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.38,446.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:446.32,447.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.13,450.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.13,452.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:452.18,454.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.5,455.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.31,457.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.2,462.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.15,464.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.2,465.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.65,470.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.24,477.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.71,479.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.21,481.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:482.9,484.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.2,488.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:488.16,490.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.2,491.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:495.43,499.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:499.39,501.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:502.2,504.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:504.34,506.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:506.63,508.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.2,511.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.42,513.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:514.2,514.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.37,518.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:518.16,520.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.2,522.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:522.32,524.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:525.2,525.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,233.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:233.32,235.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:236.2,237.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.24,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,246.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:246.30,248.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.2,250.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.40,252.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.20,254.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.4,257.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.54,259.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:259.21,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.4,263.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.40,267.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.8,269.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.23,271.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.2,272.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.55,279.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:279.12,281.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.2,282.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.6,286.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.20,288.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:289.3,290.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.17,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,295.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:296.21,298.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:299.18,299.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.60,309.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:309.19,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.2,313.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.6,317.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.23,321.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:322.22,324.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:325.19,327.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:331.3,333.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:338.177,344.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:344.33,346.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.2,347.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.18,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:350.2,350.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.101,356.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.57,357.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:357.78,359.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,361.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.19,363.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.2,364.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.19,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.56,368.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.57,370.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:372.2,372.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:76.110,77.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.14,81.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.2,84.18 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:87.118,88.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.14,91.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.16,94.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.35,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.36,99.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.4,102.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.59,104.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.4,105.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:108.2,111.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:114.51,115.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.23,117.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.13,120.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:120.100,122.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:124.3,124.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.2,126.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:129.32,131.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:134.44,135.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.50,137.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.2,138.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:143.20,144.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.40,146.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.3,148.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.12,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.2,153.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:156.52,157.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.38,159.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.2,161.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.27,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.34,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.36,166.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:168.3,168.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.2,170.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.64,180.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.22,183.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.12,185.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.3,188.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:188.74,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:193.3,194.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.12,196.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:197.3,198.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.48,200.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.3,203.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.18,205.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.3,208.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:210.2,210.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:216.41,220.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.31,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.29,225.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.2,226.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.31,228.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.32,230.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:232.2,232.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.83,239.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:239.102,241.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:241.36,243.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.136,245.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.4,248.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:248.34,250.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.2,254.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.65,255.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.53,257.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:257.37,259.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.137,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.5,264.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:264.35,266.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,270.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:274.80,275.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.22,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:278.2,280.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.40,282.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.2,283.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.34,284.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.31,285.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.3,288.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.16,289.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.3,291.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.32,293.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.2,295.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.36,300.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.39,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,310.66 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.66,312.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.2,314.54 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.54,316.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,317.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.51,319.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:320.2,322.69 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:322.69,325.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.43,332.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.13,334.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:335.2,336.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.11,338.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,340.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.14,342.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:343.2,344.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.56,350.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.89,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,353.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.52,358.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.32,360.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.28,362.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.34,365.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.42,368.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:369.3,369.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.2,374.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.27,376.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,377.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.36,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,383.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.49,385.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:385.24,387.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:390.2,391.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.25,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,394.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.33,396.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:397.2,398.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:402.67,404.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.35,406.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:407.2,408.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.31,410.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.2,411.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.69,415.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.32,417.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.2,418.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:421.45,423.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.22,427.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.12,429.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:430.3,432.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.32,434.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:435.3,436.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.46,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.12,444.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,446.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.49,448.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.3,450.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.2,452.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.67,458.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.28,460.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.12,461.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:463.3,465.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.12,466.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.3,468.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.43,470.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.3,472.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.34,474.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:476.3,477.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.48,479.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.3,481.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.25,483.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:485.3,486.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.50,488.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.3,490.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:492.2,492.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:86.90,89.20 3 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:89.20,91.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:92.2,94.23 3 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:94.23,96.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:97.2,98.22 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:98.22,100.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:101.2,102.27 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:102.27,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:105.2,111.38 6 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:111.38,114.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:114.8,116.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:117.2,120.35 4 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:120.35,122.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.2,123.35 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.35,125.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.2,127.46 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.46,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.8,131.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,132.47 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.47,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.8,136.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,137.46 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.46,139.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:139.8,141.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.2,142.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.33,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:144.8,146.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,149.24 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.24,151.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.2,152.25 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.25,154.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.2,155.24 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.24,157.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.2,158.29 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.29,160.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:162.2,164.47 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.47,164.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:166.47,166.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:175.2,175.10 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.30,179.6 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.6,181.20 2 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.20,183.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.3,184.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.17,186.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:187.3,188.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.52,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.3,192.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.23,194.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:196.3,197.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:197.15,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 1
+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
@@ -4059,157 +4059,159 @@ 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:62.29,85.2 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.35,91.22 2 3
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.22,93.6 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:95.5,96.19 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:96.19,99.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:99.11,100.91 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:100.91,102.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.5,108.53 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.53,110.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:111.5,111.15 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:115.66,117.16 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:117.16,118.43 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:118.43,120.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:121.3,121.18 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:123.2,127.45 4 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:127.45,128.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:128.20,130.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:131.3,131.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:133.2,133.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:136.37,139.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.39,143.25 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:143.25,145.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,146.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.56,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.2,149.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.34,151.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.2,152.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.32,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.2,155.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.32,157.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.5,158.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.39,160.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.5,161.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.41,163.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.5,164.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.39,164.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.5,165.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.39,165.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.5,166.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.41,168.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.5,169.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.58,171.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.5,172.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.59,174.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.5,175.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.58,177.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.5,178.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.36,180.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.5,181.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.56,183.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:187.47,188.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:188.58,190.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.2,191.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.56,193.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.2,194.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.36,196.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.2,197.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.58,199.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.2,200.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.56,202.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.2,203.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.36,205.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.2,206.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.59,208.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.2,209.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.57,211.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.2,212.37 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.37,214.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:217.38,219.72 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:219.72,221.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:221.8,223.17 2 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:223.17,225.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:226.3,226.70 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:228.5,228.27 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:235.43,240.37 3 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:240.37,240.79 1 24
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.5,241.44 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.44,243.20 2 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:243.20,243.39 1 7
-codeberg.org/snonux/hexai/internal/appconfig/config.go:244.9,245.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.23,245.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.42,245.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.88,245.103 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:246.9,246.23 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.5,248.54 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.54,250.20 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:250.20,250.41 1 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:251.9,252.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:252.23,253.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:253.30,253.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:254.13,254.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:256.9,256.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.5,259.50 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.50,261.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.5,262.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.51,264.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.5,265.60 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.60,267.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.5,268.58 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.58,270.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.5,271.57 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.57,273.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.5,274.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.64,276.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.5,277.62 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.62,279.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.5,280.62 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.62,282.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.5,283.63 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.63,285.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.5,286.57 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:289.33,290.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:290.51,292.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.9,294.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.5,296.50 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.50,296.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.5,297.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.51,297.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.5,298.50 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.50,298.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.5,299.52 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.52,302.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:302.33,303.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:303.51,305.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:307.9,307.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.5,309.47 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.47,311.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.5,314.54 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,314.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.5,315.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.51,315.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.63 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.63,316.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.5,318.54 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.54,318.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.5,319.51 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.51,319.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.5,320.63 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.63,320.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.55 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.55,322.93 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.5,323.52 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.52,323.88 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.5,324.64 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.64,324.106 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.5,326.13 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.13,328.6 1 1
-codeberg.org/snonux/hexai/internal/appconfig/config.go:329.5,329.16 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/appconfig/config.go:63.29,86.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:90.35,92.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:92.19,94.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:96.2,97.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:97.16,100.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:100.8,101.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:101.85,103.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.2,109.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.50,111.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:112.2,112.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:116.66,118.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:118.16,119.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:119.43,121.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:122.3,122.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:124.2,128.45 4 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:128.45,129.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:129.20,131.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:132.3,132.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.2,134.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.19,136.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:137.2,137.22 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.37,143.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.39,147.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.25,149.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,150.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.56,152.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.2,153.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.34,155.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.2,156.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.32,158.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.32,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.36,164.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.2,165.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.38,167.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.2,168.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.36,170.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.2,171.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.36,173.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.2,174.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.38,176.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.2,177.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.55,179.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,180.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.56,182.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.2,183.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.55,185.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.2,186.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.33,188.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.2,189.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.53,191.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:195.47,196.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:196.58,198.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.2,199.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.56,201.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.2,202.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.36,204.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.2,205.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.58,207.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.2,208.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.56,210.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.2,211.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.36,213.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.2,214.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.59,216.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.2,217.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.57,219.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.2,220.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.37,222.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:225.38,227.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:227.72,229.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:229.8,231.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:231.17,233.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:234.3,234.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:236.2,236.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:243.43,248.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:248.34,248.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.2,249.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.41,251.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:251.14,253.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:254.3,255.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:255.17,256.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:256.21,258.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:259.4,259.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:261.3,261.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.2,263.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.51,265.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:265.14,267.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:268.3,269.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:269.17,270.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:270.21,272.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:273.4,273.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:275.3,275.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.2,278.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.47,281.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.2,282.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.48,285.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.2,286.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.2,290.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.55,293.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.54,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.2,298.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.61,301.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.2,302.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.59,305.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.59,309.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.60,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.2,314.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,317.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:317.27,318.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:318.42,320.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.3,322.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.2,324.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.47,327.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.48,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.2,332.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.47,335.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.2,336.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.49,339.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:339.27,340.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.42,342.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.3,344.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.2,346.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.44,349.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.2,352.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.51,355.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.2,356.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.48,359.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.60,363.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.51,368.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.2,369.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.48,372.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.2,373.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.60,376.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.2,378.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.52,381.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.2,382.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.49,385.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.61,389.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.2,391.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.10,393.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.2,394.13 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.16,30.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.2,32.64 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.124,39.16 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.16,42.3 2 0
@@ -4223,11 +4225,11 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.40,62.59 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:63.23,64.24 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.21,66.22 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.10,68.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.39 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.39,90.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.5,93.39 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.39,95.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.5,96.51 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.36 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.36,90.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.2,93.36 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.36,95.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.2,96.48 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.48,103.40 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.40,105.3 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:106.2,109.3 1 0
@@ -4241,30 +4243,30 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.17,129.4 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.3,131.26 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.2,136.12 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.59,142.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: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 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: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 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 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.39 3 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.39,84.6 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.5,87.39 2 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.39,89.6 1 6
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 6
-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: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,126.2 1 6
+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,126.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
@@ -4304,73 +4306,73 @@ 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.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:166.19,166.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.5,167.31 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.31,167.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:168.5,168.32 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:171.70,172.53 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.53,174.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.2,177.74 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:177.74,180.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.2,182.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:185.91,187.64 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:187.64,190.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.2,191.17 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:200.66,202.85 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:202.85,204.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.5,205.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.42,207.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:208.5,209.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.19,209.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:210.5,214.19 5 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:214.19,214.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:215.5,216.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.56,218.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:219.5,220.67 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:220.67,220.81 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.5,221.43 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.43,221.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.5,224.21 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:224.21,224.63 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:225.5,227.15 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:232.42,234.23 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:234.23,234.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.5,236.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.19,237.65 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:237.65,238.57 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:238.57,238.83 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:240.9,240.27 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:242.5,244.25 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:244.25,244.47 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:245.5,245.37 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.42,248.100 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:252.57,268.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.58,286.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:288.28,291.22 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:291.22,293.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:294.5,294.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:300.153,301.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:301.42,301.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.5,302.48 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.48,302.67 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.5,303.15 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.15,303.24 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:304.5,326.19 6 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.19,326.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:327.5,328.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:328.56,330.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.5,335.30 4 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:335.30,336.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:336.45,336.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:337.9,338.94 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:338.94,338.104 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.9,339.40 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.40,339.72 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:341.5,342.28 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:342.28,343.66 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:343.66,343.90 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:345.5,345.20 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
@@ -4439,11 +4441,11 @@ 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 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:79.38,81.3 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.2,82.36 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:82.36,84.3 1 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:85.2,92.3 1 5
+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
@@ -4461,8 +4463,8 @@ 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 5
-codeberg.org/snonux/hexai/internal/llm/openai.go:142.45,142.70 1 5
+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
@@ -4534,66 +4536,66 @@ 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.16 2 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.16,89.6 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.5,90.14 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.19,92.50 1 6
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.50,94.10 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.9,96.41 1 5
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.41,99.10 2 3
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.9,100.103 1 5
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.19,102.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.41,105.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.9,106.89 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.20,108.51 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.51,110.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.9,111.42 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.42,114.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.9,115.108 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.13,117.61 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/logging/chatlogger.go:9.48,11.2 1 5
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:17.4,19.12 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:19.12,21.3 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:22.2,24.29 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:24.29,27.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/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/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 7
-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
-codeberg.org/snonux/hexai/internal/logging/logging.go:51.3,51.37 1 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:53.2,53.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:15.96,17.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:18.17,19.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:20.16,21.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:22.26,23.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:23.14,25.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:26.3,26.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:27.21,28.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:29.10,31.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:35.65,37.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:37.35,40.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:41.2,44.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:44.15,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:47.2,48.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:48.13,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:51.2,52.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:55.53,57.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:57.14,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:61.2,61.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:66.64,67.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:67.20,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:70.2,71.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:71.27,73.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:75.2,76.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:76.21,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.2,79.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.53,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:82.2,82.19 1 0
+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/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
@@ -4612,7 +4614,7 @@ 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.8 1 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
@@ -4651,8 +4653,8 @@ 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.53 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.3 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
@@ -4703,10 +4705,10 @@ 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.9,303.126 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.126,305.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.9,307.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.33,309.10 1 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
@@ -4716,8 +4718,8 @@ 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.5,331.122 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.122,333.6 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
@@ -4726,674 +4728,672 @@ 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:16.48,18.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:18.55,19.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.23,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:22.3,22.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:24.2,25.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.57,26.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.23,28.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:29.3,29.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:31.5,34.56 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:34.56,36.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.5,37.60 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.60,39.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.5,40.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.57,42.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.5,43.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.54,45.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.5,46.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.25,48.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:51.85,52.85 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,63.3 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:64.2,64.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:67.89,69.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:69.21,71.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:72.2,81.12 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:84.70,85.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.45,87.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:88.2,96.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:96.58,98.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:99.5,99.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.20,107.72 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:107.72,108.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.66,112.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:113.9,115.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:116.24,120.43 4 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.21,149.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.78,150.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.75,154.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.15,157.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.20,159.98 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.98,167.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.5,169.21 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.83 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.83,250.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.5,252.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.74,254.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.5,257.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.44,259.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.5,267.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.27,274.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.5,275.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.37,277.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.5,286.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.79 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.79,293.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.5,296.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.24,298.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.5,301.39 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.39,303.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.5,306.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.42,308.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.5,314.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.29,320.28 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.28,323.10 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.9,326.108 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.108,328.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.9,336.46 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.46,336.62 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.9,339.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.25,339.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.9,341.39 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.5,345.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.18,345.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:346.5,361.16 13 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:361.16,364.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:365.5,366.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:370.62,371.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.42,373.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:374.5,376.19 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.19,378.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:379.5,380.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.35,384.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:384.44,386.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:387.5,387.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.48,392.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:392.30,394.45 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.45,397.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.54,397.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.13,398.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.55,398.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.13,399.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.55,399.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.13,400.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.5,403.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.63,408.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:408.16,408.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.5,409.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.26,409.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:411.5,412.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.31,413.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.48,415.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.9,417.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.44,418.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.5,421.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.20,421.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.5,425.41 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:425.41,427.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.38,428.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.22,431.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:432.22,433.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.30,433.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.17,434.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.43,436.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.5,441.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.18,443.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.5,444.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.65,449.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:449.27,456.77 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:456.77,458.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:458.30,458.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:459.15,461.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.5,465.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.19,465.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:466.5,466.118 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.43,474.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:474.42,474.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:475.5,477.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.37,479.69 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.69,481.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.5,484.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.45,486.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.5,487.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.37,491.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.19,491.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:492.5,493.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:493.35,495.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:496.5,496.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:14.48,17.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:17.55,24.19 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:24.19,26.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.3,27.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.25,31.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:31.10,34.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:37.2,38.73 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:43.67,44.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.22,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:47.2,51.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:51.48,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:53.8,56.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:57.2,57.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:62.99,65.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:67.98,70.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:72.160,77.52 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:77.52,80.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.2,81.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.51,83.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:85.2,90.86 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:90.86,95.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.5,96.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.73,99.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.2,101.83 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.83,104.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.5,107.129 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.129,109.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:112.2,115.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:115.29,117.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:118.2,120.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:120.32,122.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:124.5,125.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.32,127.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:128.5,131.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:131.16,135.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:136.2,140.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:140.19,142.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:143.2,144.75 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:148.38,149.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.16,151.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:152.2,155.42 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:155.42,157.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:157.8,160.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:161.2,161.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:165.91,167.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:167.27,167.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.5,168.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.43,169.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:169.41,169.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:170.9,171.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.43,172.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.27,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:178.5,178.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:182.119,186.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:186.24,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:189.2,190.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:190.13,192.68 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:192.68,194.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.2,196.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.19,198.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:200.2,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.12,203.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:203.28,205.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:207.3,207.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:209.2,211.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:211.50,213.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,214.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:218.193,220.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:220.9,222.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.2,228.32 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.32,230.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:231.2,232.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:232.24,234.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:235.2,241.33 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.33,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.5,245.40 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:245.40,247.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:247.20,249.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.21,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.4,252.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.59,254.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.4,258.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.40,262.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.8,264.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.23,266.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.55,274.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:274.15,276.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.5,277.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.9,281.26 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.26,283.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:284.9,285.23 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:285.23,287.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:288.9,290.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:291.27,293.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.24,294.24 0 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:302.60,304.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:304.22,306.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.5,308.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:308.9,312.29 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.29,316.20 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.31,319.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:320.28,322.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.9,328.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:333.177,339.33 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:339.33,341.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.2,342.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.18,344.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:345.2,345.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:349.101,351.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:351.57,352.78 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:352.78,354.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.2,356.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.19,358.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.2,359.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.19,361.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.2,362.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.61,363.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.57,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:18.45,20.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:20.55,23.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:26.47,28.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:28.55,29.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.32,31.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.3,34.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:38.46,40.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:40.55,43.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:49.76,51.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:51.14,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:55.2,56.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:56.14,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.2,59.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.26,61.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,63.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:63.13,65.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.2,66.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.30,68.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:70.2,71.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:71.28,74.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:75.2,80.43 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.43,83.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:84.2,84.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:92.50,93.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.24,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.2,97.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.35,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.5,100.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.33,103.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.14,104.39 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.39,106.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.4,108.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.9,110.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.18,111.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.9,114.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.31,115.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.9,118.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.43,119.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.9,122.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.18,122.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:123.9,125.44 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.44,126.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.28,126.53 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.9,128.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.23,128.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.3,131.63 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.63,133.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.3,134.80 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.80,135.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:138.9,141.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.19,142.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,146.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:146.38,156.18 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.18,159.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.4,161.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:161.17,163.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:164.4,164.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.3,167.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:173.110,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:175.14,177.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:179.2,190.54 8 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.96,197.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:197.14,199.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:200.2,203.31 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:203.31,204.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:204.53,206.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.3,207.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.12,208.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.3,210.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.61,211.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.3,214.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.14,216.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.36,219.13 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:221.4,221.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.53,225.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.12,227.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,232.6 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.2,235.26 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:235.26,236.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.35,238.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.35,241.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.2,244.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:248.45,250.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.20,252.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.5,254.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.53,256.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.46,257.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:257.27,259.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.5,263.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.35,265.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.5,268.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.24,270.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:271.13,272.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.68,284.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:287.46,294.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:297.61,312.2 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.59,317.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:317.15,320.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.58,13.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.5,14.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.31,16.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.34,20.67 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.67,22.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.13,23.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.26,25.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.9,28.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.13,32.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:10.48,12.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:12.24,14.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:15.2,26.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:29.38,31.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:33.46,35.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:37.31,40.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:18.55,20.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.32,22.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.2,23.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.41,32.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:34.41,39.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:41.32,44.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.23,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.2,48.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.24,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,54.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.15,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.2,60.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:64.51,65.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:65.41,67.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.2,70.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.110,74.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:74.14,78.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.2,81.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.56 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.56,134.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.5,135.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.67,177.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.25,180.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.18,182.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.9,185.80 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.80,187.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.9,191.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.18,193.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.9,195.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.54,197.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.9,200.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.24,202.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.9,205.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.5,207.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.46,217.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.34,219.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.5,220.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.37,222.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.5,223.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.34,225.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.38,227.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.5,229.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,302.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:302.13,304.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.2,307.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.66,309.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.2,311.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.54,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,314.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.51,316.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,319.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:319.69,322.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.2,323.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.43,329.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:329.13,331.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.2,333.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.11,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.14,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.56,347.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.89,349.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.52,355.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:355.32,357.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.28,359.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.3,360.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.34,362.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.42,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:368.2,371.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.27,373.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.2,374.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.36,376.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,380.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.49,382.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.24,384.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.2,388.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.25,390.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.33,393.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,395.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:399.67,401.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:401.35,403.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.2,405.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.31,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,408.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.69,412.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.40,414.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.5,415.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.50,420.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.25,424.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.18,426.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.9,429.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:429.38,431.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.9,433.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.52,435.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.9,439.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:439.18,441.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.9,443.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.55,445.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.9,447.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.5,449.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.67,455.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.31,457.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.18,458.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.9,462.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.18,463.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.9,465.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.49,467.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.9,469.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.40,471.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.9,474.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:474.54,476.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.9,478.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.31,480.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.9,483.56 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:483.56,485.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.9,487.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.5,489.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:85.90,88.20 3 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:88.20,90.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:91.2,93.23 3 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:93.23,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:96.2,97.22 2 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:97.22,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:100.2,101.27 2 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:101.27,103.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:104.2,110.38 6 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:110.38,113.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:113.8,115.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:116.5,119.38 4 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:119.38,121.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.5,122.38 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.38,124.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.5,126.49 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.49,126.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.76,126.111 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.5,127.50 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.50,127.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.78,127.115 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.5,128.49 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.49,128.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.76,128.111 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.5,129.36 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.36,129.82 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.87,129.149 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.5,132.27 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.27,132.63 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.5,133.28 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.28,133.66 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.5,134.27 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.27,134.63 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.5,135.32 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.32,135.93 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,139.46 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:139.46,139.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.46,141.64 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:150.2,150.10 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:153.30,154.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:154.6,156.20 2 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:156.20,158.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.3,159.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.17,161.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:162.3,163.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.52,165.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.3,167.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.23,169.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.3,172.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.15,174.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:14.48,17.6 3 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:17.6,19.17 2 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:19.17,21.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.3,22.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.17,23.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:25.3,26.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:26.22,27.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:29.3,31.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:32.25,34.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:34.18,36.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:37.4,37.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.2,40.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.24,42.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:43.2,44.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:44.50,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:47.2,47.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:50.38,52.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:52.16,55.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:56.2,57.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:57.57,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.2,61.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.45,64.3 2 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,121.43 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.43,122.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:122.24,124.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:124.10,126.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:128.3,134.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.72,135.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:135.66,139.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:140.9,142.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:143.18,150.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.72,151.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:151.66,155.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:156.9,158.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.17,160.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:160.92,168.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:170.2,170.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:173.55,175.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.56,176.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:176.23,178.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:179.3,179.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.2,181.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.49,184.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:185.2,185.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.85,192.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:192.22,194.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.2,196.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:196.53,198.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.2,199.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.31,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.2,203.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.36,204.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:204.34,206.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:208.2,208.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:212.37,214.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:214.32,216.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.2,217.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.32,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.2,221.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.29,223.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.2,225.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.29,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:228.2,228.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.34,232.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:232.22,234.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:235.2,235.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.37,239.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:239.22,241.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:242.2,242.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:247.76,249.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:249.80,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.2,253.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.71,255.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.2,258.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:258.41,260.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:261.2,268.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.86,273.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:273.24,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.2,276.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.34,278.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:279.2,287.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:290.95,292.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:292.76,294.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.2,297.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:297.21,299.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:300.2,302.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:302.36,304.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:305.2,307.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:307.39,309.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:311.2,315.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:315.26,321.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:321.22,324.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:325.3,327.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:327.102,329.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:330.3,337.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.40,339.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.3,342.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:342.19,344.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.3,346.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.2,350.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:350.15,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:353.2,368.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:368.13,371.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:372.2,373.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.62,378.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:378.39,380.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:381.2,383.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.16,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:386.2,387.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.35,391.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.41,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.2,394.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.48,399.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.27,401.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:401.39,404.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:404.45,406.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.4,407.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.46,409.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.4,410.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.46,412.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.4,413.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:416.2,416.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.63,421.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.13,423.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.2,424.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.23,426.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.2,429.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.28,430.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:430.42,432.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.3,434.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.38,435.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.2,438.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.17,440.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:442.2,444.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.38,446.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:446.32,447.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.13,450.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.13,452.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:452.18,454.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.5,455.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.31,457.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.2,462.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.15,464.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.2,465.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.65,470.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.24,477.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.71,479.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.21,481.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:482.9,484.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.2,488.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:488.16,490.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.2,491.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:495.43,499.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:499.39,501.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:502.2,504.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:504.34,506.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:506.63,508.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.2,511.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.42,513.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:514.2,514.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.37,518.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:518.16,520.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.2,522.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:522.32,524.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:525.2,525.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,233.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:233.32,235.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:236.2,237.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.24,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,246.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:246.30,248.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.2,250.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.40,252.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.20,254.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.4,257.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.54,259.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:259.21,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.4,263.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.40,267.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.8,269.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.23,271.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.2,272.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.55,279.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:279.12,281.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.2,282.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.6,286.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.20,288.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:289.3,290.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.17,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,295.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:296.21,298.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:299.18,299.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.60,309.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:309.19,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.2,313.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.6,317.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.23,321.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:322.22,324.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:325.19,327.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:331.3,333.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:338.177,344.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:344.33,346.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.2,347.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.18,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:350.2,350.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.101,356.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.57,357.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:357.78,359.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,361.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.19,363.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.2,364.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.19,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.56,368.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.57,370.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:372.2,372.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:76.110,77.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.14,81.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.2,84.18 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:87.118,88.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.14,91.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.16,94.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.35,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.36,99.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.4,102.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.59,104.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.4,105.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:108.2,111.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:114.51,115.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.23,117.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.13,120.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:120.100,122.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:124.3,124.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.2,126.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:129.32,131.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:134.44,135.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.50,137.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.2,138.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:143.20,144.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.40,146.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.3,148.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.12,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.2,153.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:156.52,157.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.38,159.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.2,161.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.27,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.34,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.36,166.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:168.3,168.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.2,170.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.64,180.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.22,183.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.12,185.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.3,188.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:188.74,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:193.3,194.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.12,196.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:197.3,198.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.48,200.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.3,203.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.18,205.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.3,208.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:210.2,210.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:216.41,220.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.31,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.29,225.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.2,226.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.31,228.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.32,230.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:232.2,232.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.83,239.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:239.102,241.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:241.36,243.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.136,245.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.4,248.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:248.34,250.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.2,254.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.65,255.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.53,257.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:257.37,259.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.137,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.5,264.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:264.35,266.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,270.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:274.80,275.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.22,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:278.2,280.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.40,282.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.2,283.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.34,284.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.31,285.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.3,288.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.16,289.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.3,291.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.32,293.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.2,295.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.36,300.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.39,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,310.66 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.66,312.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.2,314.54 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.54,316.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,317.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.51,319.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:320.2,322.69 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:322.69,325.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.43,332.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.13,334.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:335.2,336.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.11,338.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,340.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.14,342.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:343.2,344.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.56,350.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.89,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,353.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.52,358.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.32,360.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.28,362.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.34,365.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.42,368.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:369.3,369.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.2,374.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.27,376.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,377.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.36,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,383.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.49,385.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:385.24,387.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:390.2,391.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.25,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,394.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.33,396.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:397.2,398.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:402.67,404.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.35,406.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:407.2,408.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.31,410.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.2,411.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.69,415.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.32,417.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.2,418.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:421.45,423.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.22,427.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.12,429.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:430.3,432.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.32,434.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:435.3,436.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.46,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.12,444.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,446.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.49,448.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.3,450.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.2,452.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.67,458.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.28,460.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.12,461.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:463.3,465.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.12,466.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.3,468.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.43,470.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.3,472.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.34,474.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:476.3,477.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.48,479.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.3,481.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.25,483.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:485.3,486.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.50,488.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.3,490.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:492.2,492.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:86.90,89.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:89.20,91.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:92.2,94.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:94.23,96.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:97.2,98.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:98.22,100.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:101.2,102.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:102.27,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:105.2,111.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:111.38,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:114.8,116.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:117.2,120.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:120.35,122.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.2,123.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.35,125.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.2,127.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.46,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.8,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,132.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.47,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.8,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,137.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.46,139.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:139.8,141.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.2,142.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.33,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:144.8,146.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.2,152.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.25,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.2,155.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.24,157.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.2,158.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.29,160.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:162.2,164.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.47,164.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:166.47,166.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:175.2,175.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.30,179.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.6,181.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.20,183.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.3,184.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.17,186.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:187.3,188.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.52,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.3,192.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.23,194.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:196.3,197.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:197.15,199.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
@@ -5407,157 +5407,159 @@ 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:62.29,85.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.35,91.22 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.22,93.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:95.5,96.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:96.19,99.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:99.11,100.91 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:100.91,102.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.5,108.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.53,110.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:111.5,111.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:115.66,117.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:117.16,118.43 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:118.43,120.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:121.3,121.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:123.2,127.45 4 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:127.45,128.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:128.20,130.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:131.3,131.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:133.2,133.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:136.37,139.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.39,143.25 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:143.25,145.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,146.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.56,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.2,149.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.34,151.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.2,152.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.32,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.2,155.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.32,157.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.5,158.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.39,160.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.5,161.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.41,163.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.5,164.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.39,164.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.5,165.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.39,165.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.5,166.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.41,168.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.5,169.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.58,171.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.5,172.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.59,174.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.5,175.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.58,177.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.5,178.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.36,180.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.5,181.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.56,183.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:187.47,188.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:188.58,190.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.2,191.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.56,193.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.2,194.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.36,196.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.2,197.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.58,199.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.2,200.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.56,202.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.2,203.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.36,205.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.2,206.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.59,208.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.2,209.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.57,211.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.2,212.37 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.37,214.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:217.38,219.72 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:219.72,221.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:221.8,223.17 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:223.17,225.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:226.3,226.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:228.5,228.27 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:235.43,240.37 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:240.37,240.79 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.5,241.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.44,243.20 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:243.20,243.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:244.9,245.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.23,245.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.42,245.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.88,245.103 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:246.9,246.23 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.5,248.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.54,250.20 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:250.20,250.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:251.9,252.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:252.23,253.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:253.30,253.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:254.13,254.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:256.9,256.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.5,259.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.50,261.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.5,262.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.51,264.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.5,265.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.60,267.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.5,268.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.58,270.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.5,271.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.57,273.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.5,274.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.64,276.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.5,277.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.62,279.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.5,280.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.62,282.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.5,283.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.63,285.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.5,286.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:289.33,290.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:290.51,292.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.9,294.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.5,296.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.50,296.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.5,297.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.51,297.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.5,298.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.50,298.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.5,299.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.52,302.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:302.33,303.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:303.51,305.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:307.9,307.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.5,309.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.47,311.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.5,314.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,314.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.5,315.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.51,315.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.63,316.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.5,318.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.54,318.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.5,319.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.51,319.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.5,320.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.63,320.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.55,322.93 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.5,323.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.52,323.88 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.5,324.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.64,324.106 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.5,326.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.13,328.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:329.5,329.16 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/appconfig/config.go:63.29,86.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:90.35,92.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:92.19,94.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:96.2,97.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:97.16,100.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:100.8,101.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:101.85,103.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.2,109.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.50,111.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:112.2,112.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:116.66,118.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:118.16,119.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:119.43,121.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:122.3,122.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:124.2,128.45 4 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:128.45,129.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:129.20,131.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:132.3,132.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.2,134.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.19,136.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:137.2,137.22 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.37,143.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.39,147.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.25,149.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,150.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.56,152.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.2,153.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.34,155.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.2,156.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.32,158.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.32,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.36,164.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.2,165.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.38,167.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.2,168.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.36,170.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.2,171.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.36,173.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.2,174.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.38,176.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.2,177.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.55,179.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,180.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.56,182.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.2,183.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.55,185.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.2,186.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.33,188.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.2,189.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.53,191.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:195.47,196.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:196.58,198.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.2,199.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.56,201.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.2,202.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.36,204.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.2,205.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.58,207.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.2,208.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.56,210.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.2,211.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.36,213.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.2,214.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.59,216.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.2,217.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.57,219.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.2,220.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.37,222.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:225.38,227.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:227.72,229.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:229.8,231.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:231.17,233.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:234.3,234.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:236.2,236.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:243.43,248.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:248.34,248.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.2,249.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.41,251.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:251.14,253.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:254.3,255.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:255.17,256.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:256.21,258.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:259.4,259.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:261.3,261.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.2,263.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.51,265.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:265.14,267.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:268.3,269.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:269.17,270.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:270.21,272.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:273.4,273.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:275.3,275.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.2,278.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.47,281.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.2,282.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.48,285.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.2,286.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.2,290.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.55,293.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.54,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.2,298.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.61,301.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.2,302.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.59,305.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.59,309.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.60,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.2,314.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,317.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:317.27,318.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:318.42,320.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.3,322.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.2,324.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.47,327.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.48,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.2,332.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.47,335.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.2,336.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.49,339.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:339.27,340.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.42,342.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.3,344.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.2,346.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.44,349.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.2,352.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.51,355.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.2,356.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.48,359.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.60,363.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.51,368.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.2,369.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.48,372.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.2,373.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.60,376.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.2,378.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.52,381.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.2,382.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.49,385.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.61,389.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.2,391.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.10,393.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.2,394.13 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.16,30.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.2,32.64 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.124,39.16 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.16,42.3 2 0
@@ -5571,11 +5573,11 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.40,62.59 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:63.23,64.24 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.21,66.22 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.10,68.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.39 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.39,90.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.5,93.39 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.39,95.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.5,96.51 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.36 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.36,90.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.2,93.36 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.36,95.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.2,96.48 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.48,103.40 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.40,105.3 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:106.2,109.3 1 0
@@ -5601,10 +5603,10 @@ 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.39 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.39,84.6 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.5,87.39 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.39,89.6 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
@@ -5652,73 +5654,73 @@ codeberg.org/snonux/hexai/internal/llm/copilot.go:155.21,157.3 1 1
codeberg.org/snonux/hexai/internal/llm/copilot.go:158.2,158.21 1 6
codeberg.org/snonux/hexai/internal/llm/copilot.go:158.21,160.3 1 1
codeberg.org/snonux/hexai/internal/llm/copilot.go:161.2,161.12 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.19 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:166.19,166.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.5,167.31 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.31,167.55 1 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:168.5,168.32 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:171.70,172.53 1 6
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.53,174.3 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.2,177.74 3 2
-codeberg.org/snonux/hexai/internal/llm/copilot.go:177.74,180.3 2 2
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.2,182.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:185.91,187.64 2 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:187.64,190.3 2 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.2,191.17 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:200.66,202.85 1 16
-codeberg.org/snonux/hexai/internal/llm/copilot.go:202.85,204.6 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.5,205.42 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.42,207.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:208.5,209.19 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.19,209.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:210.5,214.19 5 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:214.19,214.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:215.5,216.56 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.56,218.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:219.5,220.67 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:220.67,220.81 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.5,221.43 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.43,221.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.5,224.21 2 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:224.21,224.63 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:225.5,227.15 3 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:232.42,234.23 2 9
-codeberg.org/snonux/hexai/internal/llm/copilot.go:234.23,234.45 1 8
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.5,236.19 2 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.19,237.65 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:237.65,238.57 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:238.57,238.83 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:240.9,240.27 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:242.5,244.25 3 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:244.25,244.47 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:245.5,245.37 1 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.42,248.100 3 1
-codeberg.org/snonux/hexai/internal/llm/copilot.go:252.57,268.2 3 5
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.58,286.2 3 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:288.28,291.22 3 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:291.22,293.6 1 1024
-codeberg.org/snonux/hexai/internal/llm/copilot.go:294.5,294.21 1 88
-codeberg.org/snonux/hexai/internal/llm/copilot.go:300.153,301.42 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:301.42,301.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.5,302.48 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.48,302.67 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.5,303.15 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.15,303.24 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:304.5,326.19 6 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.19,326.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:327.5,328.56 2 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:328.56,330.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.5,335.30 4 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:335.30,336.45 1 10
-codeberg.org/snonux/hexai/internal/llm/copilot.go:336.45,336.55 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:337.9,338.94 2 7
-codeberg.org/snonux/hexai/internal/llm/copilot.go:338.94,338.104 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.9,339.40 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.40,339.72 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:341.5,342.28 2 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:342.28,343.66 1 4
-codeberg.org/snonux/hexai/internal/llm/copilot.go:343.66,343.90 1 3
-codeberg.org/snonux/hexai/internal/llm/copilot.go:345.5,345.20 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:164.130,166.16 2 8
+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 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:169.28,171.3 1 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:172.2,172.29 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:175.70,176.53 1 6
+codeberg.org/snonux/hexai/internal/llm/copilot.go:176.53,178.3 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:179.2,181.74 3 2
+codeberg.org/snonux/hexai/internal/llm/copilot.go:181.74,184.3 2 2
+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 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:191.64,194.3 2 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:195.2,195.17 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:204.66,206.82 1 16
+codeberg.org/snonux/hexai/internal/llm/copilot.go:206.82,208.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:209.2,209.39 1 8
+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 8
+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 8
+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 8
+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 8
+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 8
+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 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:236.18,238.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:239.2,241.12 3 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:246.42,248.20 2 9
+codeberg.org/snonux/hexai/internal/llm/copilot.go:248.20,250.3 1 8
+codeberg.org/snonux/hexai/internal/llm/copilot.go:251.2,252.16 2 1
+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 1
+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 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:270.42,270.100 3 1
+codeberg.org/snonux/hexai/internal/llm/copilot.go:274.57,290.2 3 5
+codeberg.org/snonux/hexai/internal/llm/copilot.go:292.58,308.2 3 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:310.28,313.19 3 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:313.19,315.3 1 1024
+codeberg.org/snonux/hexai/internal/llm/copilot.go:316.2,316.18 1 88
+codeberg.org/snonux/hexai/internal/llm/copilot.go:322.153,323.39 1 3
+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 3
+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 3
+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 3
+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 3
+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 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:365.27,366.39 1 10
+codeberg.org/snonux/hexai/internal/llm/copilot.go:366.39,367.12 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:369.3,375.88 2 7
+codeberg.org/snonux/hexai/internal/llm/copilot.go:375.88,376.12 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.3,378.34 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:378.34,380.4 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:382.2,383.25 2 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:383.25,384.60 1 4
+codeberg.org/snonux/hexai/internal/llm/copilot.go:384.60,386.4 1 3
+codeberg.org/snonux/hexai/internal/llm/copilot.go:388.2,388.17 1 3
codeberg.org/snonux/hexai/internal/llm/ollama.go:44.68,45.38 1 10
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 10
@@ -5882,29 +5884,29 @@ 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.16 2 5
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.16,89.6 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.5,90.14 1 5
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.19,92.50 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.50,94.10 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.9,96.41 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.41,99.10 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.9,100.103 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.19,102.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.41,105.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.9,106.89 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.20,108.51 1 2
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.51,110.10 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.9,111.42 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.42,114.10 2 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.9,115.108 1 1
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.13,117.61 1 1
+codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 5
+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: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
+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 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: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: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/logging/chatlogger.go:17.4,19.12 2 23
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:19.12,21.3 1 7
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:22.2,24.29 2 23
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:24.29,27.3 1 23
+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
+codeberg.org/snonux/hexai/internal/logging/chatlogger.go:25.29,28.3 1 23
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 95
codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 95
@@ -5915,33 +5917,33 @@ 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 28
-codeberg.org/snonux/hexai/internal/lsp/context.go:15.96,17.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:18.17,19.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:20.16,21.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:22.26,23.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:23.14,25.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:26.3,26.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:27.21,28.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:29.10,31.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:35.65,37.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:37.35,40.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:41.2,44.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:44.15,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:47.2,48.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:48.13,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:51.2,52.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:55.53,57.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:57.14,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:61.2,61.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:66.64,67.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:67.20,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:70.2,71.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:71.27,73.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:75.2,76.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:76.21,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.2,79.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.53,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:82.2,82.19 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
@@ -5960,7 +5962,7 @@ 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.8 1 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
@@ -5999,8 +6001,8 @@ 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.53 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.3 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
@@ -6051,10 +6053,10 @@ 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.9,303.126 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.126,305.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.9,307.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.33,309.10 1 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
@@ -6064,8 +6066,8 @@ 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.5,331.122 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.122,333.6 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
@@ -6074,674 +6076,672 @@ 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:16.48,18.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:18.55,19.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.23,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:22.3,22.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:24.2,25.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.57,26.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.23,28.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:29.3,29.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:31.5,34.56 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:34.56,36.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.5,37.60 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.60,39.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.5,40.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.57,42.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.5,43.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.54,45.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.5,46.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.25,48.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:51.85,52.85 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,63.3 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:64.2,64.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:67.89,69.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:69.21,71.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:72.2,81.12 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:84.70,85.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.45,87.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:88.2,96.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:96.58,98.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:99.5,99.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.20,107.72 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:107.72,108.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.66,112.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:113.9,115.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:116.24,120.43 4 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.21,149.78 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.78,150.75 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.75,154.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.15,157.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.20,159.98 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.98,167.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.5,169.21 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.83 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.83,250.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.5,252.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.74,254.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.5,257.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.44,259.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.5,267.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.27,274.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.5,275.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.37,277.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.5,286.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.79 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.79,293.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.5,296.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.24,298.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.5,301.39 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.39,303.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.5,306.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.42,308.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.5,314.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.29,320.28 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.28,323.10 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.9,326.108 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.108,328.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.9,336.46 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.46,336.62 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.9,339.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.25,339.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.9,341.39 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.5,345.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.18,345.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:346.5,361.16 13 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:361.16,364.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:365.5,366.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:370.62,371.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.42,373.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:374.5,376.19 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.19,378.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:379.5,380.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.35,384.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:384.44,386.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:387.5,387.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.48,392.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:392.30,394.45 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.45,397.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.54,397.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.13,398.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.55,398.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.13,399.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.55,399.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.13,400.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.5,403.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.63,408.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:408.16,408.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.5,409.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.26,409.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:411.5,412.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.31,413.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.48,415.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.9,417.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.44,418.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.5,421.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.20,421.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.5,425.41 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:425.41,427.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.38,428.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.22,431.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:432.22,433.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.30,433.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.17,434.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.43,436.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.5,441.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.18,443.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.5,444.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.65,449.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:449.27,456.77 7 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:456.77,458.30 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:458.30,458.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:459.15,461.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.5,465.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.19,465.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:466.5,466.118 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.43,474.42 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:474.42,474.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:475.5,477.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.37,479.69 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.69,481.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.5,484.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.45,486.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.5,487.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.37,491.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.19,491.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:492.5,493.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:493.35,495.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:496.5,496.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:14.48,17.55 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:17.55,24.19 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:24.19,26.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.3,27.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.25,31.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:31.10,34.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:37.2,38.73 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:43.67,44.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.22,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:47.2,51.48 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:51.48,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:53.8,56.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:57.2,57.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:62.99,65.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:67.98,70.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:72.160,77.52 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:77.52,80.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.2,81.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.51,83.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:85.2,90.86 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:90.86,95.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.5,96.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.73,99.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.2,101.83 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.83,104.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.5,107.129 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.129,109.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:112.2,115.29 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:115.29,117.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:118.2,120.32 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:120.32,122.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:124.5,125.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.32,127.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:128.5,131.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:131.16,135.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:136.2,140.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:140.19,142.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:143.2,144.75 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:148.38,149.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.16,151.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:152.2,155.42 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:155.42,157.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:157.8,160.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:161.2,161.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:165.91,167.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:167.27,167.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.5,168.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.43,169.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:169.41,169.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:170.9,171.43 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.43,172.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.27,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:178.5,178.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:182.119,186.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:186.24,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:189.2,190.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:190.13,192.68 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:192.68,194.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.2,196.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.19,198.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:200.2,201.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.12,203.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:203.28,205.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:207.3,207.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:209.2,211.50 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:211.50,213.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,214.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:218.193,220.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:220.9,222.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.2,228.32 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.32,230.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:231.2,232.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:232.24,234.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:235.2,241.33 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.33,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.5,245.40 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:245.40,247.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:247.20,249.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.21,251.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.4,252.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.59,254.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.4,258.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.40,262.5 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.8,264.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.23,266.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.55,274.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:274.15,276.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.5,277.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.9,281.26 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.26,283.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:284.9,285.23 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:285.23,287.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:288.9,290.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:291.27,293.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.24,294.24 0 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:302.60,304.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:304.22,306.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.5,308.9 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:308.9,312.29 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.29,316.20 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.31,319.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:320.28,322.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.9,328.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:333.177,339.33 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:339.33,341.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.2,342.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.18,344.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:345.2,345.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:349.101,351.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:351.57,352.78 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:352.78,354.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.2,356.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.19,358.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.2,359.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.19,361.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.2,362.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.61,363.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.57,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.16 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:18.45,20.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:20.55,23.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:26.47,28.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:28.55,29.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.32,31.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.3,34.44 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:38.46,40.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:40.55,43.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:49.76,51.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:51.14,53.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:55.2,56.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:56.14,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.2,59.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.26,61.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,63.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:63.13,65.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.2,66.30 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.30,68.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:70.2,71.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:71.28,74.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:75.2,80.43 5 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.43,83.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:84.2,84.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:92.50,93.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.24,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.2,97.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.35,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.5,100.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.33,103.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.14,104.39 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.39,106.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.4,108.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.9,110.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.18,111.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.9,114.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.31,115.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.9,118.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.43,119.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.9,122.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.18,122.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:123.9,125.44 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.44,126.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.28,126.53 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.9,128.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.23,128.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.3,131.63 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.63,133.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.3,134.80 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.80,135.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:138.9,141.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.19,142.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,146.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:146.38,156.18 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.18,159.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.4,161.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:161.17,163.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:164.4,164.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.3,167.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:173.110,175.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:175.14,177.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:179.2,190.54 8 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.96,197.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:197.14,199.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:200.2,203.31 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:203.31,204.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:204.53,206.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.3,207.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.12,208.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.3,210.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.61,211.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.3,214.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.14,216.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.36,219.13 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:221.4,221.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.53,225.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.12,227.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,232.6 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.2,235.26 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:235.26,236.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.35,238.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.35,241.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.2,244.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:248.45,250.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.20,252.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.5,254.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.53,256.46 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.46,257.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:257.27,259.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.5,263.35 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.35,265.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.5,268.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.24,270.54 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:271.13,272.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.68,284.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:287.46,294.2 6 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:297.61,312.2 9 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.59,317.15 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:317.15,320.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.58 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.58,13.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.5,14.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.31,16.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.34,20.67 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.67,22.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.13,23.26 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.26,25.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.9,28.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.13,32.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:10.48,12.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:12.24,14.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:15.2,26.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:29.38,31.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:33.46,35.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:37.31,40.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:18.55,20.32 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.32,22.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.2,23.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.41,32.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:34.41,39.2 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:41.32,44.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.23,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.2,48.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.24,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,54.15 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.15,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.2,60.211 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:64.51,65.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:65.41,67.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.2,70.71 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.110,74.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:74.14,78.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.2,81.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.56 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.56,134.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.5,135.43 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.67,177.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.25,180.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.18,182.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.9,185.80 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.80,187.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.9,191.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.18,193.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.9,195.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.54,197.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.9,200.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.24,202.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.9,205.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.5,207.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.46,217.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.34,219.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.5,220.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.37,222.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.5,223.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.34,225.38 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.38,227.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.5,229.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,302.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:302.13,304.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.2,307.66 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.66,309.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.2,311.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.54,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,314.51 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.51,316.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,319.69 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:319.69,322.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.2,323.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.43,329.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:329.13,331.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.2,333.11 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.11,335.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.14 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.14,339.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.56,347.89 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.89,349.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.52,355.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:355.32,357.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.28,359.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.3,360.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.34,362.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.42 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.42,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:368.2,371.27 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.27,373.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.2,374.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.36,376.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,380.49 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.49,382.24 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.24,384.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.2,388.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.25,390.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.33,393.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,395.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:399.67,401.35 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:401.35,403.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.2,405.31 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.31,407.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,408.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.69,412.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.40,414.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.5,415.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.50,420.25 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.25,424.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.18,426.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.9,429.38 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:429.38,431.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.9,433.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.52,435.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.9,439.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:439.18,441.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.9,443.55 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.55,445.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.9,447.20 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.5,449.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.67,455.31 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.31,457.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.18,458.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.9,462.18 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.18,463.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.9,465.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.49,467.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.9,469.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.40,471.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.9,474.54 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:474.54,476.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.9,478.31 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.31,480.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.9,483.56 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:483.56,485.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.9,487.28 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.5,489.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:85.90,88.20 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:88.20,90.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:91.2,93.23 3 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:93.23,95.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:96.2,97.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:97.22,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:100.2,101.27 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:101.27,103.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:104.2,110.38 6 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:110.38,113.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:113.8,115.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:116.5,119.38 4 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:119.38,121.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.5,122.38 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.38,124.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.5,126.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.49,126.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.76,126.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.5,127.50 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.50,127.73 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.78,127.115 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.5,128.49 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.49,128.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.76,128.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.5,129.36 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.36,129.82 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.87,129.149 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.5,132.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.27,132.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.5,133.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.28,133.66 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.5,134.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.27,134.63 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.5,135.32 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.32,135.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,139.46 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:139.46,139.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.46,141.64 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:150.2,150.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:153.30,154.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:154.6,156.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:156.20,158.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.3,159.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.17,161.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:162.3,163.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.52,165.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.3,167.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.23,169.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.3,172.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.15,174.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:14.48,17.6 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:17.6,19.17 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:19.17,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.3,22.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.17,23.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:25.3,26.22 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:26.22,27.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:29.3,31.14 3 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:32.25,34.18 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:34.18,36.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:37.4,37.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.2,40.24 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.24,42.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:43.2,44.50 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:44.50,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:47.2,47.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:50.38,52.16 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:52.16,55.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:56.2,57.57 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:57.57,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.2,61.45 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.45,64.3 2 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,121.43 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.43,122.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:122.24,124.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:124.10,126.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:128.3,134.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.72,135.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:135.66,139.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:140.9,142.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:143.18,150.72 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.72,151.66 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:151.66,155.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:156.9,158.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.17,160.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:160.92,168.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:170.2,170.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:173.55,175.56 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.56,176.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:176.23,178.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:179.3,179.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.2,181.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.49,184.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:185.2,185.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.85,192.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:192.22,194.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.2,196.53 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:196.53,198.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.2,199.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.31,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.2,203.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.36,204.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:204.34,206.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:208.2,208.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:212.37,214.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:214.32,216.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.2,217.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.32,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.2,221.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.29,223.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.2,225.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.29,227.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:228.2,228.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.34,232.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:232.22,234.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:235.2,235.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.37,239.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:239.22,241.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:242.2,242.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:247.76,249.80 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:249.80,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.2,253.71 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.71,255.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.2,258.41 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:258.41,260.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:261.2,268.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.86,273.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:273.24,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.2,276.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.34,278.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:279.2,287.12 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:290.95,292.76 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:292.76,294.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.2,297.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:297.21,299.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:300.2,302.36 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:302.36,304.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:305.2,307.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:307.39,309.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:311.2,315.26 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:315.26,321.22 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:321.22,324.4 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:325.3,327.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:327.102,329.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:330.3,337.40 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.40,339.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.3,342.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:342.19,344.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.3,346.33 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.2,350.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:350.15,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:353.2,368.13 13 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:368.13,371.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:372.2,373.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.62,378.39 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:378.39,380.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:381.2,383.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.16,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:386.2,387.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.35,391.41 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.41,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.2,394.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.48,399.27 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.27,401.39 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:401.39,404.45 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:404.45,406.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.4,407.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.46,409.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.4,410.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.46,412.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.4,413.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:416.2,416.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.63,421.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.13,423.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.2,424.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.23,426.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.2,429.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.28,430.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:430.42,432.9 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.3,434.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.38,435.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.2,438.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.17,440.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:442.2,444.38 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.38,446.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:446.32,447.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.13,450.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.13,452.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:452.18,454.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.5,455.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.31,457.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.2,462.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.15,464.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.2,465.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.65,470.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.24,477.71 7 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.71,479.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.21,481.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:482.9,484.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.2,488.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:488.16,490.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.2,491.115 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:495.43,499.39 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:499.39,501.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:502.2,504.34 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:504.34,506.63 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:506.63,508.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.2,511.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.42,513.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:514.2,514.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.37,518.16 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:518.16,520.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.2,522.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:522.32,524.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:525.2,525.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,233.32 6 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:233.32,235.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:236.2,237.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.24,239.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,246.30 5 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:246.30,248.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.2,250.40 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.40,252.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.20,254.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.4,257.54 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.54,259.21 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:259.21,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.4,263.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.40,267.5 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.8,269.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.23,271.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.2,272.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.55,279.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:279.12,281.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.2,282.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.6,286.20 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.20,288.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:289.3,290.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.17,292.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,295.10 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:296.21,298.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:299.18,299.18 0 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.60,309.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:309.19,311.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.2,313.6 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.6,317.23 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.23,321.11 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:322.22,324.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:325.19,327.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:331.3,333.14 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:338.177,344.33 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:344.33,346.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.2,347.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.18,349.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:350.2,350.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.101,356.57 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.57,357.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:357.78,359.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,361.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.19,363.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.2,364.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.19,366.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.56 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.56,368.57 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.57,370.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:372.2,372.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:76.110,77.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.14,81.3 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.2,84.18 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:87.118,88.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.14,91.16 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.16,94.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.35,96.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.36,99.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.4,102.59 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.59,104.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.4,105.21 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:108.2,111.19 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:114.51,115.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.23,117.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.13 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.13,120.100 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:120.100,122.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:124.3,124.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.2,126.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:129.32,131.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:134.44,135.50 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.50,137.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.2,138.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:143.20,144.40 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.40,146.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.3,148.8 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.12,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.2,153.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:156.52,157.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.38,159.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.2,161.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.27,162.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.34,163.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.36,166.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:168.3,168.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.2,170.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.64,180.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.22,183.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.12,185.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.3,188.74 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:188.74,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:193.3,194.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.12,196.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:197.3,198.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.48,200.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.3,203.18 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.18,205.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.3,208.29 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:210.2,210.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:216.41,220.31 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.31,222.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.29,225.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.2,226.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.31,228.32 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.32,230.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:232.2,232.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.83,239.102 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:239.102,241.36 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:241.36,243.136 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.136,245.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.4,248.34 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:248.34,250.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.2,254.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.65,255.53 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.53,257.37 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:257.37,259.137 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.137,261.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.5,264.35 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:264.35,266.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,270.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:274.80,275.22 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.22,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:278.2,280.40 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.40,282.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.2,283.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.34,284.31 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.31,285.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.3,288.16 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.16,289.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.3,291.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.32,293.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.2,295.19 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.36,300.2 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.39,305.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,310.66 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.66,312.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.2,314.54 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.54,316.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,317.51 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.51,319.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:320.2,322.69 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:322.69,325.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.43,332.13 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.13,334.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:335.2,336.11 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.11,338.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,340.14 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.14,342.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:343.2,344.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.56,350.89 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.89,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,353.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.52,358.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.32,360.28 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.28,362.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.34,365.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.42 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.42,368.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:369.3,369.49 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.2,374.27 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.27,376.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,377.36 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.36,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,383.49 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.49,385.24 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:385.24,387.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:390.2,391.25 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.25,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,394.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.33,396.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:397.2,398.19 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:402.67,404.35 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.35,406.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:407.2,408.31 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.31,410.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.2,411.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.69,415.32 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.32,417.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.2,418.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:421.45,423.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.22,427.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.12,429.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:430.3,432.32 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.32,434.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:435.3,436.46 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.46,438.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,442.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.12,444.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,446.49 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.49,448.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.3,450.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.2,452.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.67,458.28 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.28,460.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.12,461.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:463.3,465.12 3 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.12,466.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.3,468.43 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.43,470.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.3,472.34 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.34,474.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:476.3,477.48 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.48,479.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.3,481.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.25,483.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:485.3,486.50 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.50,488.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.3,490.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:492.2,492.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:86.90,89.20 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:89.20,91.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:92.2,94.23 3 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:94.23,96.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:97.2,98.22 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:98.22,100.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:101.2,102.27 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:102.27,104.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:105.2,111.38 6 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:111.38,114.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:114.8,116.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:117.2,120.35 4 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:120.35,122.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.2,123.35 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.35,125.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.2,127.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.46,129.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.8,131.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,132.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.47,134.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.8,136.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,137.46 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.46,139.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:139.8,141.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.2,142.33 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.33,144.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:144.8,146.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,149.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.24,151.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.2,152.25 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.25,154.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.2,155.24 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.24,157.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.2,158.29 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.29,160.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:162.2,164.47 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.47,164.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:166.47,166.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:175.2,175.10 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.30,179.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.6,181.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.20,183.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.3,184.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.17,186.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:187.3,188.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.52,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.3,192.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.23,194.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:196.3,197.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:197.15,199.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
@@ -6760,157 +6760,159 @@ 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:62.29,85.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:89.35,91.22 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:91.22,93.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:95.5,96.19 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:96.19,99.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:99.11,100.91 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:100.91,102.10 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.5,108.53 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:108.53,110.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:111.5,111.15 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:115.66,117.16 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:117.16,118.43 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:118.43,120.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:121.3,121.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:123.2,127.45 4 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:127.45,128.20 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:128.20,130.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:131.3,131.18 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:133.2,133.22 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:136.37,139.2 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:142.39,143.25 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:143.25,145.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,146.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:146.56,148.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.2,149.34 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:149.34,151.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.2,152.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:152.32,154.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.2,155.32 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:155.32,157.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.5,158.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:158.39,160.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.5,161.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:161.41,163.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.5,164.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:164.39,164.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.5,165.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.39,165.94 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.5,166.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:166.41,168.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.5,169.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:169.58,171.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.5,172.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:172.59,174.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.5,175.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:175.58,177.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.5,178.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:178.36,180.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.5,181.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:181.56,183.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:187.47,188.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:188.58,190.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.2,191.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:191.56,193.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.2,194.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:194.36,196.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.2,197.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:197.58,199.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.2,200.56 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:200.56,202.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.2,203.36 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:203.36,205.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.2,206.59 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:206.59,208.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.2,209.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:209.57,211.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.2,212.37 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:212.37,214.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:217.38,219.72 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:219.72,221.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:221.8,223.17 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:223.17,225.4 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:226.3,226.70 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:228.5,228.27 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:235.43,240.37 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:240.37,240.79 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.5,241.44 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:241.44,243.20 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:243.20,243.39 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:244.9,245.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.23,245.42 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.42,245.85 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:245.88,245.103 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:246.9,246.23 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.5,248.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:248.54,250.20 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:250.20,250.41 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:251.9,252.23 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:252.23,253.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:253.30,253.73 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:254.13,254.30 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:256.9,256.24 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.5,259.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:259.50,261.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.5,262.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:262.51,264.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.5,265.60 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:265.60,267.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.5,268.58 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:268.58,270.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.5,271.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:271.57,273.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.5,274.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:274.64,276.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.5,277.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:277.62,279.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.5,280.62 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:280.62,282.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.5,283.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:283.63,285.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.5,286.57 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:289.33,290.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:290.51,292.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:294.9,294.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.5,296.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:296.50,296.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.5,297.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:297.51,297.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.5,298.50 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:298.50,298.84 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.5,299.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:299.52,302.33 3 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:302.33,303.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:303.51,305.14 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:307.9,307.19 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.5,309.47 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:309.47,311.6 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.5,314.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,314.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.5,315.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:315.51,315.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:316.63,316.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.5,318.54 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:318.54,318.91 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.5,319.51 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:319.51,319.86 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.5,320.63 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:320.63,320.104 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.55 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:322.55,322.93 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.5,323.52 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:323.52,323.88 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.5,324.64 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:324.64,324.106 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.5,326.13 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:326.13,328.6 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:329.5,329.16 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/appconfig/config.go:63.29,86.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:90.35,92.19 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:92.19,94.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:96.2,97.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:97.16,100.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:100.8,101.85 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:101.85,103.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.2,109.50 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.50,111.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:112.2,112.12 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:116.66,118.16 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:118.16,119.43 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:119.43,121.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:122.3,122.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:124.2,128.45 4 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:128.45,129.20 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:129.20,131.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:132.3,132.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.2,134.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:134.19,136.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:137.2,137.22 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:140.37,143.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:146.39,147.25 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:147.25,149.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.2,150.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:150.56,152.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.2,153.34 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:153.34,155.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.2,156.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:156.32,158.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.32 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:159.32,161.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:162.36,164.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.2,165.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.38,167.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.2,168.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:168.36,170.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.2,171.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:171.36,173.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.2,174.38 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.38,176.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.2,177.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:177.55,179.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,180.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.56,182.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.2,183.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:183.55,185.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.2,186.33 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:186.33,188.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.2,189.53 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:189.53,191.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:195.47,196.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:196.58,198.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.2,199.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:199.56,201.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.2,202.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:202.36,204.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.2,205.58 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:205.58,207.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.2,208.56 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:208.56,210.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.2,211.36 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:211.36,213.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.2,214.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:214.59,216.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.2,217.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:217.57,219.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.2,220.37 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:220.37,222.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:225.38,227.72 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:227.72,229.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:229.8,231.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:231.17,233.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:234.3,234.70 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:236.2,236.24 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:243.43,248.34 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:248.34,248.76 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.2,249.41 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:249.41,251.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:251.14,253.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:254.3,255.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:255.17,256.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:256.21,258.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:259.4,259.19 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:261.3,261.17 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.2,263.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:263.51,265.14 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:265.14,267.4 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:268.3,269.17 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:269.17,270.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:270.21,272.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:273.4,273.21 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:275.3,275.18 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.2,278.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:278.47,281.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.2,282.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:282.48,285.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.2,286.57 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:286.57,289.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.2,290.55 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:290.55,293.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.2,294.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:294.54,297.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.2,298.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:298.61,301.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.2,302.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:302.59,305.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.2,306.59 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:306.59,309.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.2,310.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:310.60,313.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.2,314.54 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:314.54,317.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:317.27,318.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:318.42,320.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:322.3,322.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.2,324.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:324.47,327.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.2,328.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:328.48,331.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.2,332.47 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:332.47,335.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.2,336.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:336.49,339.27 3 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:339.27,340.42 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:340.42,342.5 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:344.3,344.13 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.2,346.44 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:346.44,349.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.2,352.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:352.51,355.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.2,356.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:356.48,359.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.2,360.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:360.60,363.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.2,365.51 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:365.51,368.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.2,369.48 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:369.48,372.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.2,373.60 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:373.60,376.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.2,378.52 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:378.52,381.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.2,382.49 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:382.49,385.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.2,386.61 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:386.61,389.3 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.2,391.10 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:391.10,393.3 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:394.2,394.13 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.16 4 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.16,30.3 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.2,32.64 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.124,39.16 2 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.16,42.3 2 0
@@ -6924,11 +6926,11 @@ codeberg.org/snonux/hexai/internal/hexaicli/run.go:61.40,62.59 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:63.23,64.24 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:65.21,66.22 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:67.10,68.91 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.39 3 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.39,90.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.5,93.39 2 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.39,95.6 1 0
-codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.5,96.51 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:73.65,88.36 3 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:88.36,90.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:92.2,93.36 2 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:93.36,95.3 1 0
+codeberg.org/snonux/hexai/internal/hexaicli/run.go:96.2,96.48 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:100.48,103.40 3 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.40,105.3 1 0
codeberg.org/snonux/hexai/internal/hexaicli/run.go:106.2,109.3 1 0
@@ -6954,10 +6956,10 @@ 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.39 3 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.39,84.6 1 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.5,87.39 2 0
-codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.39,89.6 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
@@ -7005,73 +7007,73 @@ 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.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:166.19,166.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.5,167.31 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:167.31,167.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:168.5,168.32 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:171.70,172.53 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:172.53,174.3 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:175.2,177.74 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:177.74,180.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:181.2,182.69 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:185.91,187.64 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:187.64,190.3 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:191.2,191.17 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:200.66,202.85 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:202.85,204.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.5,205.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:205.42,207.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:208.5,209.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:209.19,209.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:210.5,214.19 5 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:214.19,214.33 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:215.5,216.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:216.56,218.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:219.5,220.67 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:220.67,220.81 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.5,221.43 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:221.43,221.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:223.5,224.21 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:224.21,224.63 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:225.5,227.15 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:232.42,234.23 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:234.23,234.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:235.5,236.19 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:236.19,237.65 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:237.65,238.57 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:238.57,238.83 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:240.9,240.27 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:242.5,244.25 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:244.25,244.47 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:245.5,245.37 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:248.42,248.100 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:252.57,268.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:270.58,286.2 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:288.28,291.22 3 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:291.22,293.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:294.5,294.21 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:300.153,301.42 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:301.42,301.95 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.5,302.48 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:302.48,302.67 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.5,303.15 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:303.15,303.24 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:304.5,326.19 6 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:326.19,326.38 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:327.5,328.56 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:328.56,330.6 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:332.5,335.30 4 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:335.30,336.45 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:336.45,336.55 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:337.9,338.94 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:338.94,338.104 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.9,339.40 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:339.40,339.72 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:341.5,342.28 2 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:342.28,343.66 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:343.66,343.90 1 0
-codeberg.org/snonux/hexai/internal/llm/copilot.go:345.5,345.20 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
@@ -7231,75 +7233,75 @@ 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 18
+codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 19
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.16 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:87.16,89.6 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:90.5,90.14 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:91.19,92.50 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:92.50,94.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.9,96.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:96.41,99.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:100.9,100.103 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:101.19,102.41 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:102.41,105.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:106.9,106.89 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:107.20,108.51 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:108.51,110.10 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.9,111.42 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:111.42,114.10 2 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:115.9,115.108 1 0
-codeberg.org/snonux/hexai/internal/llm/provider.go:116.13,117.61 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/logging/chatlogger.go:9.48,11.2 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:17.4,19.12 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:19.12,21.3 1 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:22.2,24.29 2 0
-codeberg.org/snonux/hexai/internal/logging/chatlogger.go:24.29,27.3 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 1
-codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 32
+codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 36
codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 4
-codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 28
+codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 32
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 1
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 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:15.96,17.14 2 5
-codeberg.org/snonux/hexai/internal/lsp/context.go:18.17,19.19 1 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:20.16,21.41 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:22.26,23.14 1 2
-codeberg.org/snonux/hexai/internal/lsp/context.go:23.14,25.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:26.3,26.19 1 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:27.21,28.38 1 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:29.10,31.19 1 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:35.65,37.35 2 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:37.35,40.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:41.2,44.15 4 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:44.15,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:47.2,48.13 2 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:48.13,50.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:51.2,52.57 2 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:55.53,57.14 2 2
-codeberg.org/snonux/hexai/internal/lsp/context.go:57.14,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:61.2,61.59 1 2
-codeberg.org/snonux/hexai/internal/lsp/context.go:66.64,67.20 1 4
-codeberg.org/snonux/hexai/internal/lsp/context.go:67.20,69.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:70.2,71.27 2 4
-codeberg.org/snonux/hexai/internal/lsp/context.go:71.27,73.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/context.go:75.2,76.21 2 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:76.21,78.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.2,79.53 1 1
-codeberg.org/snonux/hexai/internal/lsp/context.go:79.53,81.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/context.go:82.2,82.19 1 1
-codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 25
+codeberg.org/snonux/hexai/internal/lsp/context.go:16.96,18.14 2 5
+codeberg.org/snonux/hexai/internal/lsp/context.go:19.17,20.19 1 1
+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 2
+codeberg.org/snonux/hexai/internal/lsp/context.go:24.14,26.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/context.go:27.3,27.19 1 1
+codeberg.org/snonux/hexai/internal/lsp/context.go:28.21,29.38 1 1
+codeberg.org/snonux/hexai/internal/lsp/context.go:30.10,32.19 1 1
+codeberg.org/snonux/hexai/internal/lsp/context.go:36.65,38.35 2 1
+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 1
+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 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/context.go:56.53,58.14 2 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/context.go:67.64,68.20 1 4
+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 4
+codeberg.org/snonux/hexai/internal/lsp/context.go:72.27,74.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/context.go:76.2,77.21 2 1
+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 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/document.go:15.48,19.2 3 27
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 40
-codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 62
+codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 46
+codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 66
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
@@ -7313,7 +7315,7 @@ codeberg.org/snonux/hexai/internal/lsp/document.go:61.26,63.3 1 4
codeberg.org/snonux/hexai/internal/lsp/document.go:64.2,64.28 1 4
codeberg.org/snonux/hexai/internal/lsp/document.go:64.28,66.85 2 6
codeberg.org/snonux/hexai/internal/lsp/document.go:66.85,68.9 2 4
-codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.8 1 4
+codeberg.org/snonux/hexai/internal/lsp/document.go:71.2,71.39 1 4
codeberg.org/snonux/hexai/internal/lsp/document.go:78.71,80.35 2 3
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 3
@@ -7338,11 +7340,11 @@ 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 38
+codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 39
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 37
-codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 20
-codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 38
+codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 21
+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 16
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
@@ -7352,8 +7354,8 @@ 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.53 3 22
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:54.53,56.3 1 6
+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
@@ -7373,26 +7375,26 @@ 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:117.72,120.2 2 11
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 12
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 13
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 12
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:197.2,199.24 3 13
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 12
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 12
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 12
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 13
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 13
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 13
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 12
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 13
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 12
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 13
codeberg.org/snonux/hexai/internal/lsp/handlers.go:234.64,238.9 4 10
codeberg.org/snonux/hexai/internal/lsp/handlers.go:238.9,240.3 1 9
codeberg.org/snonux/hexai/internal/lsp/handlers.go:242.2,243.16 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 9
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 9
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:246.56,249.24 3 10
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 10
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 9
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 10
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 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:272.37,273.15 1 1
@@ -7400,701 +7402,699 @@ codeberg.org/snonux/hexai/internal/lsp/handlers.go:273.15,275.9 2 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.2,278.14 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:278.14,280.3 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:281.2,281.50 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 21
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:288.74,290.22 1 25
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:290.22,295.49 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:295.49,297.4 1 10
codeberg.org/snonux/hexai/internal/lsp/handlers.go:297.9,300.4 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.9,303.126 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.126,305.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.9,307.33 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.33,309.10 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.3,303.115 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:303.115,305.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.3,307.27 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:307.27,309.4 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.3,311.27 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:311.27,312.34 1 3
codeberg.org/snonux/hexai/internal/lsp/handlers.go:312.34,313.38 1 2
codeberg.org/snonux/hexai/internal/lsp/handlers.go:313.38,314.35 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:314.35,316.7 1 1
codeberg.org/snonux/hexai/internal/lsp/handlers.go:318.5,318.17 1 1
-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 13
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:321.4,321.16 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:326.2,327.36 2 15
codeberg.org/snonux/hexai/internal/lsp/handlers.go:327.36,329.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.5,331.122 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.122,333.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 12
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 34
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 10
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.2,331.114 1 15
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:331.114,333.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:334.2,335.35 2 14
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:335.35,336.14 1 36
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:336.14,338.4 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:340.2,340.14 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:343.137,348.24 5 11
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 11
codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:16.48,18.55 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:18.55,19.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:19.23,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:22.3,22.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:24.2,25.57 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:25.57,26.23 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.23,28.4 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:29.3,29.9 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:31.5,34.56 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:34.56,36.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.5,37.60 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:37.60,39.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.5,40.57 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:40.57,42.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.5,43.54 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:43.54,45.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.5,46.25 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:46.25,48.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:51.85,52.85 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,63.3 4 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:64.2,64.12 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:67.89,69.21 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:69.21,71.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:72.2,81.12 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:84.70,85.45 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.45,87.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:88.2,96.58 2 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:96.58,98.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:99.5,99.25 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.20,107.72 7 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:107.72,108.66 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.66,112.5 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:113.9,115.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:116.24,120.43 4 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.43,121.24 1 4
-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 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.3,133.72 7 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.72,134.66 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.66,138.5 3 4
-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.21,149.78 7 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.78,150.75 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.75,154.14 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.15,157.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.20,159.98 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.98,167.10 4 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.5,169.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 2
-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 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: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.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: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.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.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.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:246.76,248.83 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.83,250.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.5,252.74 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.74,254.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.5,257.44 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.44,259.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.5,267.15 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.27 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.27,274.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.5,275.37 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.37,277.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.5,286.15 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.79 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.79,293.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.5,296.24 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.24,298.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.5,301.39 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.39,303.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.5,306.42 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.42,308.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.5,314.29 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.29,320.28 4 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.28,323.10 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.9,326.108 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.108,328.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.9,336.46 6 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.46,336.62 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.9,339.25 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.25,339.59 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.9,341.39 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.5,345.18 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.18,345.61 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:346.5,361.16 13 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:361.16,364.6 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:365.5,366.35 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:370.62,371.42 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.42,373.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:374.5,376.19 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.19,378.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:379.5,380.32 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.35,384.44 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:384.44,386.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:387.5,387.17 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.48,392.30 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:392.30,394.45 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.45,397.54 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.54,397.73 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.13,398.55 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.55,398.74 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.13,399.55 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.55,399.93 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.13,400.24 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.5,403.14 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.63,408.16 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:408.16,408.27 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.5,409.26 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.26,409.48 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:411.5,412.31 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.31,413.48 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.48,415.18 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.9,417.44 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:417.44,418.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.5,421.20 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.20,421.37 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.5,425.41 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:425.41,427.38 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.38,428.26 1 47
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.22,431.32 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:432.22,433.30 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.30,433.41 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.17,434.43 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.43,436.18 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.5,441.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.18,443.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.5,444.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.65,449.27 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:449.27,456.77 7 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:456.77,458.30 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:458.30,458.48 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:459.15,461.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.5,465.19 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.19,465.40 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:466.5,466.118 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.43,474.42 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:474.42,474.55 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:475.5,477.37 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.37,479.69 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.69,481.10 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.5,484.45 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:484.45,486.6 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.5,487.14 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.37,491.19 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.19,491.34 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:492.5,493.35 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:493.35,495.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:496.5,496.21 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:14.48,17.55 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:17.55,24.19 5 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:24.19,26.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.3,27.25 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:27.25,31.10 4 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:31.10,34.5 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:37.2,38.73 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:43.67,44.22 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:44.22,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:47.2,51.48 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:51.48,53.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:53.8,56.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:57.2,57.46 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:62.99,65.2 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:67.98,70.2 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:72.160,77.52 4 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:77.52,80.3 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.2,81.51 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:81.51,83.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:85.2,90.86 4 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:90.86,95.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.5,96.73 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:96.73,99.6 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.2,101.83 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:101.83,104.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.5,107.129 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:107.129,109.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:112.2,115.29 3 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:115.29,117.3 1 14
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:118.2,120.32 3 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:120.32,122.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:124.5,125.32 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:125.32,127.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:128.5,131.16 3 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:131.16,135.3 3 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:136.2,140.19 4 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:140.19,142.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:143.2,144.75 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:148.38,149.16 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.16,151.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:152.2,155.42 2 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:155.42,157.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:157.8,160.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:161.2,161.27 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:165.91,167.27 2 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:167.27,167.43 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.5,168.43 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.43,169.41 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:169.41,169.57 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:170.9,171.43 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.43,172.27 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:172.27,175.14 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:178.5,178.17 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:182.119,186.24 2 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:186.24,188.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:189.2,190.13 2 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:190.13,192.68 2 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:192.68,194.4 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.2,196.19 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:196.19,198.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:200.2,201.12 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.12,203.28 2 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:203.28,205.12 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:207.3,207.8 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:209.2,211.50 3 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:211.50,213.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,214.23 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:218.193,220.9 2 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:220.9,222.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:223.2,228.32 6 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.32,230.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:231.2,232.24 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:232.24,234.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:235.2,241.33 5 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.33,243.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.5,245.40 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:245.40,247.20 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:247.20,249.21 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.21,251.5 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.4,252.59 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.59,254.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.4,258.40 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.40,262.5 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.8,264.23 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:264.23,266.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.2,267.19 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.55,274.15 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:274.15,276.6 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.5,277.9 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.9,281.26 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.26,283.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:284.9,285.23 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:285.23,287.10 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:288.9,290.16 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:291.27,293.19 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.24,294.24 0 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:302.60,304.22 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:304.22,306.6 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.5,308.9 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:308.9,312.29 4 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.29,316.20 4 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.31,319.29 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:320.28,322.25 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.9,328.20 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:333.177,339.33 3 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:339.33,341.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.2,342.18 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.18,344.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:345.2,345.17 1 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:349.101,351.57 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:351.57,352.78 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:352.78,354.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.2,356.19 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.19,358.3 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.2,359.19 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:359.19,361.3 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.2,362.61 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:362.61,363.57 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.57,365.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.16 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:18.45,20.55 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:20.55,23.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:26.47,28.55 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:28.55,29.32 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.32,31.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.3,34.44 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:38.46,40.55 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:40.55,43.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:49.76,51.14 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:51.14,53.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:55.2,56.14 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:56.14,58.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.2,59.26 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:59.26,61.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.2,63.13 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:63.13,65.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.2,66.30 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:66.30,68.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:70.2,71.28 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:71.28,74.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:75.2,80.43 5 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.43,83.3 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:84.2,84.27 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:92.50,93.24 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.24,95.3 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.2,97.35 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.35,99.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.5,100.33 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.33,103.14 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.14,104.39 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.39,106.13 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.4,108.9 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.9,110.18 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:110.18,111.21 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.9,114.31 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.31,115.21 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.9,118.43 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.43,119.21 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.9,122.18 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.18,122.28 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:123.9,125.44 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.44,126.28 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.28,126.53 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.9,128.23 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.23,128.33 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.3,131.63 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.63,133.4 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.3,134.80 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.80,135.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:138.9,141.19 4 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.19,142.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,146.38 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:146.38,156.18 9 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.18,159.5 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.4,161.17 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:161.17,163.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:164.4,164.61 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.3,167.8 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:173.110,175.14 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:175.14,177.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:179.2,190.54 8 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.96,197.14 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:197.14,199.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:200.2,203.31 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:203.31,204.53 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:204.53,206.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.3,207.12 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:207.12,208.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.3,210.61 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:210.61,211.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.3,214.14 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.14,216.36 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.36,219.13 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:221.4,221.9 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.53 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.53,225.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.12 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.12,227.9 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,232.6 4 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.2,235.26 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:235.26,236.35 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.35,238.4 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.35 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.35,241.4 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.2,244.13 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:248.45,250.20 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.20,252.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.5,254.53 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.53,256.46 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.46,257.27 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:257.27,259.14 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.5,263.35 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.35,265.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.5,268.17 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.24,270.54 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:271.13,272.18 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.68,284.2 6 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:287.46,294.2 6 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:297.61,312.2 9 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.59,317.15 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:317.15,320.6 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.58 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.58,13.6 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.5,14.22 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.31,16.34 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.34,20.67 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.67,22.14 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.13,23.26 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.26,25.14 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.9,28.15 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:29.13,32.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:10.48,12.24 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:12.24,14.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:15.2,26.27 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:29.38,31.2 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:33.46,35.2 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_init.go:37.31,40.2 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:18.55,20.32 2 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:20.32,22.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:23.2,23.13 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:27.41,32.2 4 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:34.41,39.2 4 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:41.32,44.23 3 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:44.23,46.3 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:47.2,48.24 2 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:48.24,50.3 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:51.2,54.15 4 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:54.15,56.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:57.2,60.211 4 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:64.51,65.41 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:65.41,67.3 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.2,70.71 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:73.110,74.14 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:74.14,78.3 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:79.2,81.18 3 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:84.118,85.14 1 15
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.14,88.16 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.16,91.35 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.35,93.5 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.4,94.36 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.36,96.5 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,99.59 3 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:99.59,101.5 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.4,102.21 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.2,108.19 4 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:111.51,112.23 1 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:112.23,114.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.2,115.13 1 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.13,117.100 2 37
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:117.100,119.12 2 20
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.3,121.8 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:123.2,123.11 1 21
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.32,128.2 1 24
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:131.44,132.56 1 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:132.56,134.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.5,135.43 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.40,140.20 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:140.20,141.40 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.12 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.3,145.8 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.2,147.12 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:147.12,149.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.17 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.52,154.38 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.38,156.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.2,158.27 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.27,159.34 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:159.34,160.12 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.3,162.36 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.36,163.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.25 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:167.2,167.34 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:175.67,177.25 2 46
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:177.25,180.18 2 58
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.18,182.10 1 27
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.9,185.80 2 31
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:185.80,187.21 2 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:190.9,191.18 2 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:191.18,193.10 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.9,195.54 2 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.54,197.21 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.9,200.24 2 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:200.24,202.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.9,205.35 2 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.5,207.27 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:213.46,217.34 3 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.34,219.6 1 16
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.5,220.37 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.37,222.6 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.5,223.34 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.34,225.38 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:225.38,227.10 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.5,229.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.83,236.102 2 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.102,238.36 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:238.36,240.136 2 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.136,242.5 1 20
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.4,245.34 3 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:245.34,247.5 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.2,251.65 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:251.65,252.53 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:252.53,254.37 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.37,256.137 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.137,258.6 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.5,261.35 3 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:261.35,263.6 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:267.2,267.19 1 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.80,272.22 1 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:272.22,274.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.2,277.40 3 17
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:277.40,279.3 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.2,280.34 1 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.34,281.31 1 94
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.31,282.12 1 75
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.3,285.16 2 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.16,286.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,288.32 1 19
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.32,290.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.2,292.19 1 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.36,297.2 1 94
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:300.39,302.13 2 30
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:302.13,304.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.2,307.66 3 30
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:307.66,309.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.2,311.54 2 30
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.54,313.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,314.51 1 30
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.51,316.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,319.69 3 30
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:319.69,322.3 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.2,323.10 1 22
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.43,329.13 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:329.13,331.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.2,333.11 2 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.11,335.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.14 2 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.14,339.3 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.19 2 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:345.56,347.89 2 16
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:347.89,349.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.2,350.14 1 13
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.52,355.32 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:355.32,357.28 2 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.28,359.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.3,360.34 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.34,362.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.42 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.42,365.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.49 1 2
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:368.2,371.27 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.27,373.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.2,374.36 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.36,376.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,380.49 3 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.49,382.24 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:382.24,384.4 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:387.2,388.25 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:388.25,390.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,391.33 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.33,393.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,395.19 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:399.67,401.35 2 11
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:401.35,403.3 1 10
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.2,405.31 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.31,407.3 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,408.14 1 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.69,412.40 1 7
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.40,414.6 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.5,415.50 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.50,420.25 2 49
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:420.25,424.18 3 50
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.18,426.10 1 32
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.9,429.38 3 18
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:429.38,431.10 1 6
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.9,433.52 2 12
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.52,435.21 2 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:438.9,439.18 2 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:439.18,441.10 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.9,443.55 2 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.55,445.21 2 1
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.9,447.20 1 8
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:449.5,449.17 1 3
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.67,455.31 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.31,457.18 2 9
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:457.18,458.18 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.9,462.18 3 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:462.18,463.18 1 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.9,465.49 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.49,467.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.9,469.40 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.40,471.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.9,474.54 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:474.54,476.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.9,478.31 1 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.31,480.21 2 0
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.9,483.56 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:483.56,485.10 1 4
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.9,487.28 2 5
-codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.5,489.17 1 5
-codeberg.org/snonux/hexai/internal/lsp/server.go:85.90,88.20 3 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:88.20,90.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:91.2,93.23 3 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:93.23,95.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:96.2,97.22 2 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:97.22,99.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:100.2,101.27 2 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:101.27,103.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:104.2,110.38 6 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:110.38,113.3 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:113.8,115.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:116.5,119.38 4 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:119.38,121.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.5,122.38 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:122.38,124.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.5,126.49 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.49,126.71 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:126.76,126.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.5,127.50 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.50,127.73 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:127.78,127.115 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.5,128.49 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.49,128.71 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:128.76,128.111 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.5,129.36 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.36,129.82 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:129.87,129.149 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.5,132.27 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:132.27,132.63 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.5,133.28 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:133.28,133.66 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.5,134.27 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:134.27,134.63 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.5,135.32 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:135.32,135.93 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,139.46 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:139.46,139.71 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:141.46,141.64 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:150.2,150.10 1 3
-codeberg.org/snonux/hexai/internal/lsp/server.go:153.30,154.6 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:154.6,156.20 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:156.20,158.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.3,159.17 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:159.17,161.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:162.3,163.52 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:163.52,165.12 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.3,167.23 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:167.23,169.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:171.3,172.15 2 0
-codeberg.org/snonux/hexai/internal/lsp/server.go:172.15,174.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:14.48,17.6 3 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:17.6,19.17 2 2
-codeberg.org/snonux/hexai/internal/lsp/transport.go:19.17,21.4 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.3,22.17 1 2
-codeberg.org/snonux/hexai/internal/lsp/transport.go:22.17,23.9 1 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:25.3,26.22 2 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:26.22,27.12 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:29.3,31.14 3 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:32.25,34.18 2 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:34.18,36.5 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:37.4,37.21 1 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.2,40.24 1 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:40.24,42.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:43.2,44.50 2 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:44.50,46.3 1 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:47.2,47.17 1 1
-codeberg.org/snonux/hexai/internal/lsp/transport.go:50.38,52.16 2 15
-codeberg.org/snonux/hexai/internal/lsp/transport.go:52.16,55.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:56.2,57.57 2 15
-codeberg.org/snonux/hexai/internal/lsp/transport.go:57.57,60.3 2 0
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.2,61.45 1 15
-codeberg.org/snonux/hexai/internal/lsp/transport.go:61.45,64.3 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:17.48,19.55 2 3
+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 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:26.57,27.23 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:27.23,29.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:30.3,30.9 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:32.2,35.53 3 1
+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 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:41.54,43.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.2,44.51 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:44.51,46.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.2,47.22 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:47.22,49.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:52.85,53.85 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:53.85,64.3 4 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:65.2,65.12 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:68.89,70.21 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:70.21,72.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:73.2,82.12 4 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:85.70,86.45 1 9
+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 9
+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 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.17,108.72 7 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 3
+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,121.43 4 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.43,122.24 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:122.24,124.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:124.10,126.5 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:128.3,134.72 7 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.72,135.66 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:135.66,139.5 3 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:140.9,142.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:143.18,150.72 7 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.72,151.66 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:151.66,155.5 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:156.9,158.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.17,160.92 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:160.92,168.4 4 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:170.2,170.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:173.55,175.56 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.56,176.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:176.23,178.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:179.3,179.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.2,181.49 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:181.49,184.3 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:185.2,185.26 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.85,192.22 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:192.22,194.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.2,196.53 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:196.53,198.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.2,199.31 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:199.31,201.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.2,203.36 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.36,204.34 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:204.34,206.4 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:208.2,208.12 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:212.37,214.32 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:214.32,216.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.2,217.32 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:217.32,219.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.2,221.29 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:221.29,223.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.2,225.29 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:225.29,227.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:228.2,228.13 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.34,232.22 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:232.22,234.3 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:235.2,235.34 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.37,239.22 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:239.22,241.3 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:242.2,242.34 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:247.76,249.80 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:249.80,251.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.2,253.71 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:253.71,255.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.2,258.41 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:258.41,260.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:261.2,268.12 4 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.86,273.24 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:273.24,275.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.2,276.34 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:276.34,278.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:279.2,287.12 4 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:290.95,292.76 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:292.76,294.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.2,297.21 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:297.21,299.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:300.2,302.36 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:302.36,304.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:305.2,307.39 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:307.39,309.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:311.2,315.26 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:315.26,321.22 4 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:321.22,324.4 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:325.3,327.102 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:327.102,329.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:330.3,337.40 6 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:337.40,339.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:340.3,342.19 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:342.19,344.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:345.3,346.33 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.2,350.15 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:350.15,352.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:353.2,368.13 13 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:368.13,371.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:372.2,373.32 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.62,378.39 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:378.39,380.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:381.2,383.16 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:383.16,385.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:386.2,387.29 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.35,391.41 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:391.41,393.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:394.2,394.14 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.48,399.27 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:399.27,401.39 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:401.39,404.45 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:404.45,406.5 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.4,407.46 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:407.46,409.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.4,410.46 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:410.46,412.5 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:413.4,413.15 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:416.2,416.11 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.63,421.13 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:421.13,423.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.2,424.23 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:424.23,426.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.2,429.28 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.28,430.42 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:430.42,432.9 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.3,434.38 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:434.38,435.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.2,438.17 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:438.17,440.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:442.2,444.38 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:444.38,446.32 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:446.32,447.17 1 47
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:448.13,450.20 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.13,452.18 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:452.18,454.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.5,455.31 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:455.31,457.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.2,462.15 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:462.15,464.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:465.2,465.18 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.65,470.24 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:470.24,477.71 7 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:477.71,479.21 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:479.21,481.5 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:482.9,484.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.2,488.16 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:488.16,490.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:491.2,491.115 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:495.43,499.39 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:499.39,501.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:502.2,504.34 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:504.34,506.63 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:506.63,508.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.2,511.42 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:511.42,513.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:514.2,514.11 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.37,518.16 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:518.16,520.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.2,522.32 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:522.32,524.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:525.2,525.18 1 1
+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
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.3,28.25 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:28.25,32.10 4 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:32.10,35.5 2 1
+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 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:52.48,54.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:54.8,57.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:58.2,58.46 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:63.99,66.2 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:68.98,71.2 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:73.160,78.52 4 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:78.52,81.3 2 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:82.2,82.51 1 10
+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 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:91.86,96.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.2,97.58 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:97.58,100.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:102.2,102.83 1 8
+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 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:108.126,110.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:113.2,116.29 3 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:116.29,118.3 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:119.2,121.32 3 7
+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 7
+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 7
+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 7
+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 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:149.38,150.16 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:150.16,152.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:153.2,156.42 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:156.42,158.3 1 6
+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 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:166.91,168.24 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:168.24,170.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.2,171.40 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:171.40,172.35 1 4
+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 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:176.37,177.18 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:177.18,180.5 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:183.2,183.14 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:187.119,191.24 2 13
+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 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:195.13,197.68 2 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:197.68,199.4 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.2,201.19 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:201.19,203.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:205.2,206.12 2 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:206.12,208.28 2 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:208.28,210.12 2 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:212.3,212.8 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:214.2,216.50 3 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 10
+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.2,233.32 6 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:233.32,235.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:236.2,237.24 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.24,239.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,246.30 5 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:246.30,248.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:249.2,250.40 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.40,252.20 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:252.20,254.21 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.21,256.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.4,257.54 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:257.54,259.21 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:259.21,261.6 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.4,263.40 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.40,267.5 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.8,269.23 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:269.23,271.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:272.2,272.19 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:277.55,279.12 2 12
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:279.12,281.3 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.2,282.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:282.6,286.20 4 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.20,288.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:289.3,290.17 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.17,292.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,295.10 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:296.21,298.10 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:299.18,299.18 0 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:307.60,309.19 2 12
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:309.19,311.3 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:312.2,313.6 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.6,317.23 4 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.23,321.11 4 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:322.22,324.17 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:325.19,327.13 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:331.3,333.14 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:338.177,344.33 3 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:344.33,346.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.2,347.18 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:347.18,349.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:350.2,350.17 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.101,356.57 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:356.57,357.78 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:357.78,359.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.2,361.19 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.19,363.3 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.2,364.19 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:364.19,366.3 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.2,367.56 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:367.56,368.57 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.57,370.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:372.2,372.16 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:31.55,32.32 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:32.32,34.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:35.3,37.44 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:41.46,43.55 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:43.55,46.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:52.76,54.14 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:54.14,56.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:58.2,59.14 2 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:62.26,64.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:65.2,66.13 2 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:69.30,71.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:73.2,74.28 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.24,98.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:99.2,100.35 2 3
+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 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 4
+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 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.12,114.12 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.3,117.25 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.25,118.12 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,121.37 1 2
+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 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 2
+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 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 2
+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 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 3
+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 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.31,214.53 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:214.53,216.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.3,217.12 1 2
+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 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.14,226.36 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.36,229.13 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:231.4,231.9 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,233.53 1 2
+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 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:244.2,245.26 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.26,246.35 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.35,248.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,249.35 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.35,251.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:253.2,254.13 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:258.45,260.17 2 8
+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 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.50,266.40 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.40,267.18 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:267.18,269.5 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.14 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:275.21,276.48 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.10,278.12 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:283.68,290.2 6 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:303.61,318.2 9 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:322.59,323.12 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:323.12,326.3 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:15.28,16.28 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:16.28,20.58 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:20.58,22.5 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.4,23.17 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:23.17,25.5 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:27.3,28.9 2 1
+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 2
+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 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:21.55,23.32 2 12
+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 12
+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 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:68.41,70.3 1 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:71.2,73.71 3 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.110,77.14 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.14,81.3 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:82.2,84.18 3 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:87.118,88.14 1 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.14,91.16 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:91.16,94.35 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:94.35,96.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.4,97.36 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:97.36,99.5 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:100.4,102.59 3 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:102.59,104.5 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:105.4,105.21 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:108.2,111.19 4 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:114.51,115.23 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.23,117.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.2,118.13 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:118.13,120.100 2 38
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:120.100,122.12 2 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:124.3,124.8 1 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:126.2,126.11 1 22
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:129.32,131.2 1 24
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:134.44,135.50 1 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.50,137.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:138.2,138.35 1 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:141.40,143.20 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:143.20,144.40 1 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.40,146.12 2 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:148.3,148.8 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.2,150.12 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:150.12,152.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:153.2,153.17 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:156.52,157.38 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.38,159.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:160.2,161.27 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.27,162.34 1 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.34,163.12 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.3,165.36 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:165.36,166.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:168.3,168.25 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:170.2,170.34 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:178.64,180.22 2 49
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:180.22,183.12 2 64
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:183.12,185.4 1 27
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:186.3,188.74 2 37
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:188.74,190.12 2 21
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:193.3,194.12 2 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.12,196.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:197.3,198.48 2 15
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.48,200.12 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:202.3,203.18 2 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.18,205.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:207.3,208.29 2 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:210.2,210.24 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:216.41,220.31 3 19
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:220.31,222.3 1 16
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.2,223.29 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:223.29,225.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.2,226.31 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:226.31,228.32 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:228.32,230.4 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:232.2,232.14 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:236.83,239.102 2 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:239.102,241.36 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:241.36,243.136 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:243.136,245.5 1 20
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:246.4,248.34 3 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:248.34,250.5 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.2,254.65 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:254.65,255.53 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.53,257.37 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:257.37,259.137 2 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:259.137,261.6 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:262.5,264.35 3 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:264.35,266.6 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:270.2,270.19 1 12
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:274.80,275.22 1 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.22,277.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:278.2,280.40 3 18
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:280.40,282.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.2,283.34 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:283.34,284.31 1 100
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.31,285.12 1 77
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:287.3,288.16 2 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.16,289.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.3,291.32 1 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:291.32,293.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:295.2,295.19 1 13
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:298.36,300.2 1 100
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:303.39,305.13 2 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:305.13,307.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:308.2,310.66 3 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:310.66,312.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:313.2,314.54 2 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.54,316.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.2,317.51 1 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:317.51,319.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:320.2,322.69 3 31
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:322.69,325.3 2 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:326.2,326.10 1 23
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:330.43,332.13 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:332.13,334.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:335.2,336.11 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.11,338.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:339.2,340.14 2 8
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.14,342.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:343.2,344.19 2 6
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:348.56,350.89 2 17
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:350.89,352.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:353.2,353.14 1 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:357.52,358.32 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.32,360.28 2 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:360.28,362.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.3,363.34 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:363.34,365.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.3,366.42 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:366.42,368.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:369.3,369.49 1 2
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:371.2,374.27 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:374.27,376.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.2,377.36 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:377.36,379.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:380.2,383.49 3 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:383.49,385.24 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:385.24,387.4 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:390.2,391.25 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.25,393.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.2,394.33 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:394.33,396.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:397.2,398.19 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:402.67,404.35 2 12
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:404.35,406.3 1 11
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:407.2,408.31 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.31,410.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:411.2,411.14 1 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:414.69,415.32 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.32,417.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:418.2,418.47 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:421.45,423.22 2 51
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:423.22,427.12 3 53
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:427.12,429.4 1 32
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:430.3,432.32 3 21
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:432.32,434.4 1 7
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:435.3,436.46 2 14
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.46,438.12 2 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:441.3,442.12 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.12,444.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:445.3,446.49 2 10
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.49,448.12 2 1
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:450.3,450.14 1 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:452.2,452.14 1 3
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:455.67,458.28 3 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:458.28,460.12 2 9
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:460.12,461.9 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:463.3,465.12 3 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:465.12,466.9 1 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.3,468.43 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:468.43,470.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.3,472.34 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:472.34,474.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:476.3,477.48 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.48,479.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.3,481.25 1 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:481.25,483.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:485.3,486.50 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.50,488.4 1 4
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:489.3,490.22 2 5
+codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:492.2,492.14 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:86.90,89.20 3 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:89.20,91.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:92.2,94.23 3 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:94.23,96.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:97.2,98.22 2 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:98.22,100.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:101.2,102.27 2 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:102.27,104.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:105.2,111.38 6 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:111.38,114.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:114.8,116.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:117.2,120.35 4 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:120.35,122.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.2,123.35 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:123.35,125.3 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.2,127.46 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:127.46,129.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/server.go:129.8,131.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,132.47 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:132.47,134.3 1 4
+codeberg.org/snonux/hexai/internal/lsp/server.go:134.8,136.3 1 1
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,137.46 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:137.46,139.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/server.go:139.8,141.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.2,142.33 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:142.33,144.3 1 3
+codeberg.org/snonux/hexai/internal/lsp/server.go:144.8,146.3 1 2
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.2,149.24 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:149.24,151.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.2,152.25 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:152.25,154.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.2,155.24 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:155.24,157.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.2,158.29 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:158.29,160.3 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:162.2,164.47 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:164.47,164.72 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:166.47,166.65 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:175.2,175.10 1 5
+codeberg.org/snonux/hexai/internal/lsp/server.go:178.30,179.6 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:179.6,181.20 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:181.20,183.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.3,184.17 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:184.17,186.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:187.3,188.52 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:188.52,190.12 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.3,192.23 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:192.23,194.12 1 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:196.3,197.15 2 0
+codeberg.org/snonux/hexai/internal/lsp/server.go:197.15,199.4 1 0
+codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 2
+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 2
+codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:33.25,35.18 2 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:41.2,41.24 1 1
+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 1
+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 1
+codeberg.org/snonux/hexai/internal/lsp/transport.go:51.38,53.16 2 17
+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 17
+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 17
+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 1
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
diff --git a/go.mod b/go.mod
index ee8349e..3c4098c 100644
--- a/go.mod
+++ b/go.mod
@@ -1,5 +1,9 @@
module codeberg.org/snonux/hexai
-go 1.21
+go 1.21.0
+
+toolchain go1.24.5
require github.com/magefile/mage v1.15.0
+
+require github.com/pelletier/go-toml/v2 v2.2.4
diff --git a/go.sum b/go.sum
index 4ee1b87..aa49f7b 100644
--- a/go.sum
+++ b/go.sum
@@ -1,2 +1,4 @@
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
+github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
+github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
diff --git a/internal/appconfig/config.go b/internal/appconfig/config.go
index 92fdf19..9404607 100644
--- a/internal/appconfig/config.go
+++ b/internal/appconfig/config.go
@@ -1,8 +1,7 @@
-// Summary: Application configuration model and loader; reads ~/.config/hexai/config.json and merges defaults.
+// Summary: Application configuration model and loader; reads ~/.config/hexai/config.toml and merges defaults.
package appconfig
import (
- "encoding/json"
"fmt"
"log"
"os"
@@ -10,58 +9,60 @@ import (
"slices"
"strconv"
"strings"
+
+ "github.com/pelletier/go-toml/v2"
)
-// App holds user-configurable settings read from ~/.config/hexai/config.json.
+// App holds user-configurable settings read from ~/.config/hexai/config.toml.
type App struct {
- MaxTokens int `json:"max_tokens"`
- ContextMode string `json:"context_mode"`
- ContextWindowLines int `json:"context_window_lines"`
- MaxContextTokens int `json:"max_context_tokens"`
- LogPreviewLimit int `json:"log_preview_limit"`
+ MaxTokens int `json:"max_tokens" toml:"max_tokens"`
+ ContextMode string `json:"context_mode" toml:"context_mode"`
+ ContextWindowLines int `json:"context_window_lines" toml:"context_window_lines"`
+ MaxContextTokens int `json:"max_context_tokens" toml:"max_context_tokens"`
+ LogPreviewLimit int `json:"log_preview_limit" toml:"log_preview_limit"`
// Single knob for LSP requests; if set, overrides hardcoded temps in LSP.
- CodingTemperature *float64 `json:"coding_temperature"`
+ CodingTemperature *float64 `json:"coding_temperature" toml:"coding_temperature"`
// Minimum identifier characters required for manual (TriggerKind=1) invoke
// to proceed without structural triggers. 0 means always allow.
- ManualInvokeMinPrefix int `json:"manual_invoke_min_prefix"`
+ ManualInvokeMinPrefix int `json:"manual_invoke_min_prefix" toml:"manual_invoke_min_prefix"`
// Completion debounce in milliseconds. When > 0, the server waits until
// there has been no text change for at least this duration before sending
// an LLM completion request.
- CompletionDebounceMs int `json:"completion_debounce_ms"`
+ CompletionDebounceMs int `json:"completion_debounce_ms" toml:"completion_debounce_ms"`
// Completion throttle in milliseconds. When > 0, caps the minimum spacing
// between LLM requests (both chat and code-completer paths).
- CompletionThrottleMs int `json:"completion_throttle_ms"`
+ CompletionThrottleMs int `json:"completion_throttle_ms" toml:"completion_throttle_ms"`
- TriggerCharacters []string `json:"trigger_characters"`
- Provider string `json:"provider"`
+ TriggerCharacters []string `json:"trigger_characters" toml:"trigger_characters"`
+ Provider string `json:"provider" toml:"provider"`
// Inline prompt trigger characters (default: >text> and >>text>)
- InlineOpen string `json:"inline_open"`
- InlineClose string `json:"inline_close"`
+ InlineOpen string `json:"inline_open" toml:"inline_open"`
+ InlineClose string `json:"inline_close" toml:"inline_close"`
// In-editor chat triggers (default: suffix ">" after one of [?, !, :, ;])
- ChatSuffix string `json:"chat_suffix"`
- ChatPrefixes []string `json:"chat_prefixes"`
+ ChatSuffix string `json:"chat_suffix" toml:"chat_suffix"`
+ ChatPrefixes []string `json:"chat_prefixes" toml:"chat_prefixes"`
// Provider-specific options
- OpenAIBaseURL string `json:"openai_base_url"`
- OpenAIModel string `json:"openai_model"`
+ OpenAIBaseURL string `json:"openai_base_url" toml:"openai_base_url"`
+ OpenAIModel string `json:"openai_model" toml:"openai_model"`
// Default temperature for OpenAI requests (nil means use provider default)
- OpenAITemperature *float64 `json:"openai_temperature"`
- OllamaBaseURL string `json:"ollama_base_url"`
- OllamaModel string `json:"ollama_model"`
+ OpenAITemperature *float64 `json:"openai_temperature" toml:"openai_temperature"`
+ OllamaBaseURL string `json:"ollama_base_url" toml:"ollama_base_url"`
+ OllamaModel string `json:"ollama_model" toml:"ollama_model"`
// Default temperature for Ollama requests (nil means use provider default)
- OllamaTemperature *float64 `json:"ollama_temperature"`
- CopilotBaseURL string `json:"copilot_base_url"`
- CopilotModel string `json:"copilot_model"`
+ 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"`
+ CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"`
}
// Constructor: defaults for App (kept first among functions)
func newDefaultConfig() App {
// Coding-friendly default temperature across providers
- // Users can override per provider in config.json (including 0.0).
+ // Users can override per provider in config.toml (including 0.0).
t := 0.2
return App{
MaxTokens: 4000,
@@ -116,20 +117,23 @@ func loadFromFile(path string, logger *log.Logger) (*App, error) {
f, err := os.Open(path)
if err != nil {
if !os.IsNotExist(err) && logger != nil {
- logger.Printf("cannot open config file %s: %v", path, err)
+ logger.Printf("cannot open TOML config file %s: %v", path, err)
}
return nil, err
}
defer f.Close()
- dec := json.NewDecoder(f)
+ dec := toml.NewDecoder(f)
var fileCfg App
if err := dec.Decode(&fileCfg); err != nil {
if logger != nil {
- logger.Printf("invalid config file %s: %v", path, err)
+ logger.Printf("invalid TOML config file %s: %v", path, err)
}
return nil, err
}
+ if logger != nil {
+ logger.Printf("loaded configuration from %s (TOML)", path)
+ }
return &fileCfg, nil
}
@@ -221,13 +225,13 @@ func (a *App) mergeProviderFields(other *App) {
func getConfigPath() (string, error) {
var configPath string
if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" {
- configPath = filepath.Join(xdgConfigHome, "hexai", "config.json")
+ configPath = filepath.Join(xdgConfigHome, "hexai", "config.toml")
} else {
home, err := os.UserHomeDir()
if err != nil {
return "", fmt.Errorf("cannot find user home directory: %v", err)
}
- configPath = filepath.Join(home, ".config", "hexai", "config.json")
+ configPath = filepath.Join(home, ".config", "hexai", "config.toml")
}
return configPath, nil
}
diff --git a/internal/appconfig/config_test.go b/internal/appconfig/config_test.go
index f2e3f7a..bdf86da 100644
--- a/internal/appconfig/config_test.go
+++ b/internal/appconfig/config_test.go
@@ -1,7 +1,6 @@
package appconfig
import (
- "encoding/json"
"io"
"log"
"os"
@@ -13,19 +12,13 @@ import (
func newLogger() *log.Logger { return log.New(io.Discard, "", 0) }
-func writeJSON(t *testing.T, path string, v any) {
+func writeFile(t *testing.T, path, content string) {
t.Helper()
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
t.Fatalf("mkdir: %v", err)
}
- f, err := os.Create(path)
- if err != nil {
- t.Fatalf("create: %v", err)
- }
- defer f.Close()
- enc := json.NewEncoder(f)
- if err := enc.Encode(v); err != nil {
- t.Fatalf("encode json: %v", err)
+ if err := os.WriteFile(path, []byte(content), 0o644); err != nil {
+ t.Fatalf("write: %v", err)
}
}
@@ -59,31 +52,30 @@ func TestLoad_Defaults_WithLogger_NoFile_NoEnv(t *testing.T) {
func TestLoad_FileMerge_And_EnvOverride(t *testing.T) {
dir := t.TempDir()
t.Setenv("XDG_CONFIG_HOME", dir)
- cfgPath := filepath.Join(dir, "hexai", "config.json")
- temp0 := 0.0
- fileCfg := App{
- MaxTokens: 123,
- ContextMode: "file-on-new-func",
- ContextWindowLines: 50,
- MaxContextTokens: 999,
- LogPreviewLimit: 0,
- CodingTemperature: &temp0,
- ManualInvokeMinPrefix: 2,
- CompletionDebounceMs: 150,
- CompletionThrottleMs: 300,
- TriggerCharacters: []string{".", ":"},
- Provider: "openai",
- OpenAIBaseURL: "https://api.example",
- OpenAIModel: "gpt-x",
- OpenAITemperature: &temp0,
- OllamaBaseURL: "http://ollama",
- OllamaModel: "llama",
- OllamaTemperature: &temp0,
- CopilotBaseURL: "http://copilot",
- CopilotModel: "ghost",
- CopilotTemperature: &temp0,
- }
- writeJSON(t, cfgPath, fileCfg)
+ cfgPath := filepath.Join(dir, "hexai", "config.toml")
+ // file configuration in TOML
+ writeFile(t, cfgPath, `
+max_tokens = 123
+context_mode = "file-on-new-func"
+context_window_lines = 50
+max_context_tokens = 999
+log_preview_limit = 0
+coding_temperature = 0.0
+manual_invoke_min_prefix = 2
+completion_debounce_ms = 150
+completion_throttle_ms = 300
+trigger_characters = [".", ":"]
+provider = "openai"
+openai_base_url = "https://api.example"
+openai_model = "gpt-x"
+openai_temperature = 0.0
+ollama_base_url = "http://ollama"
+ollama_model = "llama"
+ollama_temperature = 0.0
+copilot_base_url = "http://copilot"
+copilot_model = "ghost"
+copilot_temperature = 0.0
+`)
// Env overrides take precedence
withEnv(t, "HEXAI_MAX_TOKENS", "321")
@@ -163,23 +155,23 @@ func TestGetConfigPath_XDG(t *testing.T) {
if err != nil {
t.Fatalf("getConfigPath: %v", err)
}
- if !strings.HasPrefix(path, filepath.Join(dir, "hexai")) || !strings.HasSuffix(path, "config.json") {
+ if !strings.HasPrefix(path, filepath.Join(dir, "hexai")) || !strings.HasSuffix(path, "config.toml") {
t.Fatalf("unexpected path: %s", path)
}
}
-func TestLoadFromFile_InvalidJSON(t *testing.T) {
+func TestLoadFromFile_InvalidTOML(t *testing.T) {
dir := t.TempDir()
t.Setenv("XDG_CONFIG_HOME", dir)
- cfgPath := filepath.Join(dir, "hexai", "config.json")
+ cfgPath := filepath.Join(dir, "hexai", "config.toml")
if err := os.MkdirAll(filepath.Dir(cfgPath), 0o755); err != nil {
t.Fatal(err)
}
- if err := os.WriteFile(cfgPath, []byte("{ invalid"), 0o644); err != nil {
+ if err := os.WriteFile(cfgPath, []byte("invalid ="), 0o644); err != nil {
t.Fatal(err)
}
_, err := loadFromFile(cfgPath, newLogger())
if err == nil {
- t.Fatalf("expected error for invalid JSON")
+ t.Fatalf("expected error for invalid TOML")
}
}
diff --git a/internal/hexaicli/run_test.go b/internal/hexaicli/run_test.go
index 77daa8b..d192850 100644
--- a/internal/hexaicli/run_test.go
+++ b/internal/hexaicli/run_test.go
@@ -107,7 +107,7 @@ func TestRunWithClient_ErrorPrint(t *testing.T) {
func TestRun_OpenAI_NoKey_ShowsError(t *testing.T) {
dir := testingTempDir(t)
// write config with provider=openai
- writeJSON(t, filepath.Join(dir, "hexai", "config.json"), map[string]any{"provider": "openai", "openai_model": "gpt-x"})
+ writeTOML(t, filepath.Join(dir, "hexai", "config.toml"), map[string]string{"provider": "openai", "openai_model": "gpt-x"})
t.Setenv("XDG_CONFIG_HOME", dir)
// Ensure no OpenAI API key is present in environment
t.Setenv("HEXAI_OPENAI_API_KEY", "")
diff --git a/internal/hexaicli/testhelpers_test.go b/internal/hexaicli/testhelpers_test.go
index 512a3ba..93f1e3d 100644
--- a/internal/hexaicli/testhelpers_test.go
+++ b/internal/hexaicli/testhelpers_test.go
@@ -3,7 +3,6 @@ package hexaicli
import (
"context"
- "encoding/json"
"os"
"path/filepath"
"testing"
@@ -62,8 +61,8 @@ func (s *fakeStreamer) ChatStream(ctx context.Context, messages []llm.Message, o
return nil
}
-// small JSON writer for tests
-func writeJSON(t *testing.T, path string, v any) {
+// small TOML writer for tests (string values only)
+func writeTOML(t *testing.T, path string, m map[string]string) {
t.Helper()
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
t.Fatalf("mkdir: %v", err)
@@ -73,8 +72,10 @@ func writeJSON(t *testing.T, path string, v any) {
t.Fatalf("create: %v", err)
}
defer f.Close()
- if err := json.NewEncoder(f).Encode(v); err != nil {
- t.Fatalf("encode: %v", err)
+ for k, v := range m {
+ if _, err := f.WriteString(k + " = \"" + v + "\"\n"); err != nil {
+ t.Fatalf("write: %v", err)
+ }
}
}