Round 253: PHP ext, Perl ext, Julia, Nim, Dart, Swift (20 commands)

ober

69b489326056eebbb90d4ec206c110cdd847446b

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 5351d13..145c359 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 253 — PHP ext, Perl ext, Julia, Nim, Dart, Swift
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| php-mode-goto-definition | :orange_circle: | Go to PHP definition |
+| php-run-builtin-web-server | :orange_circle: | Start PHP built-in web server |
+| php-insert-doc-block | :orange_circle: | Insert PHP doc block |
+| cperl-perldoc | :orange_circle: | Show Perl documentation |
+| cperl-indent-command | :orange_circle: | Indent Perl code |
+| ess-display-help-on-object | :orange_circle: | Show R help on object |
+| julia-repl-send-region | :orange_circle: | Send region to Julia REPL |
+| julia-repl-send-buffer | :orange_circle: | Send buffer to Julia REPL |
+| julia-repl-send-line | :orange_circle: | Send line to Julia REPL |
+| julia-latexsub-or-indent | :orange_circle: | Julia LaTeX substitution |
+| julia-repl-doc | :orange_circle: | Show Julia documentation |
+| julia-repl-edit | :orange_circle: | Edit Julia function |
+| nim-suggest-def | :orange_circle: | Jump to Nim definition |
+| nim-eldoc-at-point | :orange_circle: | Show Nim eldoc at point |
+| dart-server-goto-definition | :orange_circle: | Go to Dart definition |
+| dart-server-find-references | :orange_circle: | Find Dart references |
+| dart-run-flutter | :orange_circle: | Run Flutter |
+| dart-server-edit-organize-directives | :orange_circle: | Organize Dart directives |
+| swift-mode-send-buffer | :orange_circle: | Send buffer to Swift REPL |
+| swift-mode-fill-paragraph | :orange_circle: | Fill Swift paragraph |
+
 ### Round 252 — Haskell ext, Elixir ext, CIDER ext, Ensime
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index bf28353..a45076d 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -20659,3 +20659,48 @@
 (def (cmd-ensime-expand-selection app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ensime: expanded selection")))
+
+;; Round 253 — Julia ext, Nim ext, Dart ext (10 in final)
+(def (cmd-julia-repl-doc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Julia doc: "
+      (lambda (sym)
+        (echo-message! echo (str "Julia REPL: showing doc for " sym))))))
+
+(def (cmd-julia-repl-edit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Julia edit function: "
+      (lambda (fn)
+        (echo-message! echo (str "Julia REPL: editing " fn))))))
+
+(def (cmd-nim-suggest-def app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nim: jumping to definition")))
+
+(def (cmd-nim-eldoc-at-point app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Nim: showing eldoc at point")))
+
+(def (cmd-dart-server-goto-definition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dart: going to definition")))
+
+(def (cmd-dart-server-find-references app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dart: finding references")))
+
+(def (cmd-dart-run-flutter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dart: running Flutter")))
+
+(def (cmd-dart-server-edit-organize-directives app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dart: organizing directives")))
+
+(def (cmd-swift-mode-send-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swift: sent buffer to REPL")))
+
+(def (cmd-swift-mode-fill-paragraph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swift: filled paragraph")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index f8d5787..e8ca196 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21293,3 +21293,48 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ensime: jumping to definition")))
 
+;; Round 253 — PHP ext, Perl ext, ESS ext, Julia, Nim, Dart (10 in modes)
+(def (cmd-php-mode-goto-definition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PHP: going to definition")))
+
+(def (cmd-php-run-builtin-web-server app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PHP: starting built-in web server")))
+
+(def (cmd-php-insert-doc-block app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PHP: inserted doc block")))
+
+(def (cmd-cperl-perldoc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Perldoc: "
+      (lambda (topic)
+        (echo-message! echo (str "CPerl: showing perldoc for " topic))))))
+
+(def (cmd-cperl-indent-command app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CPerl: indented current line/region")))
+
+(def (cmd-ess-display-help-on-object app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "R help on: "
+      (lambda (obj)
+        (echo-message! echo (str "ESS: showing help for " obj))))))
+
+(def (cmd-julia-repl-send-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Julia REPL: sent region")))
+
+(def (cmd-julia-repl-send-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Julia REPL: sent buffer")))
+
+(def (cmd-julia-repl-send-line app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Julia REPL: sent current line")))
+
+(def (cmd-julia-latexsub-or-indent app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Julia: LaTeX substitution or indent")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index ea03ff8..be5f5b9 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6729,4 +6729,25 @@
   (register-command! 'ensime-refactor-inline-local cmd-ensime-refactor-inline-local)
   (register-command! 'ensime-refactor-extract-local cmd-ensime-refactor-extract-local)
   (register-command! 'ensime-expand-selection cmd-ensime-expand-selection)
+  ;; Round 253 — PHP ext, Perl ext, ESS ext, Julia, Nim, Dart, Swift
+  (register-command! 'php-mode-goto-definition cmd-php-mode-goto-definition)
+  (register-command! 'php-run-builtin-web-server cmd-php-run-builtin-web-server)
+  (register-command! 'php-insert-doc-block cmd-php-insert-doc-block)
+  (register-command! 'cperl-perldoc cmd-cperl-perldoc)
+  (register-command! 'cperl-indent-command cmd-cperl-indent-command)
+  (register-command! 'ess-display-help-on-object cmd-ess-display-help-on-object)
+  (register-command! 'julia-repl-send-region cmd-julia-repl-send-region)
+  (register-command! 'julia-repl-send-buffer cmd-julia-repl-send-buffer)
+  (register-command! 'julia-repl-send-line cmd-julia-repl-send-line)
+  (register-command! 'julia-latexsub-or-indent cmd-julia-latexsub-or-indent)
+  (register-command! 'julia-repl-doc cmd-julia-repl-doc)
+  (register-command! 'julia-repl-edit cmd-julia-repl-edit)
+  (register-command! 'nim-suggest-def cmd-nim-suggest-def)
+  (register-command! 'nim-eldoc-at-point cmd-nim-eldoc-at-point)
+  (register-command! 'dart-server-goto-definition cmd-dart-server-goto-definition)
+  (register-command! 'dart-server-find-references cmd-dart-server-find-references)
+  (register-command! 'dart-run-flutter cmd-dart-run-flutter)
+  (register-command! 'dart-server-edit-organize-directives cmd-dart-server-edit-organize-directives)
+  (register-command! 'swift-mode-send-buffer cmd-swift-mode-send-buffer)
+  (register-command! 'swift-mode-fill-paragraph cmd-swift-mode-fill-paragraph)
 )