diff --git a/configs/base-treemacs.el b/configs/base-treemacs.el new file mode 100644 index 0000000..9c12943 --- /dev/null +++ b/configs/base-treemacs.el @@ -0,0 +1,87 @@ +;;; base-treemacs.el --- Extensiones/paquetes instalados y su configuraciĆ³n -*- lexical-binding: t -*- + +;; Author: kj +;; URL: https://git.kj2.me/kj/confi-emacs-actual + +;;; Commentary: + +;;; Code: + +(use-package treemacs + :defer t + :straight t + :commands (treemacs-follow-mode + treemacs-filewatch-mode + treemacs-fringe-indicator-mode + treemacs-git-mode) + :custom-face + (cfrs-border-color ((t (:background ,(face-foreground 'font-lock-comment-face nil t))))) + :bind (([f9] . treemacs) + ([f8] . treemacs-display-current-project-exclusively) + ([f7] . treemacs-add-and-display-current-project) + ("C-x t 1" . treemacs-delete-other-windows) + ("C-x t b" . treemacs-bookmark) + ("C-x t C-f" . treemacs-find-file) + ("C-x t C-t" . treemacs-find-tag) + :map treemacs-mode-map + ([mouse-1] . treemacs-single-click-expand-action)) + :config + (setq treemacs-collapse-dirs (if treemacs-python-executable 3 0) + treemacs-missing-project-action 'remove + treemacs-sorting 'alphabetic-asc + treemacs-follow-after-init t + treemacs-width 30) + :config + (treemacs-follow-mode t) + (treemacs-filewatch-mode t) + (pcase (cons (not (null (executable-find "git"))) + (not (null (executable-find "python3")))) + (`(t . t) + (treemacs-git-mode 'deferred)) + (`(t . _) + (treemacs-git-mode 'simple)))) + +(use-package treemacs-projectile + :defer t + :straight t + :after projectile + :bind (:map projectile-command-map + ("h" . treemacs-projectile))) + +(use-package treemacs-magit + :defer t + :straight + :after magit + :commands treemacs-magit--schedule-update + :hook ((magit-post-commit + git-commit-post-finish + magit-post-stage + magit-post-unstage) + . treemacs-magit--schedule-update)) + +(use-package treemacs-persp + :defer t + :straight t + :after persp-mode + :demand t + :functions treemacs-set-scope-type + :config (treemacs-set-scope-type 'Perspectives)) + +;; `lsp-mode' and `treemacs' integration +(use-package lsp-treemacs + :defer t + :straight t + :after lsp-mode + :bind (:map lsp-mode-map + ("C-" . lsp-treemacs-errors-list) + ("M-" . lsp-treemacs-symbols) + ("s-" . lsp-treemacs-java-deps-list)) + :init (lsp-treemacs-sync-mode 1) + :config + (with-eval-after-load 'ace-window + (when (boundp 'aw-ignored-buffers) + (push 'lsp-treemacs-symbols-mode aw-ignored-buffers) + (push 'lsp-treemacs-java-deps-mode aw-ignored-buffers)))) + +(provide 'base-treemacs) +;;; base-treemacs.el ends here diff --git a/init.el b/init.el index d3e7947..4b47034 100644 --- a/init.el +++ b/init.el @@ -45,6 +45,7 @@ (require 'base-org) (require 'base-lsp) (require 'base-company) +(require 'base-treemacs) (require 'base-ctags) (require 'base-ivy) (require 'base-keys)