Template
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
This commit is contained in:
@@ -26,6 +26,7 @@ from .get_source_views_event import GetSourceViewsEvent
|
||||
from .create_command_system_event import CreateCommandSystemEvent
|
||||
from .request_completion_event import RequestCompletionEvent
|
||||
from .cursor_moved_event import CursorMovedEvent
|
||||
from .delete_range_event import DeleteRangeEvent
|
||||
from .modified_changed_event import ModifiedChangedEvent
|
||||
from .text_changed_event import TextChangedEvent
|
||||
from .text_inserted_event import TextInsertedEvent
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Python imports
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
# Lib imports
|
||||
import gi
|
||||
|
||||
gi.require_version('Gtk', '3.0')
|
||||
|
||||
from gi.repository import Gtk
|
||||
|
||||
# Application imports
|
||||
from .code_event import CodeEvent
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class DeleteRangeEvent(CodeEvent):
|
||||
start: Gtk.TextIter = None
|
||||
end: Gtk.TextIter = None
|
||||
@@ -1,7 +1,11 @@
|
||||
# Python imports
|
||||
from dataclasses import dataclass
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
# Lib imports
|
||||
import gi
|
||||
gi.require_version('GtkSource', '4')
|
||||
|
||||
from gi.repository import GtkSource
|
||||
|
||||
# Application imports
|
||||
from .code_event import CodeEvent
|
||||
@@ -10,4 +14,6 @@ from .code_event import CodeEvent
|
||||
|
||||
@dataclass
|
||||
class UnregisterProviderEvent(CodeEvent):
|
||||
provider_name: str = ""
|
||||
provider_name: str = ""
|
||||
provider: GtkSource.CompletionProvider = None
|
||||
language_ids: list = field(default_factory=lambda: [])
|
||||
|
||||
Reference in New Issue
Block a user