From c3197fdd9ec5a0b5f8e41f47a15c369681b33335 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 9 Nov 2015 15:55:03 -0500 Subject: [PATCH] General clean up --- core/core-company.el | 47 +++++++++++++++----------------- core/core-editor.el | 3 ++- core/core-evil.el | 59 +++++++++++++++++++++++++---------------- core/core.el | 2 +- modules/module-elisp.el | 17 ++++++------ modules/module-ruby.el | 1 + 6 files changed, 70 insertions(+), 59 deletions(-) diff --git a/core/core-company.el b/core/core-company.el index 62b259dab..baf87be53 100644 --- a/core/core-company.el +++ b/core/core-company.el @@ -4,7 +4,7 @@ (eval-when-compile (require 'core)) (use-package company - :diminish (company-mode . "=") + :diminish "=" :commands (global-company-mode company-complete-common company-dict company-files company-tags company-ispell company-yasnippet company-semantic company-dabbrev-code) @@ -18,45 +18,40 @@ company-dabbrev-ignore-case nil company-tooltip-align-annotations t company-require-match 'never - company-global-modes '(not eshell-mode comint-mode org-mode erc-mode - message-mode help-mode) - company-frontends '(company-pseudo-tooltip-unless-just-one-frontend - company-echo-metadata-frontend - company-preview-if-just-one-frontend) + company-global-modes '(not eshell-mode comint-mode erc-mode message-mode help-mode) + company-frontends '(company-pseudo-tooltip-frontend + company-echo-metadata-frontend) company-backends '((company-capf company-yasnippet company-dabbrev-code - company-files company-keywords) company-dabbrev) + company-statistics-file (concat narf-temp-dir "company-stats-cache.el") company-dict-dir (concat narf-private-dir "dict/")) + :config + (require 'company-statistics) + (require 'company-quickhelp) + (setq company-quickhelp-delay nil + ;; Rewrite evil-complete to use company-dabbrev + company-dabbrev-code-other-buffers t + evil-complete-next-func 'narf/company-evil-complete-next + evil-complete-previous-func 'narf/company-evil-complete-previous) + + ;; TODO Restore company-dict + ;; (use-package company-dict :defer t) + (add-to-list 'company-transformers 'company-sort-by-occurrence) (setq-default company-backends (append '(company-keywords) company-backends)) - (after! yasnippet - (setq-default company-backends - (append '(company-capf company-yasnippet) company-backends))) (define-company-backend! nxml-mode (nxml yasnippet)) (define-company-backend! emacs-lisp-mode (elisp yasnippet)) - ;; (use-package company-dict :defer t) - ;; (setq-default company-backends - ;; (append '(company-dict company-keywords) company-backends)) + (define-key company-active-map "\C-w" nil) - ;; Rewrite evil-complete to use company-dabbrev - (setq company-dabbrev-code-other-buffers t - evil-complete-next-func 'narf/company-evil-complete-next - evil-complete-previous-func 'narf/company-evil-complete-previous) - - (define-key company-active-map (kbd "C-w") nil) - - (shut-up! - (setq company-statistics-file (concat narf-temp-dir "company-stats-cache.el")) - (require 'company-statistics) - (company-statistics-mode)) - - (global-company-mode +1)) + (global-company-mode +1) + (company-statistics-mode +1) + (company-quickhelp-mode 1)) (provide 'core-company) ;;; core-company.el ends here diff --git a/core/core-editor.el b/core/core-editor.el index fbcff3b53..2385221d7 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -204,7 +204,8 @@ enable multiple minor modes for the same regexp.") :commands (describe-buffer describe-command describe-file describe-keymap describe-option describe-option-of-type)) -(use-package writeroom-mode :defer t +(use-package writeroom-mode + :defer t :config (setq writeroom-restore-window-config t writeroom-width 120)) diff --git a/core/core-evil.el b/core/core-evil.el index 7edc805f4..266697f33 100644 --- a/core/core-evil.el +++ b/core/core-evil.el @@ -18,7 +18,6 @@ (add-hook! evil-local-mode (setq evil-shift-width tab-width)) ;; Disable highlights on insert-mode (add-hook! evil-insert-state-entry 'evil-ex-nohighlight) - :config (setq evil-magic t evil-want-C-u-scroll t ; enable C-u for scrolling @@ -30,11 +29,11 @@ evil-echo-state nil ;; Color-coded state cursors - evil-normal-state-cursor '("white" box) - evil-emacs-state-cursor '("green" bar) - evil-insert-state-cursor '("white" bar) - evil-visual-state-cursor '("cyan" hollow) - evil-iedit-state-cursor '("orange" box)) + evil-normal-state-cursor 'box + evil-emacs-state-cursor 'bar + evil-insert-state-cursor 'bar + evil-visual-state-cursor 'hollow + evil-iedit-state-cursor 'box) (evil-mode 1) (evil-select-search-module 'evil-search-module 'evil-search) @@ -82,8 +81,8 @@ (add-hook! isearch-mode (setq echo-keystrokes 0)) (add-hook! isearch-mode-end (setq echo-keystrokes 0.02)) (let ((map evil-ex-search-keymap)) - (define-key map (kbd "C-w") 'evil-delete-backward-word) - (define-key map (kbd "C-u") 'evil-delete-whole-line)) + (define-key map "\C-w" 'evil-delete-backward-word) + (define-key map "\C-u" 'evil-delete-whole-line)) ;; Repeat motions with SPC/S-SPC (defmacro narf-space-setup! (command next-func prev-func) @@ -148,19 +147,25 @@ (define-key map "s" nil) (define-key map "S" nil) - (define-key map (kbd "V") 'evil-visual-line) - (define-key map (kbd "C") 'evil-iedit-state/substitute) ; instead of s/S - (define-key map (kbd "za") 'iedit-toggle-unmatched-lines-visible))) + (define-key map "V" 'evil-visual-line) + (define-key map "C" 'evil-iedit-state/substitute) ; instead of s/S + (define-key map "za" 'iedit-toggle-unmatched-lines-visible))) -(use-package evil-indent-textobject - :commands (evil-indent-i-indent - evil-indent-a-indent - evil-indent-a-indent-lines) - :init - (let ((map evil-inner-text-objects-map)) - (define-key map "i" 'evil-indent-i-indent) - (define-key map "i" 'evil-indent-a-indent) - (define-key map "I" 'evil-indent-a-indent-lines))) +(use-package evil-indent-plus + :commands + (evil-indent-plus-i-indent + evil-indent-plus-a-indent + evil-indent-plus-i-indent-up + evil-indent-plus-a-indent-up + evil-indent-plus-i-indent-up-down + evil-indent-plus-a-indent-up-down) + :config + (define-key evil-inner-text-objects-map "i" 'evil-indent-plus-i-indent) + (define-key evil-outer-text-objects-map "i" 'evil-indent-plus-a-indent) + (define-key evil-inner-text-objects-map "I" 'evil-indent-plus-i-indent-up) + (define-key evil-outer-text-objects-map "I" 'evil-indent-plus-a-indent-up) + (define-key evil-inner-text-objects-map "J" 'evil-indent-plus-i-indent-up-down) + (define-key evil-outer-text-objects-map "J" 'evil-indent-plus-a-indent-up-down)) (use-package evil-jumper :init @@ -182,7 +187,7 @@ (evilem-default-keybindings "g SPC") (evilem-define (kbd "g SPC n") 'evil-ex-search-next) (evilem-define (kbd "g SPC N") 'evil-ex-search-previous) - (evilem-define (kbd "g s") 'evil-snipe-repeat + (evilem-define "gs" 'evil-snipe-repeat (lambda () (save-excursion (ignore-errors @@ -191,7 +196,7 @@ ((evil-snipe-enable-highlight) (evil-snipe-enable-incremental-highlight))) - (evilem-define (kbd "g S") 'evil-snipe-repeat-reverse + (evilem-define "gS" 'evil-snipe-repeat-reverse (lambda () (save-excursion (ignore-errors @@ -203,6 +208,12 @@ (use-package evil-numbers :commands (evil-numbers/inc-at-pt evil-numbers/dec-at-pt)) +(use-package evil-textobj-anyblock + :commands (evil-textobj-anyblock-inner-block evil-textobj-anyblock-a-block) + :init + (define-key evil-inner-text-objects-map "b" 'evil-textobj-anyblock-inner-block) + (define-key evil-outer-text-objects-map "b" 'evil-textobj-anyblock-a-block)) + (use-package evil-search-highlight-persist :config (global-evil-search-highlight-persist t) @@ -244,7 +255,9 @@ :config (global-evil-surround-mode 1) ;; Escaped surround characters - (setq-default evil-surround-pairs-alist (cons '(?\\ . narf/evil-surround-escaped) evil-surround-pairs-alist))) + (setq-default evil-surround-pairs-alist + (cons '(?\\ . narf/evil-surround-escaped) + evil-surround-pairs-alist))) (use-package evil-visualstar :commands (global-evil-visualstar-mode diff --git a/core/core.el b/core/core.el index 86a07e097..ff6a70592 100644 --- a/core/core.el +++ b/core/core.el @@ -22,7 +22,7 @@ ediff-diff-options "-w" ediff-split-window-function 'split-window-horizontally ; side-by-side diffs ediff-window-setup-function 'ediff-setup-windows-plain ; no extra frames - enable-recursive-minibuffers t ; minibufferception + enable-recursive-minibuffers nil ; no minibufferception history-length 1000 inhibit-startup-echo-area-message "hlissner" ; username shuts up emacs inhibit-startup-screen t ; don't show emacs start screen diff --git a/modules/module-elisp.el b/modules/module-elisp.el index 5f5cb63ed..adac0398b 100644 --- a/modules/module-elisp.el +++ b/modules/module-elisp.el @@ -12,18 +12,19 @@ (narf:compile-el))) (add-hook! emacs-lisp-mode - ;; (add-hook 'before-save-hook 'delete-trailing-whitespace nil t) + (add-hook 'before-save-hook 'delete-trailing-whitespace nil t) (add-hook 'after-save-hook 'narf-elisp-auto-compile nil t)) ;; Highlight extra NARF keywords -(let ((new-keywords '("add-hook!" - "bind!" - "after!" - "λ" - "in!" - ))) +(let ((keywords '("add-hook!" + "bind!" + "after!" + "λ" + "in!" + "define-company-backend!" + ))) (font-lock-add-keywords 'emacs-lisp-mode - `((,(concat "(\\s-*" (regexp-opt new-keywords 'paren) "\\_>") + `((,(concat "(\\s-*" (regexp-opt keywords 'paren) "\\_>") 1 font-lock-keyword-face)) 'append)) ;; Real go-to-definition for elisp diff --git a/modules/module-ruby.el b/modules/module-ruby.el index f0c99a3c6..7ff646b24 100644 --- a/modules/module-ruby.el +++ b/modules/module-ruby.el @@ -64,6 +64,7 @@ (define-company-backend! inf-ruby-mode (inf-ruby)))) (use-package robe + :diminish "R" :commands (robe-mode robe-start ruby-load-file) :init (add-hook! after-save 'narf|ruby-load-file)