Round 234: Ement.el ext, Telega.el (20 commands)

ober

e87d33220cdf31ac2d7d330f3d9e7e05380b6798

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 01c663a..454db80 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 234 — Ement.el ext, Telega.el
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| ement-room-send-message | :orange_circle: | Send message in Matrix room |
+| ement-room-invite-user | :orange_circle: | Invite user to Matrix room |
+| ement-room-leave | :orange_circle: | Leave current Matrix room |
+| ement-room-join | :orange_circle: | Join a Matrix room |
+| ement-room-toggle-favorite | :orange_circle: | Toggle room as favorite |
+| ement-room-set-notification-state | :orange_circle: | Set room notification level |
+| ement-list-members | :orange_circle: | List members in current room |
+| ement-room-send-reaction | :orange_circle: | Send emoji reaction to message |
+| ement-room-send-file | :orange_circle: | Send file in Matrix room |
+| ement-room-send-image | :orange_circle: | Send image in Matrix room |
+| ement-room-edit-message | :orange_circle: | Edit a sent message |
+| ement-room-delete-message | :orange_circle: | Delete a sent message |
+| ement-room-scroll-up | :orange_circle: | Scroll up in room history |
+| ement-room-scroll-down | :orange_circle: | Scroll down in room history |
+| telega-chat-with | :orange_circle: | Open Telegram chat with user |
+| telega-browse-url | :orange_circle: | Browse URL in Telegram |
+| telega-chatbuf-attach-photo | :orange_circle: | Attach photo to Telegram chat |
+| telega-chatbuf-attach-file | :orange_circle: | Attach file to Telegram chat |
+| telega-chatbuf-attach-sticker | :orange_circle: | Attach sticker to Telegram chat |
+| telega-chat-pin-message | :orange_circle: | Pin message in Telegram chat |
+
 ### Round 233 — Mastodon.el
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 30cf70f..7a69b60 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19751,3 +19751,54 @@
 (def (cmd-mastodon-tl-federated app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Mastodon: showing federated timeline")))
+
+;; Round 234 — Ement.el ext, Telega.el (10 in final)
+(def (cmd-ement-room-edit-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Edit message: "
+      (lambda (msg)
+        (echo-message! echo (str "Ement: edited message to: " msg))))))
+
+(def (cmd-ement-room-delete-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ement: deleted message")))
+
+(def (cmd-ement-room-scroll-up app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ement: scrolled up in room")))
+
+(def (cmd-ement-room-scroll-down app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ement: scrolled down in room")))
+
+(def (cmd-telega-chat-with app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Chat with: "
+      (lambda (user)
+        (echo-message! echo (str "Telega: opened chat with " user))))))
+
+(def (cmd-telega-browse-url app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "URL: "
+      (lambda (url)
+        (echo-message! echo (str "Telega: browsing " url))))))
+
+(def (cmd-telega-chatbuf-attach-photo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Photo path: "
+      (lambda (path)
+        (echo-message! echo (str "Telega: attached photo " path))))))
+
+(def (cmd-telega-chatbuf-attach-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "File path: "
+      (lambda (path)
+        (echo-message! echo (str "Telega: attached file " path))))))
+
+(def (cmd-telega-chatbuf-attach-sticker app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Telega: opening sticker picker")))
+
+(def (cmd-telega-chat-pin-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Telega: pinned message")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index ed31493..3c28704 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -20417,3 +20417,58 @@
 (def (cmd-mastodon-toot-pin-toot app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Mastodon: pinned toot")))
+
+;; Round 234 — Ement.el ext, Telega.el (10 in modes)
+(def (cmd-ement-room-send-message app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Message: "
+      (lambda (msg)
+        (echo-message! echo (str "Ement: sent message: " msg))))))
+
+(def (cmd-ement-room-invite-user app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "User ID to invite: "
+      (lambda (user)
+        (echo-message! echo (str "Ement: invited " user))))))
+
+(def (cmd-ement-room-leave app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ement: left current room")))
+
+(def (cmd-ement-room-join app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Room to join: "
+      (lambda (room)
+        (echo-message! echo (str "Ement: joined " room))))))
+
+(def (cmd-ement-room-toggle-favorite app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ement: toggled room favorite")))
+
+(def (cmd-ement-room-set-notification-state app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Notification state (all/mentions/none): "
+      (lambda (state)
+        (echo-message! echo (str "Ement: notifications set to " state))))))
+
+(def (cmd-ement-list-members app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ement: listing room members")))
+
+(def (cmd-ement-room-send-reaction app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Reaction emoji: "
+      (lambda (emoji)
+        (echo-message! echo (str "Ement: sent reaction " emoji))))))
+
+(def (cmd-ement-room-send-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "File to send: "
+      (lambda (file)
+        (echo-message! echo (str "Ement: sent file " file))))))
+
+(def (cmd-ement-room-send-image app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Image to send: "
+      (lambda (img)
+        (echo-message! echo (str "Ement: sent image " img))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index f6fb54a..294ead6 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6347,4 +6347,25 @@
   (register-command! 'mastodon-tl-home cmd-mastodon-tl-home)
   (register-command! 'mastodon-tl-local cmd-mastodon-tl-local)
   (register-command! 'mastodon-tl-federated cmd-mastodon-tl-federated)
+  ;; Round 234 — Ement.el ext, Telega.el
+  (register-command! 'ement-room-send-message cmd-ement-room-send-message)
+  (register-command! 'ement-room-invite-user cmd-ement-room-invite-user)
+  (register-command! 'ement-room-leave cmd-ement-room-leave)
+  (register-command! 'ement-room-join cmd-ement-room-join)
+  (register-command! 'ement-room-toggle-favorite cmd-ement-room-toggle-favorite)
+  (register-command! 'ement-room-set-notification-state cmd-ement-room-set-notification-state)
+  (register-command! 'ement-list-members cmd-ement-list-members)
+  (register-command! 'ement-room-send-reaction cmd-ement-room-send-reaction)
+  (register-command! 'ement-room-send-file cmd-ement-room-send-file)
+  (register-command! 'ement-room-send-image cmd-ement-room-send-image)
+  (register-command! 'ement-room-edit-message cmd-ement-room-edit-message)
+  (register-command! 'ement-room-delete-message cmd-ement-room-delete-message)
+  (register-command! 'ement-room-scroll-up cmd-ement-room-scroll-up)
+  (register-command! 'ement-room-scroll-down cmd-ement-room-scroll-down)
+  (register-command! 'telega-chat-with cmd-telega-chat-with)
+  (register-command! 'telega-browse-url cmd-telega-browse-url)
+  (register-command! 'telega-chatbuf-attach-photo cmd-telega-chatbuf-attach-photo)
+  (register-command! 'telega-chatbuf-attach-file cmd-telega-chatbuf-attach-file)
+  (register-command! 'telega-chatbuf-attach-sticker cmd-telega-chatbuf-attach-sticker)
+  (register-command! 'telega-chat-pin-message cmd-telega-chat-pin-message)
 )