aboutsummaryrefslogtreecommitdiffstats
path: root/mode-icons.el
diff options
context:
space:
mode:
authorGravatar Matthew L. Fidler2016-02-05 00:10:27 -0600
committerGravatar Matthew L. Fidler2016-02-05 00:10:27 -0600
commit42430c9643ca1d55813ac643e810fca6a62f2004 (patch)
tree4652333aa52248ce9535253ebb10fd7f14ab4056 /mode-icons.el
parente123df0cab3aad77174cccb0168ac850a768900a (diff)
downloadmode-icons-42430c9643ca1d55813ac643e810fca6a62f2004.tar.gz
mode-icons-42430c9643ca1d55813ac643e810fca6a62f2004.zip
Try to add octicons support.
Messages work, but mode-icon is not supported right.
Diffstat (limited to 'mode-icons.el')
-rw-r--r--mode-icons.el23
1 files changed, 20 insertions, 3 deletions
diff --git a/mode-icons.el b/mode-icons.el
index 6199cd1..1e4e32e 100644
--- a/mode-icons.el
+++ b/mode-icons.el
@@ -43,8 +43,16 @@ ICON should be a file name with extension. The result is the
absolute path to ICON."
(concat mode-icons--directory "/icons/" icon))
+(defvar mode-icons-octicons-font
+ (find-font (font-spec :name "github-octicons")))
+
+(when mode-icons-octicons-font
+ (make-face 'mode-icons-octicons)
+ (set-face-attribute 'mode-icons-octicons nil
+ :font mode-icons-octicons-font))
+
(defcustom mode-icons
- '(("CSS" "css" xpm)
+ `(("CSS" "css" xpm)
("Coffee" "coffee" xpm)
("Compilation" "compile" xpm)
("Emacs-Lisp" "emacs" xpm)
@@ -74,6 +82,7 @@ absolute path to ICON."
("YASnippet" "yas" xpm)
(" yas" "yas" xpm)
(" hs" "hs" xpm)
+ ("Markdown" ,(make-string 1 #xf0c9) octicons)
;; Diminished modes
;; ("\\(ElDoc\\|Anzu\\|SP\\|Guide\\|PgLn\\|Golden\\|Undo-Tree\\|Ergo.*\\|,\\)" nil nil)
)
@@ -89,13 +98,14 @@ without the extension. And the third being the type of icon."
(const :tag "Suppress" nil))
(choice
(const :tag "text" nil)
+ (const :tag "Octicons" octicons)
(const :tag "png" png)
(const :tag "gif" gif)
(const :tag "jpeg" jpeg)
(const :tag "xbm" xbm)
(const :tag "xpm" xpm))))
:group 'mode-icons)
-
+
(defun mode-icons-get-icon-display (icon type)
"Get the value for the display property of ICON having TYPE.
@@ -116,7 +126,7 @@ the icon."
(defvar mode-icons-powerline-p nil)
(defun mode-icons-need-update-p ()
- "Determine if the mode-icons need an update"
+ "Determine if the mode-icons need an update."
(not (or (and (boundp 'rich-minority-mode) rich-minority-mode)
(member 'sml/pos-id-separator mode-line-format)
(string-match-p "powerline" (prin1-to-string mode-line-format)))))
@@ -128,6 +138,13 @@ MODE should be a string, the name of the mode to propertize.
ICON-SPEC should be a specification from `mode-icons'."
(cond
((not (nth 1 icon-spec)) "")
+ ((and mode-icons-octicons-font (stringp (nth 1 icon-spec)) (eq (nth 2 icon-spec) 'octicons))
+ (message "Trying %s" (propertize mode 'display (nth 1 icon-spec) 'face 'mode-icons-octicons
+ 'font 'mode-icons-octicons-font))
+ (propertize mode 'display (nth 1 icon-spec) 'face 'mode-icons-octicons
+ 'font 'mode-icons-octicons-font))
+ ((and (stringp (nth 1 icon-spec)) (not (nth 2 icon-spec)))
+ (propertize mode 'display (mode-icons-get-icon-display (nth 1 icon-spec) (nth 2 icon-spec))))
(t (propertize mode 'display (mode-icons-get-icon-display (nth 1 icon-spec) (nth 2 icon-spec))))))
(defun mode-icons-get-icon-spec (mode)