Round 274: OpenAPI ext, AsyncAPI ext, JSON Schema ext, Avro ext, Cap'n Proto ext (20 commands)

ober

6404ff1d01aff04a1c02e76b3cffe9e9e5c6b80c

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index f935f8a..2f7b119 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 274 — OpenAPI ext, AsyncAPI ext, JSON Schema ext, Avro ext, Cap'n Proto ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| openapi-validate | :orange_circle: | Validate OpenAPI specification |
+| openapi-preview | :orange_circle: | Preview OpenAPI documentation |
+| openapi-generate | :orange_circle: | Generate OpenAPI client |
+| openapi-lint | :orange_circle: | Lint OpenAPI specification |
+| asyncapi-validate | :orange_circle: | Validate AsyncAPI specification |
+| asyncapi-preview | :orange_circle: | Preview AsyncAPI documentation |
+| asyncapi-generate | :orange_circle: | Generate AsyncAPI code |
+| asyncapi-lint | :orange_circle: | Lint AsyncAPI specification |
+| jsonschema-validate | :orange_circle: | Validate JSON Schema document |
+| jsonschema-generate | :orange_circle: | Generate JSON Schema |
+| jsonschema-format | :orange_circle: | Format JSON Schema |
+| jsonschema-lint | :orange_circle: | Lint JSON Schema |
+| avro-compile | :orange_circle: | Compile Avro schema |
+| avro-validate | :orange_circle: | Validate Avro schema |
+| avro-generate | :orange_circle: | Generate code from Avro schema |
+| avro-format | :orange_circle: | Format Avro schema |
+| capnproto-compile | :orange_circle: | Compile Cap'n Proto schema |
+| capnproto-validate | :orange_circle: | Validate Cap'n Proto schema |
+| capnproto-generate | :orange_circle: | Generate Cap'n Proto code |
+| capnproto-format | :orange_circle: | Format Cap'n Proto schema |
+
 ### Round 273 — SPARQL ext, GraphQL ext, gRPC ext, Protocol Buffers ext, Thrift ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 29beec5..7d64a8b 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21615,4 +21615,46 @@
 
 (def (cmd-thrift-validate app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Thrift: validating schema")))
\ No newline at end of file
+    (echo-message! echo "Thrift: validating schema")))
+
+;;; Round 274 — JSON Schema ext, Avro ext, Cap'n Proto ext (batch 2)
+
+(def (cmd-jsonschema-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JSON Schema: formatting")))
+
+(def (cmd-jsonschema-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JSON Schema: linting")))
+
+(def (cmd-avro-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: compiling schema")))
+
+(def (cmd-avro-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: validating schema")))
+
+(def (cmd-avro-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: generating code from schema")))
+
+(def (cmd-avro-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: formatting schema")))
+
+(def (cmd-capnproto-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cap'n Proto: compiling schema")))
+
+(def (cmd-capnproto-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cap'n Proto: validating schema")))
+
+(def (cmd-capnproto-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cap'n Proto: generating code")))
+
+(def (cmd-capnproto-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cap'n Proto: formatting 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 5cde333..c00eb32 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -22238,3 +22238,47 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "gRPC: listing services")))
 
+;;; Round 274 — OpenAPI ext, AsyncAPI ext, JSON Schema ext, Avro ext, Cap'n Proto ext (batch 1)
+
+(def (cmd-openapi-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: validating specification")))
+
+(def (cmd-openapi-preview app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: previewing documentation")))
+
+(def (cmd-openapi-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Language: "
+      (lambda (lang)
+        (echo-message! echo (str "OpenAPI: generating " lang " client"))))))
+
+(def (cmd-openapi-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: linting specification")))
+
+(def (cmd-asyncapi-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AsyncAPI: validating specification")))
+
+(def (cmd-asyncapi-preview app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AsyncAPI: previewing documentation")))
+
+(def (cmd-asyncapi-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AsyncAPI: generating code")))
+
+(def (cmd-asyncapi-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AsyncAPI: linting specification")))
+
+(def (cmd-jsonschema-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JSON Schema: validating document")))
+
+(def (cmd-jsonschema-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JSON Schema: generating schema")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 9f5f669..4565d2b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7171,4 +7171,25 @@
   (register-command! 'thrift-lint cmd-thrift-lint)
   (register-command! 'thrift-generate cmd-thrift-generate)
   (register-command! 'thrift-validate cmd-thrift-validate)
+  ;; Round 274
+  (register-command! 'openapi-validate cmd-openapi-validate)
+  (register-command! 'openapi-preview cmd-openapi-preview)
+  (register-command! 'openapi-generate cmd-openapi-generate)
+  (register-command! 'openapi-lint cmd-openapi-lint)
+  (register-command! 'asyncapi-validate cmd-asyncapi-validate)
+  (register-command! 'asyncapi-preview cmd-asyncapi-preview)
+  (register-command! 'asyncapi-generate cmd-asyncapi-generate)
+  (register-command! 'asyncapi-lint cmd-asyncapi-lint)
+  (register-command! 'jsonschema-validate cmd-jsonschema-validate)
+  (register-command! 'jsonschema-generate cmd-jsonschema-generate)
+  (register-command! 'jsonschema-format cmd-jsonschema-format)
+  (register-command! 'jsonschema-lint cmd-jsonschema-lint)
+  (register-command! 'avro-compile cmd-avro-compile)
+  (register-command! 'avro-validate cmd-avro-validate)
+  (register-command! 'avro-generate cmd-avro-generate)
+  (register-command! 'avro-format cmd-avro-format)
+  (register-command! 'capnproto-compile cmd-capnproto-compile)
+  (register-command! 'capnproto-validate cmd-capnproto-validate)
+  (register-command! 'capnproto-generate cmd-capnproto-generate)
+  (register-command! 'capnproto-format cmd-capnproto-format)
 )