about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-treemacs.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-treemacs.el')
-rw-r--r--configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-treemacs.el115
1 files changed, 115 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-treemacs.el b/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-treemacs.el
new file mode 100644
index 000000000000..45499b7530d4
--- /dev/null
+++ b/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-treemacs.el
@@ -0,0 +1,115 @@
+;;; doom-themes-treemacs.el --- description -*- lexical-binding: t; -*-
+
+(defgroup doom-treemacs nil
+  "Options for doom's treemacs theme"
+  :group 'doom-themes)
+
+(defcustom doom-treemacs-enable-variable-pitch t
+  "If non-nil, the labels for files, folders and projects are displayed with the
+variable-pitch face."
+  :type 'boolean
+  :group 'doom-treemacs)
+
+(defcustom doom-treemacs-line-spacing 1
+  "Line-spacing for treemacs buffer."
+  :type 'symbol
+  :group 'doom-treemacs)
+
+(defun doom--treemacs-no-fringes ()
+  "Remove fringes in treemacs. They get reset each time you select the neotree
+pane and are highlighted incorrectly when used with `solaire-mode'."
+  (when (display-graphic-p)
+    (set-window-fringes nil 0 0)))
+
+(defun doom--treemacs-setup (&rest _)
+  (setq line-spacing doom-treemacs-line-spacing
+        tab-width 1))
+
+(defun doom--treemacs-hide-modeline ()
+  (setq mode-line-format nil))
+
+(defun doom--treemacs-variable-pitch-labels (&rest _)
+  (when doom-treemacs-enable-variable-pitch
+    (dolist (face '(treemacs-root-face
+                    treemacs-git-unmodified-face
+                    treemacs-git-modified-face
+                    treemacs-git-renamed-face
+                    treemacs-git-ignored-face
+                    treemacs-git-untracked-face
+                    treemacs-git-added-face
+                    treemacs-git-conflict-face
+                    treemacs-directory-face
+                    treemacs-directory-collapsed-face
+                    treemacs-file-face))
+      (let ((faces (face-attribute face :inherit nil)))
+        (set-face-attribute face nil :inherit `(variable-pitch ,@(delq 'unspecified (doom-enlist faces))))))))
+
+(eval-after-load 'treemacs
+  (lambda ()
+    (unless (require 'all-the-icons nil t)
+      (error "all-the-icons isn't installed"))
+
+    ;; Silence plistp error with all-the-icons
+    (advice-add #'treemacs--pulse-png-advice :override #'ignore)
+
+    (add-hook 'treemacs-mode-hook #'doom--treemacs-setup)
+    (add-hook 'treemacs-mode-hook #'doom--treemacs-hide-modeline)
+
+    ;; no fringes in treemacs window
+    (add-hook 'treemacs-mode-hook #'doom--treemacs-no-fringes)
+    (advice-add #'treemacs-select-window :after #'doom--treemacs-no-fringes)
+
+    ;; variable-pitch labels for files/folders
+    (doom--treemacs-variable-pitch-labels)
+    (advice-add #'load-theme :after #'doom--treemacs-variable-pitch-labels)
+
+    ;; minimalistic atom-inspired icon theme
+    (let ((all-the-icons-default-adjust 0))
+      (setq treemacs-icon-root-png
+            (concat " " (all-the-icons-octicon "repo" :v-adjust -0.1 :height 1.6
+                                               :face 'font-lock-string-face)
+                    " ")
+
+            treemacs-icon-tag-open-png
+            (all-the-icons-octicon "chevron-down" :v-adjust 0.1)
+            treemacs-icon-tag-closed-png
+            (all-the-icons-octicon "chevron-right" :v-adjust 0.1)
+
+            treemacs-indentation-string "  "
+            treemacs-indentation 1
+
+            treemacs-icon-open-png
+            (concat (all-the-icons-octicon "file-directory" :v-adjust 0 :height 1.15)
+                    " ")
+            treemacs-icon-closed-png
+            (concat (all-the-icons-octicon "file-directory" :v-adjust 0 :height 1.15 :face 'font-lock-doc-face)
+                    " ")
+
+            treemacs-icon-tag-node-open-png
+            (concat (all-the-icons-octicon "chevron-down"  :height 0.75 :face 'font-lock-keyword-face)
+                    "\t")
+            treemacs-icon-tag-node-closed-png
+            (concat (all-the-icons-octicon "chevron-right" :height 0.9  :face 'font-lock-keyword-face)
+                    "\t")
+            treemacs-icon-tag-leaf-png "- ")
+
+      ;; File type icons
+      (setq treemacs-icons-hash (make-hash-table :size 200 :test #'equal)
+            treemacs-icon-fallback (concat (all-the-icons-octicon "file-code" :height 1.2 :v-adjust 0) " ")
+            treemacs-icon-text     treemacs-icon-fallback)
+
+      (treemacs-define-custom-icon (all-the-icons-octicon "file-media" :height 1.2)
+                                   "png" "jpg" "jpeg" "gif" "ico" "tif" "tiff" "svg" "bmp"
+                                   "psd" "ai" "eps" "indd" "mov" "avi" "mp4" "webm" "mkv"
+                                   "wav" "mp3" "ogg" "midi")
+
+      (treemacs-define-custom-icon (all-the-icons-octicon "file-text" :height 1.2)
+                                   "md" "markdown" "rst" "log" "org" "txt"
+                                   "CONTRIBUTE" "LICENSE" "README" "CHANGELOG")
+
+      (treemacs-define-custom-icon (all-the-icons-octicon "file-code" :height 1.2)
+                                   "yaml" "yml" "json" "xml" "toml" "cson" "ini"
+                                   "tpl" "erb" "mustache" "twig" "ejs" "mk" "haml" "pug" "jade"))))
+
+(provide 'doom-themes-treemacs)
+;;; doom-themes-treemacs.el ends here