From 615cf1531383205a870645593d600a4b1428cdb5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 17 May 2017 21:07:41 +0200 Subject: [PATCH] General refactor & cleanup --- core/autoload/popups.el | 8 +++++ core/core-keybinds.el | 16 +++++----- modules/feature/evil/config.el | 1 - modules/private/hlissner/+bindings.el | 46 +++++++++++++++------------ modules/ui/doom/config.el | 2 +- 5 files changed, 43 insertions(+), 30 deletions(-) diff --git a/core/autoload/popups.el b/core/autoload/popups.el index 410706e82..bcad9371b 100644 --- a/core/autoload/popups.el +++ b/core/autoload/popups.el @@ -137,3 +137,11 @@ only close popups that have an :autoclose property in their rule (see `(,(buffer-name buffer) :file ,(buffer-file-name buffer) :rules ,(window-parameter window 'popup))))) + +;;;###autoload +(defun doom/popup-toggle-messages () + "Toggle *Messages* buffer." + (interactive) + (if-let (win (get-buffer-window "*Messages*")) + (doom/popup-close win) + (doom-popup-buffer (get-buffer "*Messages*")))) diff --git a/core/core-keybinds.el b/core/core-keybinds.el index 9e7ca6ffa..dda807bbe 100644 --- a/core/core-keybinds.el +++ b/core/core-keybinds.el @@ -178,18 +178,18 @@ Example `(vconcat ,prefix ,(if (stringp def) (kbd def) def)))) (when desc (push `(doom--keybind-register ,(key-description (eval prefix)) - ,desc ',modes) + ,desc ',modes) forms) (setq desc nil)))) (otherwise ; might be a state prefix (setq states (doom--keyword-to-states key '("L"))) - (when (let (case-fold-search) - (string-match-p "L" (symbol-name key))) - (setq local t) - (cond ((= (length states) 0) - (user-error "local keybinding for %s must accompany another state" key)) - ((> (length keymaps) 0) - (user-error "local keybinding for %s cannot accompany a keymap" key))))))) + (let (case-fold-search) + (when (string-match-p "L" (symbol-name key)) + (setq local t) + (cond ((= (length states) 0) + (user-error "local keybinding for %s must accompany another state" key)) + ((> (length keymaps) 0) + (user-error "local keybinding for %s cannot accompany a keymap" key)))))))) ;; It's a key-def pair ((or (stringp key) diff --git a/modules/feature/evil/config.el b/modules/feature/evil/config.el index fbdd60a06..6968ac1c7 100644 --- a/modules/feature/evil/config.el +++ b/modules/feature/evil/config.el @@ -363,7 +363,6 @@ the new algorithm is confusing, like in python or ruby." (def-package! evil-textobj-anyblock - :commands (evil-numbers/inc-at-pt evil-numbers/dec-at-pt) :init (+evil--textobj "B" #'evil-textobj-anyblock-inner-block diff --git a/modules/private/hlissner/+bindings.el b/modules/private/hlissner/+bindings.el index 4615ec3f2..7531884ab 100644 --- a/modules/private/hlissner/+bindings.el +++ b/modules/private/hlissner/+bindings.el @@ -17,19 +17,19 @@ [remap find-tag] #'projectile-find-tag) (map! - ;; Essential - "M-x" #'execute-extended-command - "A-x" #'execute-extended-command + ;; Make M-x available everywhere + :nvime "M-x" #'execute-extended-command + :nvime "A-x" #'execute-extended-command + :nvime "M-:" #'+hlissner/C-u-M-x + :nvime "A-:" #'+hlissner/C-u-M-x + ;; Emacs debug utilities "M-;" #'eval-expression "A-;" #'eval-expression - "M-:" #'+hlissner/C-u-M-x - "A-:" #'+hlissner/C-u-M-x - ;; Emacs debug utilities [f9] #'doom/what-face [f10] #'doom/blink-cursor "C-`" #'doom/popup-toggle ;; Text-scaling - "M-0" (λ! (text-scale-set 0)) + "M-+" (λ! (text-scale-set 0)) "M-=" #'text-scale-increase "M--" #'text-scale-decrease ;; Simple window navigation/manipulation @@ -75,7 +75,7 @@ ;;; and :m ";" 'evil-ex (:leader - ;; common + ;; Most commonly used :desc "Switch project buffer" :n "," #'persp-switch-to-buffer :desc "Switch buffer" :n "<" #'switch-to-buffer :desc "Browse files" :n "." #'find-file @@ -88,14 +88,13 @@ :desc "Jump to bookmark" :n "b" #'bookmark-jump :desc "Delete bookmark" :n "B" #'bookmark-delete :desc "List errors" :n "e" #'flycheck-list-errors - :desc "View Emacs Log" :n "m" #'view-echo-area-messages + :desc "View Emacs Log" :n "m" #'doom/popup-toggle-messages :desc "Recent files" :n "r" #'recentf :desc "Recent project files" :n "R" #'projectile-recentf - :desc "Open Neotree" :n "n" #'+evil/neotree :desc "Insert from kill ring" :n "y" #'counsel-yank-pop :desc "Switch project" :n "p" #'projectile-switch-project - :desc "Execute in Emacs mode" :n "\\" #'evil-execute-in-emacs-state - :desc "Switch to Emacs mode" :n "|" #'evil-emacs-state + :desc "Open Neotree" :n "\\" #'+evil/neotree + ;; Since I've remapped C-h... :desc "help" :n "h" #'help-command @@ -104,6 +103,14 @@ :desc "Quit" :n "q" #'evil-save-and-quit :desc "Quit (forget session)" :n "Q" #'+workspace/kill-session-and-quit) + (:desc "git" + :prefix "g" + :desc "Git status" :n "s" #'magit-status + :desc "Git blame" :n "b" #'magit-blame + :desc "Git time machine" :n "t" #'git-timemachine-toggle + :desc "Git revert hunk" :n "r" #'git-gutter:revert-hunk + :desc "List gists" :n "g" #'+gist:list) + (:desc "session" :prefix "s" :desc "Kill all buffers" :n "k" #'doom/kill-all-buffers @@ -124,8 +131,7 @@ :desc "Indent guides" :n "i" #'highlight-indentation-mode :desc "Indent guides (column)" :n "I" #'highlight-indentation-current-column-mode :desc "Impatient mode" :n "h" #'+present/impatient-mode - :desc "Big mode" :n "b" #'+present/big-mode - :desc "Git time machine" :n "t" #'git-timemachine-toggle) + :desc "Big mode" :n "b" #'+present/big-mode) (:desc "remote" :prefix "u" @@ -134,16 +140,16 @@ :desc "Download remote" :n "d" #'+upload/remote-download :desc "Diff local & remote" :n "D" #'+upload/diff :desc "Browse remote files" :n "." #'+upload/browse - :desc "Detect remote changes" :n "." #'+upload/check-remote) + :desc "Detect remote changes" :n ">" #'+upload/check-remote) (:desc "open" :prefix "o" :desc "Default browser" :n "o" #'browse-url-of-file :desc "Debugger" :n "d" #'+debug/open + :desc "Sudo find file" :n "s" #'doom/sudo-this-file + :desc "Sudo edit" :n "S" #'doom/sudo-find-file :desc "Build tasks" :n "b" #'+eval/build - :desc "REPL" :n "r" #'+eval:repl - :desc "Send to REPL" :v "r" #'+eval:repl - :desc "Sudo" :n "s" #'doom/sudo-this-file + :desc "Open/Send to REPL" :nv "r" #'+eval:repl :desc "Terminal" :n "t" #'+term/popup :desc "Terminal @ project root" :n "T" #'+term/popup-in-project @@ -189,8 +195,8 @@ (:desc "Unit tests" :prefix "t")) ;;; Evil-esque bindings - :n "zx" #'doom/kill-this-buffer ;; Buffers + :n "zx" #'doom/kill-this-buffer :n "ZX" #'bury-buffer :n "]b" #'doom/next-buffer :n "[b" #'doom/previous-buffer @@ -311,7 +317,7 @@ "l" #'find-library "L" #'view-lossage "h" #'describe-face ; overwrite `view-hello-file' - "g" nil)) ; annoying to accidentally trigger + "g" nil)) ; annoying to trigger accidentally ;; diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index 464996632..b8b5d1552 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -32,7 +32,7 @@ ;; The native border "consumes" a pixel of the fringe on righter-most splits, ;; `window-divider' does not. Available since Emacs 25.1. (setq window-divider-default-places t - window-divider-default-bottom-width 0 + window-divider-default-bottom-width 1 window-divider-default-right-width 1) (window-divider-mode +1)