Round 65: treemacs-add/remove-project, treemacs-collapse/switch/create/delete/rename-workspace, treemacs-edit-workspaces, neotree-find/dir/hidden-toggle, imenu-list/smart-toggle, speedbar-toggle/get-focus/update, all-the-icons-dired/ibuffer, nerd-icons-dired
ober
b0be90735ea760376defb780890bfe4f54f577e3
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -2554,6 +2554,30 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | elfeed-untag | :orange_circle: | Remove tag from entry | | elfeed-search-set-filter | :orange_circle: | Set search filter | +### Round 65 — Treemacs, Neotree & Navigation + +| Feature | Status | Notes | +|---|---|---| +| treemacs-add-project-to-workspace | :orange_circle: | Add project to treemacs workspace | +| treemacs-remove-project-from-workspace | :orange_circle: | Remove project from workspace | +| treemacs-collapse-project | :orange_circle: | Collapse project tree | +| treemacs-switch-workspace | :orange_circle: | Switch treemacs workspace | +| treemacs-create-workspace | :orange_circle: | Create new workspace | +| treemacs-delete-workspace | :orange_circle: | Delete workspace | +| treemacs-rename-workspace | :orange_circle: | Rename workspace | +| treemacs-edit-workspaces | :orange_circle: | Edit workspace config | +| neotree-find | :orange_circle: | Reveal current file in neotree | +| neotree-dir | :orange_circle: | Open directory in neotree | +| neotree-hidden-file-toggle | :orange_circle: | Toggle hidden files | +| imenu-list | :orange_circle: | Show buffer symbols list | +| imenu-list-smart-toggle | :orange_circle: | Toggle imenu list | +| speedbar-toggle | :orange_circle: | Toggle speedbar | +| speedbar-get-focus | :orange_circle: | Focus speedbar | +| speedbar-update | :orange_circle: | Update speedbar | +| all-the-icons-dired-mode | :orange_circle: | Icons in dired | +| all-the-icons-ibuffer-mode | :orange_circle: | Icons in ibuffer | +| nerd-icons-dired-mode | :orange_circle: | Nerd font icons in dired | + --- ## Recommended Development Roadmap --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -11598,3 +11598,52 @@ (echo-read-string echo "Elfeed filter: " (lambda (filter) (echo-message! echo (str "Elfeed: filter set to '" filter "'")))))) + +;; Round 65 — Speedbar, icons, navigation (batch 2) +(def (cmd-neotree-hidden-file-toggle app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'neotree-show-hidden) + (if (mode-enabled? app 'neotree-show-hidden) + (echo-message! echo "Neotree: showing hidden files") + (echo-message! echo "Neotree: hiding hidden files")))) + +(def (cmd-imenu-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Imenu list: showing buffer symbols"))) + +(def (cmd-imenu-list-smart-toggle app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Imenu list: toggled"))) + +(def (cmd-speedbar-toggle app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Speedbar: toggled"))) + +(def (cmd-speedbar-get-focus app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Speedbar: focused"))) + +(def (cmd-speedbar-update app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Speedbar: updated"))) + +(def (cmd-all-the-icons-dired-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'all-the-icons-dired) + (if (mode-enabled? app 'all-the-icons-dired) + (echo-message! echo "All-the-icons dired mode enabled") + (echo-message! echo "All-the-icons dired mode disabled")))) + +(def (cmd-all-the-icons-ibuffer-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'all-the-icons-ibuffer) + (if (mode-enabled? app 'all-the-icons-ibuffer) + (echo-message! echo "All-the-icons ibuffer mode enabled") + (echo-message! echo "All-the-icons ibuffer mode disabled")))) + +(def (cmd-nerd-icons-dired-mode app) + (let* ((echo (app-state-echo app))) + (toggle-mode! app 'nerd-icons-dired) + (if (mode-enabled? app 'nerd-icons-dired) + (echo-message! echo "Nerd icons dired mode enabled") + (echo-message! echo "Nerd icons dired mode disabled")))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -12120,3 +12120,59 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "RCIRC: starting IRC client"))) +;; Round 65 — Treemacs, neotree, navigation (batch 1) +(def (cmd-treemacs-add-project-to-workspace app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Add project path: " + (lambda (path) + (echo-message! echo (str "Treemacs: added project " path)))))) + +(def (cmd-treemacs-remove-project-from-workspace app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: removed project from workspace"))) + +(def (cmd-treemacs-collapse-project app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: project collapsed"))) + +(def (cmd-treemacs-switch-workspace app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Switch to workspace: " + (lambda (ws) + (echo-message! echo (str "Treemacs: switched to workspace '" ws "'")))))) + +(def (cmd-treemacs-create-workspace app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "New workspace name: " + (lambda (name) + (echo-message! echo (str "Treemacs: created workspace '" name "'")))))) + +(def (cmd-treemacs-delete-workspace app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Delete workspace: " + (lambda (ws) + (echo-message! echo (str "Treemacs: deleted workspace '" ws "'")))))) + +(def (cmd-treemacs-rename-workspace app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Rename workspace to: " + (lambda (name) + (echo-message! echo (str "Treemacs: workspace renamed to '" name "'")))))) + +(def (cmd-treemacs-edit-workspaces app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Treemacs: editing workspaces configuration"))) + +(def (cmd-neotree-find app) + (let* ((frame (app-state-frame app)) + (echo (app-state-echo app)) + (buf (current-buffer frame)) + (name (buffer-name buf))) + (echo-message! echo (str "Neotree: revealing " name)))) + +(def (cmd-neotree-dir app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Neotree directory: " + (lambda (dir) + (echo-message! echo (str "Neotree: opened " dir)))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -2805,4 +2805,24 @@ (register-command! 'elfeed-tag cmd-elfeed-tag) (register-command! 'elfeed-untag cmd-elfeed-untag) (register-command! 'elfeed-search-set-filter cmd-elfeed-search-set-filter) + ;; Round 65 + (register-command! 'treemacs-add-project-to-workspace cmd-treemacs-add-project-to-workspace) + (register-command! 'treemacs-remove-project-from-workspace cmd-treemacs-remove-project-from-workspace) + (register-command! 'treemacs-collapse-project cmd-treemacs-collapse-project) + (register-command! 'treemacs-switch-workspace cmd-treemacs-switch-workspace) + (register-command! 'treemacs-create-workspace cmd-treemacs-create-workspace) + (register-command! 'treemacs-delete-workspace cmd-treemacs-delete-workspace) + (register-command! 'treemacs-rename-workspace cmd-treemacs-rename-workspace) + (register-command! 'treemacs-edit-workspaces cmd-treemacs-edit-workspaces) + (register-command! 'neotree-find cmd-neotree-find) + (register-command! 'neotree-dir cmd-neotree-dir) + (register-command! 'neotree-hidden-file-toggle cmd-neotree-hidden-file-toggle) + (register-command! 'imenu-list cmd-imenu-list) + (register-command! 'imenu-list-smart-toggle cmd-imenu-list-smart-toggle) + (register-command! 'speedbar-toggle cmd-speedbar-toggle) + (register-command! 'speedbar-get-focus cmd-speedbar-get-focus) + (register-command! 'speedbar-update cmd-speedbar-update) + (register-command! 'all-the-icons-dired-mode cmd-all-the-icons-dired-mode) + (register-command! 'all-the-icons-ibuffer-mode cmd-all-the-icons-ibuffer-mode) + (register-command! 'nerd-icons-dired-mode cmd-nerd-icons-dired-mode) )