Round 48: treemacs-select/toggle/add/remove/rename/collapse/refresh/create/delete, neotree-toggle/show/hide/refresh/change-root, centaur-tabs-mode/forward/backward/group
ober
242b44d4bb388577addc7f7fcd34f880e3a88234
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2132,6 +2132,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | Flycheck select checker | :orange_circle: | Select syntax checker | | Flycheck describe checker | :orange_circle: | Describe checker details | +### Round 48 + +| Feature | Status | Notes | +|---------|--------|-------| +| Treemacs select window | :orange_circle: | Select treemacs window | +| Treemacs toggle | :orange_circle: | Toggle tree view | +| Treemacs add project | :orange_circle: | Add project to workspace | +| Treemacs remove project | :orange_circle: | Remove project from workspace | +| Treemacs rename project | :orange_circle: | Rename project | +| Treemacs collapse all | :orange_circle: | Collapse all tree nodes | +| Treemacs refresh | :orange_circle: | Refresh tree view | +| Treemacs create dir | :orange_circle: | Create directory | +| Treemacs create file | :orange_circle: | Create file | +| Treemacs delete | :orange_circle: | Delete item at point | +| NeoTree toggle | :orange_circle: | Toggle NeoTree | +| NeoTree show | :orange_circle: | Show NeoTree | +| NeoTree hide | :orange_circle: | Hide NeoTree | +| NeoTree refresh | :orange_circle: | Refresh NeoTree | +| NeoTree change root | :orange_circle: | Change NeoTree root | +| Centaur tabs mode | :orange_circle: | Toggle centaur tabs | +| Centaur tabs forward | :orange_circle: | Next tab | +| Centaur tabs backward | :orange_circle: | Previous tab | +| Centaur tabs forward group | :orange_circle: | Next tab group | +| Centaur tabs backward group | :orange_circle: | Previous tab group | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -10585,3 +10585,57 @@ "Status: not available")) (switch-to-buffer frame new-buf) (echo-message! echo (str "Described: " checker)))))))) + +;;; Round 48 batch 2: neotree-toggle, neotree-show, neotree-hide, +;;; neotree-refresh, neotree-change-root, centaur-tabs-mode, +;;; centaur-tabs-forward, centaur-tabs-backward, +;;; centaur-tabs-forward-group, centaur-tabs-backward-group + +(def (cmd-neotree-toggle app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app "neotree-visible") + (if (mode-enabled? app "neotree-visible") + (echo-message! echo "NeoTree: shown") + (echo-message! echo "NeoTree: hidden")))) + +(def (cmd-neotree-show app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "NeoTree: shown"))) + +(def (cmd-neotree-hide app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "NeoTree: hidden"))) + +(def (cmd-neotree-refresh app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "NeoTree: refreshed"))) + +(def (cmd-neotree-change-root app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "New root directory: " + (lambda (dir) + (when (and dir (not (string-empty? dir))) + (echo-message! echo (str "NeoTree: root changed to " dir))))))) + +(def (cmd-centaur-tabs-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app "centaur-tabs") + (if (mode-enabled? app "centaur-tabs") + (echo-message! echo "Centaur tabs enabled") + (echo-message! echo "Centaur tabs disabled")))) + +(def (cmd-centaur-tabs-forward app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Next tab"))) + +(def (cmd-centaur-tabs-backward app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Previous tab"))) + +(def (cmd-centaur-tabs-forward-group app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Next tab group"))) + +(def (cmd-centaur-tabs-backward-group app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Previous tab group"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -11143,3 +11143,63 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "DAP: disconnected from debug session"))) +;;; Round 48 batch 1: treemacs-select-window, treemacs-toggle, +;;; treemacs-add-project, treemacs-remove-project, treemacs-rename-project, +;;; treemacs-collapse-all, treemacs-refresh, treemacs-create-dir, +;;; treemacs-create-file, treemacs-delete + +(def (cmd-treemacs-select-window app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: select tree window"))) + +(def (cmd-treemacs-toggle app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app "treemacs") + (if (mode-enabled? app "treemacs") + (echo-message! echo "Treemacs: shown") + (echo-message! echo "Treemacs: hidden")))) + +(def (cmd-treemacs-add-project app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Add project directory: " + (lambda (dir) + (when (and dir (not (string-empty? dir))) + (echo-message! echo (str "Treemacs: added project " dir))))))) + +(def (cmd-treemacs-remove-project app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: project removed"))) + +(def (cmd-treemacs-rename-project app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Rename project to: " + (lambda (name) + (when (and name (not (string-empty? name))) + (echo-message! echo (str "Treemacs: renamed to " name))))))) + +(def (cmd-treemacs-collapse-all app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: all nodes collapsed"))) + +(def (cmd-treemacs-refresh app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: refreshed"))) + +(def (cmd-treemacs-create-dir app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "New directory name: " + (lambda (name) + (when (and name (not (string-empty? name))) + (echo-message! echo (str "Treemacs: created directory " name))))))) + +(def (cmd-treemacs-create-file app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "New file name: " + (lambda (name) + (when (and name (not (string-empty? name))) + (echo-message! echo (str "Treemacs: created file " name))))))) + +(def (cmd-treemacs-delete app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: delete item at point"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -2451,4 +2451,25 @@ (register-command! 'flycheck-verify-setup cmd-flycheck-verify-setup) (register-command! 'flycheck-select-checker cmd-flycheck-select-checker) (register-command! 'flycheck-describe-checker cmd-flycheck-describe-checker) + ;; Round 48 + (register-command! 'treemacs-select-window cmd-treemacs-select-window) + (register-command! 'treemacs-toggle cmd-treemacs-toggle) + (register-command! 'treemacs-add-project cmd-treemacs-add-project) + (register-command! 'treemacs-remove-project cmd-treemacs-remove-project) + (register-command! 'treemacs-rename-project cmd-treemacs-rename-project) + (register-command! 'treemacs-collapse-all cmd-treemacs-collapse-all) + (register-command! 'treemacs-refresh cmd-treemacs-refresh) + (register-command! 'treemacs-create-dir cmd-treemacs-create-dir) + (register-command! 'treemacs-create-file cmd-treemacs-create-file) + (register-command! 'treemacs-delete cmd-treemacs-delete) + (register-command! 'neotree-toggle cmd-neotree-toggle) + (register-command! 'neotree-show cmd-neotree-show) + (register-command! 'neotree-hide cmd-neotree-hide) + (register-command! 'neotree-refresh cmd-neotree-refresh) + (register-command! 'neotree-change-root cmd-neotree-change-root) + (register-command! 'centaur-tabs-mode cmd-centaur-tabs-mode) + (register-command! 'centaur-tabs-forward cmd-centaur-tabs-forward) + (register-command! 'centaur-tabs-backward cmd-centaur-tabs-backward) + (register-command! 'centaur-tabs-forward-group cmd-centaur-tabs-forward-group) + (register-command! 'centaur-tabs-backward-group cmd-centaur-tabs-backward-group) )