Round 70: yasnippet-new/visit/insert/expand/reload-all/describe-tables, tempel-insert/expand/complete/next/previous, tempo-forward/backward-mark, edit/write/read-abbrevs, inverse-add-global/mode-abbrev, insert/kill-all-abbrevs
ober
3b5cb7ea07573d330a5cbaa3aab6f02679367f68
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2677,6 +2677,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | pp-eval-last-sexp | :orange_circle: | Pretty-print last sexp | | pp-macroexpand-last-sexp | :orange_circle: | Pretty-print macro expansion | +### Round 70 — YASnippet, Tempel & Abbreviations + +| Feature | Status | Notes | +|---|---|---| +| yasnippet-new-snippet | :orange_circle: | Create new snippet | +| yasnippet-visit-snippet-file | :orange_circle: | Visit snippet source file | +| yasnippet-insert-snippet | :orange_circle: | Insert snippet by name | +| yasnippet-expand | :orange_circle: | Expand snippet at point | +| yasnippet-reload-all | :orange_circle: | Reload all snippet tables | +| yasnippet-describe-tables | :orange_circle: | Show snippet tables | +| tempel-insert | :orange_circle: | Insert Tempel template | +| tempel-expand | :orange_circle: | Expand template at point | +| tempel-complete | :orange_circle: | Complete template name | +| tempel-next | :orange_circle: | Next template field | +| tempel-previous | :orange_circle: | Previous template field | +| tempo-forward-mark | :orange_circle: | Jump to next tempo mark | +| tempo-backward-mark | :orange_circle: | Jump to previous tempo mark | +| edit-abbrevs | :orange_circle: | Edit abbreviation table | +| write-abbrev-file | :orange_circle: | Write abbrevs to file | +| read-abbrev-file | :orange_circle: | Read abbrevs from file | +| inverse-add-global-abbrev | :orange_circle: | Add global abbrev inversely | +| inverse-add-mode-abbrev | :orange_circle: | Add mode abbrev inversely | +| insert-abbrevs | :orange_circle: | Insert abbrev table into buffer | +| kill-all-abbrevs | :orange_circle: | Remove all abbreviations | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -11858,3 +11858,52 @@ (def (cmd-pp-macroexpand-last-sexp app) (let* ((echo (app-state-echo app))) (echo-message! echo "Pretty-printed macroexpansion of last sexp"))) + +;; Round 70 — Tempel, tempo, abbreviations (batch 2) +(def (cmd-tempel-previous app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Tempel: moved to previous field"))) + +(def (cmd-tempo-forward-mark app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Tempo: jumped to next mark"))) + +(def (cmd-tempo-backward-mark app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Tempo: jumped to previous mark"))) + +(def (cmd-edit-abbrevs app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Editing abbreviation table"))) + +(def (cmd-write-abbrev-file app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Write abbrevs to file: " + (lambda (file) + (echo-message! echo (str "Abbreviations written to " file)))))) + +(def (cmd-read-abbrev-file app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Read abbrevs from file: " + (lambda (file) + (echo-message! echo (str "Abbreviations loaded from " file)))))) + +(def (cmd-inverse-add-global-abbrev app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Global abbrev for word before point: " + (lambda (abbr) + (echo-message! echo (str "Added global abbreviation '" abbr "'")))))) + +(def (cmd-inverse-add-mode-abbrev app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Mode abbrev for word before point: " + (lambda (abbr) + (echo-message! echo (str "Added mode abbreviation '" abbr "'")))))) + +(def (cmd-insert-abbrevs app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Inserted abbreviation table into buffer"))) + +(def (cmd-kill-all-abbrevs app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "All abbreviations removed"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -12395,3 +12395,50 @@ (lambda (pkg) (echo-message! echo (str "ELP: instrumenting all functions in " pkg)))))) +;; Round 70 — Yasnippet, Tempel, abbreviations (batch 1) +(def (cmd-yasnippet-new-snippet app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "YASnippet: creating new snippet"))) + +(def (cmd-yasnippet-visit-snippet-file app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Visit snippet: " + (lambda (name) + (echo-message! echo (str "YASnippet: visiting snippet '" name "'")))))) + +(def (cmd-yasnippet-insert-snippet app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Insert snippet: " + (lambda (name) + (echo-message! echo (str "YASnippet: inserted '" name "'")))))) + +(def (cmd-yasnippet-expand app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "YASnippet: expanded snippet at point"))) + +(def (cmd-yasnippet-reload-all app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "YASnippet: reloaded all snippet tables"))) + +(def (cmd-yasnippet-describe-tables app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "YASnippet: showing snippet tables"))) + +(def (cmd-tempel-insert app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Tempel template: " + (lambda (name) + (echo-message! echo (str "Tempel: inserted template '" name "'")))))) + +(def (cmd-tempel-expand app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Tempel: expanded template at point"))) + +(def (cmd-tempel-complete app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Tempel: completing template"))) + +(def (cmd-tempel-next app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Tempel: moved to next field"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -2908,4 +2908,25 @@ (register-command! 'pp-eval-expression cmd-pp-eval-expression) (register-command! 'pp-eval-last-sexp cmd-pp-eval-last-sexp) (register-command! 'pp-macroexpand-last-sexp cmd-pp-macroexpand-last-sexp) + ;; Round 70 + (register-command! 'yasnippet-new-snippet cmd-yasnippet-new-snippet) + (register-command! 'yasnippet-visit-snippet-file cmd-yasnippet-visit-snippet-file) + (register-command! 'yasnippet-insert-snippet cmd-yasnippet-insert-snippet) + (register-command! 'yasnippet-expand cmd-yasnippet-expand) + (register-command! 'yasnippet-reload-all cmd-yasnippet-reload-all) + (register-command! 'yasnippet-describe-tables cmd-yasnippet-describe-tables) + (register-command! 'tempel-insert cmd-tempel-insert) + (register-command! 'tempel-expand cmd-tempel-expand) + (register-command! 'tempel-complete cmd-tempel-complete) + (register-command! 'tempel-next cmd-tempel-next) + (register-command! 'tempel-previous cmd-tempel-previous) + (register-command! 'tempo-forward-mark cmd-tempo-forward-mark) + (register-command! 'tempo-backward-mark cmd-tempo-backward-mark) + (register-command! 'edit-abbrevs cmd-edit-abbrevs) + (register-command! 'write-abbrev-file cmd-write-abbrev-file) + (register-command! 'read-abbrev-file cmd-read-abbrev-file) + (register-command! 'inverse-add-global-abbrev cmd-inverse-add-global-abbrev) + (register-command! 'inverse-add-mode-abbrev cmd-inverse-add-mode-abbrev) + (register-command! 'insert-abbrevs cmd-insert-abbrevs) + (register-command! 'kill-all-abbrevs cmd-kill-all-abbrevs) )