summaryrefslogtreecommitdiff
path: root/internal/lsp
AgeCommit message (Collapse)Author
2025-09-06feat(lsp): configurable inline/chat triggers; switch inline markers to ↵Paul Buetow
>text>/>>text>; update docs and example config; tests updated to new triggers and raise LSP coverage to >=85%; chore: remove semicolon legacy; chore(mage): auto-refresh coverage daily if docs/coverage.out is older than 24h
2025-09-05over 80% coverage nowPaul Buetow
2025-09-05tests: provider header assertions, more negative cases (no choices, empty ↵Paul Buetow
deltas), provider-native success; update REPORT.md
2025-09-05tests: add more negative provider cases and table-driven LSP coverage; ↵Paul Buetow
assert headers; add indent postprocess test
2025-09-04tests: add more table-driven cases and negative provider tests; update reportPaul Buetow
2025-09-04tests: add negative SSE test, table-driven refactors, and use shared ↵Paul Buetow
fixtures across tests; update REPORT.md progress
2025-09-04tests: add shared test fixtures, expand provider breadth (multi-choice, ↵Paul Buetow
error bodies), add LSP rewrite/diagnostics realism and table-driven tests
2025-09-04tests(lsp): push coverage over 80%\n- Add init/trigger, chat history, ↵Paul Buetow
document handler, transport readMessage, and rewrite resolve tests\n- Cover deferShowDocument and shutdown reply\n- Now ~81.2% coverage for internal/lsp
2025-09-04tests(lsp): add diagnostics action builder and completion message/prefix ↵Paul Buetow
tests; lsp ~72%
2025-09-04tests(lsp): add end-to-end diagnostics resolve and provider-native error ↵Paul Buetow
fallback coverage; lsp ~72%
2025-09-04tests(lsp): add end-to-end chat edit test with async wait; lsp coverage ~70%Paul Buetow
2025-09-04tests(lsp): add end-to-end codeAction and resolve tests via LSP response capturePaul Buetow
2025-09-04tests(lsp): add more helper and code action tests; coverage trending upwardPaul Buetow
2025-09-04tests(lsp): add completion helper tests (trigger info, suppression, prefix ↵Paul Buetow
heuristics)
2025-09-04tests: fix hexaicli OpenAI-key dependent tests; add lsp code action and ↵Paul Buetow
helper tests; ignore coverage artifacts
2025-09-04tests(lsp,llm): add helper and factory tests to raise coverage modestly; ↵Paul Buetow
continue toward 80% target
2025-09-03lsp: add 'Hexai: document code' action to add doc comments to selected codePaul Buetow
2025-09-03lsp: add 'Hexai: implement unit test' code action for Gov0.4.1Paul Buetow
- Generate or append tests to _test.go - Jump to generated test via showDocument (command + server-initiated) - Document the feature in docs/go-unit-tests.md - Prefix action titles with 'Hexai: ' - Bump version to 0.4.1
2025-09-03Phase 2: add configurable completion debounce\n\n- App config: ↵Paul Buetow
completion_debounce_ms (default 200)\n- Server: wait until no input for debounce before LLM calls\n- Applies to chat and provider-native completion paths\n- Tests: add debounce and adjust to verify behavior\n\nAll unit tests pass.
2025-09-03Phase 1: remove single in-flight LLM gate\n\n- Drop llmBusy state and busy ↵Paul Buetow
item\n- Remove concurrency guard in completion paths\n- Allow manual invoke (TriggerKind=1) even after whitespace\n- Delete llm_busy_test; update TODO\n\nAll unit tests pass.
2025-09-03delete dead codePaul Buetow
2025-08-31update the statusPaul Buetow
2025-08-31module: set module path to codeberg.org/snonux/hexai; update imports; docs: ↵v0.3.4Paul Buetow
add go install instructions
2025-08-29lsp: move remaining small helpers (code-fence, label, duplicate prefix, ↵Paul Buetow
semicolon tag, extractRangeText) to handlers_utils.go; keep handlers.go <1000 lines
2025-08-29lsp: extract generic helpers to handlers_utils.go; tidy importsPaul Buetow
2025-08-29lsp: refactor dispatch to handler map; split handlers into feature files ↵Paul Buetow
(completion, codeaction, init, document); decompose completion logic into small helpers; update review checklist
2025-08-28lsp: limit to one in-flight LLM query; return visible 'LLM busy' completion ↵Paul Buetow
item with provider/model; retain chat EOL suppression
2025-08-28lsp: switch in-editor chat triggers to ?> !> :> ;> and suppress normal ↵Paul Buetow
completion on EOL chat trigger; keep ;;text; inline trigger unchanged; update docs and tests
2025-08-28copilot: add session token + codex code completion; lsp: prefer native ↵v0.3.0Paul Buetow
CodeCompleter with chat fallback; remove obsolete throttle path; add tests; bump version to 0.3.0
2025-08-28lsp/chat: remove '..' trigger; docs: update triggers; tests: align throttle ↵v0.2.1Paul Buetow
test; version: bump to 0.2.1
2025-08-22remove busy checkPaul Buetow
2025-08-22stuffPaul Buetow
2025-08-22logging: log completion TriggerKind and TriggerCharacter for every requestPaul Buetow
2025-08-22completion: only apply leading indentation for ';;text;' prompts; not for ↵Paul Buetow
';text;'
2025-08-22completion: only apply leading indentation for ';;text;' prompts; not for ↵Paul Buetow
';text;'
2025-08-22chat: remove ';;' as in-editor chat trigger to avoid conflict with inline ↵Paul Buetow
';;text;' completion; update docs
2025-08-22lsp: suppress auto-trigger when line contains bare ';;' (no ';;text;') ↵Paul Buetow
unless manual invoke; add explicit skip log
2025-08-22lsp: refine ';;text;' detection to require non-empty, non-space content and ↵Paul Buetow
closing ';'; ensure bare ';;' and ';;;' do not auto-trigger; add tests
2025-08-22lsp: inline prompt override does not trigger for bare ';;' (requires ↵Paul Buetow
';;text;'); add unit test
2025-08-22lsp: always trigger completion on inline semicolon prompts (;text; or ↵Paul Buetow
';;...;'); relax prefix check accordingly; add tests
2025-08-22tests(lsp): add duplicate-prefix and manual-invoke tests; fix cache key to ↵Paul Buetow
ignore trailing whitespace; guard compCache init
2025-08-22lsp: relax short-prefix check for manual invoke and after ')' in signaturesPaul Buetow
2025-08-22lsp: treat manual completion as trigger; remove space from default triggers; ↵Paul Buetow
avoid auto after whitespace
2025-08-20betterPaul Buetow
2025-08-20lsp: add tiny LRU cache for last 10 completions; ignore trailing whitespace ↵Paul Buetow
in cache key; log cache hits; report busy with isIncomplete to prompt client retry
2025-08-19lsp/codeactions: make actions lazy and resolve on selection\n\n- Advertise ↵Paul Buetow
CodeAction resolveProvider and implement codeAction/resolve\n- Return lightweight actions with data; no LLM call during listing\n- On resolve, perform LLM and populate WorkspaceEdit\n- Update tests to cover lazy+resolve flow
2025-08-19logging: highlight LLM no-op skips in yellow\n\n- Add AnsiYellow to logging ↵Paul Buetow
utilities\n- Colorize skip logs (no-trigger, short-prefix, busy) in hexai-lsp logs
2025-08-19lsp: include space in trigger characters and allow space-triggered ↵Paul Buetow
completions\n\n- Defaults now include space (" ") in trigger list\n- Prefix heuristic treats space as structural trigger (no min-prefix required)\n- README and config example updated\n- Tests: add coverage for space trigger
2025-08-19lsp: replace time throttle with in-flight guard; improve short-prefix ↵Paul Buetow
heuristic\n\n- Prevent overlapping LLM requests via llmBusy guard\n- Remove time-based throttle and option plumbing\n- Short-prefix heuristic now skips over trailing whitespace and clamps index\n- Add tests for busy guard and trailing-space allowance
2025-08-19lsp: reduce eager completions and add throttling\n\n- Defaults: remove ';' ↵Paul Buetow
and '?' from trigger characters\n- Add min-typed-prefix heuristic for LLM completions (>=2 chars)\n- Add simple time-based throttle between LLM completions (default 900ms)\n- Tests: verify default triggers and skip logic (throttle + min prefix)\n- Config example: update trigger_characters list