diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-06 11:57:45 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-06 11:57:45 +0300 |
| commit | a48079fae6bb19d7c931f275901670cd5839ab5c (patch) | |
| tree | 5788a3e8cac34ffca9d39b0c4b5df720e869b578 | |
| parent | fb267966f7840df222338f57023273a993a73c9a (diff) | |
chore(version): bump to 0.6.0; configurable prompts via config + testsv0.6.0
| -rw-r--r-- | PROJECTSTATUS.md | 35 | ||||
| -rw-r--r-- | config.toml.example | 105 | ||||
| -rw-r--r-- | docs/configuration.md | 133 | ||||
| -rw-r--r-- | docs/coverage.html | 1250 | ||||
| -rw-r--r-- | docs/coverage.out | 8482 | ||||
| -rw-r--r-- | internal/appconfig/config.go | 488 | ||||
| -rw-r--r-- | internal/appconfig/config_test.go | 207 | ||||
| -rw-r--r-- | internal/hexaicli/run.go | 42 | ||||
| -rw-r--r-- | internal/hexailsp/run.go | 52 | ||||
| -rw-r--r-- | internal/lsp/build_prompts_table_test.go | 32 | ||||
| -rw-r--r-- | internal/lsp/chat_prompt_test.go | 36 | ||||
| -rw-r--r-- | internal/lsp/codeaction_prompts_test.go | 102 | ||||
| -rw-r--r-- | internal/lsp/completion_messages_test.go | 16 | ||||
| -rw-r--r-- | internal/lsp/document_test.go | 35 | ||||
| -rw-r--r-- | internal/lsp/handlers_codeaction.go | 89 | ||||
| -rw-r--r-- | internal/lsp/handlers_completion.go | 50 | ||||
| -rw-r--r-- | internal/lsp/handlers_document.go | 6 | ||||
| -rw-r--r-- | internal/lsp/handlers_utils.go | 29 | ||||
| -rw-r--r-- | internal/lsp/helpers_more_test.go | 21 | ||||
| -rw-r--r-- | internal/lsp/provider_native_success_test.go | 31 | ||||
| -rw-r--r-- | internal/lsp/server.go | 74 | ||||
| -rw-r--r-- | internal/lsp/testhelper_capture_llm_test.go | 18 | ||||
| -rw-r--r-- | internal/version.go | 2 |
23 files changed, 6768 insertions, 4567 deletions
diff --git a/PROJECTSTATUS.md b/PROJECTSTATUS.md index 4114df6..d26a5a8 100644 --- a/PROJECTSTATUS.md +++ b/PROJECTSTATUS.md @@ -1,8 +1,27 @@ -# Ideas +# Project status + +This documents shows future items and in progress items. Already completed ones are removed from this document as we go. ## Features -### New features +### AI menu + +``` +[keys.normal] +C-p = ":sh hexai --menu" +``` + +Or maybe + +``` +[keys.normal] +C-p = ":sh hexai-action" +``` + + +And then generate a menu with all the code actions hexai-lsp knows of and include hotkeys for each menu item! Also print out a notice that this is a work-around due to limitations in Helix's current LSP UI. + +### More features * [ ] 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 @@ -10,16 +29,8 @@ - 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 -* [X] Text completion in general -* [/] Be a replacement for 'github copilot cli' -* [X] Be able to perform inline chats (keeping history in the document) -* [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? +* [ ] Be able to re-configure the temperature in-editor +* [ ] Unit test config loading Be able to switch LLMs. diff --git a/config.toml.example b/config.toml.example index 70b4442..3b331c3 100644 --- a/config.toml.example +++ b/config.toml.example @@ -1,34 +1,79 @@ +# Hexai sectioned config example + +[general] 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 +context_mode = "always-full" # minimal | window | file-on-new-func | always-full +context_window_lines = 120 +coding_temperature = 0.2 # single knob for LSP calls (optional) + +[logging] +# Flatten to: log_preview_limit +log_preview_limit = 100 # chars shown in log previews + +[completion] +completion_debounce_ms = 200 # idle ms before sending a request +completion_throttle_ms = 0 # min ms between requests (0 disables) +manual_invoke_min_prefix = 0 # required identifier chars for manual invoke + +[triggers] 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 +[inline] +inline_open = ">" # single-character +inline_close = ">" # single-character + +[chat] +chat_suffix = ">" # single-character +chat_prefixes = ["?", "!", ":", ";"] # single-character items + +[provider] +name = "openai" # openai | copilot | ollama + +[openai] +model = "gpt-4.1" +base_url = "https://api.openai.com/v1" +temperature = 0.2 + +[copilot] +model = "gpt-4o-mini" +base_url = "https://api.githubcopilot.com" +temperature = 0.2 + +[ollama] +model = "qwen3-coder:30b-a3b-q4_K_M" +base_url = "http://localhost:11434" +temperature = 0.2 + +# Prompt templates (optional). Leave commented to use defaults. +[prompts] + +[prompts.completion] +# Templates support {{file}}, {{function}}, {{above}}, {{current}}, {{below}}, {{char}} +# and for additional context: {{context}} +# system_general = "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression)." +# system_params = "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types." +# system_inline = "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only." +# user_general = "Provide the next likely code to insert at the cursor.\nFile: {{file}}\nFunction/context: {{function}}\nAbove line: {{above}}\nCurrent line (cursor at character {{char}}): {{current}}\nBelow line: {{below}}\nOnly return the completion snippet." +# user_params = "Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: {{function}}\nCurrent line (cursor at {{char}}): {{current}}" +# additional_context = "Additional context:\n{{context}}" + +[prompts.provider_native] +# completion = "// Path: {{path}}\n{{before}}" + +[prompts.chat] +# system = "You are a helpful coding assistant. Answer concisely and clearly." + +[prompts.code_action] +# rewrite_system = "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." +# diagnostics_system = "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." +# document_system = "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." +# rewrite_user = "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}" +# diagnostics_user = "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}" +# document_user = "Add documentation comments to this code:\n{{selection}}" +# go_test_system = "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." +# go_test_user = "Function under test:\n{{function}}" + +[prompts.cli] +# default_system = "You are Hexai CLI. Default to very short, concise answers. If the user asks for commands, output only the commands (one per line) with no commentary or explanation. Only when the word 'explain' appears in the prompt, produce a verbose explanation." +# explain_system = "You are Hexai CLI. The user requested an explanation. Provide a clear, verbose explanation with reasoning and details. If commands are needed, include them with brief context." diff --git a/docs/configuration.md b/docs/configuration.md index d52323c..d6c3f4b 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,84 +1,16 @@ # Hexai configuration -This document covers all configuration options for Hexai, including the config file, -environment overrides, provider selection, and temperature behavior. +This page explains where the config lives and how to choose a style; the authoritative list of options and comments lives in the example file. -## Config file - -The config file is optional. +Config file - Location: `$XDG_CONFIG_HOME/hexai/config.toml` (usually `~/.config/hexai/config.toml`). -- Example: - -```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: - -- max_tokens: upper bound for a single LLM response. -- context_mode: `minimal` | `window` | `file-on-new-func` | `always-full`. -- context_window_lines: line count for `window` mode. -- max_context_tokens: hard cap for sent context tokens. -- log_preview_limit: max characters of context preview logged. -- completion_debounce_ms: minimum idle time before sending completion requests. -- completion_throttle_ms: minimum spacing between completion requests (0 disables). -- manual_invoke_min_prefix: minimum typed identifier chars required for manual invoke to proceed without structural triggers (0 allows always). -- no_disk_io: avoid reading files from disk when building context. -- trigger_characters: LSP completion trigger characters. -- inline_open / inline_close: characters that bracket inline prompts (default `>`/`>`). Inline prompts support `>text>` and a double-open variant `>>text>`. Single-character markers are required. -- chat_suffix / chat_prefixes: in-editor chat triggers (default suffix `>` and prefixes `["?","!",":",";"]`). A line ending with one of these prefixes immediately followed by the suffix triggers a chat reply (e.g., `What?>`). Prefixes must be single characters. -- coding_temperature: optional override for LSP calls. -- provider: `openai` | `copilot` | `ollama`. - -### Trigger customization - -Defaults use `>` for inline prompts and chat suffix. You can change them, e.g.: - -```toml -inline_open = "<" -inline_close = ">" -chat_suffix = "/" -chat_prefixes = ["?", "!"] -trigger_characters = [".", ":", "/", "_", " "] -``` - -Notes: -- `inline_open`/`inline_close` must be single characters; `>>text>` is the double‑open variant. -- `chat_prefixes` items must be single characters. +- Style: sectioned tables only — see `config.toml.example` for a complete, commented reference. -## Environment overrides +Environment overrides -- All config-file options can be overridden by environment variables prefixed with `HEXAI_`. -- Env values take precedence over `config.toml`. +- All options can be overridden by environment variables prefixed with `HEXAI_`. +- Env values take precedence over the config file. - Examples: - `HEXAI_PROVIDER`, `HEXAI_MAX_TOKENS`, `HEXAI_CONTEXT_MODE`, `HEXAI_CONTEXT_WINDOW_LINES`, `HEXAI_MAX_CONTEXT_TOKENS`, `HEXAI_LOG_PREVIEW_LIMIT` - `HEXAI_CODING_TEMPERATURE` @@ -95,33 +27,15 @@ API keys: - OpenAI: prefer `HEXAI_OPENAI_API_KEY`, falling back to `OPENAI_API_KEY`. - Copilot: prefer `HEXAI_COPILOT_API_KEY`, falling back to `COPILOT_API_KEY`. -## Selecting a provider +Selecting a provider -- Set `provider` in the config to `openai`, `copilot`, or `ollama`. +- Sectioned: set `[provider] name = "openai" | "copilot" | "ollama"`. +- Flat: set `provider = "openai" | "copilot" | "ollama"`. - If omitted, Hexai defaults to `openai`. -### OpenAI configuration - -- Required: `HEXAI_OPENAI_API_KEY` (or `OPENAI_API_KEY`). -- Options: - - `openai_model` — model name (default: `gpt-4.1`). - - `openai_base_url` — API base (default: `https://api.openai.com/v1`). - - `openai_temperature` — default temperature (coding-friendly `0.2`). - -### GitHub Copilot configuration - -- Required: `COPILOT_API_KEY`. -- Options: - - `copilot_model` — model name (default: `gpt-4o-mini`). - - `copilot_base_url` — API base (default: `https://api.githubcopilot.com`). - - `copilot_temperature` — default temperature (coding-friendly `0.2`). +Provider-specific options -### Ollama configuration - -- Options: - - `ollama_model` — model name/tag (default: `qwen3-coder:30b-a3b-q4_K_M`). - - `ollama_base_url` — base URL (default: `http://localhost:11434`). - - `ollama_temperature` — default temperature (coding-friendly `0.2`). +- See `config.toml.example` for the per-provider tables and defaults. Notes: @@ -129,27 +43,10 @@ Notes: - Alternatively, run Ollama in OpenAI‑compatible mode and use the OpenAI provider with `openai_base_url` pointed at your local endpoint. -## LSP completion tuning - -- Debounce: `completion_debounce_ms` waits until there has been no recent input for at least this many milliseconds before sending a completion request. Recommended 150–300 ms to balance responsiveness and API usage. -- Throttle: `completion_throttle_ms` enforces a minimum spacing between completion requests, across both chat and provider-native paths. Set to 0 to disable. Recommended 300–600 ms if you still see excessive requests with just debounce. -- Manual invoke prefix: `manual_invoke_min_prefix` requires this many identifier characters before a manual completion (TriggerKind=1) proceeds without other triggers. Use 0 to always allow manual invoke. - -Environment variables mirror these settings: `HEXAI_COMPLETION_DEBOUNCE_MS`, `HEXAI_COMPLETION_THROTTLE_MS`, `HEXAI_MANUAL_INVOKE_MIN_PREFIX`. - -## Temperature behavior - -- What it is: controls randomness/creativity of outputs. -- Default for coding: `0.2` for all providers unless overridden. -- Per-provider overrides: `openai_temperature`, `copilot_temperature`, `ollama_temperature`. - -Recommended ranges: +LSP completion tuning -- 0.0–0.3: deterministic and precise; best for refactors, tests, and bug fixes. -- 0.4–0.7: balanced; general Q&A and writing. -- 0.8–1.2+: creative; brainstorming; may increase tangents. +- See the [completion] section in `config.toml.example`. -Guidance: +Temperature behavior -- Lower temperature increases consistency, but can be terse or repetitive. -- Higher temperature increases diversity, but can wander or introduce mistakes. +- Defaults and recommended ranges are commented inline in `config.toml.example` under [general] and provider tables. diff --git a/docs/coverage.html b/docs/coverage.html index 49b89df..d22ef74 100644 --- a/docs/coverage.html +++ b/docs/coverage.html @@ -59,9 +59,9 @@ <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 (87.0%)</option> + <option value="file2">codeberg.org/snonux/hexai/internal/appconfig/config.go (91.6%)</option> - <option value="file3">codeberg.org/snonux/hexai/internal/hexaicli/run.go (91.4%)</option> + <option value="file3">codeberg.org/snonux/hexai/internal/hexaicli/run.go (72.6%)</option> <option value="file4">codeberg.org/snonux/hexai/internal/hexailsp/run.go (92.5%)</option> @@ -83,11 +83,11 @@ <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 (92.1%)</option> + <option value="file14">codeberg.org/snonux/hexai/internal/lsp/handlers.go (92.9%)</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 (87.5%)</option> + <option value="file16">codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go (87.6%)</option> <option value="file17">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (88.9%)</option> @@ -97,7 +97,7 @@ <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> + <option value="file21">codeberg.org/snonux/hexai/internal/lsp/server.go (82.1%)</option> <option value="file22">codeberg.org/snonux/hexai/internal/lsp/transport.go (71.4%)</option> @@ -234,17 +234,43 @@ type App struct { // Default temperature for Ollama requests (nil means use provider default) OllamaTemperature *float64 `json:"ollama_temperature" toml:"ollama_temperature"` CopilotBaseURL string `json:"copilot_base_url" toml:"copilot_base_url"` - CopilotModel string `json:"copilot_model" toml:"copilot_model"` - // Default temperature for Copilot requests (nil means use provider default) - CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"` + CopilotModel string `json:"copilot_model" toml:"copilot_model"` + // Default temperature for Copilot requests (nil means use provider default) + CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"` + + // Prompt templates (configured only via file; no env overrides) + // Completion/chat/code action/CLI prompt strings. See config.toml.example for placeholders. + // Completion + PromptCompletionSystemGeneral string `json:"-" toml:"-"` + PromptCompletionSystemParams string `json:"-" toml:"-"` + PromptCompletionSystemInline string `json:"-" toml:"-"` + PromptCompletionUserGeneral string `json:"-" toml:"-"` + PromptCompletionUserParams string `json:"-" toml:"-"` + PromptCompletionExtraHeader string `json:"-" toml:"-"` + // Provider-native code-completer + PromptNativeCompletion string `json:"-" toml:"-"` + // In-editor chat + PromptChatSystem string `json:"-" toml:"-"` + // Code actions + PromptCodeActionRewriteSystem string `json:"-" toml:"-"` + PromptCodeActionDiagnosticsSystem string `json:"-" toml:"-"` + PromptCodeActionDocumentSystem string `json:"-" toml:"-"` + PromptCodeActionRewriteUser string `json:"-" toml:"-"` + PromptCodeActionDiagnosticsUser string `json:"-" toml:"-"` + PromptCodeActionDocumentUser string `json:"-" toml:"-"` + PromptCodeActionGoTestSystem string `json:"-" toml:"-"` + PromptCodeActionGoTestUser string `json:"-" toml:"-"` + // CLI + PromptCLIDefaultSystem string `json:"-" toml:"-"` + PromptCLIExplainSystem string `json:"-" toml:"-"` } // Constructor: defaults for App (kept first among functions) -func newDefaultConfig() App <span class="cov5" title="9">{ +func newDefaultConfig() App <span class="cov5" title="11">{ // Coding-friendly default temperature across providers // Users can override per provider in config.toml (including 0.0). t := 0.2 - return App{ + return App{ MaxTokens: 4000, ContextMode: "always-full", ContextWindowLines: 120, @@ -261,24 +287,48 @@ func newDefaultConfig() App <span class="cov5" title="9">{ InlineOpen: ">", InlineClose: ">", ChatSuffix: ">", - ChatPrefixes: []string{"?", "!", ":", ";"}, - } + ChatPrefixes: []string{"?", "!", ":", ";"}, + + // Default prompt templates (match current hard-coded strings) + PromptCompletionSystemParams: "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types.", + PromptCompletionUserParams: "Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: {{function}}\nCurrent line (cursor at {{char}}): {{current}}", + PromptCompletionSystemGeneral: "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression).", + PromptCompletionUserGeneral: "Provide the next likely code to insert at the cursor.\nFile: {{file}}\nFunction/context: {{function}}\nAbove line: {{above}}\nCurrent line (cursor at character {{char}}): {{current}}\nBelow line: {{below}}\nOnly return the completion snippet.", + PromptCompletionSystemInline: "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only.", + PromptCompletionExtraHeader: "Additional context:\n{{context}}", + + PromptNativeCompletion: "// Path: {{path}}\n{{before}}", + + PromptChatSystem: "You are a helpful coding assistant. Answer concisely and clearly.", + + PromptCodeActionRewriteSystem: "You are a precise code refactoring engine. Rewrite the given code strictly according to the instruction. Return only the updated code with no prose or backticks. Preserve formatting where reasonable.", + PromptCodeActionDiagnosticsSystem: "You are a precise code fixer. Resolve the given diagnostics by editing only the selected code. Return only the corrected code with no prose or backticks. Keep behavior and style, and avoid unrelated changes.", + PromptCodeActionDocumentSystem: "You are a precise code documentation engine. Add idiomatic documentation comments to the given code. Preserve exact behavior and formatting as much as possible. Return only the updated code with comments, no prose or backticks.", + PromptCodeActionRewriteUser: "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}", + PromptCodeActionDiagnosticsUser: "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}", + PromptCodeActionDocumentUser: "Add documentation comments to this code:\n{{selection}}", + PromptCodeActionGoTestSystem: "You are a precise Go unit test generator. Given a Go function, write one or more Test* functions using the testing package. Do NOT include package or imports, only the test function(s). Prefer table-driven tests. Keep it minimal and idiomatic.", + PromptCodeActionGoTestUser: "Function under test:\n{{function}}", + + PromptCLIDefaultSystem: "You are Hexai CLI. Default to very short, concise answers. If the user asks for commands, output only the commands (one per line) with no commentary or explanation. Only when the word 'explain' appears in the prompt, produce a verbose explanation.", + PromptCLIExplainSystem: "You are Hexai CLI. The user requested an explanation. Provide a clear, verbose explanation with reasoning and details. If commands are needed, include them with brief context.", + } }</span> // Load reads configuration from a file and merges with defaults. // It respects the XDG Base Directory Specification. -func Load(logger *log.Logger) App <span class="cov4" title="8">{ +func Load(logger *log.Logger) App <span class="cov5" title="10">{ cfg := newDefaultConfig() - if logger == nil </span><span class="cov3" title="3">{ + if logger == nil </span><span class="cov2" title="3">{ return cfg // Return defaults if no logger is provided (e.g. in tests) }</span> - <span class="cov4" title="5">configPath, err := getConfigPath() + <span class="cov4" title="7">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">{ + }</span> else<span class="cov4" title="7"> { + if fileCfg, err := loadFromFile(configPath, logger); err == nil && fileCfg != nil </span><span class="cov3" title="4">{ cfg.mergeWith(fileCfg) }</span> // When the config file is missing or invalid, we keep defaults and still @@ -286,125 +336,507 @@ func Load(logger *log.Logger) App <span class="cov4" title="8">{ } // Environment overrides (take precedence over file) - <span class="cov4" title="5">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{ + <span class="cov4" title="7">if envCfg := loadFromEnv(logger); envCfg != nil </span><span class="cov1" title="1">{ cfg.mergeWith(envCfg) }</span> - <span class="cov4" title="5">return cfg</span> + <span class="cov4" title="7">return cfg</span> } // Private helpers -func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="6">{ - 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 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() +// Sectioned (table-based) file format only. +type fileConfig struct { + // Section tables only (flat keys are not allowed) + General sectionGeneral `toml:"general"` + Logging sectionLogging `toml:"logging"` + Completion sectionCompletion `toml:"completion"` + Triggers sectionTriggers `toml:"triggers"` + Inline sectionInline `toml:"inline"` + Chat sectionChat `toml:"chat"` + Provider sectionProvider `toml:"provider"` + OpenAI sectionOpenAI `toml:"openai"` + Copilot sectionCopilot `toml:"copilot"` + Ollama sectionOllama `toml:"ollama"` + Prompts sectionPrompts `toml:"prompts"` +} - 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 TOML config file %s: %v", path, err) - }</span> - <span class="cov1" title="1">return nil, err</span> +type sectionGeneral struct { + MaxTokens int `toml:"max_tokens"` + ContextMode string `toml:"context_mode"` + ContextWindowLines int `toml:"context_window_lines"` + MaxContextTokens int `toml:"max_context_tokens"` + CodingTemperature *float64 `toml:"coding_temperature"` +} + +type sectionLogging struct { + LogPreviewLimit int `toml:"log_preview_limit"` +} + +type sectionCompletion struct { + CompletionDebounceMs int `toml:"completion_debounce_ms"` + CompletionThrottleMs int `toml:"completion_throttle_ms"` + ManualInvokeMinPrefix int `toml:"manual_invoke_min_prefix"` +} + +type sectionTriggers struct { + TriggerCharacters []string `toml:"trigger_characters"` +} + +type sectionInline struct { + InlineOpen string `toml:"inline_open"` + InlineClose string `toml:"inline_close"` +} + +type sectionChat struct { + ChatSuffix string `toml:"chat_suffix"` + ChatPrefixes []string `toml:"chat_prefixes"` +} + +type sectionProvider struct { + Name string `toml:"name"` +} + +type sectionOpenAI struct { + Model string `toml:"model"` + BaseURL string `toml:"base_url"` + Temperature *float64 `toml:"temperature"` +} + +type sectionCopilot struct { + Model string `toml:"model"` + BaseURL string `toml:"base_url"` + Temperature *float64 `toml:"temperature"` +} + +type sectionOllama struct { + Model string `toml:"model"` + BaseURL string `toml:"base_url"` + Temperature *float64 `toml:"temperature"` +} + +// Prompts sections +type sectionPrompts struct { + Completion sectionPromptsCompletion `toml:"completion"` + Chat sectionPromptsChat `toml:"chat"` + CodeAction sectionPromptsCodeAction `toml:"code_action"` + CLI sectionPromptsCLI `toml:"cli"` + ProviderNative sectionPromptsProviderNative `toml:"provider_native"` +} + +type sectionPromptsCompletion struct { + SystemGeneral string `toml:"system_general"` + SystemParams string `toml:"system_params"` + SystemInline string `toml:"system_inline"` + UserGeneral string `toml:"user_general"` + UserParams string `toml:"user_params"` + ExtraHeader string `toml:"additional_context"` +} + +type sectionPromptsChat struct { + System string `toml:"system"` +} + +type sectionPromptsCodeAction struct { + RewriteSystem string `toml:"rewrite_system"` + DiagnosticsSystem string `toml:"diagnostics_system"` + DocumentSystem string `toml:"document_system"` + RewriteUser string `toml:"rewrite_user"` + DiagnosticsUser string `toml:"diagnostics_user"` + DocumentUser string `toml:"document_user"` + GoTestSystem string `toml:"go_test_system"` + GoTestUser string `toml:"go_test_user"` +} + +type sectionPromptsCLI struct { + DefaultSystem string `toml:"default_system"` + ExplainSystem string `toml:"explain_system"` +} + +type sectionPromptsProviderNative struct { + Completion string `toml:"completion"` +} + +func (fc *fileConfig) toApp() App <span class="cov3" title="4">{ + out := App{} + + // Merge section: general + if (fc.General != sectionGeneral{}) || fc.General.CodingTemperature != nil </span><span class="cov2" title="3">{ + tmp := App{ + MaxTokens: fc.General.MaxTokens, + ContextMode: fc.General.ContextMode, + ContextWindowLines: fc.General.ContextWindowLines, + MaxContextTokens: fc.General.MaxContextTokens, + CodingTemperature: fc.General.CodingTemperature, } - <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> + out.mergeBasics(&tmp) + }</span> + + // logging + <span class="cov3" title="4">if (fc.Logging != sectionLogging{}) </span><span class="cov1" title="1">{ + tmp := App{LogPreviewLimit: fc.Logging.LogPreviewLimit} + out.mergeBasics(&tmp) + }</span> + + // completion + <span class="cov3" title="4">if (fc.Completion != sectionCompletion{}) </span><span class="cov2" title="3">{ + tmp := App{ + CompletionDebounceMs: fc.Completion.CompletionDebounceMs, + CompletionThrottleMs: fc.Completion.CompletionThrottleMs, + ManualInvokeMinPrefix: fc.Completion.ManualInvokeMinPrefix, + } + out.mergeBasics(&tmp) + }</span> + + // triggers + <span class="cov3" title="4">if len(fc.Triggers.TriggerCharacters) > 0 </span><span class="cov2" title="3">{ + tmp := App{TriggerCharacters: fc.Triggers.TriggerCharacters} + out.mergeBasics(&tmp) + }</span> + + // inline + <span class="cov3" title="4">if (fc.Inline != sectionInline{}) </span><span class="cov1" title="1">{ + tmp := App{InlineOpen: fc.Inline.InlineOpen, InlineClose: fc.Inline.InlineClose} + out.mergeBasics(&tmp) + }</span> + + // chat + <span class="cov3" title="4">if strings.TrimSpace(fc.Chat.ChatSuffix) != "" || len(fc.Chat.ChatPrefixes) > 0 </span><span class="cov1" title="1">{ + tmp := App{ChatSuffix: fc.Chat.ChatSuffix, ChatPrefixes: fc.Chat.ChatPrefixes} + out.mergeBasics(&tmp) + }</span> + + // provider + <span class="cov3" title="4">if strings.TrimSpace(fc.Provider.Name) != "" </span><span class="cov2" title="3">{ + tmp := App{Provider: fc.Provider.Name} + out.mergeBasics(&tmp) + }</span> + + // openai + <span class="cov3" title="4">if (fc.OpenAI != sectionOpenAI{}) || fc.OpenAI.Temperature != nil </span><span class="cov2" title="3">{ + tmp := App{ + OpenAIBaseURL: fc.OpenAI.BaseURL, + OpenAIModel: fc.OpenAI.Model, + OpenAITemperature: fc.OpenAI.Temperature, + } + out.mergeProviderFields(&tmp) + }</span> + + // copilot + <span class="cov3" title="4">if (fc.Copilot != sectionCopilot{}) || fc.Copilot.Temperature != nil </span><span class="cov2" title="3">{ + tmp := App{ + CopilotBaseURL: fc.Copilot.BaseURL, + CopilotModel: fc.Copilot.Model, + CopilotTemperature: fc.Copilot.Temperature, + } + out.mergeProviderFields(&tmp) + }</span> + + // ollama + <span class="cov3" title="4">if (fc.Ollama != sectionOllama{}) || fc.Ollama.Temperature != nil </span><span class="cov2" title="3">{ + tmp := App{ + OllamaBaseURL: fc.Ollama.BaseURL, + OllamaModel: fc.Ollama.Model, + OllamaTemperature: fc.Ollama.Temperature, + } + out.mergeProviderFields(&tmp) + }</span> + + // prompts + // completion + <span class="cov3" title="4">if (fc.Prompts.Completion != sectionPromptsCompletion{}) </span><span class="cov1" title="1">{ + if strings.TrimSpace(fc.Prompts.Completion.SystemGeneral) != "" </span><span class="cov1" title="1">{ + out.PromptCompletionSystemGeneral = fc.Prompts.Completion.SystemGeneral + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.SystemParams) != "" </span><span class="cov1" title="1">{ + out.PromptCompletionSystemParams = fc.Prompts.Completion.SystemParams + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.SystemInline) != "" </span><span class="cov1" title="1">{ + out.PromptCompletionSystemInline = fc.Prompts.Completion.SystemInline + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.UserGeneral) != "" </span><span class="cov1" title="1">{ + out.PromptCompletionUserGeneral = fc.Prompts.Completion.UserGeneral + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.UserParams) != "" </span><span class="cov1" title="1">{ + out.PromptCompletionUserParams = fc.Prompts.Completion.UserParams + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.Completion.ExtraHeader) != "" </span><span class="cov1" title="1">{ + out.PromptCompletionExtraHeader = fc.Prompts.Completion.ExtraHeader + }</span> + } + // chat + <span class="cov3" title="4">if strings.TrimSpace(fc.Prompts.Chat.System) != "" </span><span class="cov1" title="1">{ + out.PromptChatSystem = fc.Prompts.Chat.System + }</span> + // code action + <span class="cov3" title="4">if (fc.Prompts.CodeAction != sectionPromptsCodeAction{}) </span><span class="cov1" title="1">{ + if strings.TrimSpace(fc.Prompts.CodeAction.RewriteSystem) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionRewriteSystem = fc.Prompts.CodeAction.RewriteSystem + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsSystem) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionDiagnosticsSystem = fc.Prompts.CodeAction.DiagnosticsSystem + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DocumentSystem) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionDocumentSystem = fc.Prompts.CodeAction.DocumentSystem + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.RewriteUser) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionRewriteUser = fc.Prompts.CodeAction.RewriteUser + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsUser) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionDiagnosticsUser = fc.Prompts.CodeAction.DiagnosticsUser + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.DocumentUser) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionDocumentUser = fc.Prompts.CodeAction.DocumentUser + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.GoTestSystem) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionGoTestSystem = fc.Prompts.CodeAction.GoTestSystem + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CodeAction.GoTestUser) != "" </span><span class="cov1" title="1">{ + out.PromptCodeActionGoTestUser = fc.Prompts.CodeAction.GoTestUser + }</span> + } + // cli + <span class="cov3" title="4">if (fc.Prompts.CLI != sectionPromptsCLI{}) </span><span class="cov1" title="1">{ + if strings.TrimSpace(fc.Prompts.CLI.DefaultSystem) != "" </span><span class="cov1" title="1">{ + out.PromptCLIDefaultSystem = fc.Prompts.CLI.DefaultSystem + }</span> + <span class="cov1" title="1">if strings.TrimSpace(fc.Prompts.CLI.ExplainSystem) != "" </span><span class="cov1" title="1">{ + out.PromptCLIExplainSystem = fc.Prompts.CLI.ExplainSystem + }</span> + } + // provider-native + <span class="cov3" title="4">if strings.TrimSpace(fc.Prompts.ProviderNative.Completion) != "" </span><span class="cov1" title="1">{ + out.PromptNativeCompletion = fc.Prompts.ProviderNative.Completion + }</span> + + <span class="cov3" title="4">return out</span> +} + +func loadFromFile(path string, logger *log.Logger) (*App, error) <span class="cov4" title="8">{ + b, err := os.ReadFile(path) + if err != nil </span><span class="cov2" title="2">{ + if !os.IsNotExist(err) && logger != nil </span><span class="cov0" title="0">{ + logger.Printf("cannot open TOML config file %s: %v", path, err) + }</span> + <span class="cov2" title="2">return nil, err</span> + } + + <span class="cov4" title="6">var tables fileConfig + errTables := toml.NewDecoder(strings.NewReader(string(b))).Decode(&tables) + // Raw map for validation/presence checks + var raw map[string]any + _ = toml.Unmarshal(b, &raw) + if errTables != nil </span><span class="cov2" title="2">{ + if logger != nil </span><span class="cov2" title="2">{ + logger.Printf("invalid TOML config file %s: %v", path, errTables) + }</span> + <span class="cov2" title="2">return nil, errTables</span> + } + + // Reject legacy flat keys at top-level (sectioned-only config is allowed) + <span class="cov3" title="4">legacy := map[string]struct{}{ + "max_tokens": {}, "context_mode": {}, "context_window_lines": {}, "max_context_tokens": {}, + "log_preview_limit": {}, "completion_debounce_ms": {}, "completion_throttle_ms": {}, + "manual_invoke_min_prefix": {}, "trigger_characters": {}, "inline_open": {}, "inline_close": {}, + "chat_suffix": {}, "chat_prefixes": {}, "coding_temperature": {}, "provider": {}, + "openai_model": {}, "openai_base_url": {}, "openai_temperature": {}, + "ollama_model": {}, "ollama_base_url": {}, "ollama_temperature": {}, + "copilot_model": {}, "copilot_base_url": {}, "copilot_temperature": {}, + } + for k := range raw </span><span class="cov6" title="27">{ + if _, isTable := map[string]struct{}{"general": {}, "logging": {}, "completion": {}, "triggers": {}, "inline": {}, "chat": {}, "provider": {}, "openai": {}, "copilot": {}, "ollama": {}, "prompts": {}}[k]; isTable </span><span class="cov6" title="27">{ + continue</span> + } + <span class="cov0" title="0">if _, isLegacy := legacy[k]; isLegacy </span><span class="cov0" title="0">{ + return nil, fmt.Errorf("unsupported flat key '%s' in config; use sectioned tables (see config.toml.example)", k) + }</span> + } + + <span class="cov3" title="4">if logger != nil </span><span class="cov3" title="4">{ + logger.Printf("loaded configuration from %s (TOML)", path) + }</span> + + // Merge order: flat first, then tables (so tables win over zero flat values) + // Build App from tables only + <span class="cov3" title="4">tab := tables.toApp() + // Ensure explicit values from raw map are respected (defensive for ints) + if t, ok := raw["completion"].(map[string]any); ok </span><span class="cov2" title="3">{ + if v, present := t["manual_invoke_min_prefix"]; present </span><span class="cov2" title="3">{ + switch vv := v.(type) </span>{ + case int64:<span class="cov2" title="3"> + tab.ManualInvokeMinPrefix = int(vv)</span> + case int:<span class="cov0" title="0"> + tab.ManualInvokeMinPrefix = vv</span> + case float64:<span class="cov0" title="0"> + tab.ManualInvokeMinPrefix = int(vv)</span> + } + } + } + <span class="cov3" title="4">if t, ok := raw["logging"].(map[string]any); ok </span><span class="cov2" title="3">{ + if v, present := t["log_preview_limit"]; present </span><span class="cov2" title="3">{ + switch vv := v.(type) </span>{ + case int64:<span class="cov2" title="3"> + tab.LogPreviewLimit = int(vv)</span> + case int:<span class="cov0" title="0"> + tab.LogPreviewLimit = vv</span> + case float64:<span class="cov0" title="0"> + tab.LogPreviewLimit = int(vv)</span> + } + } + } + <span class="cov3" title="4">return &tab, nil</span> } -func (a *App) mergeWith(other *App) <span class="cov3" title="4">{ - a.mergeBasics(other) - a.mergeProviderFields(other) +func (a *App) mergeWith(other *App) <span class="cov3" title="5">{ + a.mergeBasics(other) + a.mergeProviderFields(other) + a.mergePrompts(other) }</span> // mergeBasics merges general (non-provider) fields. -func (a *App) mergeBasics(other *App) <span class="cov3" title="4">{ - if other.MaxTokens > 0 </span><span class="cov3" title="3">{ +func (a *App) mergeBasics(other *App) <span class="cov6" title="20">{ + if other.MaxTokens > 0 </span><span class="cov4" title="7">{ a.MaxTokens = other.MaxTokens }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.ContextMode); s != "" </span><span class="cov3" title="3">{ + <span class="cov6" title="20">if s := strings.TrimSpace(other.ContextMode); s != "" </span><span class="cov4" title="7">{ a.ContextMode = s }</span> - <span class="cov3" title="4">if other.ContextWindowLines > 0 </span><span class="cov3" title="3">{ + <span class="cov6" title="20">if other.ContextWindowLines > 0 </span><span class="cov4" title="7">{ a.ContextWindowLines = other.ContextWindowLines }</span> - <span class="cov3" title="4">if other.MaxContextTokens > 0 </span><span class="cov3" title="3">{ + <span class="cov6" title="20">if other.MaxContextTokens > 0 </span><span class="cov4" title="7">{ a.MaxContextTokens = other.MaxContextTokens }</span> - <span class="cov3" title="4">if other.LogPreviewLimit >= 0 </span><span class="cov3" title="4">{ + <span class="cov6" title="20">if other.LogPreviewLimit >= 0 </span><span class="cov6" title="20">{ a.LogPreviewLimit = other.LogPreviewLimit }</span> - <span class="cov3" title="4">if other.CodingTemperature != nil </span><span class="cov3" title="3">{ // allow explicit 0.0 + <span class="cov6" title="20">if other.CodingTemperature != nil </span><span class="cov4" title="7">{ // allow explicit 0.0 a.CodingTemperature = other.CodingTemperature }</span> - <span class="cov3" title="4">if other.ManualInvokeMinPrefix >= 0 </span><span class="cov3" title="4">{ + <span class="cov6" title="20">if other.ManualInvokeMinPrefix >= 0 </span><span class="cov6" title="20">{ a.ManualInvokeMinPrefix = other.ManualInvokeMinPrefix }</span> - <span class="cov3" title="4">if other.CompletionDebounceMs > 0 </span><span class="cov3" title="3">{ + <span class="cov6" title="20">if other.CompletionDebounceMs > 0 </span><span class="cov4" title="7">{ a.CompletionDebounceMs = other.CompletionDebounceMs }</span> - <span class="cov3" title="4">if other.CompletionThrottleMs > 0 </span><span class="cov3" title="3">{ + <span class="cov6" title="20">if other.CompletionThrottleMs > 0 </span><span class="cov4" title="7">{ a.CompletionThrottleMs = other.CompletionThrottleMs }</span> - <span class="cov3" title="4">if len(other.TriggerCharacters) > 0 </span><span class="cov3" title="3">{ + <span class="cov6" title="20">if len(other.TriggerCharacters) > 0 </span><span class="cov4" title="7">{ 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">{ + <span class="cov6" title="20">if s := strings.TrimSpace(other.InlineOpen); s != "" </span><span class="cov2" title="2">{ a.InlineOpen = s }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.InlineClose); s != "" </span><span class="cov0" title="0">{ + <span class="cov6" title="20">if s := strings.TrimSpace(other.InlineClose); s != "" </span><span class="cov2" title="2">{ a.InlineClose = s }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.ChatSuffix); s != "" </span><span class="cov0" title="0">{ + <span class="cov6" title="20">if s := strings.TrimSpace(other.ChatSuffix); s != "" </span><span class="cov2" title="2">{ a.ChatSuffix = s }</span> - <span class="cov3" title="4">if len(other.ChatPrefixes) > 0 </span><span class="cov0" title="0">{ + <span class="cov6" title="20">if len(other.ChatPrefixes) > 0 </span><span class="cov2" title="2">{ 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">{ + <span class="cov6" title="20">if s := strings.TrimSpace(other.Provider); s != "" </span><span class="cov4" title="7">{ a.Provider = s }</span> } +// mergePrompts copies non-empty prompt templates from other. +func (a *App) mergePrompts(other *App) <span class="cov3" title="5">{ + // Completion + if strings.TrimSpace(other.PromptCompletionSystemGeneral) != "" </span><span class="cov1" title="1">{ + a.PromptCompletionSystemGeneral = other.PromptCompletionSystemGeneral + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionSystemParams) != "" </span><span class="cov1" title="1">{ + a.PromptCompletionSystemParams = other.PromptCompletionSystemParams + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionSystemInline) != "" </span><span class="cov1" title="1">{ + a.PromptCompletionSystemInline = other.PromptCompletionSystemInline + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionUserGeneral) != "" </span><span class="cov1" title="1">{ + a.PromptCompletionUserGeneral = other.PromptCompletionUserGeneral + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionUserParams) != "" </span><span class="cov1" title="1">{ + a.PromptCompletionUserParams = other.PromptCompletionUserParams + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCompletionExtraHeader) != "" </span><span class="cov1" title="1">{ + a.PromptCompletionExtraHeader = other.PromptCompletionExtraHeader + }</span> + // Provider-native + <span class="cov3" title="5">if strings.TrimSpace(other.PromptNativeCompletion) != "" </span><span class="cov1" title="1">{ + a.PromptNativeCompletion = other.PromptNativeCompletion + }</span> + // Chat + <span class="cov3" title="5">if strings.TrimSpace(other.PromptChatSystem) != "" </span><span class="cov1" title="1">{ + a.PromptChatSystem = other.PromptChatSystem + }</span> + // Code actions + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionRewriteSystem) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionRewriteSystem = other.PromptCodeActionRewriteSystem + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDiagnosticsSystem) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionDiagnosticsSystem = other.PromptCodeActionDiagnosticsSystem + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDocumentSystem) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionDocumentSystem = other.PromptCodeActionDocumentSystem + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionRewriteUser) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionRewriteUser = other.PromptCodeActionRewriteUser + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDiagnosticsUser) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionDiagnosticsUser = other.PromptCodeActionDiagnosticsUser + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionDocumentUser) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionDocumentUser = other.PromptCodeActionDocumentUser + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionGoTestSystem) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionGoTestSystem = other.PromptCodeActionGoTestSystem + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCodeActionGoTestUser) != "" </span><span class="cov1" title="1">{ + a.PromptCodeActionGoTestUser = other.PromptCodeActionGoTestUser + }</span> + // CLI + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCLIDefaultSystem) != "" </span><span class="cov1" title="1">{ + a.PromptCLIDefaultSystem = other.PromptCLIDefaultSystem + }</span> + <span class="cov3" title="5">if strings.TrimSpace(other.PromptCLIExplainSystem) != "" </span><span class="cov1" title="1">{ + a.PromptCLIExplainSystem = other.PromptCLIExplainSystem + }</span> +} + // mergeProviderFields merges per-provider configuration. -func (a *App) mergeProviderFields(other *App) <span class="cov3" title="4">{ - if s := strings.TrimSpace(other.OpenAIBaseURL); s != "" </span><span class="cov3" title="3">{ +func (a *App) mergeProviderFields(other *App) <span class="cov5" title="14">{ + if s := strings.TrimSpace(other.OpenAIBaseURL); s != "" </span><span class="cov4" title="7">{ a.OpenAIBaseURL = s }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.OpenAIModel); s != "" </span><span class="cov3" title="4">{ + <span class="cov5" title="14">if s := strings.TrimSpace(other.OpenAIModel); s != "" </span><span class="cov4" title="7">{ a.OpenAIModel = s }</span> - <span class="cov3" title="4">if other.OpenAITemperature != nil </span><span class="cov3" title="3">{ // allow explicit 0.0 + <span class="cov5" title="14">if other.OpenAITemperature != nil </span><span class="cov4" title="7">{ // allow explicit 0.0 a.OpenAITemperature = other.OpenAITemperature }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.OllamaBaseURL); s != "" </span><span class="cov3" title="3">{ + <span class="cov5" title="14">if s := strings.TrimSpace(other.OllamaBaseURL); s != "" </span><span class="cov4" title="7">{ a.OllamaBaseURL = s }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.OllamaModel); s != "" </span><span class="cov3" title="3">{ + <span class="cov5" title="14">if s := strings.TrimSpace(other.OllamaModel); s != "" </span><span class="cov4" title="7">{ a.OllamaModel = s }</span> - <span class="cov3" title="4">if other.OllamaTemperature != nil </span><span class="cov3" title="3">{ // allow explicit 0.0 + <span class="cov5" title="14">if other.OllamaTemperature != nil </span><span class="cov4" title="7">{ // allow explicit 0.0 a.OllamaTemperature = other.OllamaTemperature }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.CopilotBaseURL); s != "" </span><span class="cov3" title="3">{ + <span class="cov5" title="14">if s := strings.TrimSpace(other.CopilotBaseURL); s != "" </span><span class="cov4" title="7">{ a.CopilotBaseURL = s }</span> - <span class="cov3" title="4">if s := strings.TrimSpace(other.CopilotModel); s != "" </span><span class="cov3" title="3">{ + <span class="cov5" title="14">if s := strings.TrimSpace(other.CopilotModel); s != "" </span><span class="cov4" title="7">{ a.CopilotModel = s }</span> - <span class="cov3" title="4">if other.CopilotTemperature != nil </span><span class="cov3" title="3">{ // allow explicit 0.0 + <span class="cov5" title="14">if other.CopilotTemperature != nil </span><span class="cov4" title="7">{ // allow explicit 0.0 a.CopilotTemperature = other.CopilotTemperature }</span> } -func getConfigPath() (string, error) <span class="cov4" title="6">{ +func getConfigPath() (string, error) <span class="cov4" title="8">{ var configPath string - if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" </span><span class="cov4" title="5">{ + if xdgConfigHome := os.Getenv("XDG_CONFIG_HOME"); xdgConfigHome != "" </span><span class="cov4" title="7">{ configPath = filepath.Join(xdgConfigHome, "hexai", "config.toml") }</span> else<span class="cov1" title="1"> { home, err := os.UserHomeDir() @@ -413,22 +845,22 @@ func getConfigPath() (string, error) <span class="cov4" title="6">{ }</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="8">return configPath, nil</span> } // --- Environment overrides --- // loadFromEnv constructs an App containing only fields set via HEXAI_* env vars. // These values should take precedence over file config when merged. -func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="5">{ +func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="7">{ 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">{ + getenv := func(k string) string </span><span class="cov10" title="168">{ return strings.TrimSpace(os.Getenv(k)) }</span> + <span class="cov4" title="7">parseInt := func(k string) (int, bool) </span><span class="cov7" title="49">{ v := getenv(k) - if v == "" </span><span class="cov7" title="28">{ + if v == "" </span><span class="cov7" title="42">{ return 0, false }</span> <span class="cov4" title="7">n, err := strconv.Atoi(v) @@ -440,9 +872,9 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="5">{ } <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">{ + <span class="cov4" title="7">parseFloatPtr := func(k string) (*float64, bool) </span><span class="cov6" title="28">{ v := getenv(k) - if v == "" </span><span class="cov6" title="16">{ + if v == "" </span><span class="cov6" title="24">{ return nil, false }</span> <span class="cov3" title="4">f, err := strconv.ParseFloat(v, 64) @@ -455,65 +887,65 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="5">{ <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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + for _, p := range parts </span><span class="cov2" title="3">{ + if t := strings.TrimSpace(p); t != "" </span><span class="cov2" title="3">{ out.TriggerCharacters = append(out.TriggerCharacters, t) }</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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ @@ -523,52 +955,52 @@ func loadFromEnv(logger *log.Logger) *App <span class="cov4" title="5">{ } <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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">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">{ + <span class="cov4" title="7">if !any </span><span class="cov4" title="6">{ return nil }</span> <span class="cov1" title="1">return &out</span> @@ -600,13 +1032,24 @@ func Run(ctx context.Context, args []string, stdin io.Reader, stdout, stderr io. // Load configuration with a logger so file-based config is respected. logger := log.New(stderr, "hexai ", log.LstdFlags|log.Lmsgprefix) cfg := appconfig.Load(logger) - client, err := newClientFromConfig(cfg) - if err != nil </span><span class="cov1" title="1">{ - fmt.Fprintf(stderr, logging.AnsiBase+"hexai: LLM disabled: %v"+logging.AnsiReset+"\n", err) - return err - }</span> - - <span class="cov0" title="0">return RunWithClient(ctx, args, stdin, stdout, stderr, client)</span> + client, err := newClientFromConfig(cfg) + if err != nil </span><span class="cov1" title="1">{ + fmt.Fprintf(stderr, logging.AnsiBase+"hexai: LLM disabled: %v"+logging.AnsiReset+"\n", err) + return err + }</span> + // Inline the flow here to use configured CLI prompts. + <span class="cov0" title="0">input, rerr := readInput(stdin, args) + if rerr != nil </span><span class="cov0" title="0">{ + fmt.Fprintln(stderr, logging.AnsiBase+rerr.Error()+logging.AnsiReset) + return rerr + }</span> + <span class="cov0" title="0">printProviderInfo(stderr, client) + msgs := buildMessagesFromConfig(cfg, input) + if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil </span><span class="cov0" title="0">{ + fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err) + return err + }</span> + <span class="cov0" title="0">return nil</span> } // RunWithClient executes the CLI flow using an already-constructed client. @@ -618,7 +1061,7 @@ func RunWithClient(ctx context.Context, args []string, stdin io.Reader, stdout, return err }</span> <span class="cov1" title="1">printProviderInfo(stderr, client) - msgs := buildMessages(input) + msgs := buildMessages(input) if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil </span><span class="cov1" title="1">{ fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err) return err @@ -686,6 +1129,21 @@ func buildMessages(input string) []llm.Message <span class="cov10" title="6">{ }</span> } +// buildMessagesFromConfig uses configured CLI system prompts. +func buildMessagesFromConfig(cfg appconfig.App, input string) []llm.Message <span class="cov0" title="0">{ + lower := strings.ToLower(input) + system := cfg.PromptCLIDefaultSystem + if strings.Contains(lower, "explain") </span><span class="cov0" title="0">{ + if strings.TrimSpace(cfg.PromptCLIExplainSystem) != "" </span><span class="cov0" title="0">{ + system = cfg.PromptCLIExplainSystem + }</span> + } + <span class="cov0" title="0">return []llm.Message{ + {Role: "system", Content: system}, + {Role: "user", Content: input}, + }</span> +} + // runChat executes the chat request, handling streaming and summary output. func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input string, out io.Writer, errw io.Writer) error <span class="cov7" title="4">{ start := time.Now() @@ -827,23 +1285,41 @@ 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, + + // Prompts + PromptCompSysGeneral: cfg.PromptCompletionSystemGeneral, + PromptCompSysParams: cfg.PromptCompletionSystemParams, + PromptCompSysInline: cfg.PromptCompletionSystemInline, + PromptCompUserGeneral: cfg.PromptCompletionUserGeneral, + PromptCompUserParams: cfg.PromptCompletionUserParams, + PromptCompExtraHeader: cfg.PromptCompletionExtraHeader, + PromptNativeCompletion: cfg.PromptNativeCompletion, + PromptChatSystem: cfg.PromptChatSystem, + PromptRewriteSystem: cfg.PromptCodeActionRewriteSystem, + PromptDiagnosticsSystem: cfg.PromptCodeActionDiagnosticsSystem, + PromptDocumentSystem: cfg.PromptCodeActionDocumentSystem, + PromptRewriteUser: cfg.PromptCodeActionRewriteUser, + PromptDiagnosticsUser: cfg.PromptCodeActionDiagnosticsUser, + PromptDocumentUser: cfg.PromptCodeActionDocumentUser, + PromptGoTestSystem: cfg.PromptCodeActionGoTestSystem, + PromptGoTestUser: cfg.PromptCodeActionGoTestUser, + } }</span> </pre> @@ -1822,7 +2298,7 @@ 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="20">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> } +func WithMaxTokens(n int) RequestOption <span class="cov10" title="25">{ return func(o *Options) </span><span class="cov1" title="1">{ o.MaxTokens = n }</span> } func 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> } @@ -1849,16 +2325,16 @@ type Config struct { // by the caller; other environment-based configuration is not used. 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">{ + if p == "" </span><span class="cov6" title="7">{ p = "openai" }</span> <span class="cov8" title="14">switch p </span>{ case "openai":<span class="cov7" title="10"> - if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov5" title="4">{ + if strings.TrimSpace(openAIAPIKey) == "" </span><span class="cov4" title="4">{ return nil, errors.New("missing OPENAI_API_KEY for provider openai") }</span> // Set coding-friendly default temperature if none provided - <span class="cov6" title="6">if cfg.OpenAITemperature == nil </span><span class="cov5" title="4">{ + <span class="cov6" title="6">if cfg.OpenAITemperature == nil </span><span class="cov4" title="4">{ t := 0.2 cfg.OpenAITemperature = &t }</span> @@ -1869,7 +2345,7 @@ func NewFromConfig(cfg Config, openAIAPIKey, copilotAPIKey string) (Client, erro 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"> + case "copilot":<span class="cov2" title="2"> if strings.TrimSpace(copilotAPIKey) == "" </span><span class="cov1" title="1">{ return nil, errors.New("missing COPILOT_API_KEY for provider copilot") }</span> @@ -1952,11 +2428,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="141">{ - if std == nil </span><span class="cov9" title="101">{ +func Logf(prefix, format string, args ...any) <span class="cov10" title="143">{ + if std == nil </span><span class="cov9" title="102">{ return }</span> - <span class="cov7" title="40">msg := fmt.Sprintf(format, args...) + <span class="cov7" title="41">msg := fmt.Sprintf(format, args...) std.Print(AnsiBase + prefix + msg + AnsiReset)</span> } @@ -2079,7 +2555,7 @@ type document struct { lines []string } -func (s *Server) setDocument(uri, text string) <span class="cov8" title="27">{ +func (s *Server) setDocument(uri, text string) <span class="cov8" title="32">{ s.mu.Lock() defer s.mu.Unlock() s.docs[uri] = &document{uri: uri, text: text, lines: splitLines(text)} @@ -2097,14 +2573,14 @@ func (s *Server) markActivity() <span class="cov3" title="4">{ s.mu.Unlock() }</span> -func (s *Server) getDocument(uri string) *document <span class="cov9" title="46">{ +func (s *Server) getDocument(uri string) *document <span class="cov9" title="51">{ 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="66">{ +func splitLines(sx string) []string <span class="cov10" title="76">{ sx = strings.ReplaceAll(sx, "\r\n", "\n") return strings.Split(sx, "\n") }</span> @@ -2195,20 +2671,20 @@ func hasAny(s string, needles []string) bool <span class="cov4" title="6">{ <span class="cov2" title="2">return false</span> } -func trimLen(s string) string <span class="cov8" title="39">{ +func trimLen(s string) string <span class="cov8" title="40">{ s = strings.TrimSpace(s) if len(s) > 200 </span><span class="cov1" title="1">{ return s[:200] + "…" }</span> - <span class="cov8" title="38">return s</span> + <span class="cov8" title="39">return s</span> } -func firstLine(s string) string <span class="cov7" title="21">{ +func firstLine(s string) string <span class="cov7" title="22">{ s = strings.ReplaceAll(s, "\r\n", "\n") if idx := strings.IndexByte(s, '\n'); idx >= 0 </span><span class="cov4" title="5">{ return s[:idx] }</span> - <span class="cov6" title="16">return s</span> + <span class="cov6" title="17">return s</span> } </pre> @@ -2402,33 +2878,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="13">{ +func (s *Server) completionCacheKey(p CompletionParams, above, current, below, funcCtx string, inParams bool, hasExtra bool, extraText string) string <span class="cov7" title="14">{ // 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="13">left := strings.TrimRight(current[:idx], " \t") + <span class="cov7" title="14">left := strings.TrimRight(current[:idx], " \t") right := "" - if idx < len(current) </span><span class="cov0" title="0">{ + if idx < len(current) </span><span class="cov1" title="1">{ right = current[idx:] }</span> - <span class="cov7" title="13">prov := "" + <span class="cov7" title="14">prov := "" model := "" - if s.llmClient != nil </span><span class="cov7" title="13">{ + if s.llmClient != nil </span><span class="cov7" title="14">{ prov = s.llmClient.Name() model = s.llmClient.DefaultModel() }</span> - <span class="cov7" title="13">temp := "" + <span class="cov7" title="14">temp := "" if s.codingTemperature != nil </span><span class="cov0" title="0">{ temp = fmt.Sprintf("%.3f", *s.codingTemperature) }</span> - <span class="cov7" title="13">extra := "" + <span class="cov7" title="14">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="13">return strings.Join([]string{ + <span class="cov7" title="14">return strings.Join([]string{ "v1", // version for future-proofing prov, model, @@ -2457,13 +2933,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="10">{ +func (s *Server) completionCachePut(key, value string) <span class="cov7" title="11">{ s.mu.Lock() defer s.mu.Unlock() - if s.compCache == nil </span><span class="cov2" title="2">{ + if s.compCache == nil </span><span class="cov3" title="3">{ s.compCache = make(map[string]string) }</span> - <span class="cov6" title="10">if _, exists := s.compCache[key]; !exists </span><span class="cov6" title="10">{ + <span class="cov7" title="11">if _, exists := s.compCache[key]; !exists </span><span class="cov7" title="11">{ s.compCacheOrder = append(s.compCacheOrder, key) s.compCache[key] = value if len(s.compCacheOrder) > 10 </span><span class="cov0" title="0">{ @@ -2472,7 +2948,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="10">return</span> + <span class="cov7" title="11">return</span> } // update existing and mark most-recent <span class="cov0" title="0">s.compCache[key] = value @@ -2554,15 +3030,15 @@ func (s *Server) isTriggerEvent(p CompletionParams, current string) bool <span c <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="cov7" title="11">{ +func (s *Server) makeCompletionItems(cleaned string, inParams bool, current string, p CompletionParams, docStr string) []CompletionItem <span class="cov7" title="12">{ 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="cov7" title="11">{ + if s.llmClient != nil </span><span class="cov7" title="12">{ detail = "Hexai " + s.llmClient.Name() + ":" + s.llmClient.DefaultModel() }</span> - <span class="cov7" title="11">return []CompletionItem{{ + <span class="cov7" title="12">return []CompletionItem{{ Label: label, Kind: 1, Detail: detail, @@ -2743,11 +3219,11 @@ func (s *Server) buildDiagnosticsCodeAction(p CodeActionParams, sel string) *Cod return &ca</span> } -func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class="cov6" title="9">{ +func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class="cov6" title="12">{ if s.llmClient == nil || len(ca.Data) == 0 </span><span class="cov0" title="0">{ return ca, false }</span> - <span class="cov6" title="9">var payload struct { + <span class="cov6" title="12">var payload struct { Type string `json:"type"` URI string `json:"uri"` Range Range `json:"range"` @@ -2758,39 +3234,13 @@ 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"> - 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) - defer cancel() - messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} - opts := s.llmRequestOpts() - if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov3" title="3">{ - if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov3" title="3">{ - 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 rewrite llm error: %v", err) - }</span> - 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") - for i, dgn := range payload.Diagnostics </span><span class="cov4" title="4">{ - if dgn.Source != "" </span><span class="cov0" title="0">{ - fmt.Fprintf(&b, "%d. [%s] %s\n", i+1, dgn.Source, dgn.Message) - }</span> else<span class="cov4" title="4"> { - fmt.Fprintf(&b, "%d. %s\n", i+1, dgn.Message) - }</span> - } - <span class="cov4" title="4">b.WriteString("\nSelected code:\n") - b.WriteString(payload.Selection) - ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second) - defer cancel() - messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: b.String()}} + <span class="cov6" title="12">switch payload.Type </span>{ + case "rewrite":<span class="cov4" title="4"> + sys := s.promptRewriteSystem + user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": payload.Instruction, "selection": payload.Selection}) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} opts := s.llmRequestOpts() if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov4" title="4">{ if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov4" title="4">{ @@ -2799,17 +3249,42 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) <span class return ca, true }</span> } else<span class="cov0" title="0"> { - logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err) + logging.Logf("lsp ", "codeAction rewrite 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}} + case "diagnostics":<span class="cov4" title="5"> + sys := s.promptDiagnosticsSystem + var b strings.Builder + for i, dgn := range payload.Diagnostics </span><span class="cov5" title="6">{ + if dgn.Source != "" </span><span class="cov0" title="0">{ + fmt.Fprintf(&b, "%d. [%s] %s\n", i+1, dgn.Source, dgn.Message) + }</span> else<span class="cov5" title="6"> { + fmt.Fprintf(&b, "%d. %s\n", i+1, dgn.Message) + }</span> + } + <span class="cov4" title="5">diagList := b.String() + user := renderTemplate(s.promptDiagnosticsUser, map[string]string{"diagnostics": diagList, "selection": payload.Selection}) + ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + opts := s.llmRequestOpts() + if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov4" title="5">{ + if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov4" title="5">{ + edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}} + ca.Edit = &edit + return ca, true + }</span> + } else<span class="cov0" title="0"> { + logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err) + }</span> + case "document":<span class="cov3" title="3"> + sys := s.promptDocumentSystem + user := renderTemplate(s.promptDocumentUser, map[string]string{"selection": payload.Selection}) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} opts := s.llmRequestOpts() - if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov2" title="2">{ - if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov2" title="2">{ + if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov3" title="3">{ + if out := stripCodeFences(strings.TrimSpace(text)); out != "" </span><span class="cov3" title="3">{ edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}} ca.Edit = &edit return ca, true @@ -3127,17 +3602,17 @@ func findGoFunctionAtLine(lines []string, idx int) (int, int) <span class="cov2" } // 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">{ +func (s *Server) generateGoTestFunction(funcCode string) string <span class="cov3" title="3">{ + if s.llmClient != nil </span><span class="cov2" title="2">{ + sys := s.promptGoTestSystem + user := renderTemplate(s.promptGoTestUser, map[string]string{"function": funcCode}) + ctx, cancel := context.WithTimeout(context.Background(), 8*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + opts := s.llmRequestOpts() + if out, err := s.llmClient.Chat(ctx, messages, opts...); err == nil </span><span class="cov2" title="2">{ cleaned := strings.TrimSpace(stripCodeFences(out)) - if cleaned != "" </span><span class="cov1" title="1">{ + if cleaned != "" </span><span class="cov2" title="2">{ return cleaned }</span> } else<span class="cov0" title="0"> { @@ -3409,24 +3884,28 @@ 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="cov8" title="10">{ +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="11">{ cc, ok := s.llmClient.(llm.CodeCompleter) if !ok </span><span class="cov6" title="6">{ return nil, false }</span> - <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 + <span class="cov6" title="5">before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position) + path := strings.TrimPrefix(p.TextDocument.URI, "file://") + // Build provider-native prompt from template + prompt := renderTemplate(s.promptNativeCompletion, map[string]string{ + "path": path, + "before": before, + }) lang := "" temp := 0.0 if s.codingTemperature != nil </span><span class="cov0" title="0">{ temp = *s.codingTemperature }</span> - <span class="cov5" title="4">prov := "" - if s.llmClient != nil </span><span class="cov5" title="4">{ + <span class="cov6" title="5">prov := "" + if s.llmClient != nil </span><span class="cov6" title="5">{ prov = s.llmClient.Name() }</span> - <span class="cov5" title="4">logging.Logf("lsp ", "completion path=codex provider=%s uri=%s", prov, path) + <span class="cov6" title="5">logging.Logf("lsp ", "completion path=codex provider=%s uri=%s", prov, path) ctx2, cancel2 := context.WithTimeout(context.Background(), 8*time.Second) defer cancel2() @@ -3435,21 +3914,21 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams, 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">{ + <span class="cov6" title="5">suggestions, err := cc.CodeCompletion(ctx2, prompt, after, 1, lang, temp) + if err == nil && len(suggestions) > 0 </span><span class="cov5" title="4">{ cleaned := strings.TrimSpace(suggestions[0]) - if cleaned != "" </span><span class="cov4" title="3">{ + if cleaned != "" </span><span class="cov5" title="4">{ cleaned = stripDuplicateAssignmentPrefix(current[:p.Position.Character], cleaned) - if cleaned != "" </span><span class="cov4" title="3">{ + if cleaned != "" </span><span class="cov5" title="4">{ cleaned = stripDuplicateGeneralPrefix(current[:p.Position.Character], cleaned) }</span> - <span class="cov4" title="3">if cleaned != "" && hasDoubleOpenTrigger(current) </span><span class="cov1" title="1">{ + <span class="cov5" title="4">if cleaned != "" && hasDoubleOpenTrigger(current) </span><span class="cov1" title="1">{ indent := leadingIndent(current) if indent != "" </span><span class="cov1" title="1">{ cleaned = applyIndent(indent, cleaned) }</span> } - <span class="cov4" title="3">if strings.TrimSpace(cleaned) != "" </span><span class="cov4" title="3">{ + <span class="cov5" title="4">if strings.TrimSpace(cleaned) != "" </span><span class="cov5" title="4">{ key := s.completionCacheKey(p, above, current, below, funcCtx, inParams, hasExtra, extraText) s.completionCachePut(key, cleaned) return s.makeCompletionItems(cleaned, inParams, current, p, docStr), true @@ -3463,9 +3942,9 @@ 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="12">{ +func (s *Server) waitForDebounce(ctx context.Context) <span class="cov8" title="13">{ d := s.completionDebounce - if d <= 0 </span><span class="cov8" title="10">{ + if d <= 0 </span><span class="cov8" title="11">{ return }</span> <span class="cov3" title="2">for </span><span class="cov5" title="4">{ @@ -3493,9 +3972,9 @@ func (s *Server) waitForDebounce(ctx context.Context) <span class="cov8" title=" // 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="12">{ +func (s *Server) waitForThrottle(ctx context.Context) bool <span class="cov8" title="13">{ interval := s.throttleInterval - if interval <= 0 </span><span class="cov7" title="9">{ + if interval <= 0 </span><span class="cov8" title="10">{ return true }</span> <span class="cov4" title="3">var wait time.Duration @@ -3524,19 +4003,35 @@ func (s *Server) waitForThrottle(ctx context.Context) bool <span class="cov8" ti } // buildCompletionMessages constructs the LLM messages for completion. -func (s *Server) buildCompletionMessages(inlinePrompt, hasExtra bool, extraText string, inParams bool, p CompletionParams, above, current, below, funcCtx string) []llm.Message <span class="cov7" title="9">{ - sysPrompt, userPrompt := buildPrompts(inParams, p, above, current, below, funcCtx) - messages := []llm.Message{ - {Role: "system", Content: sysPrompt}, - {Role: "user", Content: userPrompt}, - } - if hasExtra && extraText != "" </span><span class="cov1" title="1">{ - messages = append(messages, llm.Message{Role: "user", Content: "Additional context:\n" + extraText}) - }</span> - <span class="cov7" title="9">if inlinePrompt </span><span class="cov3" title="2">{ - messages[0].Content = "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only." - }</span> - <span class="cov7" title="9">return messages</span> +func (s *Server) buildCompletionMessages(inlinePrompt, hasExtra bool, extraText string, inParams bool, p CompletionParams, above, current, below, funcCtx string) []llm.Message <span class="cov8" title="13">{ + // Vars for templates + vars := map[string]string{ + "file": p.TextDocument.URI, + "function": funcCtx, + "above": above, + "current": current, + "below": below, + "char": fmt.Sprintf("%d", p.Position.Character), + } + sys := s.promptCompSysGeneral + userTpl := s.promptCompUserGeneral + if inParams </span><span class="cov3" title="2">{ + sys = s.promptCompSysParams + userTpl = s.promptCompUserParams + }</span> + <span class="cov8" title="13">if inlinePrompt && strings.TrimSpace(s.promptCompSysInline) != "" </span><span class="cov1" title="1">{ + sys = s.promptCompSysInline + }</span> + <span class="cov8" title="13">user := renderTemplate(userTpl, vars) + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + if hasExtra && strings.TrimSpace(extraText) != "" </span><span class="cov1" title="1">{ + extra := renderTemplate(s.promptCompExtraHeader, map[string]string{"context": extraText}) + if strings.TrimSpace(extra) == "" </span><span class="cov0" title="0">{ + extra = extraText + }</span> + <span class="cov1" title="1">messages = append(messages, llm.Message{Role: "user", Content: extra})</span> + } + <span class="cov8" title="13">return messages</span> } // postProcessCompletion normalizes and deduplicates completion text and applies indentation rules. @@ -3613,42 +4108,42 @@ 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="cov7" title="6">{ +func (s *Server) docBeforeAfter(uri string, pos Position) (string, string) <span class="cov8" title="7">{ d := s.getDocument(uri) if d == nil </span><span class="cov6" title="4">{ return "", "" }</span> // Clamp indices - <span class="cov3" title="2">line := pos.Line + <span class="cov5" title="3">line := pos.Line if line < 0 </span><span class="cov0" title="0">{ line = 0 }</span> - <span class="cov3" title="2">if line >= len(d.lines) </span><span class="cov1" title="1">{ + <span class="cov5" title="3">if line >= len(d.lines) </span><span class="cov1" title="1">{ line = len(d.lines) - 1 }</span> - <span class="cov3" title="2">col := pos.Character + <span class="cov5" title="3">col := pos.Character if col < 0 </span><span class="cov0" title="0">{ col = 0 }</span> - <span class="cov3" title="2">if col > len(d.lines[line]) </span><span class="cov1" title="1">{ + <span class="cov5" title="3">if col > len(d.lines[line]) </span><span class="cov1" title="1">{ col = len(d.lines[line]) }</span> // Build before - <span class="cov3" title="2">var b strings.Builder - for i := 0; i < line; i++ </span><span class="cov3" title="2">{ + <span class="cov5" title="3">var b strings.Builder + for i := 0; i < line; i++ </span><span class="cov5" title="3">{ b.WriteString(d.lines[i]) b.WriteByte('\n') }</span> - <span class="cov3" title="2">b.WriteString(d.lines[line][:col]) + <span class="cov5" title="3">b.WriteString(d.lines[line][:col]) before := b.String() // Build after var a strings.Builder a.WriteString(d.lines[line][col:]) - for i := line + 1; i < len(d.lines); i++ </span><span class="cov1" title="1">{ + for i := line + 1; i < len(d.lines); i++ </span><span class="cov3" title="2">{ a.WriteByte('\n') a.WriteString(d.lines[i]) }</span> - <span class="cov3" title="2">return before, a.String()</span> + <span class="cov5" title="3">return before, a.String()</span> } // --- in-editor chat (";C ...") --- @@ -3656,73 +4151,73 @@ 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="cov6" title="4">{ +func (s *Server) detectAndHandleChat(uri string) <span class="cov7" title="5">{ if s.llmClient == nil </span><span class="cov1" title="1">{ return }</span> - <span class="cov5" title="3">d := s.getDocument(uri) + <span class="cov6" title="4">d := s.getDocument(uri) if d == nil || len(d.lines) == 0 </span><span class="cov0" title="0">{ return }</span> - <span class="cov5" title="3">for i, raw := range d.lines </span><span class="cov7" title="5">{ + <span class="cov6" title="4">for i, raw := range d.lines </span><span class="cov7" title="6">{ // Find last non-space character index j := len(raw) - 1 - for j >= 0 </span><span class="cov6" title="4">{ + for j >= 0 </span><span class="cov7" title="5">{ if raw[j] == ' ' || raw[j] == '\t' </span><span class="cov0" title="0">{ j-- continue</span> } - <span class="cov6" title="4">break</span> + <span class="cov7" title="5">break</span> } - <span class="cov7" title="5">if j < 0 </span><span class="cov1" title="1">{ + <span class="cov7" title="6">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">{ + <span class="cov7" title="5">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">{ + <span class="cov5" title="3">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">{ + <span class="cov5" title="3">if j < 1 </span><span class="cov0" title="0">{ continue</span> } - <span class="cov3" title="2">prev := string(raw[j-1]) + <span class="cov5" title="3">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">{ + for _, pfx := range s.chatPrefixes </span><span class="cov5" title="3">{ + if prev == pfx </span><span class="cov5" title="3">{ isTrigger = true break</span> } } - <span class="cov3" title="2">if !isTrigger </span><span class="cov0" title="0">{ + <span class="cov5" title="3">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="cov3" title="2">k := i + 1 - for k < len(d.lines) && strings.TrimSpace(d.lines[k]) == "" </span><span class="cov6" title="4">{ + <span class="cov5" title="3">k := i + 1 + for k < len(d.lines) && strings.TrimSpace(d.lines[k]) == "" </span><span class="cov7" title="5">{ k++ }</span> - <span class="cov3" title="2">if k < len(d.lines) && strings.HasPrefix(strings.TrimSpace(d.lines[k]), ">") </span><span class="cov0" title="0">{ + <span class="cov5" title="3">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="cov3" title="2">removeCount := len(s.chatSuffix) + <span class="cov5" title="3">removeCount := len(s.chatSuffix) base := raw[:j+1-removeCount] prompt := strings.TrimSpace(base) if prompt == "" </span><span class="cov0" title="0">{ continue</span> } - <span class="cov3" title="2">lineIdx := i + <span class="cov5" title="3">lineIdx := i lastIdx := j - go func(prompt string, remove int) </span><span class="cov3" title="2">{ + go func(prompt string, remove int) </span><span class="cov5" title="3">{ ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second) defer cancel() - sys := "You are a helpful coding assistant. Answer concisely and clearly." - // Build short conversation history from the document above this line - history := s.buildChatHistory(uri, lineIdx, prompt) + sys := s.promptChatSystem + // Build short conversation history from the document above this line + history := s.buildChatHistory(uri, lineIdx, prompt) msgs := append([]llm.Message{{Role: "system", Content: sys}}, history...) opts := s.llmRequestOpts() logging.Logf("lsp ", "chat llm=requesting model=%s", s.llmClient.DefaultModel()) @@ -3731,26 +4226,26 @@ func (s *Server) detectAndHandleChat(uri string) <span class="cov6" title="4">{ logging.Logf("lsp ", "chat llm error: %v", err) return }</span> - <span class="cov3" title="2">out := strings.TrimSpace(stripCodeFences(text)) + <span class="cov5" title="3">out := strings.TrimSpace(stripCodeFences(text)) if out == "" </span><span class="cov0" title="0">{ return }</span> - <span class="cov3" title="2">s.applyChatEdits(uri, lineIdx, lastIdx, remove, "> "+out)</span> + <span class="cov5" title="3">s.applyChatEdits(uri, lineIdx, lastIdx, remove, "> "+out)</span> }(prompt, removeCount) // Only handle one per change tick to avoid flooding - <span class="cov3" title="2">break</span> + <span class="cov5" title="3">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="cov3" title="2">{ +func (s *Server) applyChatEdits(uri string, lineIdx int, lastNonSpace int, removeCount int, response string) <span class="cov5" title="3">{ 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="cov3" title="2">delStart := Position{Line: lineIdx, Character: lastNonSpace + 1 - removeCount} + <span class="cov5" title="3">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])} @@ -3766,12 +4261,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="cov5" title="3">{ +func (s *Server) buildChatHistory(uri string, lineIdx int, currentPrompt string) []llm.Message <span class="cov6" title="4">{ d := s.getDocument(uri) if d == nil </span><span class="cov0" title="0">{ return []llm.Message{{Role: "user", Content: currentPrompt}} }</span> - <span class="cov5" title="3">type pair struct{ q, a string } + <span class="cov6" title="4">type pair struct{ q, a string } pairs := []pair{} i := lineIdx - 1 for i >= 0 && len(pairs) < 3 </span><span class="cov3" title="2">{ @@ -3805,7 +4300,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="cov5" title="3">msgs := make([]llm.Message, 0, len(pairs)*2+1) + <span class="cov6" title="4">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}) @@ -3814,7 +4309,7 @@ func (s *Server) buildChatHistory(uri string, lineIdx int, currentPrompt string) msgs = append(msgs, llm.Message{Role: "assistant", Content: p.a}) }</span> } - <span class="cov5" title="3">msgs = append(msgs, llm.Message{Role: "user", Content: currentPrompt}) + <span class="cov6" title="4">msgs = append(msgs, llm.Message{Role: "user", Content: currentPrompt}) return msgs</span> } @@ -3844,7 +4339,7 @@ func stripTrailingTrigger(sx string) string <span class="cov8" title="8">{ } // clientApplyEdit sends a workspace/applyEdit request to the client. -func (s *Server) clientApplyEdit(label string, edit WorkspaceEdit) <span class="cov3" title="2">{ +func (s *Server) clientApplyEdit(label string, edit WorkspaceEdit) <span class="cov5" title="3">{ params := ApplyWorkspaceEditParams{Label: label, Edit: edit} id := s.nextReqID() req := Request{JSONRPC: "2.0", ID: id, Method: "workspace/applyEdit"} @@ -3854,7 +4349,7 @@ func (s *Server) clientApplyEdit(label string, edit WorkspaceEdit) <span class=" }</span> // nextReqID returns a unique json.RawMessage id for server-initiated requests. -func (s *Server) nextReqID() json.RawMessage <span class="cov7" title="5">{ +func (s *Server) nextReqID() json.RawMessage <span class="cov7" title="6">{ s.mu.Lock() s.nextID++ idNum := s.nextID @@ -3974,12 +4469,11 @@ func (s *Server) handleExit() <span class="cov0" title="0">{ package lsp import ( - "fmt" - "strings" - "time" + "strings" + "time" - "codeberg.org/snonux/hexai/internal/llm" - "codeberg.org/snonux/hexai/internal/logging" + "codeberg.org/snonux/hexai/internal/llm" + "codeberg.org/snonux/hexai/internal/logging" ) // Configurable inline trigger characters (default to '>') used by free helpers below. @@ -3990,12 +4484,12 @@ var ( ) // llmRequestOpts builds request options from server settings. -func (s *Server) llmRequestOpts() []llm.RequestOption <span class="cov5" title="12">{ +func (s *Server) llmRequestOpts() []llm.RequestOption <span class="cov6" title="17">{ 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="12">return opts</span> + <span class="cov6" title="17">return opts</span> } // small helpers for LLM traffic stats @@ -4045,18 +4539,20 @@ func inParamList(current string, cursor int) bool <span class="cov5" title="11"> return open >= 0 && cursor > open && (close == -1 || cursor <= close)</span> } -func buildPrompts(inParams bool, p CompletionParams, above, current, below, funcCtx string) (string, string) <span class="cov6" title="13">{ - if inParams </span><span class="cov2" title="2">{ - sys := "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types." - user := fmt.Sprintf("Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: %s\nCurrent line (cursor at %d): %s", funcCtx, p.Position.Character, current) - return sys, user - }</span> - <span class="cov5" title="11">sys := "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression)." - user := fmt.Sprintf("Provide the next likely code to insert at the cursor.\nFile: %s\nFunction/context: %s\nAbove line: %s\nCurrent line (cursor at character %d): %s\nBelow line: %s\nOnly return the completion snippet.", p.TextDocument.URI, funcCtx, above, p.Position.Character, current, below) - return sys, user</span> +// renderTemplate performs simple {{var}} replacement in a template string. +func renderTemplate(t string, vars map[string]string) string <span class="cov7" title="33">{ + if t == "" </span><span class="cov5" title="9">{ + return t + }</span> + <span class="cov7" title="24">out := t + for k, v := range vars </span><span class="cov9" title="79">{ + placeholder := "{{" + k + "}}" + out = strings.ReplaceAll(out, placeholder, v) + }</span> + <span class="cov7" title="24">return out</span> } -func computeTextEditAndFilter(cleaned string, inParams bool, current string, p CompletionParams) (*TextEdit, string) <span class="cov6" title="16">{ +func computeTextEditAndFilter(cleaned string, inParams bool, current string, p CompletionParams) (*TextEdit, string) <span class="cov6" title="17">{ if inParams </span><span class="cov3" title="3">{ open := strings.Index(current, "(") close := strings.Index(current, ")") @@ -4077,25 +4573,25 @@ func computeTextEditAndFilter(cleaned string, inParams bool, current string, p C <span class="cov3" title="3">return te, filter</span> } } - <span class="cov6" title="13">startChar := computeWordStart(current, p.Position.Character) + <span class="cov6" title="14">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="22">{ +func computeWordStart(current string, at int) int <span class="cov7" title="23">{ if at > len(current) </span><span class="cov0" title="0">{ at = len(current) }</span> - <span class="cov7" title="22">for at > 0 </span><span class="cov8" title="38">{ + <span class="cov7" title="23">for at > 0 </span><span class="cov8" title="39">{ ch := current[at-1] - if (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || ch == '_' </span><span class="cov6" title="20">{ + if (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || ch == '_' </span><span class="cov6" title="21">{ at-- continue</span> } <span class="cov6" title="18">break</span> } - <span class="cov7" title="22">return at</span> + <span class="cov7" title="23">return at</span> } func isIdentChar(ch byte) bool <span class="cov7" title="24">{ @@ -4205,7 +4701,7 @@ func isBareDoubleOpen(line string) bool <span class="cov6" title="19">{ } // stripDuplicateAssignmentPrefix removes a duplicated assignment prefix from the suggestion. -func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="18">{ +func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="19">{ 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">{ @@ -4223,7 +4719,7 @@ func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) strin } } // Fallback to plain '=' if present - <span class="cov6" title="14">if idx := strings.LastIndex(prefixBeforeCursor, "="); idx >= 0 </span><span class="cov2" title="2">{ + <span class="cov6" title="15">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">{ @@ -4239,20 +4735,20 @@ func stripDuplicateAssignmentPrefix(prefixBeforeCursor, suggestion string) strin } } } - <span class="cov5" title="12">return suggestion</span> + <span class="cov6" title="13">return suggestion</span> } // stripDuplicateGeneralPrefix removes any already-typed prefix that the model repeated. -func stripDuplicateGeneralPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="18">{ +func stripDuplicateGeneralPrefix(prefixBeforeCursor, suggestion string) string <span class="cov6" title="19">{ if suggestion == "" </span><span class="cov0" title="0">{ return suggestion }</span> - <span class="cov6" title="18">s := strings.TrimLeft(suggestion, " \t") + <span class="cov6" title="19">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="cov6" title="13">for k := len(p) - 1; k > 0; k-- </span><span class="cov10" title="100">{ + <span class="cov6" title="14">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> } @@ -4264,7 +4760,7 @@ func stripDuplicateGeneralPrefix(prefixBeforeCursor, suggestion string) string < return strings.TrimLeft(s[len(suf):], " \t") }</span> } - <span class="cov6" title="13">return suggestion</span> + <span class="cov6" title="14">return suggestion</span> } func isIdentBoundary(ch byte) bool <span class="cov10" title="100">{ @@ -4272,30 +4768,30 @@ func isIdentBoundary(ch byte) bool <span class="cov10" title="100">{ }</span> // stripCodeFences removes surrounding Markdown code fences from a model response. -func stripCodeFences(s string) string <span class="cov7" title="31">{ +func stripCodeFences(s string) string <span class="cov8" title="36">{ t := strings.TrimSpace(s) if t == "" </span><span class="cov0" title="0">{ return t }</span> - <span class="cov7" title="31">lines := splitLines(t) + <span class="cov8" title="36">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="31">end := len(lines) - 1 + <span class="cov8" title="36">end := len(lines) - 1 for end >= 0 && strings.TrimSpace(lines[end]) == "" </span><span class="cov0" title="0">{ end-- }</span> - <span class="cov7" title="31">if start >= len(lines) || end < 0 || start > end </span><span class="cov0" title="0">{ + <span class="cov8" title="36">if start >= len(lines) || end < 0 || start > end </span><span class="cov0" title="0">{ return t }</span> - <span class="cov7" title="31">first := strings.TrimSpace(lines[start]) + <span class="cov8" title="36">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="23">return t</span> + <span class="cov7" title="28">return t</span> } // stripInlineCodeSpan returns the contents of the first inline backtick code span if present. @@ -4317,9 +4813,9 @@ 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="17">{ +func labelForCompletion(cleaned, filter string) string <span class="cov6" title="18">{ label := trimLen(firstLine(cleaned)) - if filter != "" && !strings.HasPrefix(strings.ToLower(label), strings.ToLower(filter)) </span><span class="cov3" title="3">{ + if filter != "" && !strings.HasPrefix(strings.ToLower(label), strings.ToLower(filter)) </span><span class="cov3" title="4">{ return filter }</span> <span class="cov6" title="14">return label</span> @@ -4371,32 +4867,32 @@ func extractRangeText(d *document, r Range) string <span class="cov3" title="4"> } // collectPromptRemovalEdits returns edits to remove all inline prompt markers. -func (s *Server) collectPromptRemovalEdits(uri string) []TextEdit <span class="cov5" title="12">{ +func (s *Server) collectPromptRemovalEdits(uri string) []TextEdit <span class="cov6" title="13">{ d := s.getDocument(uri) if d == nil || len(d.lines) == 0 </span><span class="cov5" title="11">{ return nil }</span> - <span class="cov1" title="1">var edits []TextEdit - for i, line := range d.lines </span><span class="cov3" title="4">{ + <span class="cov2" title="2">var edits []TextEdit + for i, line := range d.lines </span><span class="cov4" title="7">{ edits = append(edits, promptRemovalEditsForLine(line, i)...) }</span> - <span class="cov1" title="1">return edits</span> + <span class="cov2" title="2">return edits</span> } -func promptRemovalEditsForLine(line string, lineNum int) []TextEdit <span class="cov4" title="7">{ +func promptRemovalEditsForLine(line string, lineNum int) []TextEdit <span class="cov5" title="10">{ 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> + <span class="cov4" title="7">return collectSemicolonMarkers(line, lineNum)</span> } -func hasDoubleOpenTrigger(line string) bool <span class="cov8" title="51">{ +func hasDoubleOpenTrigger(line string) bool <span class="cov8" title="55">{ pos := 0 - for pos < len(line) </span><span class="cov8" title="53">{ + for pos < len(line) </span><span class="cov8" title="57">{ // 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">{ + if j < 0 </span><span class="cov8" title="36">{ return false }</span> <span class="cov6" title="21">j += pos @@ -4424,12 +4920,12 @@ func hasDoubleOpenTrigger(line string) bool <span class="cov8" title="51">{ <span class="cov3" title="3">return false</span> } -func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="cov4" title="5">{ +func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="cov5" title="8">{ var edits []TextEdit startSemi := 0 - for startSemi < len(line) </span><span class="cov5" title="9">{ + for startSemi < len(line) </span><span class="cov5" title="12">{ j := strings.IndexByte(line[startSemi:], inlineOpenChar) - if j < 0 </span><span class="cov3" title="4">{ + if j < 0 </span><span class="cov4" title="7">{ break</span> } <span class="cov4" title="5">j += startSemi @@ -4461,7 +4957,7 @@ func collectSemicolonMarkers(line string, lineNum int) []TextEdit <span class="c <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="cov5" title="8">return edits</span> } </pre> @@ -4525,7 +5021,29 @@ type Server struct { inlineOpen string inlineClose string chatSuffix string - chatPrefixes []string + chatPrefixes []string + + // Prompt templates + // Completion + promptCompSysGeneral string + promptCompSysParams string + promptCompSysInline string + promptCompUserGeneral string + promptCompUserParams string + promptCompExtraHeader string + // Provider-native code completion + promptNativeCompletion string + // In-editor chat + promptChatSystem string + // Code actions + promptRewriteSystem string + promptDiagnosticsSystem string + promptDocumentSystem string + promptRewriteUser string + promptDiagnosticsUser string + promptDocumentUser string + promptGoTestSystem string + promptGoTestUser string } // ServerOptions collects configuration for NewServer to avoid long parameter lists. @@ -4546,8 +5064,26 @@ type ServerOptions struct { // Inline/chat triggers InlineOpen string InlineClose string - ChatSuffix string - ChatPrefixes []string + ChatSuffix string + ChatPrefixes []string + + // Prompt templates + PromptCompSysGeneral string + PromptCompSysParams string + PromptCompSysInline string + PromptCompUserGeneral string + PromptCompUserParams string + PromptCompExtraHeader string + PromptNativeCompletion string + PromptChatSystem string + PromptRewriteSystem string + PromptDiagnosticsSystem string + PromptDocumentSystem string + PromptRewriteUser string + PromptDiagnosticsUser string + PromptDocumentUser string + PromptGoTestSystem string + PromptGoTestUser string } func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server <span class="cov10" title="6">{ @@ -4606,14 +5142,32 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) }</span> else<span class="cov6" title="3"> { s.chatSuffix = opts.ChatSuffix }</span> - <span class="cov10" title="6">if len(opts.ChatPrefixes) == 0 </span><span class="cov6" title="3">{ - s.chatPrefixes = []string{"?", "!", ":", ";"} - }</span> else<span class="cov6" title="3"> { - s.chatPrefixes = append([]string{}, opts.ChatPrefixes...) - }</span> + <span class="cov10" title="6">if len(opts.ChatPrefixes) == 0 </span><span class="cov6" title="3">{ + s.chatPrefixes = []string{"?", "!", ":", ";"} + }</span> else<span class="cov6" title="3"> { + s.chatPrefixes = append([]string{}, opts.ChatPrefixes...) + }</span> + + // Prompts + <span class="cov10" title="6">s.promptCompSysGeneral = opts.PromptCompSysGeneral + s.promptCompSysParams = opts.PromptCompSysParams + s.promptCompSysInline = opts.PromptCompSysInline + s.promptCompUserGeneral = opts.PromptCompUserGeneral + s.promptCompUserParams = opts.PromptCompUserParams + s.promptCompExtraHeader = opts.PromptCompExtraHeader + s.promptNativeCompletion = opts.PromptNativeCompletion + s.promptChatSystem = opts.PromptChatSystem + s.promptRewriteSystem = opts.PromptRewriteSystem + s.promptDiagnosticsSystem = opts.PromptDiagnosticsSystem + s.promptDocumentSystem = opts.PromptDocumentSystem + s.promptRewriteUser = opts.PromptRewriteUser + s.promptDiagnosticsUser = opts.PromptDiagnosticsUser + s.promptDocumentUser = opts.PromptDocumentUser + s.promptGoTestSystem = opts.PromptGoTestSystem + s.promptGoTestUser = opts.PromptGoTestUser // Assign package-level inline trigger chars for free helper functions - <span class="cov10" title="6">if s.inlineOpen != "" </span><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">{ @@ -4718,18 +5272,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="17">{ +func (s *Server) writeMessage(v any) <span class="cov10" title="18">{ 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="17">header := fmt.Sprintf("Content-Length: %d\r\n\r\n", len(data)) + <span class="cov10" title="18">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="17">if _, err := s.out.Write(data); err != nil </span><span class="cov0" title="0">{ + <span class="cov10" title="18">if _, err := s.out.Write(data); err != nil </span><span class="cov0" title="0">{ logging.Logf("lsp ", "write body error: %v", err) return }</span> diff --git a/docs/coverage.out b/docs/coverage.out index 8d4bdb0..379cd96 100644 --- a/docs/coverage.out +++ b/docs/coverage.out @@ -15,190 +15,311 @@ 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: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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.2,45.74 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:45.74,48.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.2,49.12 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.64,55.82 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.82,58.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.2,60.9 2 0 -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.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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.125,116.40 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.40,118.56 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.56,121.4 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.18,123.4 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.3,124.22 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.8,127.17 2 0 -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/appconfig/config.go:89.29,136.2 2 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 6 +codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 6 +codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 27 +codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 27 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 2 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 2 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 2 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 2 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 14 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 6 +codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 6 +codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 6 +codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 120 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 35 +codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 28 +codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 20 +codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 16 +codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 5 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0 codeberg.org/snonux/hexai/internal/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 @@ -222,7 +343,7 @@ 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:108.97,144.2 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0 @@ -713,153 +834,153 @@ 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:101.20,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_codeaction.go:117.24,120.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0 @@ -929,58 +1050,62 @@ 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_completion.go:228.5,237.32 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0 @@ -1096,238 +1221,240 @@ 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/handlers_utils.go:20.55,22.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0 @@ -1363,190 +1490,311 @@ 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: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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.2,45.74 3 1 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:45.74,48.3 2 1 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.2,49.12 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.64,55.82 2 5 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.82,58.3 2 4 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.2,60.9 2 5 -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.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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.125,116.40 3 4 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.40,118.56 2 1 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.56,121.4 2 3 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.18,123.4 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.3,124.22 1 1 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.8,127.17 2 3 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.17,129.4 1 2 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:130.3,131.26 2 1 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:133.2,136.12 3 2 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:140.59,142.2 1 2 +codeberg.org/snonux/hexai/internal/appconfig/config.go:89.29,136.2 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 24 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 5 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 4 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 5 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 2 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 6 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 6 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 4 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 3 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 2 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 1 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 2 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 2 codeberg.org/snonux/hexai/internal/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 @@ -1570,7 +1818,7 @@ 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:108.97,144.2 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0 @@ -1841,7 +2089,7 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0 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:87.13,89.3 1 1 codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 3 codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 2 codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 2 @@ -2061,153 +2309,153 @@ 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:101.20,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_codeaction.go:117.24,120.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0 @@ -2277,58 +2525,62 @@ 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_completion.go:228.5,237.32 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0 @@ -2444,238 +2696,240 @@ 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/handlers_utils.go:20.55,22.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0 @@ -2711,214 +2965,335 @@ 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: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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.2,45.74 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:45.74,48.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.2,49.12 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.64,55.82 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.82,58.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.2,60.9 2 0 -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.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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.125,116.40 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.40,118.56 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.56,121.4 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.18,123.4 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.3,124.22 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.8,127.17 2 0 -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/appconfig/config.go:89.29,136.2 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0 +codeberg.org/snonux/hexai/internal/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.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/hexailsp/run.go:68.2,82.36 3 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:82.36,84.3 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:86.2,87.36 2 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:87.36,89.3 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.2,90.67 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:90.67,93.3 2 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:93.8,96.3 2 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:99.57,100.20 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:100.20,102.3 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.2,103.97 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:103.97,105.3 1 0 +codeberg.org/snonux/hexai/internal/hexailsp/run.go:108.97,144.2 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0 @@ -3093,11 +3468,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 @@ -3115,8 +3490,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 @@ -3188,14 +3563,14 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 6 -codeberg.org/snonux/hexai/internal/llm/provider.go: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: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 @@ -3206,21 +3581,21 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0 codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0 codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0 -codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 5 -codeberg.org/snonux/hexai/internal/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/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/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 @@ -3409,153 +3784,153 @@ 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:101.20,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_codeaction.go:117.24,120.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0 @@ -3625,58 +4000,62 @@ 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_completion.go:228.5,237.32 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0 @@ -3792,241 +4171,243 @@ 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/handlers_utils.go:20.55,22.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0 +codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:23.3,23.17 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:23.17,24.9 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:26.3,27.22 2 0 @@ -4059,214 +4440,335 @@ 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: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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.2,45.74 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:45.74,48.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.2,49.12 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.64,55.82 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.82,58.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.2,60.9 2 0 -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.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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.125,116.40 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.40,118.56 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.56,121.4 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.18,123.4 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.3,124.22 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.8,127.17 2 0 -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/appconfig/config.go:89.29,136.2 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 3 +codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 2 +codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 24 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 7 +codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 4 +codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 1 +codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0 +codeberg.org/snonux/hexai/internal/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.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/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,144.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 @@ -4441,11 +4943,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 @@ -4463,8 +4965,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 @@ -4536,14 +5038,14 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:60.73,60.92 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:61.45,62.26 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:62.26,62.66 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:85.84,87.13 2 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:87.13,89.3 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:90.2,90.11 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:91.16,92.44 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:92.44,94.4 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:96.3,96.35 1 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:96.35,99.4 2 0 -codeberg.org/snonux/hexai/internal/llm/provider.go:100.3,100.97 1 0 +codeberg.org/snonux/hexai/internal/llm/provider.go: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 @@ -4554,21 +5056,21 @@ codeberg.org/snonux/hexai/internal/llm/provider.go:111.36,114.4 2 0 codeberg.org/snonux/hexai/internal/llm/provider.go:115.3,115.102 1 0 codeberg.org/snonux/hexai/internal/llm/provider.go:116.10,117.55 1 0 codeberg.org/snonux/hexai/internal/llm/util.go:6.47,6.77 1 0 -codeberg.org/snonux/hexai/internal/logging/chatlogger.go:9.48,11.2 1 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/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/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 @@ -4757,153 +5259,153 @@ 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:101.20,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_codeaction.go:117.24,120.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0 @@ -4973,58 +5475,62 @@ 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_completion.go:228.5,237.32 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0 @@ -5140,241 +5646,243 @@ 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/handlers_utils.go:20.55,22.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 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 @@ -5407,190 +5915,311 @@ 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: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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.2,45.74 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:45.74,48.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.2,49.12 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.64,55.82 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.82,58.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.2,60.9 2 0 -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.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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.125,116.40 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.40,118.56 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.56,121.4 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.18,123.4 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.3,124.22 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.8,127.17 2 0 -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/appconfig/config.go:89.29,136.2 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0 codeberg.org/snonux/hexai/internal/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 @@ -5614,7 +6243,7 @@ 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:108.97,144.2 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 8 codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 8 @@ -6105,153 +6734,153 @@ 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:101.20,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_codeaction.go:117.24,120.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:174.56,175.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:175.23,177.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:178.3,178.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.2,180.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:180.49,183.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:184.2,184.26 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:190.85,191.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:191.22,193.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:194.2,195.53 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:195.53,197.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.2,198.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:198.31,200.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:201.2,202.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:202.36,203.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:203.34,205.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:207.2,207.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:211.37,213.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:213.32,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.2,216.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:216.32,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.2,220.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:220.29,222.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:227.2,227.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:230.34,231.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:231.22,233.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:234.2,234.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:237.37,238.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:238.22,240.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:241.2,241.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:246.76,248.80 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:15.48,18.55 3 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:18.55,25.19 5 0 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:25.19,27.4 1 0 @@ -6321,58 +6950,62 @@ 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_completion.go:228.5,237.32 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.16 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:21.45,23.55 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:23.55,26.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:29.47,31.55 2 0 @@ -6488,238 +7121,240 @@ 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/handlers_utils.go:20.55,22.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:18.6,20.17 2 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:20.17,22.4 1 0 @@ -6760,190 +7395,311 @@ 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: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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.2,45.74 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:45.74,48.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:49.2,49.12 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:53.64,55.82 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:55.82,58.3 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:59.2,60.9 2 0 -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.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 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:113.125,116.40 3 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:116.40,118.56 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:118.56,121.4 2 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:121.18,123.4 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.3,124.22 1 0 -codeberg.org/snonux/hexai/internal/hexaicli/run.go:125.8,127.17 2 0 -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/appconfig/config.go:89.29,136.2 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:140.35,142.19 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:142.19,144.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:146.2,147.16 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:147.16,150.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:150.8,151.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:151.85,153.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.2,159.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:159.50,161.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:162.2,162.12 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:278.35,282.80 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:282.80,291.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.5,294.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:294.41,297.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.5,300.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:300.47,307.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.5,310.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:310.47,313.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.5,316.39 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:316.39,319.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.5,322.85 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:322.85,325.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.5,328.50 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:328.50,331.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.5,334.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:334.71,341.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.5,344.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:344.74,351.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.5,354.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:354.71,361.6 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.5,365.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:365.62,366.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:366.73,368.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.9,369.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:369.72,371.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.9,372.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:372.72,374.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.9,375.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:375.71,377.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.9,378.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:378.70,380.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.9,381.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:381.71,383.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.5,386.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:386.56,388.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.5,390.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:390.62,391.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:391.73,393.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.9,394.77 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:394.77,396.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.9,397.74 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:397.74,399.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.9,400.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:400.71,402.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.9,403.75 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:403.75,405.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.9,406.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:406.72,408.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.9,409.72 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:409.72,411.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.9,412.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:412.70,414.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.5,417.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:417.48,418.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:418.66,420.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.9,421.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:421.66,423.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.5,426.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:426.70,428.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:430.5,430.15 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:433.66,435.19 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:435.19,436.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:436.49,438.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:439.9,439.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:442.5,447.25 5 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:447.25,448.26 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:448.26,450.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:451.9,451.30 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:455.5,464.24 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:464.24,465.222 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:465.222,466.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.9,468.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:468.47,470.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.5,473.22 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:473.22,475.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:479.5,481.56 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:481.56,482.65 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:482.65,483.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:484.24,485.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:486.22,487.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:488.26,489.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.5,493.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:493.53,494.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:494.58,495.35 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:496.24,497.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:498.22,499.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:500.26,501.46 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:505.5,505.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:508.37,512.2 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:515.39,516.25 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:516.25,518.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.2,519.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:519.56,521.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.2,522.34 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:522.34,524.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.2,525.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:525.32,527.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.2,528.32 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:528.32,530.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.2,531.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:531.36,533.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.2,534.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:534.38,536.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.2,537.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:537.36,539.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.2,540.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:540.36,542.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.2,543.38 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:543.38,545.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.2,546.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:546.55,548.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.2,549.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:549.56,551.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.2,552.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:552.55,554.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.2,555.33 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:555.33,557.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.2,558.53 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:558.53,560.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:564.40,566.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:566.69,568.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.5,569.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:569.68,571.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.5,572.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:572.68,574.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.5,575.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:575.67,577.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.5,578.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:578.66,580.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.5,581.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:581.67,583.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.5,585.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:585.62,587.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.5,589.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:589.56,591.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.5,593.69 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:593.69,595.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.5,596.73 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:596.73,598.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.5,599.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:599.70,601.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.5,602.67 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:602.67,604.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.5,605.71 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:605.71,607.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.5,608.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:608.68,610.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.5,611.68 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:611.68,613.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.5,614.66 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:614.66,616.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.5,618.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:618.62,620.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.5,621.62 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:621.62,623.6 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:627.47,628.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:628.58,630.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.2,631.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:631.56,633.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.2,634.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:634.36,636.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.2,637.58 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:637.58,639.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.2,640.56 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:640.56,642.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.2,643.36 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:643.36,645.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.2,646.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:646.59,648.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.2,649.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:649.57,651.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.2,652.37 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:652.37,654.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:657.38,659.72 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:659.72,661.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:661.8,663.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:663.17,665.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:666.3,666.70 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:668.2,668.24 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:675.43,680.34 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:680.34,680.76 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.2,681.41 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:681.41,683.14 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:683.14,685.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:686.3,687.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:687.17,688.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:688.21,690.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:691.4,691.19 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:693.3,693.17 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.2,695.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:695.51,697.14 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:697.14,699.4 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:700.3,701.17 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:701.17,702.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:702.21,704.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:705.4,705.21 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:707.3,707.18 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.2,710.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:710.47,713.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.2,714.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:714.48,717.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.2,718.57 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:718.57,721.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.2,722.55 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:722.55,725.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.2,726.54 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:726.54,729.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.2,730.61 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:730.61,733.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.2,734.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:734.59,737.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.2,738.59 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:738.59,741.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.2,742.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:742.60,745.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.2,746.54 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:746.54,749.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:749.27,750.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:750.42,752.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:754.3,754.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.2,756.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:756.47,759.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.2,760.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:760.48,763.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.2,764.47 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:764.47,767.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.2,768.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:768.49,771.27 3 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:771.27,772.42 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:772.42,774.5 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:776.3,776.13 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.2,778.44 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:778.44,781.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.2,784.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:784.51,787.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.2,788.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:788.48,791.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.2,792.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:792.60,795.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.2,797.51 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:797.51,800.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.2,801.48 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:801.48,804.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.2,805.60 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:805.60,808.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.2,810.52 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:810.52,813.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.2,814.49 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:814.49,817.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.2,818.61 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:818.61,821.3 2 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.2,823.10 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:823.10,825.3 1 0 +codeberg.org/snonux/hexai/internal/appconfig/config.go:826.2,826.13 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:22.95,27.19 4 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:27.19,30.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:32.5,33.20 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:33.20,36.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:37.5,39.77 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:39.77,42.6 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:43.5,43.15 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:48.124,50.16 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:50.16,53.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:54.2,56.74 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:56.74,59.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:60.2,60.12 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:64.64,66.82 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:66.82,69.3 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:70.2,71.9 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:72.40,73.59 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:74.23,75.24 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:76.21,77.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:78.10,79.91 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:84.65,99.36 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:99.36,101.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:103.2,104.36 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:104.36,106.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:107.2,107.48 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:111.48,114.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:114.40,116.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:117.2,120.3 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:124.77,127.43 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:127.43,128.64 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:128.64,130.10 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:132.5,135.6 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:139.125,142.40 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:142.40,144.56 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:144.56,147.4 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:147.18,149.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:150.3,150.22 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:151.8,153.17 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:153.17,155.4 1 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:156.3,157.26 2 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:159.2,162.12 3 0 +codeberg.org/snonux/hexai/internal/hexaicli/run.go:166.59,168.2 1 0 codeberg.org/snonux/hexai/internal/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 @@ -6967,7 +7723,7 @@ 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:108.97,144.2 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:66.77,67.38 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:67.38,69.3 1 0 codeberg.org/snonux/hexai/internal/llm/copilot.go:70.2,70.36 1 0 @@ -7233,7 +7989,7 @@ 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 19 +codeberg.org/snonux/hexai/internal/llm/provider.go:60.47,60.73 1 24 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 @@ -7261,9 +8017,9 @@ 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 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 32 +codeberg.org/snonux/hexai/internal/logging/logging.go:30.47,31.16 1 38 +codeberg.org/snonux/hexai/internal/logging/logging.go:31.16,33.3 1 5 +codeberg.org/snonux/hexai/internal/logging/logging.go:34.2,35.48 2 33 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 @@ -7297,11 +8053,11 @@ 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:15.48,19.2 3 32 codeberg.org/snonux/hexai/internal/lsp/document.go:21.45,25.2 3 1 codeberg.org/snonux/hexai/internal/lsp/document.go:27.33,31.2 3 4 -codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 46 -codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 66 +codeberg.org/snonux/hexai/internal/lsp/document.go:33.52,37.2 3 51 +codeberg.org/snonux/hexai/internal/lsp/document.go:40.37,43.2 2 76 codeberg.org/snonux/hexai/internal/lsp/document.go: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 @@ -7340,12 +8096,12 @@ 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 39 +codeberg.org/snonux/hexai/internal/lsp/document.go:131.31,133.18 2 40 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 38 -codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 21 +codeberg.org/snonux/hexai/internal/lsp/document.go:136.2,136.10 1 39 +codeberg.org/snonux/hexai/internal/lsp/document.go:139.33,141.49 2 22 codeberg.org/snonux/hexai/internal/lsp/document.go:141.49,143.3 1 5 -codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 16 +codeberg.org/snonux/hexai/internal/lsp/document.go:144.2,144.10 1 17 codeberg.org/snonux/hexai/internal/lsp/handlers.go:10.38,11.41 1 2 codeberg.org/snonux/hexai/internal/lsp/handlers.go:11.41,14.3 2 1 codeberg.org/snonux/hexai/internal/lsp/handlers.go:15.2,15.22 1 1 @@ -7375,26 +8131,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 13 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:191.151,194.24 2 14 codeberg.org/snonux/hexai/internal/lsp/handlers.go:194.24,196.3 1 0 -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 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:197.2,199.24 3 14 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:199.24,201.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:202.2,204.24 3 14 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:204.24,207.3 2 14 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:208.2,209.32 2 14 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 13 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:212.2,213.14 2 14 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 13 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:217.2,231.12 1 14 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 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:246.56,249.24 3 11 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:249.24,251.3 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.2,252.44 1 11 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:252.44,255.33 3 11 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 10 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:261.3,261.9 1 11 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 @@ -7425,9 +8181,9 @@ 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:343.137,348.24 5 12 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:348.24,350.3 1 12 +codeberg.org/snonux/hexai/internal/lsp/handlers.go:351.2,361.4 1 12 codeberg.org/snonux/hexai/internal/lsp/handlers.go:436.74,445.2 1 1 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 @@ -7453,158 +8209,158 @@ 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:85.70,86.45 1 12 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:89.2,97.58 2 12 codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:97.58,99.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:100.2,100.22 1 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:100.2,100.22 1 12 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:101.20,108.72 7 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:108.72,109.66 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:109.66,113.5 3 4 codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:114.9,116.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:117.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_codeaction.go:117.24,120.49 3 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:120.49,121.33 1 6 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:121.33,123.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:123.19,125.14 1 6 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:127.9,133.78 7 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:133.78,134.75 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:134.75,138.14 3 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:139.15,141.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:142.21,149.72 7 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:149.72,150.66 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:150.66,154.5 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:155.9,157.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:158.17,159.92 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:159.92,167.4 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:169.2,169.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:172.55,174.56 2 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.80 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:248.80,250.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.2,252.71 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:252.71,254.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:256.2,257.41 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:257.41,259.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:260.2,267.12 4 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:271.86,272.24 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:272.24,274.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.2,275.34 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:275.34,277.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:278.2,286.12 4 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:289.95,291.76 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:291.76,293.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:295.2,296.21 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:296.21,298.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:299.2,301.36 3 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:301.36,303.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:304.2,306.39 3 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:306.39,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:310.2,314.26 3 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:314.26,320.22 4 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:320.22,323.4 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:324.3,326.102 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:326.102,328.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:329.3,336.40 6 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:336.40,338.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:339.3,341.19 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:341.19,343.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:344.3,345.33 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:348.2,349.15 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:349.15,351.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:352.2,367.13 13 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:367.13,370.3 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:371.2,372.32 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:376.62,377.39 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:377.39,379.3 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:380.2,382.16 3 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:382.16,384.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:385.2,386.29 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:389.35,390.41 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:390.41,392.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:393.2,393.14 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:397.48,398.27 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:398.27,400.39 2 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:400.39,403.45 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:403.45,405.5 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.4,406.46 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:406.46,408.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.4,409.46 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:409.46,411.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:412.4,412.15 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:415.2,415.11 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:419.63,420.13 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:420.13,422.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.2,423.23 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:423.23,425.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:427.2,428.28 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:428.28,429.42 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:429.42,431.9 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.3,433.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:433.38,434.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.2,437.17 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:437.17,439.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:441.2,443.38 3 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:443.38,445.32 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:445.32,446.17 1 47 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:447.13,449.20 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:450.13,451.18 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:451.18,453.6 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.5,454.31 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:454.31,456.6 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.2,461.15 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:461.15,463.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:464.2,464.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:468.65,469.27 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:469.27,476.71 7 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:476.71,478.21 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:478.21,480.5 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:481.9,483.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:486.2,487.16 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:487.16,489.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:490.2,490.115 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:494.43,498.39 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:498.39,500.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:501.2,503.34 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:503.34,505.63 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:505.63,507.4 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.2,510.42 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:510.42,512.3 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:513.2,513.11 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:516.37,517.16 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:517.16,519.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:520.2,521.32 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:521.32,523.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_codeaction.go:524.2,524.18 1 1 codeberg.org/snonux/hexai/internal/lsp/handlers_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 @@ -7672,60 +8428,64 @@ 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:223.193,225.9 2 11 codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:225.9,227.3 1 6 -codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:228.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_completion.go:228.5,237.32 6 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:237.32,239.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:240.2,241.24 2 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:241.24,243.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:244.2,250.30 5 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:250.30,252.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:253.2,254.40 2 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:254.40,256.20 2 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:256.20,258.21 2 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:258.21,260.5 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.4,261.54 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:261.54,263.21 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:263.21,265.6 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.4,267.40 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:267.40,271.5 3 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.8,273.23 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:273.23,275.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:276.2,276.19 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:281.55,283.12 2 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:283.12,285.3 1 11 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.2,286.6 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:286.6,290.20 4 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:290.20,292.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:293.3,294.17 2 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:294.17,296.4 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:297.3,299.10 3 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:300.21,302.10 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:303.18,303.18 0 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:311.60,313.19 2 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:313.19,315.3 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:316.2,317.6 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:317.6,321.23 4 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:321.23,325.11 4 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:326.22,328.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:329.19,331.13 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:335.3,337.14 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:342.177,354.17 4 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:354.17,357.6 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.5,358.71 1 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:358.71,360.6 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:361.5,363.55 3 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:363.55,365.43 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:365.43,367.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:368.9,368.79 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:370.5,370.20 1 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:374.101,376.57 2 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:376.57,377.78 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:377.78,379.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.2,381.19 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:381.19,383.3 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.2,384.19 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:384.19,386.3 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.2,387.56 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:387.56,388.57 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:388.57,390.4 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go:392.2,392.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 @@ -7734,62 +8494,62 @@ 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:52.76,54.14 2 7 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:58.2,59.14 2 3 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.2,62.26 1 3 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:65.2,66.13 2 3 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.2,69.30 1 3 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:73.2,74.28 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:74.28,77.3 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:78.2,83.43 5 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:83.43,86.3 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:87.2,87.27 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.50,96.24 1 5 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:99.2,100.35 2 4 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:103.2,103.30 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:103.30,106.14 2 6 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.14,107.39 1 5 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:111.4,111.9 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:113.3,113.12 1 6 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.3,117.25 1 5 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.3,121.37 1 3 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.3,125.12 1 3 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:128.3,130.38 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.38,131.19 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.19,133.10 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:136.3,136.17 1 3 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:140.3,141.63 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 3 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:148.3,151.19 4 3 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:154.3,156.38 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.38,166.18 9 3 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:170.4,171.17 2 3 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:174.4,174.61 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.3,177.8 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.110,185.14 2 3 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:189.2,200.54 8 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:205.96,207.14 2 4 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:210.2,213.31 4 4 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 @@ -7805,12 +8565,12 @@ 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:244.2,245.26 2 4 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:253.2,254.13 2 4 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 @@ -7820,8 +8580,8 @@ 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:283.68,290.2 6 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:293.46,300.2 6 6 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 @@ -7841,238 +8601,240 @@ 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/handlers_utils.go:20.55,22.32 2 17 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:22.32,24.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:25.2,25.13 1 17 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:29.41,34.2 4 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:36.41,41.2 4 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:43.32,46.23 3 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:46.23,48.3 1 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:49.2,50.24 2 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:50.24,52.3 1 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:53.2,56.15 4 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:56.15,58.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:59.2,62.211 4 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:66.51,67.41 1 11 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:67.41,69.3 1 6 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:70.2,72.71 3 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:76.62,77.16 1 33 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:77.16,79.6 1 9 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:80.5,81.28 2 24 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:81.28,84.6 2 79 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:85.5,85.15 1 24 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:88.118,89.14 1 17 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:89.14,92.16 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:92.16,95.35 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:95.35,97.5 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.4,98.36 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:98.36,100.5 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:101.4,103.59 3 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:103.59,105.5 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:106.4,106.21 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:109.2,112.19 4 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:115.51,116.23 1 23 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:116.23,118.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.2,119.13 1 23 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:119.13,121.100 2 39 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:121.100,123.12 2 21 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:125.3,125.8 1 18 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:127.2,127.11 1 23 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:130.32,132.2 1 24 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:135.44,136.50 1 20 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:136.50,138.3 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:139.2,139.35 1 17 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:142.40,144.20 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:144.20,145.40 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:145.40,147.12 2 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:149.3,149.8 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.2,151.12 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:151.12,153.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:154.2,154.17 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:157.52,158.38 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:158.38,160.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:161.2,162.27 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:162.27,163.34 1 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:163.34,164.12 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.3,166.36 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:166.36,167.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:169.3,169.25 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:171.2,171.34 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:179.64,181.22 2 49 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:181.22,184.12 2 64 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:184.12,186.4 1 27 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:187.3,189.74 2 37 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:189.74,191.12 2 21 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:194.3,195.12 2 16 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:195.12,197.4 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:198.3,199.48 2 15 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:199.48,201.12 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:203.3,204.18 2 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:204.18,206.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:208.3,209.29 2 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:211.2,211.24 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:217.41,221.31 3 19 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:221.31,223.3 1 16 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.2,224.29 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:224.29,226.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.2,227.31 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:227.31,229.32 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:229.32,231.4 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:233.2,233.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:237.83,240.102 2 19 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:240.102,242.36 2 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:242.36,244.136 2 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:244.136,246.5 1 20 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:247.4,249.34 3 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:249.34,251.5 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.2,255.65 1 15 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:255.65,256.53 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:256.53,258.37 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:258.37,260.137 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:260.137,262.6 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:263.5,265.35 3 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:265.35,267.6 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:271.2,271.19 1 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:275.80,276.22 1 19 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:276.22,278.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:279.2,281.40 3 19 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:281.40,283.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.2,284.34 1 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:284.34,285.31 1 100 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:285.31,286.12 1 77 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:288.3,289.16 2 23 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:289.16,290.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.3,292.32 1 23 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:292.32,294.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:296.2,296.19 1 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:299.36,301.2 1 100 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:304.39,306.13 2 36 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:306.13,308.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:309.2,311.66 3 36 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:311.66,313.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:314.2,315.54 2 36 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:315.54,317.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.2,318.51 1 36 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:318.51,320.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:321.2,323.69 3 36 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:323.69,326.3 2 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:327.2,327.10 1 28 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:331.43,333.13 2 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:333.13,335.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:336.2,337.11 2 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:337.11,339.3 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:340.2,341.14 2 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:341.14,343.3 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:344.2,345.19 2 6 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:349.56,351.89 2 18 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:351.89,353.3 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:354.2,354.14 1 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:358.52,359.32 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:359.32,361.28 2 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:361.28,363.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.3,364.34 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:364.34,366.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.3,367.42 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:367.42,369.4 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:370.3,370.49 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:372.2,375.27 3 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:375.27,377.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.2,378.36 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:378.36,380.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:381.2,384.49 3 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:384.49,386.24 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:386.24,388.4 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:391.2,392.25 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:392.25,394.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.2,395.33 1 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:395.33,397.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:398.2,399.19 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:403.67,405.35 2 13 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:405.35,407.3 1 11 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:408.2,409.31 2 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:409.31,411.3 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:412.2,412.14 1 2 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:415.69,416.32 1 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:416.32,418.3 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:419.2,419.47 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:422.45,424.22 2 55 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:424.22,428.12 3 57 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:428.12,430.4 1 36 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:431.3,433.32 3 21 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:433.32,435.4 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:436.3,437.46 2 14 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:437.46,439.12 2 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:442.3,443.12 2 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:443.12,445.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:446.3,447.49 2 10 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:447.49,449.12 2 1 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:451.3,451.14 1 9 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:453.2,453.14 1 3 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:456.67,459.28 3 8 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:459.28,461.12 2 12 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:461.12,462.9 1 7 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:464.3,466.12 3 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:466.12,467.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.3,469.43 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:469.43,471.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.3,473.34 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:473.34,475.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:477.3,478.48 2 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:478.48,480.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.3,482.25 1 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:482.25,484.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:486.3,487.50 2 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:487.50,489.4 1 4 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:490.3,491.22 2 5 +codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go:493.2,493.14 1 8 +codeberg.org/snonux/hexai/internal/lsp/server.go:126.90,129.20 3 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:129.20,131.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:132.2,134.23 3 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:134.23,136.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:137.2,138.22 2 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:138.22,140.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:141.2,142.27 2 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:142.27,144.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:145.2,151.38 6 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:151.38,154.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:154.8,156.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:157.2,160.35 4 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:160.35,162.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.2,163.35 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:163.35,165.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.2,167.46 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:167.46,169.3 1 4 +codeberg.org/snonux/hexai/internal/lsp/server.go:169.8,171.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.2,172.47 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:172.47,174.3 1 4 +codeberg.org/snonux/hexai/internal/lsp/server.go:174.8,176.3 1 1 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.2,177.46 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:177.46,179.3 1 3 +codeberg.org/snonux/hexai/internal/lsp/server.go:179.8,181.3 1 2 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.5,182.36 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:182.36,184.6 1 3 +codeberg.org/snonux/hexai/internal/lsp/server.go:184.11,186.6 1 2 +codeberg.org/snonux/hexai/internal/lsp/server.go:189.5,207.24 17 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:207.24,209.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.2,210.25 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:210.25,212.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.2,213.24 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:213.24,215.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.2,216.29 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:216.29,218.3 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:220.2,222.47 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:222.47,222.72 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:224.47,224.65 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:233.2,233.10 1 5 +codeberg.org/snonux/hexai/internal/lsp/server.go:236.30,237.6 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:237.6,239.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:239.20,241.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.3,242.17 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:242.17,244.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:245.3,246.52 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:246.52,248.12 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.3,250.23 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:250.23,252.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:254.3,255.15 2 0 +codeberg.org/snonux/hexai/internal/lsp/server.go:255.15,257.4 1 0 codeberg.org/snonux/hexai/internal/lsp/transport.go:15.48,18.6 3 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 @@ -8089,11 +8851,11 @@ 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:51.38,53.16 2 18 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:57.2,58.57 2 18 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.2,62.45 1 18 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 diff --git a/internal/appconfig/config.go b/internal/appconfig/config.go index 9404607..9941cf8 100644 --- a/internal/appconfig/config.go +++ b/internal/appconfig/config.go @@ -54,9 +54,35 @@ type App struct { // Default temperature for Ollama requests (nil means use provider default) OllamaTemperature *float64 `json:"ollama_temperature" toml:"ollama_temperature"` CopilotBaseURL string `json:"copilot_base_url" toml:"copilot_base_url"` - CopilotModel string `json:"copilot_model" toml:"copilot_model"` - // Default temperature for Copilot requests (nil means use provider default) - CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"` + CopilotModel string `json:"copilot_model" toml:"copilot_model"` + // Default temperature for Copilot requests (nil means use provider default) + CopilotTemperature *float64 `json:"copilot_temperature" toml:"copilot_temperature"` + + // Prompt templates (configured only via file; no env overrides) + // Completion/chat/code action/CLI prompt strings. See config.toml.example for placeholders. + // Completion + PromptCompletionSystemGeneral string `json:"-" toml:"-"` + PromptCompletionSystemParams string `json:"-" toml:"-"` + PromptCompletionSystemInline string `json:"-" toml:"-"` + PromptCompletionUserGeneral string `json:"-" toml:"-"` + PromptCompletionUserParams string `json:"-" toml:"-"` + PromptCompletionExtraHeader string `json:"-" toml:"-"` + // Provider-native code-completer + PromptNativeCompletion string `json:"-" toml:"-"` + // In-editor chat + PromptChatSystem string `json:"-" toml:"-"` + // Code actions + PromptCodeActionRewriteSystem string `json:"-" toml:"-"` + PromptCodeActionDiagnosticsSystem string `json:"-" toml:"-"` + PromptCodeActionDocumentSystem string `json:"-" toml:"-"` + PromptCodeActionRewriteUser string `json:"-" toml:"-"` + PromptCodeActionDiagnosticsUser string `json:"-" toml:"-"` + PromptCodeActionDocumentUser string `json:"-" toml:"-"` + PromptCodeActionGoTestSystem string `json:"-" toml:"-"` + PromptCodeActionGoTestUser string `json:"-" toml:"-"` + // CLI + PromptCLIDefaultSystem string `json:"-" toml:"-"` + PromptCLIExplainSystem string `json:"-" toml:"-"` } // Constructor: defaults for App (kept first among functions) @@ -64,7 +90,7 @@ func newDefaultConfig() App { // Coding-friendly default temperature across providers // Users can override per provider in config.toml (including 0.0). t := 0.2 - return App{ + return App{ MaxTokens: 4000, ContextMode: "always-full", ContextWindowLines: 120, @@ -81,8 +107,32 @@ func newDefaultConfig() App { InlineOpen: ">", InlineClose: ">", ChatSuffix: ">", - ChatPrefixes: []string{"?", "!", ":", ";"}, - } + ChatPrefixes: []string{"?", "!", ":", ";"}, + + // Default prompt templates (match current hard-coded strings) + PromptCompletionSystemParams: "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types.", + PromptCompletionUserParams: "Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: {{function}}\nCurrent line (cursor at {{char}}): {{current}}", + PromptCompletionSystemGeneral: "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression).", + PromptCompletionUserGeneral: "Provide the next likely code to insert at the cursor.\nFile: {{file}}\nFunction/context: {{function}}\nAbove line: {{above}}\nCurrent line (cursor at character {{char}}): {{current}}\nBelow line: {{below}}\nOnly return the completion snippet.", + PromptCompletionSystemInline: "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only.", + PromptCompletionExtraHeader: "Additional context:\n{{context}}", + + PromptNativeCompletion: "// Path: {{path}}\n{{before}}", + + PromptChatSystem: "You are a helpful coding assistant. Answer concisely and clearly.", + + PromptCodeActionRewriteSystem: "You are a precise code refactoring engine. Rewrite the given code strictly according to the instruction. Return only the updated code with no prose or backticks. Preserve formatting where reasonable.", + PromptCodeActionDiagnosticsSystem: "You are a precise code fixer. Resolve the given diagnostics by editing only the selected code. Return only the corrected code with no prose or backticks. Keep behavior and style, and avoid unrelated changes.", + PromptCodeActionDocumentSystem: "You are a precise code documentation engine. Add idiomatic documentation comments to the given code. Preserve exact behavior and formatting as much as possible. Return only the updated code with comments, no prose or backticks.", + PromptCodeActionRewriteUser: "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}", + PromptCodeActionDiagnosticsUser: "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}", + PromptCodeActionDocumentUser: "Add documentation comments to this code:\n{{selection}}", + PromptCodeActionGoTestSystem: "You are a precise Go unit test generator. Given a Go function, write one or more Test* functions using the testing package. Do NOT include package or imports, only the test function(s). Prefer table-driven tests. Keep it minimal and idiomatic.", + PromptCodeActionGoTestUser: "Function under test:\n{{function}}", + + PromptCLIDefaultSystem: "You are Hexai CLI. Default to very short, concise answers. If the user asks for commands, output only the commands (one per line) with no commentary or explanation. Only when the word 'explain' appears in the prompt, produce a verbose explanation.", + PromptCLIExplainSystem: "You are Hexai CLI. The user requested an explanation. Provide a clear, verbose explanation with reasoning and details. If commands are needed, include them with brief context.", + } } // Load reads configuration from a file and merges with defaults. @@ -113,33 +163,352 @@ func Load(logger *log.Logger) App { } // Private helpers +// Sectioned (table-based) file format only. +type fileConfig struct { + // Section tables only (flat keys are not allowed) + General sectionGeneral `toml:"general"` + Logging sectionLogging `toml:"logging"` + Completion sectionCompletion `toml:"completion"` + Triggers sectionTriggers `toml:"triggers"` + Inline sectionInline `toml:"inline"` + Chat sectionChat `toml:"chat"` + Provider sectionProvider `toml:"provider"` + OpenAI sectionOpenAI `toml:"openai"` + Copilot sectionCopilot `toml:"copilot"` + Ollama sectionOllama `toml:"ollama"` + Prompts sectionPrompts `toml:"prompts"` +} + +type sectionGeneral struct { + MaxTokens int `toml:"max_tokens"` + ContextMode string `toml:"context_mode"` + ContextWindowLines int `toml:"context_window_lines"` + MaxContextTokens int `toml:"max_context_tokens"` + CodingTemperature *float64 `toml:"coding_temperature"` +} + +type sectionLogging struct { + LogPreviewLimit int `toml:"log_preview_limit"` +} + +type sectionCompletion struct { + CompletionDebounceMs int `toml:"completion_debounce_ms"` + CompletionThrottleMs int `toml:"completion_throttle_ms"` + ManualInvokeMinPrefix int `toml:"manual_invoke_min_prefix"` +} + +type sectionTriggers struct { + TriggerCharacters []string `toml:"trigger_characters"` +} + +type sectionInline struct { + InlineOpen string `toml:"inline_open"` + InlineClose string `toml:"inline_close"` +} + +type sectionChat struct { + ChatSuffix string `toml:"chat_suffix"` + ChatPrefixes []string `toml:"chat_prefixes"` +} + +type sectionProvider struct { + Name string `toml:"name"` +} + +type sectionOpenAI struct { + Model string `toml:"model"` + BaseURL string `toml:"base_url"` + Temperature *float64 `toml:"temperature"` +} + +type sectionCopilot struct { + Model string `toml:"model"` + BaseURL string `toml:"base_url"` + Temperature *float64 `toml:"temperature"` +} + +type sectionOllama struct { + Model string `toml:"model"` + BaseURL string `toml:"base_url"` + Temperature *float64 `toml:"temperature"` +} + +// Prompts sections +type sectionPrompts struct { + Completion sectionPromptsCompletion `toml:"completion"` + Chat sectionPromptsChat `toml:"chat"` + CodeAction sectionPromptsCodeAction `toml:"code_action"` + CLI sectionPromptsCLI `toml:"cli"` + ProviderNative sectionPromptsProviderNative `toml:"provider_native"` +} + +type sectionPromptsCompletion struct { + SystemGeneral string `toml:"system_general"` + SystemParams string `toml:"system_params"` + SystemInline string `toml:"system_inline"` + UserGeneral string `toml:"user_general"` + UserParams string `toml:"user_params"` + ExtraHeader string `toml:"additional_context"` +} + +type sectionPromptsChat struct { + System string `toml:"system"` +} + +type sectionPromptsCodeAction struct { + RewriteSystem string `toml:"rewrite_system"` + DiagnosticsSystem string `toml:"diagnostics_system"` + DocumentSystem string `toml:"document_system"` + RewriteUser string `toml:"rewrite_user"` + DiagnosticsUser string `toml:"diagnostics_user"` + DocumentUser string `toml:"document_user"` + GoTestSystem string `toml:"go_test_system"` + GoTestUser string `toml:"go_test_user"` +} + +type sectionPromptsCLI struct { + DefaultSystem string `toml:"default_system"` + ExplainSystem string `toml:"explain_system"` +} + +type sectionPromptsProviderNative struct { + Completion string `toml:"completion"` +} + +func (fc *fileConfig) toApp() App { + out := App{} + + // Merge section: general + if (fc.General != sectionGeneral{}) || fc.General.CodingTemperature != nil { + tmp := App{ + MaxTokens: fc.General.MaxTokens, + ContextMode: fc.General.ContextMode, + ContextWindowLines: fc.General.ContextWindowLines, + MaxContextTokens: fc.General.MaxContextTokens, + CodingTemperature: fc.General.CodingTemperature, + } + out.mergeBasics(&tmp) + } + + // logging + if (fc.Logging != sectionLogging{}) { + tmp := App{LogPreviewLimit: fc.Logging.LogPreviewLimit} + out.mergeBasics(&tmp) + } + + // completion + if (fc.Completion != sectionCompletion{}) { + tmp := App{ + CompletionDebounceMs: fc.Completion.CompletionDebounceMs, + CompletionThrottleMs: fc.Completion.CompletionThrottleMs, + ManualInvokeMinPrefix: fc.Completion.ManualInvokeMinPrefix, + } + out.mergeBasics(&tmp) + } + + // triggers + if len(fc.Triggers.TriggerCharacters) > 0 { + tmp := App{TriggerCharacters: fc.Triggers.TriggerCharacters} + out.mergeBasics(&tmp) + } + + // inline + if (fc.Inline != sectionInline{}) { + tmp := App{InlineOpen: fc.Inline.InlineOpen, InlineClose: fc.Inline.InlineClose} + out.mergeBasics(&tmp) + } + + // chat + if strings.TrimSpace(fc.Chat.ChatSuffix) != "" || len(fc.Chat.ChatPrefixes) > 0 { + tmp := App{ChatSuffix: fc.Chat.ChatSuffix, ChatPrefixes: fc.Chat.ChatPrefixes} + out.mergeBasics(&tmp) + } + + // provider + if strings.TrimSpace(fc.Provider.Name) != "" { + tmp := App{Provider: fc.Provider.Name} + out.mergeBasics(&tmp) + } + + // openai + if (fc.OpenAI != sectionOpenAI{}) || fc.OpenAI.Temperature != nil { + tmp := App{ + OpenAIBaseURL: fc.OpenAI.BaseURL, + OpenAIModel: fc.OpenAI.Model, + OpenAITemperature: fc.OpenAI.Temperature, + } + out.mergeProviderFields(&tmp) + } + + // copilot + if (fc.Copilot != sectionCopilot{}) || fc.Copilot.Temperature != nil { + tmp := App{ + CopilotBaseURL: fc.Copilot.BaseURL, + CopilotModel: fc.Copilot.Model, + CopilotTemperature: fc.Copilot.Temperature, + } + out.mergeProviderFields(&tmp) + } + + // ollama + if (fc.Ollama != sectionOllama{}) || fc.Ollama.Temperature != nil { + tmp := App{ + OllamaBaseURL: fc.Ollama.BaseURL, + OllamaModel: fc.Ollama.Model, + OllamaTemperature: fc.Ollama.Temperature, + } + out.mergeProviderFields(&tmp) + } + + // prompts + // completion + if (fc.Prompts.Completion != sectionPromptsCompletion{}) { + if strings.TrimSpace(fc.Prompts.Completion.SystemGeneral) != "" { + out.PromptCompletionSystemGeneral = fc.Prompts.Completion.SystemGeneral + } + if strings.TrimSpace(fc.Prompts.Completion.SystemParams) != "" { + out.PromptCompletionSystemParams = fc.Prompts.Completion.SystemParams + } + if strings.TrimSpace(fc.Prompts.Completion.SystemInline) != "" { + out.PromptCompletionSystemInline = fc.Prompts.Completion.SystemInline + } + if strings.TrimSpace(fc.Prompts.Completion.UserGeneral) != "" { + out.PromptCompletionUserGeneral = fc.Prompts.Completion.UserGeneral + } + if strings.TrimSpace(fc.Prompts.Completion.UserParams) != "" { + out.PromptCompletionUserParams = fc.Prompts.Completion.UserParams + } + if strings.TrimSpace(fc.Prompts.Completion.ExtraHeader) != "" { + out.PromptCompletionExtraHeader = fc.Prompts.Completion.ExtraHeader + } + } + // chat + if strings.TrimSpace(fc.Prompts.Chat.System) != "" { + out.PromptChatSystem = fc.Prompts.Chat.System + } + // code action + if (fc.Prompts.CodeAction != sectionPromptsCodeAction{}) { + if strings.TrimSpace(fc.Prompts.CodeAction.RewriteSystem) != "" { + out.PromptCodeActionRewriteSystem = fc.Prompts.CodeAction.RewriteSystem + } + if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsSystem) != "" { + out.PromptCodeActionDiagnosticsSystem = fc.Prompts.CodeAction.DiagnosticsSystem + } + if strings.TrimSpace(fc.Prompts.CodeAction.DocumentSystem) != "" { + out.PromptCodeActionDocumentSystem = fc.Prompts.CodeAction.DocumentSystem + } + if strings.TrimSpace(fc.Prompts.CodeAction.RewriteUser) != "" { + out.PromptCodeActionRewriteUser = fc.Prompts.CodeAction.RewriteUser + } + if strings.TrimSpace(fc.Prompts.CodeAction.DiagnosticsUser) != "" { + out.PromptCodeActionDiagnosticsUser = fc.Prompts.CodeAction.DiagnosticsUser + } + if strings.TrimSpace(fc.Prompts.CodeAction.DocumentUser) != "" { + out.PromptCodeActionDocumentUser = fc.Prompts.CodeAction.DocumentUser + } + if strings.TrimSpace(fc.Prompts.CodeAction.GoTestSystem) != "" { + out.PromptCodeActionGoTestSystem = fc.Prompts.CodeAction.GoTestSystem + } + if strings.TrimSpace(fc.Prompts.CodeAction.GoTestUser) != "" { + out.PromptCodeActionGoTestUser = fc.Prompts.CodeAction.GoTestUser + } + } + // cli + if (fc.Prompts.CLI != sectionPromptsCLI{}) { + if strings.TrimSpace(fc.Prompts.CLI.DefaultSystem) != "" { + out.PromptCLIDefaultSystem = fc.Prompts.CLI.DefaultSystem + } + if strings.TrimSpace(fc.Prompts.CLI.ExplainSystem) != "" { + out.PromptCLIExplainSystem = fc.Prompts.CLI.ExplainSystem + } + } + // provider-native + if strings.TrimSpace(fc.Prompts.ProviderNative.Completion) != "" { + out.PromptNativeCompletion = fc.Prompts.ProviderNative.Completion + } + + return out +} + 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 TOML config file %s: %v", path, err) - } - return nil, err - } - defer f.Close() + b, err := os.ReadFile(path) + if err != nil { + if !os.IsNotExist(err) && logger != nil { + logger.Printf("cannot open TOML config file %s: %v", path, err) + } + return nil, err + } - dec := toml.NewDecoder(f) - var fileCfg App - if err := dec.Decode(&fileCfg); err != nil { - if logger != nil { - 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 + var tables fileConfig + errTables := toml.NewDecoder(strings.NewReader(string(b))).Decode(&tables) + // Raw map for validation/presence checks + var raw map[string]any + _ = toml.Unmarshal(b, &raw) + if errTables != nil { + if logger != nil { + logger.Printf("invalid TOML config file %s: %v", path, errTables) + } + return nil, errTables + } + + // Reject legacy flat keys at top-level (sectioned-only config is allowed) + legacy := map[string]struct{}{ + "max_tokens": {}, "context_mode": {}, "context_window_lines": {}, "max_context_tokens": {}, + "log_preview_limit": {}, "completion_debounce_ms": {}, "completion_throttle_ms": {}, + "manual_invoke_min_prefix": {}, "trigger_characters": {}, "inline_open": {}, "inline_close": {}, + "chat_suffix": {}, "chat_prefixes": {}, "coding_temperature": {}, "provider": {}, + "openai_model": {}, "openai_base_url": {}, "openai_temperature": {}, + "ollama_model": {}, "ollama_base_url": {}, "ollama_temperature": {}, + "copilot_model": {}, "copilot_base_url": {}, "copilot_temperature": {}, + } + for k := range raw { + if _, isTable := map[string]struct{}{"general": {}, "logging": {}, "completion": {}, "triggers": {}, "inline": {}, "chat": {}, "provider": {}, "openai": {}, "copilot": {}, "ollama": {}, "prompts": {}}[k]; isTable { + continue + } + if _, isLegacy := legacy[k]; isLegacy { + return nil, fmt.Errorf("unsupported flat key '%s' in config; use sectioned tables (see config.toml.example)", k) + } + } + + if logger != nil { + logger.Printf("loaded configuration from %s (TOML)", path) + } + + // Merge order: flat first, then tables (so tables win over zero flat values) + // Build App from tables only + tab := tables.toApp() + // Ensure explicit values from raw map are respected (defensive for ints) + if t, ok := raw["completion"].(map[string]any); ok { + if v, present := t["manual_invoke_min_prefix"]; present { + switch vv := v.(type) { + case int64: + tab.ManualInvokeMinPrefix = int(vv) + case int: + tab.ManualInvokeMinPrefix = vv + case float64: + tab.ManualInvokeMinPrefix = int(vv) + } + } + } + if t, ok := raw["logging"].(map[string]any); ok { + if v, present := t["log_preview_limit"]; present { + switch vv := v.(type) { + case int64: + tab.LogPreviewLimit = int(vv) + case int: + tab.LogPreviewLimit = vv + case float64: + tab.LogPreviewLimit = int(vv) + } + } + } + return &tab, nil } func (a *App) mergeWith(other *App) { - a.mergeBasics(other) - a.mergeProviderFields(other) + a.mergeBasics(other) + a.mergeProviderFields(other) + a.mergePrompts(other) } // mergeBasics merges general (non-provider) fields. @@ -191,6 +560,69 @@ func (a *App) mergeBasics(other *App) { } } +// mergePrompts copies non-empty prompt templates from other. +func (a *App) mergePrompts(other *App) { + // Completion + if strings.TrimSpace(other.PromptCompletionSystemGeneral) != "" { + a.PromptCompletionSystemGeneral = other.PromptCompletionSystemGeneral + } + if strings.TrimSpace(other.PromptCompletionSystemParams) != "" { + a.PromptCompletionSystemParams = other.PromptCompletionSystemParams + } + if strings.TrimSpace(other.PromptCompletionSystemInline) != "" { + a.PromptCompletionSystemInline = other.PromptCompletionSystemInline + } + if strings.TrimSpace(other.PromptCompletionUserGeneral) != "" { + a.PromptCompletionUserGeneral = other.PromptCompletionUserGeneral + } + if strings.TrimSpace(other.PromptCompletionUserParams) != "" { + a.PromptCompletionUserParams = other.PromptCompletionUserParams + } + if strings.TrimSpace(other.PromptCompletionExtraHeader) != "" { + a.PromptCompletionExtraHeader = other.PromptCompletionExtraHeader + } + // Provider-native + if strings.TrimSpace(other.PromptNativeCompletion) != "" { + a.PromptNativeCompletion = other.PromptNativeCompletion + } + // Chat + if strings.TrimSpace(other.PromptChatSystem) != "" { + a.PromptChatSystem = other.PromptChatSystem + } + // Code actions + if strings.TrimSpace(other.PromptCodeActionRewriteSystem) != "" { + a.PromptCodeActionRewriteSystem = other.PromptCodeActionRewriteSystem + } + if strings.TrimSpace(other.PromptCodeActionDiagnosticsSystem) != "" { + a.PromptCodeActionDiagnosticsSystem = other.PromptCodeActionDiagnosticsSystem + } + if strings.TrimSpace(other.PromptCodeActionDocumentSystem) != "" { + a.PromptCodeActionDocumentSystem = other.PromptCodeActionDocumentSystem + } + if strings.TrimSpace(other.PromptCodeActionRewriteUser) != "" { + a.PromptCodeActionRewriteUser = other.PromptCodeActionRewriteUser + } + if strings.TrimSpace(other.PromptCodeActionDiagnosticsUser) != "" { + a.PromptCodeActionDiagnosticsUser = other.PromptCodeActionDiagnosticsUser + } + if strings.TrimSpace(other.PromptCodeActionDocumentUser) != "" { + a.PromptCodeActionDocumentUser = other.PromptCodeActionDocumentUser + } + if strings.TrimSpace(other.PromptCodeActionGoTestSystem) != "" { + a.PromptCodeActionGoTestSystem = other.PromptCodeActionGoTestSystem + } + if strings.TrimSpace(other.PromptCodeActionGoTestUser) != "" { + a.PromptCodeActionGoTestUser = other.PromptCodeActionGoTestUser + } + // CLI + if strings.TrimSpace(other.PromptCLIDefaultSystem) != "" { + a.PromptCLIDefaultSystem = other.PromptCLIDefaultSystem + } + if strings.TrimSpace(other.PromptCLIExplainSystem) != "" { + a.PromptCLIExplainSystem = other.PromptCLIExplainSystem + } +} + // mergeProviderFields merges per-provider configuration. func (a *App) mergeProviderFields(other *App) { if s := strings.TrimSpace(other.OpenAIBaseURL); s != "" { diff --git a/internal/appconfig/config_test.go b/internal/appconfig/config_test.go index bdf86da..65e6283 100644 --- a/internal/appconfig/config_test.go +++ b/internal/appconfig/config_test.go @@ -52,29 +52,44 @@ 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.toml") - // file configuration in TOML - writeFile(t, cfgPath, ` + cfgPath := filepath.Join(dir, "hexai", "config.toml") + // file configuration in TOML (sectioned) + writeFile(t, cfgPath, ` +[general] 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 + +[logging] +log_preview_limit = 0 + +[completion] manual_invoke_min_prefix = 2 completion_debounce_ms = 150 completion_throttle_ms = 300 + +[triggers] 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 + +[provider] +name = "openai" + +[openai] +base_url = "https://api.example" +model = "gpt-x" +temperature = 0.0 + +[ollama] +base_url = "http://ollama" +model = "llama" +temperature = 0.0 + +[copilot] +base_url = "http://copilot" +model = "ghost" +temperature = 0.0 `) // Env overrides take precedence @@ -129,13 +144,13 @@ copilot_temperature = 0.0 t.Fatalf("copilot overrides not applied: %+v", cfg) } - // Ensure file values would have applied absent env - // Spot-check: reset env and reload - for _, k := range []string{ - "HEXAI_MAX_TOKENS", "HEXAI_CONTEXT_MODE", "HEXAI_CONTEXT_WINDOW_LINES", "HEXAI_MAX_CONTEXT_TOKENS", "HEXAI_LOG_PREVIEW_LIMIT", "HEXAI_CODING_TEMPERATURE", "HEXAI_MANUAL_INVOKE_MIN_PREFIX", "HEXAI_COMPLETION_DEBOUNCE_MS", "HEXAI_COMPLETION_THROTTLE_MS", "HEXAI_TRIGGER_CHARACTERS", "HEXAI_PROVIDER", "HEXAI_OPENAI_BASE_URL", "HEXAI_OPENAI_MODEL", "HEXAI_OPENAI_TEMPERATURE", "HEXAI_OLLAMA_BASE_URL", "HEXAI_OLLAMA_MODEL", "HEXAI_OLLAMA_TEMPERATURE", "HEXAI_COPILOT_BASE_URL", "HEXAI_COPILOT_MODEL", "HEXAI_COPILOT_TEMPERATURE", - } { - t.Setenv(k, "") - } + // Ensure file values would have applied absent env + // Spot-check: reset env and reload + for _, k := range []string{ + "HEXAI_MAX_TOKENS", "HEXAI_CONTEXT_MODE", "HEXAI_CONTEXT_WINDOW_LINES", "HEXAI_MAX_CONTEXT_TOKENS", "HEXAI_LOG_PREVIEW_LIMIT", "HEXAI_CODING_TEMPERATURE", "HEXAI_MANUAL_INVOKE_MIN_PREFIX", "HEXAI_COMPLETION_DEBOUNCE_MS", "HEXAI_COMPLETION_THROTTLE_MS", "HEXAI_TRIGGER_CHARACTERS", "HEXAI_PROVIDER", "HEXAI_OPENAI_BASE_URL", "HEXAI_OPENAI_MODEL", "HEXAI_OPENAI_TEMPERATURE", "HEXAI_OLLAMA_BASE_URL", "HEXAI_OLLAMA_MODEL", "HEXAI_OLLAMA_TEMPERATURE", "HEXAI_COPILOT_BASE_URL", "HEXAI_COPILOT_MODEL", "HEXAI_COPILOT_TEMPERATURE", + } { + t.Setenv(k, "") + } cfg2 := Load(logger) if cfg2.MaxTokens != 123 || cfg2.ContextMode != "file-on-new-func" || cfg2.ContextWindowLines != 50 || cfg2.MaxContextTokens != 999 || cfg2.LogPreviewLimit != 0 { t.Fatalf("file merge not applied: %+v", cfg2) @@ -175,3 +190,153 @@ func TestLoadFromFile_InvalidTOML(t *testing.T) { t.Fatalf("expected error for invalid TOML") } } + +func TestLoad_FileTables_Sectioned(t *testing.T) { + dir := t.TempDir() + t.Setenv("XDG_CONFIG_HOME", dir) + cfgPath := filepath.Join(dir, "hexai", "config.toml") + content := ` +[general] +max_tokens = 111 +context_mode = "window" +context_window_lines = 42 +max_context_tokens = 777 +coding_temperature = 0.1 + +[logging] +log_preview_limit = 9 + +[completion] +completion_debounce_ms = 123 +completion_throttle_ms = 456 +manual_invoke_min_prefix = 3 + +[triggers] +trigger_characters = [".", ":"] + +[inline] +inline_open = ">" +inline_close = ">" + +[chat] +chat_suffix = ">" +chat_prefixes = ["?", "!"] + +[provider] +name = "openai" + +[openai] +model = "gpt-x" +base_url = "https://api.example" +temperature = 0.0 + +[ollama] +model = "mistral" +base_url = "http://ollama" +temperature = 0.0 + +[copilot] +model = "ghost" +base_url = "http://copilot" +temperature = 0.0 +` + writeFile(t, cfgPath, content) + + // Ensure no env override interferes with manual_invoke_min_prefix in this test + t.Setenv("HEXAI_MANUAL_INVOKE_MIN_PREFIX", "") + logger := newLogger() + cfg := Load(logger) + + if cfg.MaxTokens != 111 || cfg.ContextMode != "window" || cfg.ContextWindowLines != 42 || cfg.MaxContextTokens != 777 { + t.Fatalf("sectioned basics wrong: %+v", cfg) + } + if cfg.LogPreviewLimit != 9 || cfg.CompletionDebounceMs != 123 || cfg.CompletionThrottleMs != 456 || cfg.ManualInvokeMinPrefix != 3 { + t.Fatalf("sectioned ints wrong: %+v", cfg) + } + if cfg.CodingTemperature == nil || *cfg.CodingTemperature != 0.1 { + t.Fatalf("sectioned coding_temperature wrong: %+v", cfg.CodingTemperature) + } + if want := []string{".", ":"}; !reflect.DeepEqual(cfg.TriggerCharacters, want) { + t.Fatalf("sectioned trigger chars wrong: got %v", cfg.TriggerCharacters) + } + if cfg.Provider != "openai" { + t.Fatalf("sectioned provider name wrong: %q", cfg.Provider) + } + if cfg.OpenAIModel != "gpt-x" || cfg.OpenAIBaseURL != "https://api.example" || cfg.OpenAITemperature == nil || *cfg.OpenAITemperature != 0.0 { + t.Fatalf("sectioned openai wrong: %+v", cfg) + } + if cfg.OllamaModel != "mistral" || cfg.OllamaBaseURL != "http://ollama" || cfg.OllamaTemperature == nil || *cfg.OllamaTemperature != 0.0 { + t.Fatalf("sectioned ollama wrong: %+v", cfg) + } + if cfg.CopilotModel != "ghost" || cfg.CopilotBaseURL != "http://copilot" || cfg.CopilotTemperature == nil || *cfg.CopilotTemperature != 0.0 { + t.Fatalf("sectioned copilot wrong: %+v", cfg) + } +} + +func TestLoad_FileTables_Prompts_AllSections(t *testing.T) { + dir := t.TempDir() + t.Setenv("XDG_CONFIG_HOME", dir) + cfgPath := filepath.Join(dir, "hexai", "config.toml") + content := ` +[prompts.completion] +system_general = "SYS-GENERAL" +system_params = "SYS-PARAMS" +system_inline = "SYS-INLINE" +user_general = "USER-GENERAL {{file}} {{char}}" +user_params = "USER-PARAMS {{function}}" +additional_context = "EXTRA {{context}}" + +[prompts.provider_native] +completion = "NATIVE {{path}} {{before}}" + +[prompts.chat] +system = "CHAT-SYS" + +[prompts.code_action] +rewrite_system = "REWRITE-SYS" +diagnostics_system = "DIAG-SYS" +document_system = "DOC-SYS" +rewrite_user = "REWRITE-USER {{instruction}} {{selection}}" +diagnostics_user = "DIAG-USER {{diagnostics}} {{selection}}" +document_user = "DOC-USER {{selection}}" +go_test_system = "GOTEST-SYS" +go_test_user = "GOTEST-USER {{function}}" + +[prompts.cli] +default_system = "CLI-DEFAULT" +explain_system = "CLI-EXPLAIN" +` + writeFile(t, cfgPath, content) + + cfg := Load(newLogger()) + + // completion + if cfg.PromptCompletionSystemGeneral != "SYS-GENERAL" || cfg.PromptCompletionSystemParams != "SYS-PARAMS" || cfg.PromptCompletionSystemInline != "SYS-INLINE" { + t.Fatalf("completion system prompts wrong: %+v", cfg) + } + if cfg.PromptCompletionUserGeneral == "" || cfg.PromptCompletionUserParams == "" || cfg.PromptCompletionExtraHeader == "" { + t.Fatalf("completion user/extra prompts not loaded") + } + // provider-native + if cfg.PromptNativeCompletion != "NATIVE {{path}} {{before}}" { + t.Fatalf("provider-native prompt wrong: %q", cfg.PromptNativeCompletion) + } + // chat + if cfg.PromptChatSystem != "CHAT-SYS" { + t.Fatalf("chat system wrong: %q", cfg.PromptChatSystem) + } + // code action + if cfg.PromptCodeActionRewriteSystem != "REWRITE-SYS" || cfg.PromptCodeActionDiagnosticsSystem != "DIAG-SYS" || cfg.PromptCodeActionDocumentSystem != "DOC-SYS" { + t.Fatalf("code action system prompts wrong") + } + if cfg.PromptCodeActionRewriteUser == "" || cfg.PromptCodeActionDiagnosticsUser == "" || cfg.PromptCodeActionDocumentUser == "" { + t.Fatalf("code action user prompts not loaded") + } + if cfg.PromptCodeActionGoTestSystem != "GOTEST-SYS" || cfg.PromptCodeActionGoTestUser == "" { + t.Fatalf("go test prompts wrong") + } + // CLI + if cfg.PromptCLIDefaultSystem != "CLI-DEFAULT" || cfg.PromptCLIExplainSystem != "CLI-EXPLAIN" { + t.Fatalf("cli prompts wrong: %q %q", cfg.PromptCLIDefaultSystem, cfg.PromptCLIExplainSystem) + } +} diff --git a/internal/hexaicli/run.go b/internal/hexaicli/run.go index 54cb3ff..ca561bb 100644 --- a/internal/hexaicli/run.go +++ b/internal/hexaicli/run.go @@ -23,13 +23,24 @@ func Run(ctx context.Context, args []string, stdin io.Reader, stdout, stderr io. // Load configuration with a logger so file-based config is respected. logger := log.New(stderr, "hexai ", log.LstdFlags|log.Lmsgprefix) cfg := appconfig.Load(logger) - client, err := newClientFromConfig(cfg) - if err != nil { - fmt.Fprintf(stderr, logging.AnsiBase+"hexai: LLM disabled: %v"+logging.AnsiReset+"\n", err) - return err - } - - return RunWithClient(ctx, args, stdin, stdout, stderr, client) + client, err := newClientFromConfig(cfg) + if err != nil { + fmt.Fprintf(stderr, logging.AnsiBase+"hexai: LLM disabled: %v"+logging.AnsiReset+"\n", err) + return err + } + // Inline the flow here to use configured CLI prompts. + input, rerr := readInput(stdin, args) + if rerr != nil { + fmt.Fprintln(stderr, logging.AnsiBase+rerr.Error()+logging.AnsiReset) + return rerr + } + printProviderInfo(stderr, client) + msgs := buildMessagesFromConfig(cfg, input) + if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil { + fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err) + return err + } + return nil } // RunWithClient executes the CLI flow using an already-constructed client. @@ -41,7 +52,7 @@ func RunWithClient(ctx context.Context, args []string, stdin io.Reader, stdout, return err } printProviderInfo(stderr, client) - msgs := buildMessages(input) + msgs := buildMessages(input) if err := runChat(ctx, client, msgs, input, stdout, stderr); err != nil { fmt.Fprintf(stderr, logging.AnsiBase+"hexai: error: %v"+logging.AnsiReset+"\n", err) return err @@ -109,6 +120,21 @@ func buildMessages(input string) []llm.Message { } } +// buildMessagesFromConfig uses configured CLI system prompts. +func buildMessagesFromConfig(cfg appconfig.App, input string) []llm.Message { + lower := strings.ToLower(input) + system := cfg.PromptCLIDefaultSystem + if strings.Contains(lower, "explain") { + if strings.TrimSpace(cfg.PromptCLIExplainSystem) != "" { + system = cfg.PromptCLIExplainSystem + } + } + return []llm.Message{ + {Role: "system", Content: system}, + {Role: "user", Content: input}, + } +} + // runChat executes the chat request, handling streaming and summary output. func runChat(ctx context.Context, client llm.Client, msgs []llm.Message, input string, out io.Writer, errw io.Writer) error { start := time.Now() diff --git a/internal/hexailsp/run.go b/internal/hexailsp/run.go index a1be5aa..9a69e51 100644 --- a/internal/hexailsp/run.go +++ b/internal/hexailsp/run.go @@ -106,21 +106,39 @@ func ensureFactory(factory ServerFactory) ServerFactory { } func makeServerOptions(cfg appconfig.App, logContext bool, client llm.Client) lsp.ServerOptions { - 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, + + // Prompts + PromptCompSysGeneral: cfg.PromptCompletionSystemGeneral, + PromptCompSysParams: cfg.PromptCompletionSystemParams, + PromptCompSysInline: cfg.PromptCompletionSystemInline, + PromptCompUserGeneral: cfg.PromptCompletionUserGeneral, + PromptCompUserParams: cfg.PromptCompletionUserParams, + PromptCompExtraHeader: cfg.PromptCompletionExtraHeader, + PromptNativeCompletion: cfg.PromptNativeCompletion, + PromptChatSystem: cfg.PromptChatSystem, + PromptRewriteSystem: cfg.PromptCodeActionRewriteSystem, + PromptDiagnosticsSystem: cfg.PromptCodeActionDiagnosticsSystem, + PromptDocumentSystem: cfg.PromptCodeActionDocumentSystem, + PromptRewriteUser: cfg.PromptCodeActionRewriteUser, + PromptDiagnosticsUser: cfg.PromptCodeActionDiagnosticsUser, + PromptDocumentUser: cfg.PromptCodeActionDocumentUser, + PromptGoTestSystem: cfg.PromptCodeActionGoTestSystem, + PromptGoTestUser: cfg.PromptCodeActionGoTestUser, + } } diff --git a/internal/lsp/build_prompts_table_test.go b/internal/lsp/build_prompts_table_test.go index 7e8e5e7..06a3743 100644 --- a/internal/lsp/build_prompts_table_test.go +++ b/internal/lsp/build_prompts_table_test.go @@ -3,18 +3,22 @@ package lsp import "testing" func TestBuildPrompts_Table(t *testing.T) { - p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: "file:///x.go"}, Position: Position{Line: 5, Character: 7}} - cases := []struct { - name string - inParams bool - }{ - {"generic", false}, - {"in_params", true}, - } - for _, c := range cases { - sys, user := buildPrompts(c.inParams, p, "above", "current", "below", "func ctx") - if sys == "" || user == "" { - t.Fatalf("%s: prompts empty", c.name) - } - } + p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: "file:///x.go"}, Position: Position{Line: 5, Character: 7}} + cases := []struct { + name string + inParams bool + }{ + {"generic", false}, + {"in_params", true}, + } + for _, c := range cases { + s := newTestServer() + msgs := s.buildCompletionMessages(false, false, "", c.inParams, p, "above", "current", "below", "func ctx") + if len(msgs) < 2 || msgs[0].Role != "system" || msgs[1].Role != "user" { + t.Fatalf("%s: unexpected messages", c.name) + } + if msgs[0].Content == "" || msgs[1].Content == "" { + t.Fatalf("%s: prompts empty", c.name) + } + } } diff --git a/internal/lsp/chat_prompt_test.go b/internal/lsp/chat_prompt_test.go new file mode 100644 index 0000000..f0f5446 --- /dev/null +++ b/internal/lsp/chat_prompt_test.go @@ -0,0 +1,36 @@ +package lsp + +import ( + "bytes" + "testing" + "time" +) + +func TestDetectAndHandleChat_UsesConfiguredSystemPrompt(t *testing.T) { + s := newTestServer() + cap := &captureLLM{} + s.llmClient = cap + s.promptChatSystem = "CHAT-SYS" + uri := "file:///chat.txt" + // Avoid nil writer in applyChatEdits + var out bytes.Buffer + s.out = &out + // Line that should trigger chat: ends with '>' and previous char in prefixes + s.setDocument(uri, "help?>\n") + s.detectAndHandleChat(uri) + // Wait briefly for async goroutine to call Chat + for i := 0; i < 20 && len(cap.msgs) == 0; i++ { + time.Sleep(10 * time.Millisecond) + } + if len(cap.msgs) == 0 { + t.Fatalf("expected Chat to be called") + } + if cap.msgs[0].Role != "system" || cap.msgs[0].Content != "CHAT-SYS" { + t.Fatalf("unexpected system msg: %+v", cap.msgs[0]) + } + // Last should be user with prompt without trailing '>' + last := cap.msgs[len(cap.msgs)-1] + if last.Role != "user" || last.Content != "help?" { + t.Fatalf("unexpected last user msg: %+v", last) + } +} diff --git a/internal/lsp/codeaction_prompts_test.go b/internal/lsp/codeaction_prompts_test.go new file mode 100644 index 0000000..6b2ce8c --- /dev/null +++ b/internal/lsp/codeaction_prompts_test.go @@ -0,0 +1,102 @@ +package lsp + +import ( + "encoding/json" + "testing" +) + +func TestResolveCodeAction_UsesRewritePrompts(t *testing.T) { + s := newTestServer() + cap := &captureLLM{} + s.llmClient = cap + s.promptRewriteSystem = "RSYS" + s.promptRewriteUser = "RUSER {{instruction}} {{selection}}" + uri := "file:///x.go" + s.setDocument(uri, "package p\nvar a=1\n") + payload := struct { + Type string `json:"type"` + URI string `json:"uri"` + Range Range `json:"range"` + Instruction string `json:"instruction"` + Selection string `json:"selection"` + }{Type: "rewrite", URI: uri, Range: Range{Start: Position{Line: 1}, End: Position{Line: 1, Character: 5}}, Instruction: "do it", Selection: "var a"} + raw, _ := json.Marshal(payload) + ca := CodeAction{Title: "Hexai: rewrite selection", Data: raw} + _, _ = s.resolveCodeAction(ca) + if len(cap.msgs) < 2 { + t.Fatalf("expected chat messages") + } + if cap.msgs[0].Content != "RSYS" || cap.msgs[1].Role != "user" || cap.msgs[1].Content != "RUSER do it var a" { + t.Fatalf("unexpected rewrite prompts: %#v", cap.msgs) + } +} + +func TestResolveCodeAction_UsesDiagnosticsPrompts(t *testing.T) { + s := newTestServer() + cap := &captureLLM{} + s.llmClient = cap + s.promptDiagnosticsSystem = "DSYS" + s.promptDiagnosticsUser = "DUSER {{diagnostics}} {{selection}}" + uri := "file:///x.go" + s.setDocument(uri, "package p\nvar a=1\n") + payload := struct { + Type string `json:"type"` + URI string `json:"uri"` + Range Range `json:"range"` + Selection string `json:"selection"` + Diagnostics []Diagnostic `json:"diagnostics"` + }{Type: "diagnostics", URI: uri, Range: Range{Start: Position{Line: 1}}, Selection: "var a", Diagnostics: []Diagnostic{{Message: "oops1"}, {Message: "oops2"}}} + raw, _ := json.Marshal(payload) + ca := CodeAction{Title: "Hexai: resolve diagnostics", Data: raw} + _, _ = s.resolveCodeAction(ca) + if len(cap.msgs) < 2 { + t.Fatalf("expected chat messages") + } + if cap.msgs[0].Content != "DSYS" || cap.msgs[1].Role != "user" { + t.Fatalf("unexpected diagnostics prompts: %#v", cap.msgs) + } + if got := cap.msgs[1].Content; !(contains(got, "oops1") && contains(got, "oops2") && contains(got, "var a")) { + t.Fatalf("diagnostics/user content mismatch: %q", got) + } +} + +func TestResolveCodeAction_UsesDocumentPrompts(t *testing.T) { + s := newTestServer() + cap := &captureLLM{} + s.llmClient = cap + s.promptDocumentSystem = "DOCSYS" + s.promptDocumentUser = "DOCUSER {{selection}}" + uri := "file:///x.go" + s.setDocument(uri, "package p\nvar a=1\n") + payload := struct { + Type string `json:"type"` + URI string `json:"uri"` + Range Range `json:"range"` + Selection string `json:"selection"` + }{Type: "document", URI: uri, Range: Range{Start: Position{Line: 1}}, Selection: "var a"} + raw, _ := json.Marshal(payload) + ca := CodeAction{Title: "Hexai: document selection", Data: raw} + _, _ = s.resolveCodeAction(ca) + if len(cap.msgs) < 2 { + t.Fatalf("expected chat messages") + } + if cap.msgs[0].Content != "DOCSYS" || cap.msgs[1].Content != "DOCUSER var a" { + t.Fatalf("unexpected document prompts: %#v", cap.msgs) + } +} + +func TestGenerateGoTest_UsesPrompts(t *testing.T) { + s := newTestServer() + cap := &captureLLM{} + s.llmClient = cap + s.promptGoTestSystem = "GTSYS" + s.promptGoTestUser = "GTUSER {{function}}" + _ = s.generateGoTestFunction("func Add(a,b int) int {return a+b}") + if len(cap.msgs) < 2 { + t.Fatalf("expected chat messages") + } + if cap.msgs[0].Content != "GTSYS" || !contains(cap.msgs[1].Content, "func Add") { + t.Fatalf("unexpected gotest prompts: %#v", cap.msgs) + } +} + diff --git a/internal/lsp/completion_messages_test.go b/internal/lsp/completion_messages_test.go index 28908d5..37d4a8d 100644 --- a/internal/lsp/completion_messages_test.go +++ b/internal/lsp/completion_messages_test.go @@ -58,12 +58,16 @@ func TestBuildDocString_Contents(t *testing.T) { } } -func TestBuildPrompts_InParams(t *testing.T) { - p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: "file:///x"}, Position: Position{Line: 0, Character: 5}} - sys, user := buildPrompts(true, p, "a", "func f(x)", "c", "func f(x)") - if !contains(sys, "function signatures") || !contains(user, "parameter list") { - t.Fatalf("unexpected in-params prompts") - } +func TestBuildCompletionMessages_InParams_UsesParamPrompts(t *testing.T) { + s := newTestServer() + p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: "file:///x"}, Position: Position{Line: 0, Character: 5}} + msgs := s.buildCompletionMessages(false, false, "", true, p, "a", "func f(x)", "c", "func f(x)") + if len(msgs) < 2 || msgs[0].Role != "system" || msgs[1].Role != "user" { + t.Fatalf("unexpected messages") + } + if !contains(msgs[0].Content, "function signatures") || !contains(msgs[1].Content, "parameter list") { + t.Fatalf("unexpected in-params prompts: %#v", msgs) + } } func TestPostProcessCompletion_CodeFencesAndDuplicates(t *testing.T) { diff --git a/internal/lsp/document_test.go b/internal/lsp/document_test.go index 00e4548..c8b6e2e 100644 --- a/internal/lsp/document_test.go +++ b/internal/lsp/document_test.go @@ -9,15 +9,32 @@ import ( ) func newTestServer() *Server { - s := &Server{ - logger: log.New(io.Discard, "", 0), - docs: make(map[string]*document), - inlineOpen: ">", - inlineClose: ">", - chatSuffix: ">", - chatPrefixes: []string{"?", "!", ":", ";"}, - } - // Keep package-level helpers in sync for tests using free functions + s := &Server{ + logger: log.New(io.Discard, "", 0), + docs: make(map[string]*document), + inlineOpen: ">", + inlineClose: ">", + chatSuffix: ">", + chatPrefixes: []string{"?", "!", ":", ";"}, + } + // Default prompt templates (mirror app defaults) + s.promptCompSysParams = "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types." + s.promptCompUserParams = "Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: {{function}}\nCurrent line (cursor at {{char}}): {{current}}" + s.promptCompSysGeneral = "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression)." + s.promptCompUserGeneral = "Provide the next likely code to insert at the cursor.\nFile: {{file}}\nFunction/context: {{function}}\nAbove line: {{above}}\nCurrent line (cursor at character {{char}}): {{current}}\nBelow line: {{below}}\nOnly return the completion snippet." + s.promptCompSysInline = "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only." + s.promptCompExtraHeader = "Additional context:\n{{context}}" + s.promptNativeCompletion = "// Path: {{path}}\n{{before}}" + s.promptChatSystem = "You are a helpful coding assistant. Answer concisely and clearly." + s.promptRewriteSystem = "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." + s.promptDiagnosticsSystem = "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." + s.promptDocumentSystem = "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." + s.promptRewriteUser = "Instruction: {{instruction}}\n\nSelected code to transform:\n{{selection}}" + s.promptDiagnosticsUser = "Diagnostics to resolve (selection only):\n{{diagnostics}}\n\nSelected code:\n{{selection}}" + s.promptDocumentUser = "Add documentation comments to this code:\n{{selection}}" + s.promptGoTestSystem = "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." + s.promptGoTestUser = "Function under test:\n{{function}}" + // Keep package-level helpers in sync for tests using free functions inlineOpenChar = '>' inlineCloseChar = '>' chatSuffixChar = '>' diff --git a/internal/lsp/handlers_codeaction.go b/internal/lsp/handlers_codeaction.go index 27020a0..762190f 100644 --- a/internal/lsp/handlers_codeaction.go +++ b/internal/lsp/handlers_codeaction.go @@ -98,12 +98,12 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) { return ca, false } switch payload.Type { - case "rewrite": - 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) - defer cancel() - messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + case "rewrite": + sys := s.promptRewriteSystem + user := renderTemplate(s.promptRewriteUser, map[string]string{"instruction": payload.Instruction, "selection": payload.Selection}) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} opts := s.llmRequestOpts() if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil { if out := stripCodeFences(strings.TrimSpace(text)); out != "" { @@ -114,38 +114,37 @@ func (s *Server) resolveCodeAction(ca CodeAction) (CodeAction, bool) { } else { logging.Logf("lsp ", "codeAction rewrite llm error: %v", err) } - case "diagnostics": - 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") - for i, dgn := range payload.Diagnostics { - if dgn.Source != "" { - fmt.Fprintf(&b, "%d. [%s] %s\n", i+1, dgn.Source, dgn.Message) - } else { - fmt.Fprintf(&b, "%d. %s\n", i+1, dgn.Message) - } - } - b.WriteString("\nSelected code:\n") - b.WriteString(payload.Selection) - ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second) - defer cancel() - messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: b.String()}} - opts := s.llmRequestOpts() - if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil { - if out := stripCodeFences(strings.TrimSpace(text)); out != "" { - edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}} - ca.Edit = &edit - return ca, true - } - } else { - logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err) - } - case "document": - 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}} + case "diagnostics": + sys := s.promptDiagnosticsSystem + var b strings.Builder + for i, dgn := range payload.Diagnostics { + if dgn.Source != "" { + fmt.Fprintf(&b, "%d. [%s] %s\n", i+1, dgn.Source, dgn.Message) + } else { + fmt.Fprintf(&b, "%d. %s\n", i+1, dgn.Message) + } + } + diagList := b.String() + user := renderTemplate(s.promptDiagnosticsUser, map[string]string{"diagnostics": diagList, "selection": payload.Selection}) + ctx, cancel := context.WithTimeout(context.Background(), 12*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + opts := s.llmRequestOpts() + if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil { + if out := stripCodeFences(strings.TrimSpace(text)); out != "" { + edit := WorkspaceEdit{Changes: map[string][]TextEdit{payload.URI: {{Range: payload.Range, NewText: out}}}} + ca.Edit = &edit + return ca, true + } + } else { + logging.Logf("lsp ", "codeAction diagnostics llm error: %v", err) + } + case "document": + sys := s.promptDocumentSystem + user := renderTemplate(s.promptDocumentUser, map[string]string{"selection": payload.Selection}) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} opts := s.llmRequestOpts() if text, err := s.llmClient.Chat(ctx, messages, opts...); err == nil { if out := stripCodeFences(strings.TrimSpace(text)); out != "" { @@ -467,13 +466,13 @@ func findGoFunctionAtLine(lines []string, idx int) (int, int) { // generateGoTestFunction uses LLM to produce a test function; falls back to a stub when unavailable. func (s *Server) generateGoTestFunction(funcCode string) string { - if s.llmClient != nil { - 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 s.llmClient != nil { + sys := s.promptGoTestSystem + user := renderTemplate(s.promptGoTestUser, map[string]string{"function": funcCode}) + ctx, cancel := context.WithTimeout(context.Background(), 8*time.Second) + defer cancel() + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + opts := s.llmRequestOpts() if out, err := s.llmClient.Chat(ctx, messages, opts...); err == nil { cleaned := strings.TrimSpace(stripCodeFences(out)) if cleaned != "" { diff --git a/internal/lsp/handlers_completion.go b/internal/lsp/handlers_completion.go index c6b7d3d..0d48bc0 100644 --- a/internal/lsp/handlers_completion.go +++ b/internal/lsp/handlers_completion.go @@ -225,9 +225,13 @@ func (s *Server) tryProviderNativeCompletion(current string, p CompletionParams, if !ok { return nil, false } - before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position) - path := strings.TrimPrefix(p.TextDocument.URI, "file://") - prompt := "// Path: " + path + "\n" + before + before, after := s.docBeforeAfter(p.TextDocument.URI, p.Position) + path := strings.TrimPrefix(p.TextDocument.URI, "file://") + // Build provider-native prompt from template + prompt := renderTemplate(s.promptNativeCompletion, map[string]string{ + "path": path, + "before": before, + }) lang := "" temp := 0.0 if s.codingTemperature != nil { @@ -336,18 +340,34 @@ func (s *Server) waitForThrottle(ctx context.Context) bool { // buildCompletionMessages constructs the LLM messages for completion. func (s *Server) buildCompletionMessages(inlinePrompt, hasExtra bool, extraText string, inParams bool, p CompletionParams, above, current, below, funcCtx string) []llm.Message { - sysPrompt, userPrompt := buildPrompts(inParams, p, above, current, below, funcCtx) - messages := []llm.Message{ - {Role: "system", Content: sysPrompt}, - {Role: "user", Content: userPrompt}, - } - if hasExtra && extraText != "" { - messages = append(messages, llm.Message{Role: "user", Content: "Additional context:\n" + extraText}) - } - if inlinePrompt { - messages[0].Content = "You are a precise code completion/refactoring engine. Output only the code to insert with no prose, no comments, and no backticks. Return raw code only." - } - return messages + // Vars for templates + vars := map[string]string{ + "file": p.TextDocument.URI, + "function": funcCtx, + "above": above, + "current": current, + "below": below, + "char": fmt.Sprintf("%d", p.Position.Character), + } + sys := s.promptCompSysGeneral + userTpl := s.promptCompUserGeneral + if inParams { + sys = s.promptCompSysParams + userTpl = s.promptCompUserParams + } + if inlinePrompt && strings.TrimSpace(s.promptCompSysInline) != "" { + sys = s.promptCompSysInline + } + user := renderTemplate(userTpl, vars) + messages := []llm.Message{{Role: "system", Content: sys}, {Role: "user", Content: user}} + if hasExtra && strings.TrimSpace(extraText) != "" { + extra := renderTemplate(s.promptCompExtraHeader, map[string]string{"context": extraText}) + if strings.TrimSpace(extra) == "" { + extra = extraText + } + messages = append(messages, llm.Message{Role: "user", Content: extra}) + } + return messages } // postProcessCompletion normalizes and deduplicates completion text and applies indentation rules. diff --git a/internal/lsp/handlers_document.go b/internal/lsp/handlers_document.go index 6a90919..26b78c0 100644 --- a/internal/lsp/handlers_document.go +++ b/internal/lsp/handlers_document.go @@ -156,9 +156,9 @@ func (s *Server) detectAndHandleChat(uri string) { go func(prompt string, remove int) { ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second) defer cancel() - sys := "You are a helpful coding assistant. Answer concisely and clearly." - // Build short conversation history from the document above this line - history := s.buildChatHistory(uri, lineIdx, prompt) + sys := s.promptChatSystem + // Build short conversation history from the document above this line + history := s.buildChatHistory(uri, lineIdx, prompt) msgs := append([]llm.Message{{Role: "system", Content: sys}}, history...) opts := s.llmRequestOpts() logging.Logf("lsp ", "chat llm=requesting model=%s", s.llmClient.DefaultModel()) diff --git a/internal/lsp/handlers_utils.go b/internal/lsp/handlers_utils.go index 30a21a5..eafd058 100644 --- a/internal/lsp/handlers_utils.go +++ b/internal/lsp/handlers_utils.go @@ -2,12 +2,11 @@ package lsp import ( - "fmt" - "strings" - "time" + "strings" + "time" - "codeberg.org/snonux/hexai/internal/llm" - "codeberg.org/snonux/hexai/internal/logging" + "codeberg.org/snonux/hexai/internal/llm" + "codeberg.org/snonux/hexai/internal/logging" ) // Configurable inline trigger characters (default to '>') used by free helpers below. @@ -73,15 +72,17 @@ func inParamList(current string, cursor int) bool { return open >= 0 && cursor > open && (close == -1 || cursor <= close) } -func buildPrompts(inParams bool, p CompletionParams, above, current, below, funcCtx string) (string, string) { - if inParams { - sys := "You are a code completion engine for function signatures. Return only the parameter list contents (without parentheses), no braces, no prose. Prefer idiomatic names and types." - user := fmt.Sprintf("Cursor is inside the function parameter list. Suggest only the parameter list (no parentheses).\nFunction line: %s\nCurrent line (cursor at %d): %s", funcCtx, p.Position.Character, current) - return sys, user - } - sys := "You are a terse code completion engine. Return only the code to insert, no surrounding prose or backticks. Only continue from the cursor; never repeat characters already present to the left of the cursor on the current line (e.g., if 'name :=' is already typed, only return the right-hand side expression)." - user := fmt.Sprintf("Provide the next likely code to insert at the cursor.\nFile: %s\nFunction/context: %s\nAbove line: %s\nCurrent line (cursor at character %d): %s\nBelow line: %s\nOnly return the completion snippet.", p.TextDocument.URI, funcCtx, above, p.Position.Character, current, below) - return sys, user +// renderTemplate performs simple {{var}} replacement in a template string. +func renderTemplate(t string, vars map[string]string) string { + if t == "" { + return t + } + out := t + for k, v := range vars { + placeholder := "{{" + k + "}}" + out = strings.ReplaceAll(out, placeholder, v) + } + return out } func computeTextEditAndFilter(cleaned string, inParams bool, current string, p CompletionParams) (*TextEdit, string) { diff --git a/internal/lsp/helpers_more_test.go b/internal/lsp/helpers_more_test.go index a0b0c26..1bd56d0 100644 --- a/internal/lsp/helpers_more_test.go +++ b/internal/lsp/helpers_more_test.go @@ -101,16 +101,17 @@ func TestCollectPromptRemovalEdits_MultiLine(t *testing.T) { } } -func TestInParamListAndBuildPrompts(t *testing.T) { - cur := "func add(a int, b string) int" - if !inParamList(cur, 12) { - t.Fatalf("expected in param list") - } - p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: "file:///x.go"}, Position: Position{Line: 0, Character: 5}} - sys, user := buildPrompts(false, p, "above", "current", "below", "func add") - if sys == "" || user == "" { - t.Fatalf("prompts empty") - } +func TestInParamListAndBuildCompletionMessages(t *testing.T) { + cur := "func add(a int, b string) int" + if !inParamList(cur, 12) { + t.Fatalf("expected in param list") + } + s := newTestServer() + p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: "file:///x.go"}, Position: Position{Line: 0, Character: 5}} + msgs := s.buildCompletionMessages(false, false, "", false, p, "above", "current", "below", "func add") + if len(msgs) < 2 || msgs[0].Content == "" || msgs[1].Content == "" { + t.Fatalf("messages empty") + } } func TestLabelForCompletion(t *testing.T) { diff --git a/internal/lsp/provider_native_success_test.go b/internal/lsp/provider_native_success_test.go index dd1abcd..bfcb0b6 100644 --- a/internal/lsp/provider_native_success_test.go +++ b/internal/lsp/provider_native_success_test.go @@ -60,3 +60,34 @@ func TestProviderNativeCompletion_IndentWithDoubleOpen(t *testing.T) { t.Fatalf("expected indentation applied, got %q", got) } } + +type fakeCompleterCapture struct{ lastPrompt string } + +func (fakeCompleterCapture) Chat(context.Context, []llm.Message, ...llm.RequestOption) (string, error) { return "", nil } +func (fakeCompleterCapture) Name() string { return "prov" } +func (fakeCompleterCapture) DefaultModel() string { return "m" } +func (f *fakeCompleterCapture) CodeCompletion(_ context.Context, prompt string, suffix string, n int, language string, temperature float64) ([]string, error) { + f.lastPrompt = prompt + return []string{"SUG"}, nil +} + +func TestProviderNativeCompletion_UsesPromptTemplate(t *testing.T) { + s := newTestServer() + cap := &fakeCompleterCapture{} + s.llmClient = cap + s.promptNativeCompletion = "NATIVE {{path}} {{before}}" + uri := "file:///x.go" + s.setDocument(uri, "AAA\nBBB\nCCC") + current := "fmt." + // Cursor at line 1, char 1 -> before should be "AAA\nB" + p := CompletionParams{TextDocument: TextDocumentIdentifier{URI: uri}, Position: Position{Line: 1, Character: 1}} + if _, ok := s.tryProviderNativeCompletion(current, p, "", "", "func f(){}", "doc", false, "", false); !ok { + t.Fatalf("expected provider-native path") + } + if cap.lastPrompt == "" { + t.Fatalf("expected captured prompt") + } + if cap.lastPrompt != "NATIVE /x.go AAA\nB" { + t.Fatalf("unexpected prompt: %q", cap.lastPrompt) + } +} diff --git a/internal/lsp/server.go b/internal/lsp/server.go index fa4467b..caaac29 100644 --- a/internal/lsp/server.go +++ b/internal/lsp/server.go @@ -58,7 +58,29 @@ type Server struct { inlineOpen string inlineClose string chatSuffix string - chatPrefixes []string + chatPrefixes []string + + // Prompt templates + // Completion + promptCompSysGeneral string + promptCompSysParams string + promptCompSysInline string + promptCompUserGeneral string + promptCompUserParams string + promptCompExtraHeader string + // Provider-native code completion + promptNativeCompletion string + // In-editor chat + promptChatSystem string + // Code actions + promptRewriteSystem string + promptDiagnosticsSystem string + promptDocumentSystem string + promptRewriteUser string + promptDiagnosticsUser string + promptDocumentUser string + promptGoTestSystem string + promptGoTestUser string } // ServerOptions collects configuration for NewServer to avoid long parameter lists. @@ -79,8 +101,26 @@ type ServerOptions struct { // Inline/chat triggers InlineOpen string InlineClose string - ChatSuffix string - ChatPrefixes []string + ChatSuffix string + ChatPrefixes []string + + // Prompt templates + PromptCompSysGeneral string + PromptCompSysParams string + PromptCompSysInline string + PromptCompUserGeneral string + PromptCompUserParams string + PromptCompExtraHeader string + PromptNativeCompletion string + PromptChatSystem string + PromptRewriteSystem string + PromptDiagnosticsSystem string + PromptDocumentSystem string + PromptRewriteUser string + PromptDiagnosticsUser string + PromptDocumentUser string + PromptGoTestSystem string + PromptGoTestUser string } func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) *Server { @@ -139,11 +179,29 @@ func NewServer(r io.Reader, w io.Writer, logger *log.Logger, opts ServerOptions) } else { s.chatSuffix = opts.ChatSuffix } - if len(opts.ChatPrefixes) == 0 { - s.chatPrefixes = []string{"?", "!", ":", ";"} - } else { - s.chatPrefixes = append([]string{}, opts.ChatPrefixes...) - } + if len(opts.ChatPrefixes) == 0 { + s.chatPrefixes = []string{"?", "!", ":", ";"} + } else { + s.chatPrefixes = append([]string{}, opts.ChatPrefixes...) + } + + // Prompts + s.promptCompSysGeneral = opts.PromptCompSysGeneral + s.promptCompSysParams = opts.PromptCompSysParams + s.promptCompSysInline = opts.PromptCompSysInline + s.promptCompUserGeneral = opts.PromptCompUserGeneral + s.promptCompUserParams = opts.PromptCompUserParams + s.promptCompExtraHeader = opts.PromptCompExtraHeader + s.promptNativeCompletion = opts.PromptNativeCompletion + s.promptChatSystem = opts.PromptChatSystem + s.promptRewriteSystem = opts.PromptRewriteSystem + s.promptDiagnosticsSystem = opts.PromptDiagnosticsSystem + s.promptDocumentSystem = opts.PromptDocumentSystem + s.promptRewriteUser = opts.PromptRewriteUser + s.promptDiagnosticsUser = opts.PromptDiagnosticsUser + s.promptDocumentUser = opts.PromptDocumentUser + s.promptGoTestSystem = opts.PromptGoTestSystem + s.promptGoTestUser = opts.PromptGoTestUser // Assign package-level inline trigger chars for free helper functions if s.inlineOpen != "" { diff --git a/internal/lsp/testhelper_capture_llm_test.go b/internal/lsp/testhelper_capture_llm_test.go new file mode 100644 index 0000000..3274141 --- /dev/null +++ b/internal/lsp/testhelper_capture_llm_test.go @@ -0,0 +1,18 @@ +package lsp + +import ( + "context" + + "codeberg.org/snonux/hexai/internal/llm" +) + +// captureLLM captures messages sent to Chat for assertions. +type captureLLM struct{ msgs []llm.Message } + +func (c *captureLLM) Chat(_ context.Context, m []llm.Message, _ ...llm.RequestOption) (string, error) { + c.msgs = append([]llm.Message{}, m...) + return "OK", nil +} +func (*captureLLM) Name() string { return "cap" } +func (*captureLLM) DefaultModel() string { return "m" } + diff --git a/internal/version.go b/internal/version.go index abeac2b..39ed42e 100644 --- a/internal/version.go +++ b/internal/version.go @@ -1,4 +1,4 @@ // Summary: Hexai semantic version identifier used by CLI and LSP binaries. package internal -const Version = "0.5.0" +const Version = "0.6.0" |
