Round 140: Add 20 Ruby/Rspec, Swift, Dart/Flutter, Lua, PHP commands

ober

a72359a5a66a4924074f034125d978464780521a

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 63493c0..b0e90bf 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4504,6 +4504,33 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 
 ---
 
+### Round 140 — Ruby/Rspec, Swift, Dart/Flutter, Lua, PHP
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| robe-doc | :orange_circle: | Show Ruby documentation |
+| rspec-verify | :orange_circle: | Verify current RSpec file |
+| rspec-verify-all | :orange_circle: | Verify all RSpec specs |
+| rspec-verify-single | :orange_circle: | Verify single RSpec spec |
+| swift-mode-run | :orange_circle: | Run Swift project |
+| swift-mode-send-region | :orange_circle: | Send Swift region to REPL |
+| swift-mode-repl | :orange_circle: | Start Swift REPL |
+| dart-format | :orange_circle: | Format Dart buffer |
+| flutter-run | :orange_circle: | Run Flutter app |
+| flutter-hot-reload | :orange_circle: | Flutter hot reload |
+| flutter-hot-restart | :orange_circle: | Flutter hot restart |
+| flutter-test | :orange_circle: | Run Flutter tests |
+| flutter-pub-get | :orange_circle: | Flutter pub get |
+| lua-send-buffer | :orange_circle: | Send Lua buffer |
+| lua-send-region | :orange_circle: | Send Lua region |
+| lua-send-current-line | :orange_circle: | Send current Lua line |
+| lua-start-process | :orange_circle: | Start Lua process |
+| php-mode-test | :orange_circle: | Run PHP test |
+| php-format-buffer | :orange_circle: | Format PHP buffer |
+| phpunit-current-test | :orange_circle: | Run current PHPUnit test |
+
+---
+
 ## Recommended Development Roadmap
 
 > *Reprioritized based on the user's actual Emacs workflow*
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 9839b67..890263f 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -15214,3 +15214,45 @@
 (def (cmd-robe-jump app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Robe: jumped to definition")))
+
+;;; Round 140 — Ruby/Rspec, Swift, Dart/Flutter, Lua, PHP (batch 2)
+
+(def (cmd-flutter-hot-restart app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Flutter: hot restart")))
+
+(def (cmd-flutter-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Flutter: running tests")))
+
+(def (cmd-flutter-pub-get app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Flutter: pub get")))
+
+(def (cmd-lua-send-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lua: sent buffer")))
+
+(def (cmd-lua-send-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lua: sent region")))
+
+(def (cmd-lua-send-current-line app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lua: sent current line")))
+
+(def (cmd-lua-start-process app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lua: started process")))
+
+(def (cmd-php-mode-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PHP: running test")))
+
+(def (cmd-php-format-buffer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PHP: formatted buffer")))
+
+(def (cmd-phpunit-current-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PHPUnit: running current test")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 5b2f035..720db83 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -15817,3 +15817,45 @@
 (def (cmd-ess-eval-buffer app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "ESS: evaluated buffer")))
+
+;;; Round 140 — Ruby/Rspec, Swift, Dart/Flutter, Lua, PHP (batch 1)
+
+(def (cmd-robe-doc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Robe: showing documentation")))
+
+(def (cmd-rspec-verify app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RSpec: verifying current file")))
+
+(def (cmd-rspec-verify-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RSpec: verifying all specs")))
+
+(def (cmd-rspec-verify-single app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RSpec: verifying single spec at point")))
+
+(def (cmd-swift-mode-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swift: running")))
+
+(def (cmd-swift-mode-send-region app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swift: sent region to REPL")))
+
+(def (cmd-swift-mode-repl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swift: started REPL")))
+
+(def (cmd-dart-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dart: formatted buffer")))
+
+(def (cmd-flutter-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Flutter: running app")))
+
+(def (cmd-flutter-hot-reload app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Flutter: hot reload")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 42ce3c1..15c646d 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4373,4 +4373,25 @@
   (register-command! 'ruby-switch-to-inf cmd-ruby-switch-to-inf)
   (register-command! 'robe-start cmd-robe-start)
   (register-command! 'robe-jump cmd-robe-jump)
+  ;; Round 140 — Ruby/Rspec, Swift, Dart/Flutter, Lua, PHP
+  (register-command! 'robe-doc cmd-robe-doc)
+  (register-command! 'rspec-verify cmd-rspec-verify)
+  (register-command! 'rspec-verify-all cmd-rspec-verify-all)
+  (register-command! 'rspec-verify-single cmd-rspec-verify-single)
+  (register-command! 'swift-mode-run cmd-swift-mode-run)
+  (register-command! 'swift-mode-send-region cmd-swift-mode-send-region)
+  (register-command! 'swift-mode-repl cmd-swift-mode-repl)
+  (register-command! 'dart-format cmd-dart-format)
+  (register-command! 'flutter-run cmd-flutter-run)
+  (register-command! 'flutter-hot-reload cmd-flutter-hot-reload)
+  (register-command! 'flutter-hot-restart cmd-flutter-hot-restart)
+  (register-command! 'flutter-test cmd-flutter-test)
+  (register-command! 'flutter-pub-get cmd-flutter-pub-get)
+  (register-command! 'lua-send-buffer cmd-lua-send-buffer)
+  (register-command! 'lua-send-region cmd-lua-send-region)
+  (register-command! 'lua-send-current-line cmd-lua-send-current-line)
+  (register-command! 'lua-start-process cmd-lua-start-process)
+  (register-command! 'php-mode-test cmd-php-mode-test)
+  (register-command! 'php-format-buffer cmd-php-format-buffer)
+  (register-command! 'phpunit-current-test cmd-phpunit-current-test)
 )