Round 273: SPARQL ext, GraphQL ext, gRPC ext, Protocol Buffers ext, Thrift ext (20 commands)

ober

cca0b45dca74fdd6fcce7bad638d630e7462dc2e

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index a04cd2d..f935f8a 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 273 — SPARQL ext, GraphQL ext, gRPC ext, Protocol Buffers ext, Thrift ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| sparql-query | :orange_circle: | Execute SPARQL query |
+| sparql-describe | :orange_circle: | Describe SPARQL resource |
+| sparql-construct | :orange_circle: | Execute SPARQL CONSTRUCT |
+| sparql-endpoint | :orange_circle: | Set SPARQL endpoint |
+| graphql-query | :orange_circle: | Execute GraphQL query |
+| graphql-mutation | :orange_circle: | Execute GraphQL mutation |
+| graphql-introspect | :orange_circle: | Introspect GraphQL schema |
+| graphql-format | :orange_circle: | Format GraphQL query |
+| grpc-call | :orange_circle: | Call gRPC method |
+| grpc-list-services | :orange_circle: | List gRPC services |
+| grpc-describe-service | :orange_circle: | Describe gRPC service |
+| grpc-stream | :orange_circle: | Start gRPC stream |
+| protobuf-compile | :orange_circle: | Compile Protocol Buffers |
+| protobuf-lint | :orange_circle: | Lint Protocol Buffers |
+| protobuf-format | :orange_circle: | Format Protocol Buffers |
+| protobuf-validate | :orange_circle: | Validate Protobuf schema |
+| thrift-compile | :orange_circle: | Compile Thrift files |
+| thrift-lint | :orange_circle: | Lint Thrift files |
+| thrift-generate | :orange_circle: | Generate Thrift code |
+| thrift-validate | :orange_circle: | Validate Thrift schema |
+
 ### Round 272 — TLA+ ext, Alloy ext, Z3 ext, miniKanren ext, Datalog ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 29a9a6e..29beec5 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21569,4 +21569,50 @@
 
 (def (cmd-datalog-compile app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Datalog: compiling program")))
\ No newline at end of file
+    (echo-message! echo "Datalog: compiling program")))
+
+;;; Round 273 — gRPC ext, Protocol Buffers ext, Thrift ext (batch 2)
+
+(def (cmd-grpc-describe-service app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Service: "
+      (lambda (svc)
+        (echo-message! echo (str "gRPC: describing " svc))))))
+
+(def (cmd-grpc-stream app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "gRPC: starting stream")))
+
+(def (cmd-protobuf-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: compiling .proto files")))
+
+(def (cmd-protobuf-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: linting .proto files")))
+
+(def (cmd-protobuf-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: formatting .proto files")))
+
+(def (cmd-protobuf-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: validating schema")))
+
+(def (cmd-thrift-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Thrift: compiling .thrift files")))
+
+(def (cmd-thrift-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Thrift: linting .thrift files")))
+
+(def (cmd-thrift-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Language: "
+      (lambda (lang)
+        (echo-message! echo (str "Thrift: generating " lang " code"))))))
+
+(def (cmd-thrift-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Thrift: validating schema")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 8ccc390..5cde333 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -22190,3 +22190,51 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Z3: evaluating expression")))
 
+;;; Round 273 — SPARQL ext, GraphQL ext, gRPC ext, Protocol Buffers ext, Thrift ext (batch 1)
+
+(def (cmd-sparql-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SPARQL: executing query")))
+
+(def (cmd-sparql-describe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Resource URI: "
+      (lambda (uri)
+        (echo-message! echo (str "SPARQL: describing " uri))))))
+
+(def (cmd-sparql-construct app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SPARQL: executing CONSTRUCT query")))
+
+(def (cmd-sparql-endpoint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Endpoint URL: "
+      (lambda (url)
+        (echo-message! echo (str "SPARQL: set endpoint to " url))))))
+
+(def (cmd-graphql-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: executing query")))
+
+(def (cmd-graphql-mutation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: executing mutation")))
+
+(def (cmd-graphql-introspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: introspecting schema")))
+
+(def (cmd-graphql-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: formatting query")))
+
+(def (cmd-grpc-call app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Method: "
+      (lambda (method)
+        (echo-message! echo (str "gRPC: calling " method))))))
+
+(def (cmd-grpc-list-services app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "gRPC: listing services")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 70b16f6..9f5f669 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7150,4 +7150,25 @@
   (register-command! 'datalog-query cmd-datalog-query)
   (register-command! 'datalog-run cmd-datalog-run)
   (register-command! 'datalog-compile cmd-datalog-compile)
+  ;; Round 273
+  (register-command! 'sparql-query cmd-sparql-query)
+  (register-command! 'sparql-describe cmd-sparql-describe)
+  (register-command! 'sparql-construct cmd-sparql-construct)
+  (register-command! 'sparql-endpoint cmd-sparql-endpoint)
+  (register-command! 'graphql-query cmd-graphql-query)
+  (register-command! 'graphql-mutation cmd-graphql-mutation)
+  (register-command! 'graphql-introspect cmd-graphql-introspect)
+  (register-command! 'graphql-format cmd-graphql-format)
+  (register-command! 'grpc-call cmd-grpc-call)
+  (register-command! 'grpc-list-services cmd-grpc-list-services)
+  (register-command! 'grpc-describe-service cmd-grpc-describe-service)
+  (register-command! 'grpc-stream cmd-grpc-stream)
+  (register-command! 'protobuf-compile cmd-protobuf-compile)
+  (register-command! 'protobuf-lint cmd-protobuf-lint)
+  (register-command! 'protobuf-format cmd-protobuf-format)
+  (register-command! 'protobuf-validate cmd-protobuf-validate)
+  (register-command! 'thrift-compile cmd-thrift-compile)
+  (register-command! 'thrift-lint cmd-thrift-lint)
+  (register-command! 'thrift-generate cmd-thrift-generate)
+  (register-command! 'thrift-validate cmd-thrift-validate)
 )