Round 276: Arrow ext, HDF5 ext, NetCDF ext, FITS ext, SQLite ext (20 commands)

ober

38409d3b42829db6c9626eb9748805641b6583a0

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 1142788..82588fd 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 276 — Arrow ext, HDF5 ext, NetCDF ext, FITS ext, SQLite ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| arrow-inspect | :orange_circle: | Inspect Arrow file |
+| arrow-schema | :orange_circle: | Show Arrow schema |
+| arrow-to-csv | :orange_circle: | Convert Arrow to CSV |
+| arrow-stats | :orange_circle: | Show Arrow statistics |
+| hdf5-inspect | :orange_circle: | Inspect HDF5 file |
+| hdf5-datasets | :orange_circle: | List HDF5 datasets |
+| hdf5-attributes | :orange_circle: | Show HDF5 attributes |
+| hdf5-dump | :orange_circle: | Dump HDF5 data |
+| netcdf-inspect | :orange_circle: | Inspect NetCDF file |
+| netcdf-variables | :orange_circle: | List NetCDF variables |
+| netcdf-dimensions | :orange_circle: | List NetCDF dimensions |
+| netcdf-dump | :orange_circle: | Dump NetCDF data |
+| fits-inspect | :orange_circle: | Inspect FITS file |
+| fits-header | :orange_circle: | Show FITS header |
+| fits-data | :orange_circle: | View FITS data |
+| fits-info | :orange_circle: | Show FITS file info |
+| sqlite-open | :orange_circle: | Open SQLite database |
+| sqlite-tables | :orange_circle: | List SQLite tables |
+| sqlite-schema | :orange_circle: | Show SQLite schema |
+| sqlite-vacuum | :orange_circle: | Vacuum SQLite database |
+
 ### Round 275 — FlatBuffers ext, MessagePack ext, CBOR ext, BSON ext, Parquet ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 9eef7ac..89da0a6 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21699,4 +21699,48 @@
 
 (def (cmd-parquet-stats app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Parquet: showing statistics")))
\ No newline at end of file
+    (echo-message! echo "Parquet: showing statistics")))
+
+;;; Round 276 — NetCDF ext, FITS ext, SQLite ext (batch 2)
+
+(def (cmd-netcdf-dimensions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NetCDF: listing dimensions")))
+
+(def (cmd-netcdf-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NetCDF: dumping data")))
+
+(def (cmd-fits-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "FITS: inspecting file")))
+
+(def (cmd-fits-header app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "FITS: showing header")))
+
+(def (cmd-fits-data app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "FITS: viewing data")))
+
+(def (cmd-fits-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "FITS: showing file info")))
+
+(def (cmd-sqlite-open app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Database file: "
+      (lambda (db)
+        (echo-message! echo (str "SQLite: opening " db))))))
+
+(def (cmd-sqlite-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SQLite: listing tables")))
+
+(def (cmd-sqlite-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SQLite: showing schema")))
+
+(def (cmd-sqlite-vacuum app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "SQLite: vacuuming database")))
\ 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 92d52cd..28377f1 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -22324,3 +22324,45 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "CBOR: decoding data")))
 
+;;; Round 276 — Arrow ext, HDF5 ext, NetCDF ext, FITS ext, SQLite ext (batch 1)
+
+(def (cmd-arrow-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Arrow: inspecting file")))
+
+(def (cmd-arrow-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Arrow: showing schema")))
+
+(def (cmd-arrow-to-csv app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Arrow: converting to CSV")))
+
+(def (cmd-arrow-stats app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Arrow: showing statistics")))
+
+(def (cmd-hdf5-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HDF5: inspecting file")))
+
+(def (cmd-hdf5-datasets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HDF5: listing datasets")))
+
+(def (cmd-hdf5-attributes app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HDF5: showing attributes")))
+
+(def (cmd-hdf5-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HDF5: dumping data")))
+
+(def (cmd-netcdf-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NetCDF: inspecting file")))
+
+(def (cmd-netcdf-variables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NetCDF: listing variables")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 4597c0c..5a833e8 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7213,4 +7213,25 @@
   (register-command! 'parquet-schema cmd-parquet-schema)
   (register-command! 'parquet-to-json cmd-parquet-to-json)
   (register-command! 'parquet-stats cmd-parquet-stats)
+  ;; Round 276
+  (register-command! 'arrow-inspect cmd-arrow-inspect)
+  (register-command! 'arrow-schema cmd-arrow-schema)
+  (register-command! 'arrow-to-csv cmd-arrow-to-csv)
+  (register-command! 'arrow-stats cmd-arrow-stats)
+  (register-command! 'hdf5-inspect cmd-hdf5-inspect)
+  (register-command! 'hdf5-datasets cmd-hdf5-datasets)
+  (register-command! 'hdf5-attributes cmd-hdf5-attributes)
+  (register-command! 'hdf5-dump cmd-hdf5-dump)
+  (register-command! 'netcdf-inspect cmd-netcdf-inspect)
+  (register-command! 'netcdf-variables cmd-netcdf-variables)
+  (register-command! 'netcdf-dimensions cmd-netcdf-dimensions)
+  (register-command! 'netcdf-dump cmd-netcdf-dump)
+  (register-command! 'fits-inspect cmd-fits-inspect)
+  (register-command! 'fits-header cmd-fits-header)
+  (register-command! 'fits-data cmd-fits-data)
+  (register-command! 'fits-info cmd-fits-info)
+  (register-command! 'sqlite-open cmd-sqlite-open)
+  (register-command! 'sqlite-tables cmd-sqlite-tables)
+  (register-command! 'sqlite-schema cmd-sqlite-schema)
+  (register-command! 'sqlite-vacuum cmd-sqlite-vacuum)
 )