Skip to content
Open
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
f1b0dee
Introduce new plugin API
rchl Jan 27, 2026
9a749ea
public export
rchl Jan 27, 2026
cb0d6c9
opt-in flag
rchl Jan 27, 2026
9e40a7c
indent
rchl Jan 27, 2026
70096c1
can't be abstract
rchl Jan 27, 2026
d996f1b
dump old code
rchl Jan 27, 2026
af0b028
doc
rchl Jan 27, 2026
c95005e
adding new apis
rchl Jan 27, 2026
4013c91
blank
rchl Jan 27, 2026
4aa35ee
rename to LspPlugin
rchl Jan 29, 2026
d6242ee
remove on_post_start
rchl Jan 29, 2026
83e91ba
rename on_pre_server_command to on_execute_command
rchl Jan 29, 2026
16b1653
Merge branch 'main' into feat/new-plugin-api
rchl Feb 7, 2026
3173d4c
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 8, 2026
ea9e9c1
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 16, 2026
2227561
remove name() and configuration()
rchl Feb 16, 2026
15a011c
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 16, 2026
4053880
storage_path as a property
rchl Feb 16, 2026
f35e6f3
use Path
rchl Feb 17, 2026
6f843c5
auto-detect session-name of the lsp command
rchl Feb 17, 2026
cd25ebe
remove AbstractPlugin.selector
rchl Feb 17, 2026
6637782
remove comment
rchl Feb 17, 2026
62ca15f
on_execute_command returns Promise
rchl Feb 17, 2026
a2fbdbe
update tests
rchl Feb 17, 2026
8c117c4
lint
rchl Feb 17, 2026
fc6f079
on_open_uri_async returns a Promise
rchl Feb 17, 2026
e16290b
on_open_uri_async returns a Promise
rchl Feb 17, 2026
d78037b
Add generic arguments
rchl Feb 17, 2026
53d7856
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 18, 2026
1ff861c
expose plugin_storage_path instead of storage_path
rchl Feb 19, 2026
3acb880
Merge branch 'main' into feat/new-plugin-api
rchl Feb 20, 2026
b873a36
plugin_storage_path
rchl Feb 20, 2026
05df9d6
Merge branch 'main' into feat/new-plugin-api
rchl Feb 21, 2026
263524a
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 22, 2026
28ddcb2
restore request_handler
rchl Feb 22, 2026
a51793a
Merge branch 'main' into feat/new-plugin-api
rchl Feb 22, 2026
1bf417a
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 25, 2026
d2e334e
fixup
rchl Feb 25, 2026
3a31944
fixup
rchl Feb 25, 2026
a404bbc
fixup
rchl Feb 25, 2026
bbfb5d2
Remove AbstractPlugin.should_ignore()
rchl Feb 26, 2026
f9df53f
Merge branch 'main' into feat/new-plugin-api
rchl Feb 27, 2026
42592b3
Use ClientRequest/ClientNotification/ServerResponse/ServerNotification
rchl Feb 27, 2026
e28d939
Merge branch 'main' into feat/new-plugin-api
rchl Feb 27, 2026
868c3b1
set lsp_uri if view
rchl Feb 27, 2026
beecb8b
remove unused HandleUpdateOrInstallationParams
rchl Feb 27, 2026
7a20c5c
fixup
rchl Feb 27, 2026
48575cc
review comments
rchl Feb 28, 2026
cad2247
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Feb 28, 2026
01a4a78
use Final for plugin_storage_path
rchl Feb 28, 2026
5008c02
Merge branch 'main' into feat/new-plugin-api
rchl Mar 5, 2026
bfee983
bug
rchl Mar 5, 2026
3eca3f7
Add LspPlugin.session_name and initialize on subclass
rchl Mar 5, 2026
dc90c3e
Remove deprecated set_window_status_async (jdtls will updated)
rchl Mar 5, 2026
4b1d9c4
Replace on_pre_start with 3 separate APIs
rchl Mar 5, 2026
9aa4824
replace can_start with DontStartPluginError
rchl Mar 5, 2026
049a6ef
Merge branch 'main' into feat/new-plugin-api
rchl Mar 15, 2026
24d3fd4
Fix after merge
rchl Mar 15, 2026
723f359
change "def initialization_options" return type
rchl Mar 15, 2026
309bd9e
Rename DontStartPluginError to PluginStartError
rchl Mar 15, 2026
cf668f2
update tooling
rchl Mar 15, 2026
435a9d4
add missing super init
rchl Mar 15, 2026
eb7772d
decide workspace folder in "def working_directory"
rchl Mar 15, 2026
3a936c4
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Mar 22, 2026
d0ab4ce
formatting
rchl Mar 22, 2026
315c682
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Mar 24, 2026
4f1290e
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Mar 24, 2026
c172460
expand documentation
rchl Mar 24, 2026
bbcff02
Rename PluginContext.initiating_view to view
rchl Mar 24, 2026
4c9aaef
Update plugin/api.py
rchl Mar 24, 2026
ab945b5
add register() and unregister() on LpsPlugin
rchl Mar 24, 2026
27be495
add migration guide
rchl Mar 24, 2026
3610a4c
always return dict from additional_variables
rchl Mar 24, 2026
c12b4a4
remove on_settings_changed
rchl Mar 25, 2026
ac16cee
Merge branch 'main' into feat/new-plugin-api
rchl Mar 25, 2026
7764a62
add on_before_initialize
rchl Mar 25, 2026
c139657
compatibility with pyright
rchl Mar 25, 2026
a85aa94
add pass
rchl Mar 25, 2026
32aacdb
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Apr 9, 2026
2494693
make PackagedTask public
rchl Apr 9, 2026
1d213a9
add TransportWrapper.send_bytes()
rchl Apr 9, 2026
7fdfe9e
only import ref
rchl Apr 9, 2026
1a1784c
update migration
rchl Apr 9, 2026
be6aa2f
update migration
rchl Apr 9, 2026
68f748a
update migration
rchl Apr 9, 2026
d787d30
deprecate AbstractPlugin
rchl Apr 9, 2026
83d7d88
Merge branch 'main' into feat/new-plugin-api
rchl Apr 9, 2026
0299203
deprecate un/register_plugin
rchl Apr 9, 2026
9b1a834
nicer syntax
rchl Apr 9, 2026
f3f557d
revert docs for deprecated function
rchl Apr 9, 2026
3cea9fa
don't pass PluginContext to init
rchl Apr 10, 2026
6f5778b
Add doc to PluginStartError
rchl Apr 10, 2026
414a4a0
rename LspPlugin.session_name to name
rchl Apr 10, 2026
8e28057
store window variables in Session
rchl Apr 10, 2026
a8eef3c
fix test
rchl Apr 10, 2026
710e05c
simplify: no need to pass plugin_data to Session
rchl Apr 10, 2026
af33477
add final decorator
rchl Apr 12, 2026
569e2bf
Merge remote-tracking branch 'origin/main' into feat/new-plugin-api
rchl Apr 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions boot.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

from .plugin.api import AbstractPlugin
from .plugin.api import g_plugins
from .plugin.api import register_plugin
from .plugin.api import LspPlugin
from .plugin.api import register_plugin_impl
from .plugin.code_actions import LspCodeActionsCommand
from .plugin.code_actions import LspRefactorCommand
from .plugin.code_actions import LspSourceActionCommand
Expand Down Expand Up @@ -180,15 +181,16 @@ def _get_final_subclasses(derived: list[type], results: list[type]) -> None:


def _register_all_plugins() -> None:
plugin_classes: list[type[AbstractPlugin]] = []
plugin_classes: list[type[AbstractPlugin | LspPlugin]] = []
_get_final_subclasses(AbstractPlugin.__subclasses__(), plugin_classes)
_get_final_subclasses(LspPlugin.__subclasses__(), plugin_classes)
for plugin_class in plugin_classes:
try:
if not plugin_class.name():
if issubclass(plugin_class, AbstractPlugin) and not plugin_class.name():
continue
except NotImplementedError:
continue
register_plugin(plugin_class, notify_listener=False)
register_plugin_impl(plugin_class, notify_listener=False)


def _unregister_all_plugins() -> None:
Expand Down
1 change: 1 addition & 0 deletions docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ nav:
- Keyboard Shortcuts: keyboard_shortcuts.md
- Client Configuration: client_configuration.md
- Troubleshooting: troubleshooting.md
- Migration to LspPlugin: migrating_to_lsp_plugin.md

extra:
social:
Expand Down
Loading