itdominator 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
2020-05-07 19:04:09 -05:00
2024-07-26 19:53:04 -05:00
2025-07-13 14:17:52 -05:00

Python-With-Gtk-Template

A template project for Python with Gtk applications.

Requirements

  • PyGObject (Gtk introspection library)
  • pygobject-stubs (For actually getting pylsp or python-language-server to auto complete in LSPs. Do if GTK3 --no-cache-dir --config-settings=config=Gtk3,Gdk3,Soup2)
  • pyxdg (Desktop ".desktop" file parser)
  • setproctitle (Define process title to search and kill more easily)
  • sqlmodel (SQL databases and is powered by Pydantic and SQLAlchemy)

Note

  • pyrightconfig.json can prompt IDEs that use pyright lsp on where imports are located- look at venvPath and venv. "venvPath" is parent path of "venv" where "venv" is just the name of the folder under the parent path that is the python created venv.
  • Move respetive sub folder content under user_config to the same places in Linux. Though, user/share/ can go to ~/.config folder if prefered.
  • In additiion, place the plugins folder in the same app folder you moved to /usr/share/ or ~/.config/ . There are a "<change_me>" strings and files that need to be set according to your app's name located at:
  • __builtins__.py
  • user_config/bin/app_name
  • user_config/usr/share/app_name
  • user_config/usr/share/app_name/icons/app_name.png
  • user_config/usr/share/app_name/icons/app_name-64x64.png
  • user_config/usr/share/applications/app_name.desktop

For the user_config, after changing names and files, copy all content to their respective destinations. The logic follows Debian Dpkg packaging and its placement logic.

Description
A template project for Python with Gtk applications.
Readme GPL-2.0 2.5 MiB
Languages
Python 70%
HTML 27.2%
CSS 1.5%
JavaScript 0.9%
Shell 0.4%