feat(lsp, ui, core): refactor LSP initialization, improve config handling, and clean up TreeSitter

* LSP Client & Manager
  Refactored initialization flow to use internal state instead of passing params
  Added workspace_path and init_opts to LSPClient
  Simplified send_initialize_message() (no external args)
  Updated manager/client APIs to require explicit workspace_path and typed init_opts
  Improved client lifecycle handling and UI button toggling

* LSP Manager UI
  Added {user.home} substitution support in configs
  Use live editor buffer for JSON config parsing instead of static template
  Minor cleanup and formatting improvements

* Core Widgets
  Prevent external modification checks for buffer-only files in SourceFile
  Minor formatting cleanup in SourceView

* Plugins / Manifest
  Expanded manifest schema: added description and copyright, reordered fields

* Cleanup
  Removed TreeSitter compile script and TODO entry
  General code formatting and small consistency fixes

chore: remove unused TreeSitter tooling and related TODO entry
This commit is contained in:
2026-03-28 16:14:04 -05:00
parent 70877a7ee1
commit dc2997ec16
10 changed files with 62 additions and 78 deletions

View File

@@ -155,9 +155,10 @@ class SourceFile(GtkSource.File):
self.buffer.unblock_modified_changed_signal()
def is_externally_modified(self) -> bool:
stat = os.stat(self.fpath)
current = (stat.st_mtime_ns, stat.st_size)
if self.fname == "buffer": return
stat = os.stat(self.fpath)
current = (stat.st_mtime_ns, stat.st_size)
is_modified = \
hasattr(self, "last_state") and not current == self.last_state

View File

@@ -19,10 +19,10 @@ class SourceView(GtkSource.View, SourceViewDnDMixin):
def __init__(self, state: SourceViewStates = SourceViewStates.INSERT):
super(SourceView, self).__init__()
self.state = state
self.state = state
self.sibling_right = None
self.sibling_left = None
self.sibling_right = None
self.sibling_left = None
self._setup_styles()
self._setup_signals()

View File

@@ -13,9 +13,11 @@ from .requests import Requests
class Manifest:
name: str = ""
author: str = ""
credit: str = ""
description: str = ""
version: str = "0.0.1"
support: str = "support@mail.com"
credit: str = ""
copyright: str = "GPLv2"
pre_launch: bool = False
autoload: bool = True
requests: Requests = field(default_factory = lambda: Requests())