Commit Graph

5 Commits

Author SHA1 Message Date
YeonGyu-Kim
3e1a270302 fix(lsp): cleanup orphan LSP servers on process exit
Implement cross-platform process cleanup handlers for LSP servers.

Added registerProcessCleanup() method to LSPServerManager that:
- Kills all spawned LSP server processes on process.exit
- Handles SIGINT (Ctrl+C) - all platforms
- Handles SIGTERM (kill signal) - Unix/macOS/Linux
- Handles SIGBREAK (Ctrl+Break) - Windows specific

This prevents LSP servers from becoming orphan processes when opencode terminates unexpectedly.

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2025-12-16 21:02:38 +09:00
YeonGyu-Kim
b86346a79d fix(lsp): add Push model support and fix JSON LSP diagnostics
- Add diagnosticsStore to capture Push model notifications
- Handle textDocument/publishDiagnostics notifications in processBuffer
- Fix workspace/configuration response for JSON LSP validation
- Add missing language mappings (json, html, css, sh, fish, md, tf)
- diagnostics() now tries Pull first, falls back to Push store
2025-12-08 09:38:00 +09:00
YeonGyu-Kim
ff3a7bfee0 refactor(tools): rename all tools to snake_case for consistency 2025-12-04 23:01:16 +09:00
YeonGyu-Kim
dc119bc1ed feat(lsp): add rename, code actions, and server connection pooling
- Add LSPServerManager for connection pooling with idle cleanup
- Add lsp_prepare_rename and lsp_rename tools
- Add lsp_code_actions and lsp_code_action_resolve tools
- Add WorkspaceEdit types and applyWorkspaceEdit utility
- Improve LSP client robustness with stderr buffering and process state tracking
2025-12-04 22:40:05 +09:00
YeonGyu-Kim
7090fca0fd feat(lsp): add LSP tools integration with workspace/configuration support
- Add 7 LSP tools: hover, goto_definition, find_references, document_symbols, workspace_symbols, diagnostics, servers
- Support multiple LSP servers: typescript, gopls, pyrefly, basedpyright, ruff, rust-analyzer, clangd, sourcekit-lsp, ruby-lsp
- Read LSP config from opencode.json with disabled server support
- Handle server requests: workspace/configuration, client/registerCapability, window/workDoneProgress/create
- Send workspace/didChangeConfiguration after initialized for basedpyright compatibility
- Uint8Array-based buffer for reliable LSP message parsing
2025-12-04 21:54:02 +09:00