Round 250: Treesitter ext, Native-compile, Eglot ext, JSONRPC (20 commands)

ober

80c8b2734fd8bca2af3249d4905282bc8397e0c9

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index b826836..1e95f01 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 250 — Treesitter ext, Native-compile, Eglot ext, JSONRPC
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| treesit-font-lock-recompute-features | :orange_circle: | Recompute treesit font-lock features |
+| native-comp-speed-set | :orange_circle: | Set native compilation speed |
+| package-recompile-all | :orange_circle: | Recompile all packages |
+| package-isolate | :orange_circle: | Isolate a package for testing |
+| loaddefs-generate | :orange_circle: | Generate autoload definitions |
+| batch-native-compile | :orange_circle: | Batch native compile files |
+| restart-emacs-start-new-emacs | :orange_circle: | Restart in new Emacs instance |
+| multisession-edit-value | :orange_circle: | Edit multisession variable |
+| multisession-delete | :orange_circle: | Delete multisession variable |
+| connection-local-set-profile-variables | :orange_circle: | Set connection-local profile vars |
+| hack-connection-local-variables | :orange_circle: | Apply connection-local variables |
+| jsonrpc-request | :orange_circle: | Send JSONRPC request |
+| jsonrpc-notify | :orange_circle: | Send JSONRPC notification |
+| jsonrpc-shutdown | :orange_circle: | Shutdown JSONRPC connection |
+| eglot-list-connections | :orange_circle: | List active Eglot connections |
+| eglot-forget-pending-continuations | :orange_circle: | Forget pending continuations |
+| eglot-signal-didClose | :orange_circle: | Signal didClose to server |
+| eglot-signal-didChangeWatchedFiles | :orange_circle: | Signal watched files changed |
+| eglot-reconnect-all | :orange_circle: | Reconnect all Eglot servers |
+| eglot-boosts-enable | :orange_circle: | Toggle Eglot boosts |
+
 ### Round 249 — CUA ext, Password-store, EPA
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index d135ae6..98bca03 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -20519,3 +20519,51 @@
 (def (cmd-epa-export-keys app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "EPA: exporting keys")))
+
+;; Round 250 — JSONRPC, Eglot ext, Connection-local (10 in final)
+(def (cmd-hack-connection-local-variables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Connection-local: hacked variables for buffer")))
+
+(def (cmd-jsonrpc-request app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "JSONRPC method: "
+      (lambda (method)
+        (echo-message! echo (str "JSONRPC: sent request " method))))))
+
+(def (cmd-jsonrpc-notify app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "JSONRPC notification: "
+      (lambda (method)
+        (echo-message! echo (str "JSONRPC: sent notification " method))))))
+
+(def (cmd-jsonrpc-shutdown app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JSONRPC: shutting down connection")))
+
+(def (cmd-eglot-list-connections app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eglot: listing active connections")))
+
+(def (cmd-eglot-forget-pending-continuations app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eglot: forgot pending continuations")))
+
+(def (cmd-eglot-signal-didClose app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eglot: signaled didClose")))
+
+(def (cmd-eglot-signal-didChangeWatchedFiles app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eglot: signaled didChangeWatchedFiles")))
+
+(def (cmd-eglot-reconnect-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eglot: reconnecting all servers")))
+
+(def (cmd-eglot-boosts-enable app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'eglot-boosts)
+    (if (mode-enabled? app 'eglot-boosts)
+      (echo-message! echo "Eglot boosts enabled")
+      (echo-message! echo "Eglot boosts disabled"))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 95b7f68..f623f6e 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21158,3 +21158,52 @@
       (lambda (entry)
         (echo-message! echo (str "Password-store: inserted " entry))))))
 
+;; Round 250 — Treesitter ext, Native-compile, Eglot ext, JSONRPC (10 in modes)
+(def (cmd-treesit-font-lock-recompute-features app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Treesit: recomputed font-lock features")))
+
+(def (cmd-native-comp-speed-set app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Native comp speed (0-3): "
+      (lambda (speed)
+        (echo-message! echo (str "Native comp: speed set to " speed))))))
+
+(def (cmd-package-recompile-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Package: recompiling all packages")))
+
+(def (cmd-package-isolate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Isolate package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Package: isolating " pkg))))))
+
+(def (cmd-loaddefs-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Loaddefs: generating autoloads")))
+
+(def (cmd-batch-native-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Batch: native compiling files")))
+
+(def (cmd-restart-emacs-start-new-emacs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Restarting in new Emacs instance")))
+
+(def (cmd-multisession-edit-value app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Multisession variable: "
+      (lambda (var)
+        (echo-message! echo (str "Multisession: editing " var))))))
+
+(def (cmd-multisession-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Delete multisession: "
+      (lambda (var)
+        (echo-message! echo (str "Multisession: deleted " var))))))
+
+(def (cmd-connection-local-set-profile-variables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Connection-local: set profile variables")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 15b483f..d4356c8 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6666,4 +6666,25 @@
   (register-command! 'epa-decrypt-region cmd-epa-decrypt-region)
   (register-command! 'epa-import-keys cmd-epa-import-keys)
   (register-command! 'epa-export-keys cmd-epa-export-keys)
+  ;; Round 250 — Treesitter ext, Native-compile, Eglot ext, JSONRPC
+  (register-command! 'treesit-font-lock-recompute-features cmd-treesit-font-lock-recompute-features)
+  (register-command! 'native-comp-speed-set cmd-native-comp-speed-set)
+  (register-command! 'package-recompile-all cmd-package-recompile-all)
+  (register-command! 'package-isolate cmd-package-isolate)
+  (register-command! 'loaddefs-generate cmd-loaddefs-generate)
+  (register-command! 'batch-native-compile cmd-batch-native-compile)
+  (register-command! 'restart-emacs-start-new-emacs cmd-restart-emacs-start-new-emacs)
+  (register-command! 'multisession-edit-value cmd-multisession-edit-value)
+  (register-command! 'multisession-delete cmd-multisession-delete)
+  (register-command! 'connection-local-set-profile-variables cmd-connection-local-set-profile-variables)
+  (register-command! 'hack-connection-local-variables cmd-hack-connection-local-variables)
+  (register-command! 'jsonrpc-request cmd-jsonrpc-request)
+  (register-command! 'jsonrpc-notify cmd-jsonrpc-notify)
+  (register-command! 'jsonrpc-shutdown cmd-jsonrpc-shutdown)
+  (register-command! 'eglot-list-connections cmd-eglot-list-connections)
+  (register-command! 'eglot-forget-pending-continuations cmd-eglot-forget-pending-continuations)
+  (register-command! 'eglot-signal-didClose cmd-eglot-signal-didClose)
+  (register-command! 'eglot-signal-didChangeWatchedFiles cmd-eglot-signal-didChangeWatchedFiles)
+  (register-command! 'eglot-reconnect-all cmd-eglot-reconnect-all)
+  (register-command! 'eglot-boosts-enable cmd-eglot-boosts-enable)
 )