Round 116: Add 20 ERC (IRC) & RCIRC communication commands
ober
9224cbf4c5a0a055c706132c5595d133d0af92da
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -3864,6 +3864,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | LaTeX-insert-item | :orange_circle: | Insert item in list | | reftex-mode | :orange_circle: | Toggle RefTeX mode | +### Round 116 — ERC (IRC) & RCIRC Communication + +| Command | Status | Description | +|---------|--------|-------------| +| erc-select | :orange_circle: | Connect to IRC server | +| erc-join | :orange_circle: | Join IRC channel | +| erc-part | :orange_circle: | Part current channel | +| erc-msg | :orange_circle: | Send private message | +| erc-away | :orange_circle: | Set away status | +| erc-cmd-TOPIC | :orange_circle: | Set channel topic | +| erc-match-mode | :orange_circle: | Toggle ERC match highlighting | +| erc-log-mode | :orange_circle: | Toggle ERC logging | +| erc-button-mode | :orange_circle: | Toggle ERC clickable buttons | +| erc-spelling-mode | :orange_circle: | Toggle ERC spell checking | +| erc-notifications-mode | :orange_circle: | Toggle ERC notifications | +| erc-image-mode | :orange_circle: | Toggle ERC inline images | +| rcirc-cmd-join | :orange_circle: | RCIRC join channel | +| rcirc-cmd-part | :orange_circle: | RCIRC part channel | +| rcirc-cmd-nick | :orange_circle: | RCIRC change nickname | +| rcirc-cmd-whois | :orange_circle: | RCIRC whois lookup | +| rcirc-cmd-msg | :orange_circle: | RCIRC send private message | +| rcirc-cmd-quit | :orange_circle: | RCIRC disconnect | +| rcirc-cmd-topic | :orange_circle: | RCIRC set topic | +| rcirc-cmd-away | :orange_circle: | RCIRC set away | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -14081,3 +14081,65 @@ (if (mode-enabled? app 'reftex) (echo-message! echo "RefTeX mode enabled") (echo-message! echo "RefTeX mode disabled")))) + +;;; ——— Round 116: ERC (IRC) & communication (batch 2) ——— + +(def (cmd-erc-notifications-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'erc-notifications) + (if (mode-enabled? app 'erc-notifications) + (echo-message! echo "ERC notifications enabled") + (echo-message! echo "ERC notifications disabled")))) + +(def (cmd-erc-image-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'erc-image) + (if (mode-enabled? app 'erc-image) + (echo-message! echo "ERC image mode enabled") + (echo-message! echo "ERC image mode disabled")))) + +(def (cmd-rcirc-cmd-join app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "RCIRC join channel: " + (lambda (channel) + (echo-message! echo (str "RCIRC: joining " channel)))))) + +(def (cmd-rcirc-cmd-part app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "RCIRC: parted current channel"))) + +(def (cmd-rcirc-cmd-nick app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "RCIRC new nick: " + (lambda (nick) + (echo-message! echo (str "RCIRC: changed nick to " nick)))))) + +(def (cmd-rcirc-cmd-whois app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "RCIRC whois: " + (lambda (nick) + (echo-message! echo (str "RCIRC: looking up " nick)))))) + +(def (cmd-rcirc-cmd-msg app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "RCIRC message to: " + (lambda (to) + (echo-read-string echo "Message: " + (lambda (msg) + (echo-message! echo (str "RCIRC: sent message to " to)))))))) + +(def (cmd-rcirc-cmd-quit app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "RCIRC: disconnected from server"))) + +(def (cmd-rcirc-cmd-topic app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "RCIRC topic: " + (lambda (topic) + (echo-message! echo (str "RCIRC: set topic to '" topic "'")))))) + +(def (cmd-rcirc-cmd-away app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "RCIRC away reason: " + (lambda (reason) + (echo-message! echo (str "RCIRC: set away - " reason)))))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -14670,3 +14670,69 @@ (def (cmd-TeX-next-error app) (let* ((echo (app-state-echo app))) (echo-message! echo "TeX: moved to next error"))) + +;;; ——— Round 116: ERC (IRC) & communication (batch 1) ——— + +(def (cmd-erc-select app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "ERC server: " + (lambda (server) + (echo-message! echo (str "ERC: connecting to " server)))))) + +(def (cmd-erc-join app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Join channel: " + (lambda (channel) + (echo-message! echo (str "ERC: joining " channel)))))) + +(def (cmd-erc-part app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ERC: parted current channel"))) + +(def (cmd-erc-msg app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Message to: " + (lambda (to) + (echo-read-string echo "Message: " + (lambda (msg) + (echo-message! echo (str "ERC: sent message to " to)))))))) + +(def (cmd-erc-away app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Away reason: " + (lambda (reason) + (echo-message! echo (str "ERC: set away - " reason)))))) + +(def (cmd-erc-cmd-TOPIC app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "New topic: " + (lambda (topic) + (echo-message! echo (str "ERC: set topic to '" topic "'")))))) + +(def (cmd-erc-match-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'erc-match) + (if (mode-enabled? app 'erc-match) + (echo-message! echo "ERC match mode enabled") + (echo-message! echo "ERC match mode disabled")))) + +(def (cmd-erc-log-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'erc-log) + (if (mode-enabled? app 'erc-log) + (echo-message! echo "ERC log mode enabled") + (echo-message! echo "ERC log mode disabled")))) + +(def (cmd-erc-button-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'erc-button) + (if (mode-enabled? app 'erc-button) + (echo-message! echo "ERC button mode enabled") + (echo-message! echo "ERC button mode disabled")))) + +(def (cmd-erc-spelling-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'erc-spelling) + (if (mode-enabled? app 'erc-spelling) + (echo-message! echo "ERC spelling mode enabled") + (echo-message! echo "ERC spelling mode disabled")))) --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -3869,4 +3869,25 @@ (register-command! 'LaTeX-close-environment cmd-LaTeX-close-environment) (register-command! 'LaTeX-insert-item cmd-LaTeX-insert-item) (register-command! 'reftex-mode cmd-reftex-mode) + ;; Round 116: ERC (IRC) & communication + (register-command! 'erc-select cmd-erc-select) + (register-command! 'erc-join cmd-erc-join) + (register-command! 'erc-part cmd-erc-part) + (register-command! 'erc-msg cmd-erc-msg) + (register-command! 'erc-away cmd-erc-away) + (register-command! 'erc-cmd-TOPIC cmd-erc-cmd-TOPIC) + (register-command! 'erc-match-mode cmd-erc-match-mode) + (register-command! 'erc-log-mode cmd-erc-log-mode) + (register-command! 'erc-button-mode cmd-erc-button-mode) + (register-command! 'erc-spelling-mode cmd-erc-spelling-mode) + (register-command! 'erc-notifications-mode cmd-erc-notifications-mode) + (register-command! 'erc-image-mode cmd-erc-image-mode) + (register-command! 'rcirc-cmd-join cmd-rcirc-cmd-join) + (register-command! 'rcirc-cmd-part cmd-rcirc-cmd-part) + (register-command! 'rcirc-cmd-nick cmd-rcirc-cmd-nick) + (register-command! 'rcirc-cmd-whois cmd-rcirc-cmd-whois) + (register-command! 'rcirc-cmd-msg cmd-rcirc-cmd-msg) + (register-command! 'rcirc-cmd-quit cmd-rcirc-cmd-quit) + (register-command! 'rcirc-cmd-topic cmd-rcirc-cmd-topic) + (register-command! 'rcirc-cmd-away cmd-rcirc-cmd-away) )