Commit Graph

7 Commits

Author SHA1 Message Date
2d4c8e4f31 feat(lsp): improve shutdown lifecycle and response handling
- Add explicit shutdown and exit requests to LSP client
- Rename initialized message to initialized notification
- Handle initialize → send initialized notification
- Handle shutdown → send exit notification

fix(lsp): delay client teardown to allow graceful shutdown
- Close LSP client and response handlers after timeout (GLib)

feat(vte): major terminal widget improvements
- Switch to spawn_async with full environment inheritance
- Improve PROMPT_COMMAND handling for cwd tracking (OSC7)
- Enable scrollback, disable audible bell, enable scroll-on-output
- Add clipboard shortcuts (Ctrl+Shift+C/V), middle-click paste
- Track current directory changes and update UI label
- Add proper signal wiring and cleanup on destroy

feat(ui): improve Plugins dialog behavior
- Make dialog non-modal and centered on parent window
- Auto-hide on focus loss and Ctrl+Shift+P shortcut
- Ensure proper destroy-with-parent behavior

refactor: add type hints and minor cleanup
- Add explicit typing for VteWidget fields
- Improve signal naming consistency
- Minor formatting and cleanup in folding and LSP modules
2026-04-13 00:54:51 -05:00
a8ad015e05 Refactor LSP manager architecture and event + completion pipeline
- Replace legacy LSPManagerClient + LSPManagerUI with ClientManager and UIManager
- Remove WebsocketClient in favor of unified Websocket implementation
- Move LSP initialization config loading into centralized config module
- Update LSPClient to support dynamic socket, improved init params, and doc version tracking
- Introduce range-based didChange notifications and add implementation + references requests
- Expand LSPClientEvents to support implementation/references and structured range edits
- Simplify websocket response handling and normalize LSP response parsing flow
- Decouple UI from LSP manager core; UI now emits address/port for client creation
- Refactor completion provider pipeline:
  - Split TextChangedEvent into TextInsertedEvent and DeleteRangeEvent
  - Update ProviderResponseCacheBase and controller dispatch paths accordingly
- Improve SourceBuffer and SourceFile event tracking with delete-range support
- Update plugin system:
  - Centralize command/provider registration via helper methods
  - Add LSP commands: definition, references, implementation, toggle UI
- Enhance response handlers to support references and implementation hooks
- Improve Python LSP config (jedi completion, signatures, references enabled)
- Fix minor GTK lifecycle and buffer signal handling issues
- Clean up unused imports, dead code, and outdated JSON server configs
2026-04-11 15:36:59 -05:00
bd277c0214 Refactor LSP manager and file handling
- Refactored LSPClient and LSPClientEvents to use workspace path and initialization options.
- Updated LSPManager to pass workspace path to client creation.
- Modified LSPManagerUI to handle user home paths and workspace configurations.
- Enhanced file handling to manage buffer and directory types.
- Introduced CreatedSourceViewEvent for source view creation event tracking.
- Added better error handling and logging for file operations.

Other minor UI and widget adjustments for improved layout and drag-and-drop handling.
2026-03-29 14:04:56 -05:00
9f1c3cc452 Made explicit that LSP Manager should pre-launch when autoload true/unset 2026-03-22 17:37:49 -05:00
0b231ac749 feat: Complete plugin lifecycle management with lazy loading and runtime reload
Major changes:
- Add unload() method to all plugins for proper cleanup (unregister commands/providers/LSP clients, destroy widgets, clear state)
- Implement lazy widget loading via "show" signal across all containers
- Add autoload: false manifest option for manual/conditional plugin loading
- Add Plugins UI with runtime load/unload toggle via Ctrl+Shift+p
- Implement controller unregistration system with proper signal disconnection
- Add new events: UnregisterCommandEvent, GetFilesEvent, GetSourceViewsEvent, TogglePluginsUiEvent
- Fix signal leaks by tracking and disconnecting handlers in widgets (search/replace, LSP manager, tabs, telescope, markdown preview)
- Add Save/Save As to tabs context menu
- Improve search/replace behavior (selection handling, focus management)
- Add telescope file initialization from existing loaded files
- Refactor plugin reload watcher to dynamically add/remove plugins on filesystem changes
- Add new plugins: file_history, extend_source_view_menu, godot_lsp_client
- Fix bug in prettify_json (undefined variable reference
2026-03-21 13:26:12 -05:00
0fc440e7ce Add dynamic EventNamespace for event type access and refactor LSP manager initialization
- Create EventNamespace class to enable Code_Event_Types.RegisterLspClientEvent access
- Move set_event_hub call from plugin to lsp_manager._do_bind_mapping
- Update event type references to use Code_Event_Types namespace
2026-03-15 23:40:40 -05:00
080ba41cf1 Remove custom LSP manager plugins and add new language server clients
- Delete old lsp_manager plugin (custom websocket-based LSP client implementation)
- Delete java_lsp_client plugin
- Delete python_lsp_client plugin
- Remove unused LSP DTO files in src/libs/dto/code/lsp/
- Add new language_server_clients plugin directory
- Improve event_factory with register_events method
- Add PYTHONDONTWRITEBYTECODE to user config
- Update events init.py docstring
2026-03-15 20:45:58 -05:00