From 4f19e7464da13c517670c33c42b4b76bade50c5b Mon Sep 17 00:00:00 2001 From: stardiviner Date: Tue, 7 Feb 2017 16:37:54 +0800 Subject: [PATCH] support powerline --- README.md | 11 +++++++++++ major-mode-icons.el | 23 ++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f33c157..2d50e7a 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,12 @@ If you use `use-package`: (major-mode-icons-mode 1)) ``` +## mode :lighter + +Minor mode `major-mode-icons-mode` has a `:lighter` support. + +## user custom mode-line + If you use a customize mode-line: ```elisp @@ -33,3 +39,8 @@ If you use a customize mode-line: (major-mode-icons/show)) ))) ``` + +## powerline + +Also suppoer powerline with segment name `powerline-major-mode-icons`. + diff --git a/major-mode-icons.el b/major-mode-icons.el index 617b5e9..ffff50b 100644 --- a/major-mode-icons.el +++ b/major-mode-icons.el @@ -1,7 +1,7 @@ ;;; major-mode-icons.el --- display icon for major-mode on mode-line. ;; Authors: stardiviner -;; Package-Requires: ((emacs "25.1")) +;; Package-Requires: ((emacs "25.1") (powerline "2.4")) ;; Version: 0.1 ;; Keywords: frames multimedia ;; homepage: http://github.com/stardiviner/major-mode-icons @@ -23,6 +23,7 @@ ;;; ---------------------------------------------------------------------------- (require 'cl-lib) +(require 'powerline) (defgroup major-mode-icons nil "Show icon for current buffer's major-mode." @@ -180,6 +181,26 @@ (major-mode-icons--major-mode-icon (major-mode-icons--major-mode-extra))) ;;;###autoload +(defpowerline powerline-major-mode-icons + (let* ((match (major-mode-icons--major-mode-list-match)) + (icon (cdr match)) + (icon-path (concat major-mode-icons-icons-path icon ".xpm"))) + (propertize (format-mode-line mode-name) ; display `mode-name' text. + 'display ; display icon + (if (and (image-type-available-p 'xpm) + (file-exists-p icon-path)) + (create-image icon-path 'xpm nil :ascent 'center)) + 'mouse-face 'mode-line-highlight + 'help-echo "Major-mode\n\ mouse-1: Display major mode menu\n\ mouse2: Show help for major mode\n\ mouse-3: Toggle minor modes" + 'local-map (let ((map (make-sparse-keymap))) + (define-key map [mode-line down-mouse-1] + `(menu-item ,(purecopy "Menu Bar") ignore + :filter (lambda (_) (mouse-menu-major-mode-map)))) + (define-key map [mode-line mouse-2] 'describe-mode) + (define-key map [mode-line down-mouse-3] mode-line-mode-menu) + map)))) + +;;;###autoload (defvar major-mode-icons-lighter (let* ((match (major-mode-icons--major-mode-list-match)) (icon (cdr match))) -- 2.11.4.GIT