Refactor def-setting!/set!; now evaluates its arguments on set!

This commit is contained in:
Henrik Lissner 2017-02-08 02:22:51 -05:00
parent 5d1013d317
commit f053980e85
6 changed files with 96 additions and 24 deletions

View file

@ -10,9 +10,19 @@
(defvar +evil-localleader "\\"
"The <localleader> key, used by the `map!' macro for :localleader bindings.")
(def-setting! :evil-state (mode state)
(def-setting! :evil-state (&rest mode-state-list)
"Set the initialize STATE of MODE using `evil-set-initial-state'."
(evil-set-initial-state mode state))
(if (-all-p 'listp mode-state-list)
(macroexp-progn
(--map (let ((argc (length it)))
(unless (= argc 2)
(error ":evil-state sub-lists expect 2 arguments, got %s" argc))
`(evil-set-initial-state ',(car it) ',(cadr it)))
mode-state-list))
(let ((argc (length mode-state-list)))
(unless (= argc 2)
(error ":evil-state expected 2 arguments, got %s" argc)))
`(evil-set-initial-state ',(car mode-state-list) ',(cadr mode-state-list))))
;;
@ -36,8 +46,8 @@
:config
(set! :popup
("*evil-registers*" :size 0.3)
("*Command Line*" :size 8))
'("*evil-registers*" :size 0.3)
'("*Command Line*" :size 8))
(evil-mode +1)
(evil-select-search-module 'evil-search-module 'evil-search)
@ -374,7 +384,7 @@ if on a delimiter, jump to the matching one (`evilmi-jump-items')."
"^#.*#$"))
:config
(set! :evil-state (neotree-mode motion))
(set! :evil-state 'neotree-mode 'motion)
;; Adding keybindings to `neotree-mode-map' wouldn't work for me (they get
;; overridden when the neotree buffer is spawned). So we bind them in a hook.

View file

@ -14,7 +14,7 @@
:commands git-gutter-mode
:init (add-hook! (text-mode prog-mode conf-mode) 'git-gutter-mode)
:config
(set! :popup ("^\\*git-gutter.+\\*$" :regexp t :size 15 :noselect t))
(set! :popup "^\\*git-gutter.+\\*$" :regexp t :size 15 :noselect t)
;; Update git-gutter on focus (in case I was using git externally)
(add-hook 'focus-in-hook 'git-gutter:update-all-windows)
@ -31,7 +31,7 @@
(use-package! magit
:commands magit-status
:config
(set! :popup ("^\\*magit.+" :regexp t))
(set! :popup "^\\*magit.+" :regexp t)
(after! evil-snipe
;; evil-snipe conflicts with magit
(add-hook 'magit-mode-hook 'turn-off-evil-snipe-override-mode)))

View file

@ -6,13 +6,13 @@
(after! vc-annotate
(set! :popup
("*vc-diff*" :size 15 :noselect t)
("*vc-change-log*" :size 15 :select t)
(vc-annotate-mode :same t))
'("*vc-diff*" :size 15 :noselect t)
'("*vc-change-log*" :size 15 :select t)
'(vc-annotate-mode :same t))
(set! :evil-state
(vc-annotate-mode normal)
(vc-git-log-view-mode normal))
'(vc-annotate-mode normal)
'(vc-git-log-view-mode normal))
(map! :map vc-annotate-mode-map
:n "q" 'kill-this-buffer