diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-26 08:07:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-26 08:07:35 +0300 |
| commit | 439ebb14fa6fb43bfda2e0ee6811c37f96b15ecc (patch) | |
| tree | b2d2e4052106cf0dfc8ecdde9673e0b327ee8173 /docs | |
| parent | 2efcd2c4dda97831058851e8911281d5db5ce1c6 (diff) | |
Skip chat handling for inline prompts
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/coverage.html | 96 | ||||
| -rw-r--r-- | docs/coverage.out | 6878 |
2 files changed, 3505 insertions, 3469 deletions
diff --git a/docs/coverage.html b/docs/coverage.html index 686f831..a1db0c8 100644 --- a/docs/coverage.html +++ b/docs/coverage.html @@ -111,7 +111,7 @@ <option value="file27">codeberg.org/snonux/hexai/internal/lsp/handlers_completion.go (88.8%)</option> - <option value="file28">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (89.7%)</option> + <option value="file28">codeberg.org/snonux/hexai/internal/lsp/handlers_document.go (89.4%)</option> <option value="file29">codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go (75.0%)</option> @@ -119,7 +119,7 @@ <option value="file31">codeberg.org/snonux/hexai/internal/lsp/handlers_utils.go (89.9%)</option> - <option value="file32">codeberg.org/snonux/hexai/internal/lsp/server.go (85.4%)</option> + <option value="file32">codeberg.org/snonux/hexai/internal/lsp/server.go (86.8%)</option> <option value="file33">codeberg.org/snonux/hexai/internal/lsp/transport.go (73.0%)</option> @@ -5693,9 +5693,13 @@ func (s *Server) detectAndHandleChat(uri string) <span class="cov7" title="11">{ return }</span> <span class="cov7" title="11">suffix, prefixes, _ := s.chatConfig() + _, _, openChar, closeChar := s.inlineMarkers() for i, raw := range d.lines </span><span class="cov10" title="23">{ + if lineHasInlinePrompt(raw, openChar, closeChar) </span><span class="cov0" title="0">{ + continue</span> + } // Find last non-space character index - j := len(raw) - 1 + <span class="cov10" title="23">j := len(raw) - 1 for j >= 0 </span><span class="cov9" title="20">{ if raw[j] == ' ' || raw[j] == '\t' </span><span class="cov0" title="0">{ j-- @@ -6234,11 +6238,11 @@ func (s *Server) chatWithStats(ctx context.Context, msgs []llm.Message, opts ... // Inline prompt utilities -func lineHasInlinePrompt(line string, open, close byte) bool <span class="cov6" title="21">{ +func lineHasInlinePrompt(line string, open, close byte) bool <span class="cov8" title="44">{ if _, _, _, ok := findStrictInlineTag(line, open, close); ok </span><span class="cov3" title="4">{ return true }</span> - <span class="cov6" title="17">return hasDoubleOpenTrigger(line, open, close)</span> + <span class="cov8" title="40">return hasDoubleOpenTrigger(line, open, close)</span> } func leadingIndent(line string) string <span class="cov3" title="4">{ @@ -6278,17 +6282,17 @@ func applyIndent(indent, suggestion string) string <span class="cov3" title="4"> // findStrictInlineTag finds >text> (configurable), with no space after the first // opening marker and no space immediately before the closing marker. Returns the // text between markers, the start index, the end index just after closing, and ok. -func findStrictInlineTag(line string, open, close byte) (string, int, int, bool) <span class="cov8" title="52">{ +func findStrictInlineTag(line string, open, close byte) (string, int, int, bool) <span class="cov9" title="75">{ pos := 0 - for pos < len(line) </span><span class="cov9" title="66">{ + for pos < len(line) </span><span class="cov9" title="87">{ // find opening marker j := strings.IndexByte(line[pos:], open) - if j < 0 </span><span class="cov7" title="28">{ + if j < 0 </span><span class="cov8" title="39">{ return "", 0, 0, false }</span> - <span class="cov8" title="38">j += pos + <span class="cov8" title="48">j += pos // ensure single open (not double) and non-space after - if j+1 >= len(line) || line[j+1] == open || line[j+1] == ' ' </span><span class="cov6" title="21">{ + if j+1 >= len(line) || line[j+1] == open || line[j+1] == ' ' </span><span class="cov7" title="31">{ pos = j + 1 continue</span> } @@ -6310,7 +6314,7 @@ func findStrictInlineTag(line string, open, close byte) (string, int, int, bool) <span class="cov6" title="15">end := closeIdx + 1 return inner, j, end, true</span> } - <span class="cov5" title="8">return "", 0, 0, false</span> + <span class="cov6" title="20">return "", 0, 0, false</span> } // isBareDoubleSemicolon reports whether the line contains a standalone @@ -6498,13 +6502,13 @@ func promptRemovalEditsForLine(line string, lineNum int, open, close byte) []Tex <span class="cov5" title="12">return collectSemicolonMarkers(line, lineNum, open, close)</span> } -func hasDoubleOpenTrigger(line string, open, close byte) bool <span class="cov9" title="64">{ +func hasDoubleOpenTrigger(line string, open, close byte) bool <span class="cov9" title="87">{ pos := 0 - for pos < len(line) </span><span class="cov9" title="66">{ + for pos < len(line) </span><span class="cov9" title="86">{ // look for double-open sequence dbl := string([]byte{open, open}) j := strings.Index(line[pos:], dbl) - if j < 0 </span><span class="cov8" title="42">{ + if j < 0 </span><span class="cov9" title="62">{ return false }</span> <span class="cov7" title="24">j += pos @@ -6529,7 +6533,7 @@ func hasDoubleOpenTrigger(line string, open, close byte) bool <span class="cov9" } <span class="cov5" title="10">return true</span> } - <span class="cov3" title="4">return false</span> + <span class="cov4" title="7">return false</span> } func collectSemicolonMarkers(line string, lineNum int, open, close byte) []TextEdit <span class="cov6" title="14">{ @@ -6774,11 +6778,11 @@ func (s *Server) currentLLMClient() llm.Client <span class="cov8" title="199">{ return s.llmClient }</span> -func (s *Server) currentConfig() appconfig.App <span class="cov10" title="409">{ - if s.configStore != nil </span><span class="cov3" title="4">{ +func (s *Server) currentConfig() appconfig.App <span class="cov10" title="420">{ + if s.configStore != nil </span><span class="cov3" title="5">{ return s.configStore.Snapshot() }</span> - <span class="cov9" title="405">s.mu.RLock() + <span class="cov9" title="415">s.mu.RLock() defer s.mu.RUnlock() return s.cfg</span> } @@ -6848,25 +6852,25 @@ func (s *Server) completionThrottle() time.Duration <span class="cov6" title="41 <span class="cov2" title="3">return time.Duration(cfg.CompletionThrottleMs) * time.Millisecond</span> } -func (s *Server) inlineMarkers() (open string, close string, openChar byte, closeChar byte) <span class="cov7" title="88">{ +func (s *Server) inlineMarkers() (open string, close string, openChar byte, closeChar byte) <span class="cov7" title="99">{ cfg := s.currentConfig() open = strings.TrimSpace(cfg.InlineOpen) - if open == "" </span><span class="cov0" title="0">{ + if open == "" </span><span class="cov2" title="2">{ open = ">" }</span> - <span class="cov7" title="88">close = strings.TrimSpace(cfg.InlineClose) - if close == "" </span><span class="cov0" title="0">{ + <span class="cov7" title="99">close = strings.TrimSpace(cfg.InlineClose) + if close == "" </span><span class="cov2" title="2">{ close = ">" }</span> - <span class="cov7" title="88">openChar = '>' - if len(open) > 0 </span><span class="cov7" title="88">{ + <span class="cov7" title="99">openChar = '>' + if len(open) > 0 </span><span class="cov7" title="99">{ openChar = open[0] }</span> - <span class="cov7" title="88">closeChar = '>' - if len(close) > 0 </span><span class="cov7" title="88">{ + <span class="cov7" title="99">closeChar = '>' + if len(close) > 0 </span><span class="cov7" title="99">{ closeChar = close[0] }</span> - <span class="cov7" title="88">return open, close, openChar, closeChar</span> + <span class="cov7" title="99">return open, close, openChar, closeChar</span> } func (s *Server) chatConfig() (suffix string, prefixes []string, suffixChar byte) <span class="cov6" title="46">{ @@ -7051,7 +7055,7 @@ func New(cfg appconfig.App) *Store <span class="cov4" title="13">{ }</span> // Snapshot returns the current configuration snapshot. Callers must treat it as read-only. -func (s *Store) Snapshot() appconfig.App <span class="cov3" title="6">{ +func (s *Store) Snapshot() appconfig.App <span class="cov3" title="7">{ s.mu.RLock() defer s.mu.RUnlock() return s.cfg @@ -7220,9 +7224,9 @@ import ( "golang.org/x/sys/unix" ) -func tryLockFile(fd uintptr) error <span class="cov10" title="231">{ - if err := unix.Flock(int(fd), unix.LOCK_EX|unix.LOCK_NB); err != nil </span><span class="cov9" title="154">{ - if errors.Is(err, unix.EWOULDBLOCK) </span><span class="cov9" title="154">{ +func tryLockFile(fd uintptr) error <span class="cov10" title="199">{ + if err := unix.Flock(int(fd), unix.LOCK_EX|unix.LOCK_NB); err != nil </span><span class="cov9" title="122">{ + if errors.Is(err, unix.EWOULDBLOCK) </span><span class="cov9" title="122">{ return errLockWouldBlock }</span> <span class="cov0" title="0">return err</span> @@ -7390,30 +7394,30 @@ func Update(ctx context.Context, provider, model string, sentBytes, recvBytes in func acquireFileLock(ctx context.Context, f *os.File) (func() error, error) <span class="cov5" title="77">{ fd := f.Fd() - for </span><span class="cov6" title="231">{ + for </span><span class="cov5" title="199">{ err := tryLockFile(fd) if err == nil </span><span class="cov5" title="77">{ return func() error </span><span class="cov5" title="77">{ return unlockFile(fd) }</span>, nil } - <span class="cov5" title="154">if errors.Is(err, errLockWouldBlock) </span><span class="cov5" title="154">{ + <span class="cov5" title="122">if errors.Is(err, errLockWouldBlock) </span><span class="cov5" title="122">{ select </span>{ case <-ctx.Done():<span class="cov0" title="0"> return nil, ctx.Err()</span> - case <-time.After(5 * time.Millisecond):<span class="cov5" title="154"></span> + case <-time.After(5 * time.Millisecond):<span class="cov5" title="122"></span> } - <span class="cov5" title="154">continue</span> + <span class="cov5" title="122">continue</span> } <span class="cov0" title="0">return nil, err</span> } } // Snapshot reads and aggregates events within the configured window. -func TakeSnapshot() (Snapshot, error) <span class="cov5" title="69">{ +func TakeSnapshot() (Snapshot, error) <span class="cov4" title="69">{ dir, err := CacheDir() if err != nil </span><span class="cov0" title="0">{ return Snapshot{}, err }</span> - <span class="cov5" title="69">path := filepath.Join(dir, fileName) + <span class="cov4" title="69">path := filepath.Join(dir, fileName) b, err := os.ReadFile(path) if err != nil </span><span class="cov0" title="0">{ if errors.Is(err, os.ErrNotExist) </span><span class="cov0" title="0">{ @@ -7421,30 +7425,30 @@ func TakeSnapshot() (Snapshot, error) <span class="cov5" title="69">{ }</span> <span class="cov0" title="0">return Snapshot{}, err</span> } - <span class="cov5" title="69">var sf File + <span class="cov4" title="69">var sf File if err := json.Unmarshal(b, &sf); err != nil </span><span class="cov0" title="0">{ return Snapshot{}, err }</span> - <span class="cov5" title="69">win := time.Duration(sf.WindowSeconds) * time.Second + <span class="cov4" title="69">win := time.Duration(sf.WindowSeconds) * time.Second if win <= 0 </span><span class="cov0" title="0">{ win = Window() - }</span> else<span class="cov5" title="69"> { + }</span> else<span class="cov4" title="69"> { SetWindow(win) // align process with file window if changed elsewhere }</span> - <span class="cov5" title="69">cutoff := time.Now().Add(-win) + <span class="cov4" title="69">cutoff := time.Now().Add(-win) snap := Snapshot{Providers: make(map[string]ProviderEntry), Window: win} - for _, ev := range sf.Events </span><span class="cov10" title="10992">{ + for _, ev := range sf.Events </span><span class="cov10" title="14622">{ if ev.TS.Before(cutoff) </span><span class="cov0" title="0">{ continue</span> } - <span class="cov10" title="10992">snap.Global.Reqs++ + <span class="cov10" title="14622">snap.Global.Reqs++ snap.Global.Sent += ev.Sent snap.Global.Recv += ev.Recv pe := snap.Providers[ev.Provider] if pe.Models == nil </span><span class="cov6" title="465">{ pe.Models = make(map[string]Counters) }</span> - <span class="cov10" title="10992">pe.Totals.Reqs++ + <span class="cov10" title="14622">pe.Totals.Reqs++ pe.Totals.Sent += ev.Sent pe.Totals.Recv += ev.Recv mc := pe.Models[ev.Model] @@ -7454,11 +7458,11 @@ func TakeSnapshot() (Snapshot, error) <span class="cov5" title="69">{ pe.Models[ev.Model] = mc snap.Providers[ev.Provider] = pe</span> } - <span class="cov5" title="69">mins := win.Minutes() + <span class="cov4" title="69">mins := win.Minutes() if mins <= 0 </span><span class="cov0" title="0">{ mins = 0.001 }</span> - <span class="cov5" title="69">snap.RPM = float64(snap.Global.Reqs) / mins + <span class="cov4" title="69">snap.RPM = float64(snap.Global.Reqs) / mins return snap, nil</span> } diff --git a/docs/coverage.out b/docs/coverage.out index 5cbda3d..278ee5d 100644 --- a/docs/coverage.out +++ b/docs/coverage.out @@ -1578,92 +1578,94 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:76.43,79.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.2,80.27 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:88.50,90.35 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:90.35,92.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.2,94.30 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:94.30,97.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.14,98.39 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:98.39,100.13 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:102.4,102.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.3,104.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.12,105.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.3,108.19 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.19,109.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.3,111.31 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.31,112.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.3,117.19 4 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.19,118.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,122.17 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.17,124.13 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:124.13,125.13 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:127.4,129.33 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:129.33,130.20 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.20,132.11 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:135.4,135.14 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:135.14,136.13 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:147.3,149.66 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:149.66,151.17 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.17,153.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.4,154.10 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.3,156.34 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.34,157.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:159.3,159.38 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:159.38,167.21 7 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.21,169.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,172.18 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:172.18,175.5 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:176.4,177.17 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.17,179.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:180.4,180.61 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.3,183.8 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.110,191.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:191.14,193.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.2,206.54 8 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:211.96,213.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.14,215.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.2,219.31 4 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:219.31,220.53 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.53,222.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.12,224.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.61 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.61,227.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,230.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:230.14,232.36 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:232.36,235.13 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:237.4,237.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.53 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.53,241.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:242.3,242.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:242.12,243.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.3,248.6 4 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.2,251.26 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:251.26,252.35 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:252.35,254.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:255.3,255.35 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:255.35,257.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:259.2,260.13 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.57,266.20 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.20,268.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.2,270.74 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:270.74,272.31 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:272.31,273.18 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.18,275.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:278.2,279.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:280.21,281.54 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:282.10,283.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:291.91,302.102 7 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:302.102,305.38 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:305.38,307.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:308.3,308.66 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:311.2,312.13 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.68,323.2 6 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:326.46,333.2 6 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:336.61,351.2 9 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:355.59,356.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:356.12,359.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.2,95.30 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.30,96.52 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.52,97.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.3,101.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:101.14,102.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:102.39,104.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.4,106.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.3,108.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.12,109.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:112.3,112.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:112.19,113.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:115.3,115.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:115.31,116.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.3,121.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.19,122.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,126.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.17,128.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.13,129.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.4,133.33 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:133.33,134.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.20,136.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:139.4,139.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:139.14,140.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,145.63 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:145.63,147.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,148.80 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.80,149.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.3,153.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:153.66,155.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:155.17,157.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:158.4,158.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.3,160.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.34,161.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:163.3,163.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:163.38,171.21 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.21,173.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:174.4,176.18 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:176.18,179.5 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:180.4,181.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:181.17,183.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:184.4,184.61 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:187.3,187.8 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:193.110,195.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.14,197.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:199.2,210.54 8 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:215.96,217.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:217.14,219.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.2,223.31 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.31,224.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:224.53,226.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:227.3,227.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:227.12,228.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:230.3,230.61 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:230.61,231.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:233.3,234.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:234.14,236.36 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:236.36,239.13 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:241.4,241.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.3,243.53 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:243.53,245.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.3,246.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:246.12,247.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:249.3,252.6 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:254.2,255.26 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:255.26,256.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:256.35,258.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:259.3,259.35 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:259.35,261.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:263.2,264.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:268.57,270.20 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:270.20,272.3 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.2,274.74 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:274.74,276.31 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:276.31,277.18 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:277.18,279.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:282.2,283.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:284.21,285.54 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:286.10,287.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:295.91,306.102 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:306.102,309.38 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:309.38,311.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:312.3,312.66 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:315.2,316.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:320.68,327.2 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:330.46,337.2 6 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:340.61,355.2 9 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:359.59,360.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:360.12,363.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:8.52,10.55 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:10.55,13.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_execute.go:14.2,14.19 1 0 @@ -2291,8 +2293,8 @@ codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0 codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0 codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0 codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0 -codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 1 -codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 1 +codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0 +codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0 codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0 codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0 codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:12.13,25.107 9 0 @@ -2633,30 +2635,30 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:1048.61,1051.3 2 0 codeberg.org/snonux/hexai/internal/appconfig/config.go:1053.2,1053.10 1 0 codeberg.org/snonux/hexai/internal/appconfig/config.go:1053.10,1055.3 1 0 codeberg.org/snonux/hexai/internal/appconfig/config.go:1056.2,1056.13 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.14 2 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:14.14,16.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:17.2,17.14 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.14 2 3 +codeberg.org/snonux/hexai/internal/editor/editor.go:14.14,16.3 1 1 +codeberg.org/snonux/hexai/internal/editor/editor.go:17.2,17.14 1 3 codeberg.org/snonux/hexai/internal/editor/editor.go:17.14,19.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:20.2,20.16 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:20.2,20.16 1 3 codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.16 2 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.16 2 1 codeberg.org/snonux/hexai/internal/editor/editor.go:38.16,40.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:42.2,44.16 3 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:42.2,44.16 3 1 codeberg.org/snonux/hexai/internal/editor/editor.go:44.16,46.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:47.2,48.15 2 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:48.15,48.38 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:49.2,49.22 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:49.22,50.45 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:47.2,48.15 2 1 +codeberg.org/snonux/hexai/internal/editor/editor.go:48.15,48.38 1 1 +codeberg.org/snonux/hexai/internal/editor/editor.go:49.2,49.22 1 1 +codeberg.org/snonux/hexai/internal/editor/editor.go:49.22,50.45 1 1 codeberg.org/snonux/hexai/internal/editor/editor.go:50.45,53.4 2 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:55.2,55.33 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:55.2,55.33 1 1 codeberg.org/snonux/hexai/internal/editor/editor.go:55.33,58.3 2 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:59.2,59.34 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:59.2,59.34 1 1 codeberg.org/snonux/hexai/internal/editor/editor.go:59.34,61.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:62.2,62.44 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:62.2,62.44 1 1 codeberg.org/snonux/hexai/internal/editor/editor.go:62.44,64.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:65.2,66.16 2 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:65.2,66.16 2 1 codeberg.org/snonux/hexai/internal/editor/editor.go:66.16,68.3 1 0 -codeberg.org/snonux/hexai/internal/editor/editor.go:69.2,69.42 1 0 +codeberg.org/snonux/hexai/internal/editor/editor.go:69.2,69.42 1 1 codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.18 1 0 codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.18,30.3 1 0 codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.2,32.90 1 0 @@ -3866,92 +3868,94 @@ codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:76.43,79.3 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:80.2,80.27 1 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:88.50,90.35 2 0 codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:90.35,92.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.2,94.30 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:94.30,97.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:97.14,98.39 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:98.39,100.13 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:102.4,102.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.3,104.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:104.12,105.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.3,108.19 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.19,109.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.3,111.31 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:111.31,112.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:114.3,117.19 4 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:117.19,118.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.3,122.17 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:122.17,124.13 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:124.13,125.13 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:127.4,129.33 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:129.33,130.20 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:130.20,132.11 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:135.4,135.14 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:135.14,136.13 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:140.3,141.63 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:141.63,143.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,144.80 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.80,145.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:147.3,149.66 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:149.66,151.17 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.17,153.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:154.4,154.10 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.3,156.34 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:156.34,157.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:159.3,159.38 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:159.38,167.21 7 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:167.21,169.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:170.4,172.18 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:172.18,175.5 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:176.4,177.17 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:177.17,179.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:180.4,180.61 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:183.3,183.8 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:189.110,191.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:191.14,193.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:195.2,206.54 8 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:211.96,213.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:213.14,215.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:216.2,219.31 4 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:219.31,220.53 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:220.53,222.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.3,223.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:223.12,224.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.3,226.61 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:226.61,227.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:229.3,230.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:230.14,232.36 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:232.36,235.13 3 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:237.4,237.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.3,239.53 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:239.53,241.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:242.3,242.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:242.12,243.9 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:245.3,248.6 4 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:250.2,251.26 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:251.26,252.35 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:252.35,254.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:255.3,255.35 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:255.35,257.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:259.2,260.13 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:264.57,266.20 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:266.20,268.3 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:269.2,270.74 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:270.74,272.31 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:272.31,273.18 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:273.18,275.5 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:278.2,279.14 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:280.21,281.54 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:282.10,283.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:291.91,302.102 7 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:302.102,305.38 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:305.38,307.4 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:308.3,308.66 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:311.2,312.13 2 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:316.68,323.2 6 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:326.46,333.2 6 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:336.61,351.2 9 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:355.59,356.12 1 0 -codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:356.12,359.3 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:93.2,95.30 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:95.30,96.52 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:96.52,97.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:100.3,101.14 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:101.14,102.39 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:102.39,104.13 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:106.4,106.9 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.3,108.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:108.12,109.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:112.3,112.19 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:112.19,113.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:115.3,115.31 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:115.31,116.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:118.3,121.19 4 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:121.19,122.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:125.3,126.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:126.17,128.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:128.13,129.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:131.4,133.33 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:133.33,134.20 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:134.20,136.11 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:139.4,139.14 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:139.14,140.13 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:144.3,145.63 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:145.63,147.4 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.3,148.80 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:148.80,149.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:151.3,153.66 3 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:153.66,155.17 2 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:155.17,157.5 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:158.4,158.10 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.3,160.34 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:160.34,161.12 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:163.3,163.38 1 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:163.38,171.21 7 0 +codeberg.org/snonux/hexai/internal/lsp/handlers_document.go:171.21,173.5 1 0 +codeberg.org/snonux/hexai/inte |
