feat(projects): Get treemacs working nicely with helm

And also better configured treemacs in general.
This commit is contained in:
2020-01-27 03:55:12 +00:00
parent 46dac06dd8
commit b257c7d206
6 changed files with 84 additions and 42 deletions

View File

@@ -65,8 +65,9 @@
;; Project management
(require 'siren-editorconfig)
(require 'siren-helm-projectile)
(require 'siren-neotree)
(require 'siren-projectile)
(require 'siren-treemacs)
;; (require 'siren-neotree)
;; Language Servers
(require 'siren-lsp)
@@ -126,6 +127,7 @@
(require 'siren-writeroom)
;; Languages
(require 'siren-prog-mode)
(require 'siren-coffee)
(require 'siren-conf)
(require 'siren-css)
@@ -147,7 +149,6 @@
(require 'siren-markdown)
(require 'siren-php)
(require 'siren-plantuml)
(require 'siren-prog-mode)
(require 'siren-ruby)
(require 'siren-rust)
(require 'siren-sass)

View File

@@ -8,11 +8,13 @@
(use-package helm
:defer t
:hook ((helm-minibuffer-set-up . siren-helm--hide-minibuffer-maybe)
(helm-after-initialize . siren-helm--toggle-source-header-line)
(helm-minibuffer-set-up . siren-helm--popwin-help-mode-off)
(helm-cleanup . siren-helm--popwin-help-mode-on)
(helm-cleanup . siren-helm--show-neotree-maybe))
:hook
(helm-minibuffer-set-up . siren-helm--hide-minibuffer-maybe)
(helm-after-initialize . siren-helm--toggle-source-header-line)
(helm-minibuffer-set-up . siren-helm--popwin-help-mode-off)
(helm-cleanup . siren-helm--popwin-help-mode-on)
(helm-cleanup . siren-helm--show-neotree-maybe)
(helm-cleanup . siren-helm--show-treemacs-maybe)
:custom
(helm-autoresize-max-height 30)
@@ -24,6 +26,7 @@
(helm-file-name-case-fold-search 'smart)
(helm-split-window-default-side 'below)
(siren-helm--did-hide-neotree nil)
(siren-helm--did-hide-treemacs nil)
:init
;; From: https://www.reddit.com/r/emacs/comments/3asbyn/new_and_very_useful_helm_feature_enter_search/
@@ -68,8 +71,27 @@
(setq siren-helm--did-hide-neotree nil)
(run-with-timer 0.01 nil #'neotree-show)))
(defun siren-helm--hide-treemacs (&rest plist)
(when (fboundp 'treemacs-get-local-window)
(let ((win (treemacs-get-local-window)))
(when win
(setq siren-helm--did-hide-treemacs t)
(delete-window win)))))
(defun siren-helm--show-treemacs-maybe ()
(when siren-helm--did-hide-treemacs
(setq siren-helm--did-hide-treemacs nil)
(run-with-timer 0.01 nil #'siren-helm--show-treemacs)))
(defun siren-helm--show-treemacs ()
(when (fboundp 'treemacs-select-window)
(let ((win (selected-window)))
(treemacs-select-window)
(select-window win))))
:config
(advice-add 'helm :before 'siren-helm--hide-neotree))
(advice-add 'helm :before 'siren-helm--hide-neotree)
(advice-add 'helm :before 'siren-helm--hide-treemacs))
(use-package helm-config
:ensure helm

View File

@@ -7,6 +7,7 @@
;;; Code:
(use-package projectile
:demand
:bind
("C-c p p" . projectile-switch-project)
("C-c p k" . projectile-kill-buffers)
@@ -52,8 +53,8 @@
(projectile-sort-order 'recently-active)
:config
;; Treat separate directories with Gemfiles within a single git repo as separate
;; projects.
;; Treat separate directories with Gemfiles within a single git repo as
;; separate projects.
(push "Gemfile" projectile-project-root-files-bottom-up)
(projectile-mode t))

View File

@@ -6,48 +6,64 @@
;;; Code:
(require 'siren-dired)
(require 'siren-lsp)
(require 'siren-magit)
(require 'siren-persp-mode)
(require 'siren-projectile)
(use-package treemacs
:defer t
:demand
:bind
([f8] . treemacs-toggle)
("M-0" . treemacs-select-window)
("C-c 1" . treemacs-delete-other-windows)
;; ("M-m ft" . treemacs-toggle)
;; ("M-m fT" . treemacs)
;; ("M-m fB" . treemacs-bookmark)
;; ("M-m f C-t" . treemacs-find-file)
;; ("M-m f M-t" . treemacs-find-tag)
("C-x C-p" . treemacs)
("C-x p" . treemacs-select-window)
:custom
(treemacs-change-root-without-asking t)
(treemacs-collapse-dirs 3)
(treemacs-follow-after-init t)
(treemacs-git-integration t)
(treemacs-goto-tag-strategy 'refetch-index)
(treemacs-indentation 2)
(treemacs-is-never-other-window nil)
(treemacs-never-persist nil)
(treemacs-show-hidden-files t)
(treemacs-silent-refresh nil)
(treemacs-sorting 'alphabetic-asc)
(treemacs-width 40)
:config
(progn
(use-package treemacs-evil
:ensure t
:demand t)
(setq treemacs-follow-after-init t
treemacs-width 35
treemacs-indentation 2
treemacs-git-integration t
treemacs-collapse-dirs 3
treemacs-silent-refresh nil
treemacs-change-root-without-asking t
treemacs-sorting 'alphabetic-desc
treemacs-show-hidden-files t
treemacs-never-persist nil
treemacs-is-never-other-window nil
treemacs-goto-tag-strategy 'refetch-index)
(treemacs-follow-mode t)
(treemacs-filewatch-mode t)
(treemacs-follow-mode t)
(treemacs-filewatch-mode t)))
(treemacs-define-doubleclick-action
'file-node-open #'treemacs-visit-node-in-most-recently-used-window)
(treemacs-define-doubleclick-action
'file-node-closed #'treemacs-visit-node-in-most-recently-used-window)
(treemacs-define-RET-action
'file-node-open #'treemacs-visit-node-in-most-recently-used-window)
(treemacs-define-RET-action
'file-node-closed #'treemacs-visit-node-in-most-recently-used-window))
(use-package treemacs-projectile
:defer t
:bind
("C-x C-p" . treemacs-projectile)
("C-x C-p" . treemacs-projectile-toggle)
:demand
:requires (treemacs projectile)
:custom
(treemacs-header-function #'treemacs-projectile-create-header))
(use-package treemacs-persp
:demand
:requires treemacs persp-mode)
(use-package treemacs-magit
:demand
:requires treemacs magit)
(use-package lsp-treemacs
:config
(lsp-treemacs-sync-mode 1)
(setq lsp-metals-treeview-show-when-views-received t))
(provide 'siren-treemacs)
;;; siren-treemacs.el ends here

View File

@@ -11,6 +11,7 @@
(require 'siren-flyspell)
(use-package magit
:demand
:bind
("C-x g". magit-status)

View File

@@ -7,6 +7,7 @@
;;; Code:
(use-package persp-mode
:demand
:hook
(after-init . persp-mode)