diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-06 11:14:27 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-06 11:14:27 +0300 |
| commit | fb267966f7840df222338f57023273a993a73c9a (patch) | |
| tree | d10066412f08b386a6f9fe9289f27124c6ebe9d6 | |
| parent | 1bf4251a7edbd00902f22db77031d0f998569614 (diff) | |
use TOML not JSON for configuration
| -rw-r--r-- | AGENTS.md | 2 | ||||
| -rw-r--r-- | PROJECTSTATUS.md | 16 | ||||
| -rw-r--r-- | config.json.example | 30 | ||||
| -rw-r--r-- | config.toml.example | 34 | ||||
| -rw-r--r-- | docs/configuration.md | 75 | ||||
| -rw-r--r-- | docs/coverage.html | 2838 | ||||
| -rw-r--r-- | docs/coverage.out | 11632 | ||||
| -rw-r--r-- | go.mod | 6 | ||||
| -rw-r--r-- | go.sum | 2 | ||||
| -rw-r--r-- | internal/appconfig/config.go | 70 | ||||
| -rw-r--r-- | internal/appconfig/config_test.go | 72 | ||||
| -rw-r--r-- | internal/hexaicli/run_test.go | 2 | ||||
| -rw-r--r-- | internal/hexaicli/testhelpers_test.go | 11 |
13 files changed, 7486 insertions, 7304 deletions
@@ -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 > 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 > 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 > 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 > 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: >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 <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: &t, - OpenAITemperature: &t, - OllamaTemperature: &t, - CopilotTemperature: &t, - ManualInvokeMinPrefix: 0, - CompletionDebounceMs: 200, - CompletionThrottleMs: 0, - // Inline/chat trigger defaults - InlineOpen: ">", - InlineClose: ">", - ChatSuffix: ">", - ChatPrefixes: []string{"?", "!", ":", ";"}, - } + MaxTokens: 4000, + ContextMode: "always-full", + ContextWindowLines: 120, + MaxContextTokens: 4000, + LogPreviewLimit: 100, + CodingTemperature: &t, + OpenAITemperature: &t, + OllamaTemperature: &t, + CopilotTemperature: &t, + ManualInvokeMinPrefix: 0, + CompletionDebounceMs: 200, + CompletionThrottleMs: 0, + // Inline/chat trigger defaults + InlineOpen: ">", + InlineClose: ">", + ChatSuffix: ">", + 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 && 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 && 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) && 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(&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 &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 >= 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 >= 0 </span><span class="cov3" title="4">{ - a.ManualInvokeMinPrefix = other.ManualInvokeMinPrefix - }</span> - <span class="cov3" title="4">if other.CompletionDebounceMs > 0 </span><span class="cov3" title="3">{ a.CompletionDebounceMs = other.CompletionDebounceMs }</span> - <span class="cov3" title="4">if other.CompletionThrottleMs > 0 </span><span class="cov3" title="3">{ a.CompletionThrottleMs = other.CompletionThrottleMs }</span> - <span class="cov3" title="4">if len(other.TriggerCharacters) > 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) > 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 >= 0 </span><span class="cov3" title="4">{ + a.ManualInvokeMinPrefix = other.ManualInvokeMinPrefix + }</span> + <span class="cov3" title="4">if other.CompletionDebounceMs > 0 </span><span class="cov3" title="3">{ + a.CompletionDebounceMs = other.CompletionDebounceMs + }</span> + <span class="cov3" title="4">if other.CompletionThrottleMs > 0 </span><span class="cov3" title="3">{ + a.CompletionThrottleMs = other.CompletionThrottleMs + }</span> + <span class="cov3" title="4">if len(other.TriggerCharacters) > 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) > 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 &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 &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 &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 &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 >60s, reuse - if c.sessionToken != "" && 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 < 200 || resp.StatusCode >= 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(&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 >60s, reuse + if c.sessionToken != "" && 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 < 200 || resp.StatusCode >= 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(&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) < 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) < 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, &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, &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, &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 <= 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 < 200 || resp.StatusCode >= 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: ")), &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 < n; i++ </span><span class="cov2" title="4">{ - if s, ok := byIndex[i]; ok && 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 <= 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 < 200 || resp.StatusCode >= 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: ")), &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 < n; i++ </span><span class="cov2" title="4">{ + if s, ok := byIndex[i]; ok && 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 = &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 = &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 = &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 = &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 = &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 = &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) <= 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] = &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 < 0 </span><span class="cov0" title="0">{ idx = 0 }</span> - <span class="cov4" title="4">if idx >= len(d.lines) </span><span class="cov0" title="0">{ + <span class="cov3" title="4">if idx >= 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 >= 0 </span><span class="cov4" title="4">{ + <span class="cov3" title="4">current = d.lines[idx] + if idx-1 >= 0 </span><span class="cov3" title="4">{ above = d.lines[idx-1] }</span> - <span class="cov4" title="4">if idx+1 < len(d.lines) </span><span class="cov4" title="4">{ + <span class="cov3" title="4">if idx+1 < len(d.lines) </span><span class="cov3" title="4">{ below = d.lines[idx+1] }</span> - <span class="cov4" title="4">for i := idx; i >= 0; i-- </span><span class="cov4" title="6">{ + <span class="cov3" title="4">for i := idx; i >= 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 <= idx; i++ </span><span class="cov4" title="4">{ + <span class="cov3" title="3">for i := sigStart; i <= idx; i++ </span><span class="cov3" title="4">{ line := d.lines[i] brace := strings.Index(line, "{") if brace >= 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) > 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 >= 0 </span><span class="cov4" title="4">{ + if idx := strings.IndexByte(s, '\n'); idx >= 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 >= 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 >= 0 && (best.start < 0 || c.start < 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 > 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 < 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) > 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, &ctx) }</span> else<span class="cov1" title="1"> { b, _ := json.Marshal(p.Context) _ = json.Unmarshal(b, &ctx) }</span> - // If configured and the line contains a bare double-open marker (e.g., '>>' with no '>>text>'), - // do not treat as a trigger source. - <span class="cov6" title="8">if s.inlineOpen != "" && strings.Contains(current, s.inlineOpen+s.inlineOpen) && !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., '>>' with no '>>text>'), + // do not treat as a trigger source. + <span class="cov7" title="11">if s.inlineOpen != "" && strings.Contains(current, s.inlineOpen+s.inlineOpen) && !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 <= 0 || idx > 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 != "" && strings.Contains(current, s.inlineOpen+s.inlineOpen) && !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 != "" && strings.Contains(current, s.inlineOpen+s.inlineOpen) && !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, &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 = &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 = &edit - // After edit is applied, ask client to jump to new test function - ca.Command = &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 = &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 = &edit + // After edit is applied, ask client to jump to new test function + ca.Command = &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 &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 &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 &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 &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 < 0 || fnEnd < 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) > 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 < 0 || fnEnd < 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) > 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) > 0 && !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 > 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 > 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) > 0 && !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 > 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 > 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 >= 0 </span><span class="cov1" title="1">{ name = name[:i] }</span> - <span class="cov3" title="3">if i := strings.Index(name, "\t"); i >= 0 </span><span class="cov0" title="0">{ name = name[:i] }</span> - <span class="cov3" title="3">if i := strings.Index(name, "//"); i >= 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 >= 0 </span><span class="cov1" title="1">{ + name = name[:i] + }</span> + <span class="cov3" title="3">if i := strings.Index(name, "\t"); i >= 0 </span><span class="cov0" title="0">{ + name = name[:i] + }</span> + <span class="cov3" title="3">if i := strings.Index(name, "//"); i >= 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 < 0 </span><span class="cov0" title="0">{ idx = 0 }</span> - <span class="cov2" title="2">if idx >= 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 >= 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 < 0 </span><span class="cov0" title="0">{ + idx = 0 + }</span> + <span class="cov2" title="2">if idx >= 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 >= 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 < len(lines); i++ </span><span class="cov2" title="2">{ - ln := lines[i] - for j := 0; j < 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 > 0 </span><span class="cov2" title="2">{ depth-- }</span> - <span class="cov2" title="2">if seenOpen && 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 < len(lines); i++ </span><span class="cov2" title="2">{ + ln := lines[i] + for j := 0; j < 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 > 0 </span><span class="cov2" title="2">{ + depth-- + }</span> + <span class="cov2" title="2">if seenOpen && 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 >= 0 && i+1 < 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 > 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 >= 0 && i+1 < 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 > 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] >= 'a' && r[0] <= '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] >= 'a' && r[0] <= '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 && !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 && !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 ">" 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) < 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) < 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 && len(suggestions) > 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 && len(suggestions) > 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 != "" && hasDoubleSemicolonTrigger(current) </span><span class="cov0" title="0">{ + <span class="cov4" title="3">if cleaned != "" && 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 <= 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 >= d </span><span class="cov1" title="1">{ - return - }</span> - <span class="cov1" title="1">rem := d - since - timer := time.NewTimer(rem) - select </span>{ - case <-ctx.Done():<span class="cov0" title="0"> - timer.Stop() - return</span> - case <-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 <= 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 >= d </span><span class="cov3" title="2">{ + return + }</span> + <span class="cov3" title="2">rem := d - since + timer := time.NewTimer(rem) + select </span>{ + case <-ctx.Done():<span class="cov0" title="0"> + timer.Stop() + return</span> + case <-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 <= 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 <-ctx.Done():<span class="cov0" title="0"> - timer.Stop() - return false</span> - case <-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 <= 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 <-ctx.Done():<span class="cov0" title="0"> + timer.Stop() + return false</span> + case <-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 != "" && hasDoubleSemicolonTrigger(currentLine) </span><span class="cov1" title="1">{ + <span class="cov8" title="10">if cleaned != "" && 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 = '>' -var chatPrefixSingles = []string{"?", "!", ":", ";"} +var ( + chatSuffixChar byte = '>' + 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 < 0 </span><span class="cov0" title="0">{ line = 0 }</span> - <span class="cov1" title="1">if line >= len(d.lines) </span><span class="cov0" title="0">{ + <span class="cov3" title="2">if line >= 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 < 0 </span><span class="cov0" title="0">{ col = 0 }</span> - <span class="cov1" title="1">if col > len(d.lines[line]) </span><span class="cov0" title="0">{ + <span class="cov3" title="2">if col > 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 < line; i++ </span><span class="cov1" title="1">{ + <span class="cov3" title="2">var b strings.Builder + for i := 0; i < 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., "?>" ",>" ":>" ";>") 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 >= 0 </span><span class="cov5" title="3">{ + for j >= 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 < 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 < 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 < 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 < 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 '>' we skip. - <span class="cov1" title="1">k := i + 1 - for k < len(d.lines) && strings.TrimSpace(d.lines[k]) == "" </span><span class="cov3" title="2">{ + <span class="cov3" title="2">k := i + 1 + for k < len(d.lines) && strings.TrimSpace(d.lines[k]) == "" </span><span class="cov6" title="4">{ k++ }</span> - <span class="cov1" title="1">if k < len(d.lines) && strings.HasPrefix(strings.TrimSpace(d.lines[k]), ">") </span><span class="cov0" title="0">{ + <span class="cov3" title="2">if k < len(d.lines) && strings.HasPrefix(strings.TrimSpace(d.lines[k]), ">") </span><span class="cov0" title="0">{ continue</span> } // Derive prompt by removing only the trailing '>' - <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, "> "+out)</span> + <span class="cov3" title="2">s.applyChatEdits(uri, lineIdx, lastIdx, remove, "> "+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 >= 0 && len(pairs) < 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) >= 2 && 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) >= 2 && 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, &sel) - }</span>() + go func() </span><span class="cov1" title="1">{ + time.Sleep(120 * time.Millisecond) + s.clientShowDocument(uri, &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, &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) >= 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, &r) - }</span> - <span class="cov8" title="1">if uri != "" </span><span class="cov8" title="1">{ - s.clientShowDocument(uri, &r) - }</span> + var p ExecuteCommandParams + if err := json.Unmarshal(req.Params, &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) >= 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, &r) + }</span> + <span class="cov8" title="1">if uri != "" </span><span class="cov8" title="1">{ + s.clientShowDocument(uri, &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 '>') used by free helpers below. // NewServer assigns these based on ServerOptions. -var inlineOpenChar byte = '>' -var inlineCloseChar byte = '>' +var ( + inlineOpenChar byte = '>' + inlineCloseChar byte = '>' +) // 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 > 0 </span><span class="cov4" title="7">{ + if s.llmReqTotal > 0 </span><span class="cov5" title="8">{ avgSent = s.llmSentBytesTotal / s.llmReqTotal }</span> - <span class="cov4" title="7">avgRecv := int64(0) - if s.llmRespTotal > 0 </span><span class="cov4" title="7">{ + <span class="cov5" title="8">avgRecv := int64(0) + if s.llmRespTotal > 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 <= 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 := &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 > len(current) </span><span class="cov0" title="0">{ at = len(current) }</span> - <span class="cov7" title="21">for at > 0 </span><span class="cov8" title="37">{ + <span class="cov7" title="22">for at > 0 </span><span class="cov8" title="38">{ ch := current[at-1] if (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '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 < len(line) </span><span class="cov4" title="7">{ - if line[i] == ' ' || line[i] == '\t' </span><span class="cov4" title="5">{ + for i < 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 >text> (configurable), with no space after the first +// findStrictInlineTag finds >text> (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 < len(line) </span><span class="cov9" title="58">{ - // find opening marker - j := strings.IndexByte(line[pos:], inlineOpenChar) - if j < 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 >= 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 < 0 </span><span class="cov1" title="1">{ - return "", 0, 0, false - }</span> - <span class="cov5" title="12">closeIdx := j + 1 + k - if closeIdx-1 < 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 < len(line) </span><span class="cov9" title="64">{ + // find opening marker + j := strings.IndexByte(line[pos:], inlineOpenChar) + if j < 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 >= 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 < 0 </span><span class="cov1" title="1">{ + return "", 0, 0, false + }</span> + <span class="cov6" title="15">closeIdx := j + 1 + k + if closeIdx-1 < 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 >= 0 && idx+2 <= 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 >= 0 </span><span class="cov2" title="2">{ + <span class="cov6" title="14">if idx := strings.LastIndex(prefixBeforeCursor, "="); idx >= 0 </span><span class="cov2" title="2">{ if !(idx > 0 && 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 != "" && 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 > 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 > 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 >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '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 < len(lines) && 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 >= 0 && strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{ end-- }</span> - <span class="cov7" title="30">if start >= len(lines) || end < 0 || start > end </span><span class="cov0" title="0">{ + <span class="cov7" title="31">if start >= len(lines) || end < 0 || start > 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, "```") && last == "```" && end > 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 != "" && !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 < 0 </span><span class="cov0" title="0">{ r.Start.Character = 0 }</span> - <span class="cov2" title="2">if r.End.Character > len(line) </span><span class="cov0" title="0">{ + <span class="cov3" title="3">if r.End.Character > len(line) </span><span class="cov0" title="0">{ r.End.Character = len(line) }</span> - <span class="cov2" title="2">if r.Start.Character > r.End.Character </span><span class="cov0" title="0">{ + <span class="cov3" title="3">if r.Start.Character > 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 < 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 < 0 </span><span class="cov7" title="32">{ - return false - }</span> - <span class="cov6" title="18">j += pos - contentStart := j + len(dbl) - if contentStart >= 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 < 0 </span><span class="cov0" title="0">{ - return false - }</span> - <span class="cov5" title="9">closeIdx := contentStart + 1 + k - if closeIdx-1 >= 0 && 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 < 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 < 0 </span><span class="cov7" title="32">{ + return false + }</span> + <span class="cov6" title="21">j += pos + contentStart := j + len(dbl) + if contentStart >= 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 < 0 </span><span class="cov0" title="0">{ + return false + }</span> + <span class="cov5" title="10">closeIdx := contentStart + 1 + k + if closeIdx-1 >= 0 && 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 < len(line) </span><span class="cov5" title="9">{ - j := strings.IndexByte(line[startSemi:], inlineOpenChar) - if j < 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 < 0 </span><span class="cov0" title="0">{ - break</span> - } - <span class="cov4" title="5">if j+1 >= 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 < 0 || line[closeIdx-1] == ' ' </span><span class="cov0" title="0">{ - startSemi = closeIdx + 1 - continue</span> - } - <span class="cov4" title="5">if closeIdx-(j+1) < 1 </span><span class="cov0" title="0">{ - startSemi = closeIdx + 1 - continue</span> + var edits []TextEdit + startSemi := 0 + for startSemi < len(line) </span><span class="cov5" title="9">{ + j := strings.IndexByte(line[startSemi:], inlineOpenChar) + if j < 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 < 0 </span><span class="cov0" title="0">{ + break</span> + } + <span class="cov4" title="5">if j+1 >= 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 < 0 || line[closeIdx-1] == ' ' </span><span class="cov0" title="0">{ + startSemi = closeIdx + 1 + continue</span> + } + <span class="cov4" title="5">if closeIdx-(j+1) < 1 </span><span class="cov0" title="0">{ + startSemi = closeIdx + 1 + continue</span> + } + <span class="cov4" title="5">endChar := closeIdx + 1 + if endChar < len(line) && 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 < len(line) && 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 := &Server{in: bufio.NewReader(r), out: w, logger: logger, docs: make(map[string]*document), logContext: opts.LogContext} maxTokens := opts.MaxTokens - if maxTokens <= 0 </span><span class="cov8" title="3">{ + if maxTokens <= 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 <= 0 </span><span class="cov8" title="3">{ + <span class="cov10" title="6">windowLines := opts.WindowLines + if windowLines <= 0 </span><span class="cov9" title="5">{ windowLines = 120 }</span> - <span class="cov10" title="4">maxContextTokens := opts.MaxContextTokens - if maxContextTokens <= 0 </span><span class="cov8" title="3">{ + <span class="cov10" title="6">maxContextTokens := opts.MaxContextTokens + if maxContextTokens <= 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 > 0 </span><span class="cov1" title="1">{ - s.completionDebounce = time.Duration(opts.CompletionDebounceMs) * time.Millisecond - }</span> - <span class="cov10" title="4">if opts.CompletionThrottleMs > 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 = ">" }</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 = ">" }</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 = ">" }</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) > 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 > 0 </span><span class="cov1" title="1">{ + s.completionDebounce = time.Duration(opts.CompletionDebounceMs) * time.Millisecond + }</span> + <span class="cov10" title="6">if opts.CompletionThrottleMs > 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 = ">" + }</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 = ">" + }</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 = ">" + }</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) > 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 &CustData{}, nil\n}" + return "(ctx context.Context, input string) (*CustData, error) {\n // TODO: implement\n return &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 @@ -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 @@ -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) + } } } |
