feat(tree-sitter, views): initialize AST on focus and emit source view creation event

- Add set_ast helper to centralize Tree-sitter parsing logic
- Parse and attach AST on FocusedViewEvent and TextChangedEvent
- Request file from buffer on view focus before parsing
- Fix parser guard condition in get_parser (handle missing language properly)

- Emit CreatedSourceViewEvent when a new source view is added
- Register CreatedSourceViewEvent in DTO exports

- Update TODO:
  - Remove completed collapsible code blocks task
  - Add fix note for code block icon desync issue

chore:
- Add scaffolding for code_fold UI plugin
- Add created_source_view_event DTO
This commit is contained in:
2026-03-29 03:09:43 -05:00
parent dc2997ec16
commit 62a866d9bb
14 changed files with 349 additions and 13 deletions

View File

@@ -111,6 +111,12 @@ class SourceViewsController(ControllerBase, list):
self.signal_mapper.connect_signals(source_view)
self.append(source_view)
event = Event_Factory.create_event(
"created_source_view", view = source_view
)
self.emit(event)
return source_view
def first_map_load(self):

View File

@@ -6,6 +6,7 @@
from .code_event import CodeEvent
from .toggle_plugins_ui_event import TogglePluginsUiEvent
from .create_source_view_event import CreateSourceViewEvent
from .created_source_view_event import CreatedSourceViewEvent
from .register_completer_event import RegisterCompleterEvent
from .unregister_completer_event import UnregisterCompleterEvent
from .register_provider_event import RegisterProviderEvent

View File

@@ -0,0 +1,14 @@
# Python imports
from dataclasses import dataclass
# Lib imports
# Application imports
from .code_event import CodeEvent
from libs.dto.states.source_view_states import SourceViewStates
@dataclass
class CreatedSourceViewEvent(CodeEvent):
...