Refactor modules to optimize autoloads + startup
This commit is contained in:
parent
8769c3187b
commit
0a78922471
18 changed files with 103 additions and 90 deletions
|
@ -22,9 +22,9 @@
|
|||
(use-package swift-mode
|
||||
:mode "\\.swift$"
|
||||
:init
|
||||
(def-company-backend! swift-mode (sourcekit yasnippet))
|
||||
(add-hook 'swift-mode-hook 'flycheck-mode)
|
||||
:config
|
||||
(def-company-backend! swift-mode (sourcekit yasnippet))
|
||||
(push 'swift flycheck-checkers))
|
||||
|
||||
(use-package company-sourcekit
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
:commands (c-mode c++-mode objc-mode java-mode)
|
||||
:init
|
||||
(associate! objc-mode :match "\\.mm$")
|
||||
(def-electric! (c-mode c++-mode objc-mode) :chars (?\n ?\}))
|
||||
(def-company-backend! (c-mode c++-mode objc-mode) (irony-c-headers irony))
|
||||
(add-hook! 'c++-mode-hook '(highlight-numbers-mode narf|init-c++-C11-highlights))
|
||||
(add-hook 'c-initialization-hook 'narf|init-c/c++-settings)
|
||||
|
||||
|
@ -24,12 +22,14 @@
|
|||
magic-mode-alist)
|
||||
|
||||
:config
|
||||
(def-electric! (c-mode c++-mode objc-mode) :chars (?\n ?\}))
|
||||
(def-company-backend! (c-mode c++-mode objc-mode) (irony-c-headers irony))
|
||||
|
||||
(setq c-tab-always-indent nil
|
||||
c-electric-flag nil)
|
||||
|
||||
(map! :map c-mode-base-map (:localleader :nv ";" 'narf/append-semicolon))
|
||||
|
||||
(def-textobj! "<" "<" ">")
|
||||
(sp-with-modes '(c-mode c++-mode objc-mode java-mode)
|
||||
(sp-local-pair "<" ">" :when '(narf/sp-point-is-template-p narf/sp-point-after-include-p))
|
||||
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
||||
|
@ -65,7 +65,7 @@
|
|||
;;
|
||||
(use-package cmake-mode
|
||||
:mode "CMakeLists\\.txt$"
|
||||
:init (def-company-backend! cmake-mode (cmake yasnippet)))
|
||||
:config (def-company-backend! cmake-mode (cmake yasnippet)))
|
||||
(use-package company-cmake :after cmake-mode)
|
||||
|
||||
(use-package glsl-mode :mode ("\\.glsl\\'" "\\.vert\\'" "\\.frag\\'" "\\.geom\\'"))
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
omnisharp-server-executable-path (concat narf-ext-dir "/OmniSharp.exe"))
|
||||
:when (file-exists-p omnisharp-server-executable-path)
|
||||
:init
|
||||
(def-company-backend! csharp-mode (omnisharp))
|
||||
(add-hook! csharp-mode '(turn-on-eldoc-mode emr-initialize omnisharp-mode))
|
||||
:config
|
||||
(def-company-backend! csharp-mode (omnisharp))
|
||||
(map! :map omnisharp-mode-map
|
||||
"gd" 'omnisharp-go-to-definition
|
||||
(:localleader
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
;;; module-data.el
|
||||
|
||||
(associate! nxml-mode :match "\\.plist$")
|
||||
(after! nxml-mode
|
||||
(def-company-backend! nxml-mode (nxml yasnippet)))
|
||||
|
||||
(use-package toml-mode :mode "\\.toml$")
|
||||
|
||||
|
@ -20,11 +22,9 @@
|
|||
;;
|
||||
(def-project-type! ansible-mode "ans"
|
||||
:modes (yaml-mode)
|
||||
:files ("roles/"))
|
||||
|
||||
(use-package company-ansible
|
||||
:commands (company-ansible)
|
||||
:init (def-company-backend! ansible-mode (ansible)))
|
||||
:files ("roles/")
|
||||
(def-company-backend! ansible-mode (ansible)))
|
||||
(use-package company-ansible :commands (company-ansible))
|
||||
|
||||
(def-project-type! vagrant "vagrant"
|
||||
:files ("Vagrantfile"))
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
:mode "\\.go$"
|
||||
:interpreter "go"
|
||||
:init
|
||||
(def-builder! go-mode "go build")
|
||||
(def-company-backend! go-mode (go yasnippet))
|
||||
(def-repl! go-mode gorepl-run)
|
||||
(add-hook! go-mode '(emr-initialize flycheck-mode go-eldoc-setup))
|
||||
(add-hook! go-mode (add-hook 'before-save-hook 'gofmt-before-save))
|
||||
|
||||
:config
|
||||
(def-builder! go-mode "go build")
|
||||
(def-company-backend! go-mode (go yasnippet))
|
||||
(def-repl! go-mode gorepl-run)
|
||||
(map! :map go-mode-map
|
||||
:n "gd" 'godef-jump
|
||||
:n "gD" 'godef-describe
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
:interpreter (("runghc" . haskell-mode)
|
||||
("runhaskell" . haskell-mode))
|
||||
:init
|
||||
(def-repl! haskell-mode switch-to-haskell)
|
||||
(add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode))
|
||||
:config
|
||||
(def-repl! haskell-mode switch-to-haskell)
|
||||
(push ".hi" completion-ignored-extensions))
|
||||
|
||||
(use-package inf-haskell
|
||||
|
|
|
@ -29,9 +29,9 @@
|
|||
(use-package android-mode
|
||||
:commands android-mode
|
||||
:init
|
||||
(def-yas-mode! 'android-mode)
|
||||
(add-hook! (java-mode groovy-mode nxml-mode) 'narf|android-mode-enable-maybe)
|
||||
:config
|
||||
(def-yas-mode! 'android-mode)
|
||||
(after! company-dict
|
||||
(push 'android-mode company-dict-minor-mode-list)))
|
||||
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
:mode "\\.js$"
|
||||
:interpreter "node"
|
||||
:init
|
||||
(add-hook! js2-mode '(tern-mode emr-initialize))
|
||||
|
||||
:config
|
||||
(def-repl! js2-mode nodejs-repl)
|
||||
(def-docset! js2-mode "js,javascript,nodejs,angularjs,express,jquery,mongoose")
|
||||
(def-company-backend! js2-mode (tern))
|
||||
(def-electric! js2-mode :chars (?\} ?\) ?.) :words ("||" "&&"))
|
||||
(add-hook! js2-mode '(tern-mode emr-initialize))
|
||||
|
||||
:config
|
||||
(setq-default
|
||||
js2-skip-preprocessor-directives t
|
||||
js2-show-parse-errors nil
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
(use-package julia-mode
|
||||
:mode "\\.jl$"
|
||||
:interpreter "julia"
|
||||
:init (def-repl! julia-mode narf/julia-repl))
|
||||
:config (def-repl! julia-mode narf/julia-repl))
|
||||
|
||||
(provide 'module-julia)
|
||||
;;; module-julia.el ends here
|
||||
|
|
|
@ -1,14 +1,7 @@
|
|||
;;; module-lisp --- all things lisp
|
||||
|
||||
(associate! emacs-lisp-mode :match "\\(/Cask\\|\\.\\(el\\|gz\\)\\)$")
|
||||
(def-company-backend! emacs-lisp-mode (elisp yasnippet))
|
||||
(def-repl! emacs-lisp-mode narf/elisp-inf-ielm)
|
||||
|
||||
(add-hook! emacs-lisp-mode
|
||||
'(turn-on-eldoc-mode flycheck-mode highlight-numbers-mode))
|
||||
|
||||
;; Real go-to-definition for elisp
|
||||
(map! :map emacs-lisp-mode-map :m "gd" 'narf/elisp-find-function-at-pt)
|
||||
(add-hook! emacs-lisp-mode '(turn-on-eldoc-mode flycheck-mode highlight-numbers-mode))
|
||||
|
||||
(use-package highlight-quoted
|
||||
:commands (highlight-quoted-mode)
|
||||
|
@ -17,26 +10,70 @@
|
|||
(use-package slime :defer t
|
||||
:config (setq inferior-lisp-program "clisp"))
|
||||
|
||||
;; Don't affect lisp indentation (only `tab-width')
|
||||
(setq editorconfig-indentation-alist
|
||||
(delq (assq 'emacs-lisp-mode editorconfig-indentation-alist)
|
||||
editorconfig-indentation-alist))
|
||||
(add-hook 'emacs-lisp-mode-hook 'narf/elisp-init)
|
||||
(defun narf/elisp-init ()
|
||||
(def-company-backend! emacs-lisp-mode (elisp yasnippet))
|
||||
(def-repl! emacs-lisp-mode narf/elisp-inf-ielm)
|
||||
(def-rotate! emacs-lisp-mode
|
||||
:symbols (("t" "nil")
|
||||
("let" "let*")
|
||||
("when" "unless")
|
||||
("append" "prepend")
|
||||
("advice-add" "advice-remove")
|
||||
("add-hook" "add-hook!" "remove-hook")))
|
||||
|
||||
(add-hook! emacs-lisp-mode
|
||||
;; Don't affect lisp indentation (only `tab-width')
|
||||
(setq editorconfig-indentation-alist
|
||||
(delq (assq 'emacs-lisp-mode editorconfig-indentation-alist)
|
||||
editorconfig-indentation-alist))
|
||||
|
||||
;; Real go-to-definition for elisp
|
||||
(map! :map emacs-lisp-mode-map :m "gd" 'narf/elisp-find-function-at-pt)
|
||||
|
||||
(font-lock-add-keywords
|
||||
'emacs-lisp-mode `(("(\\(lambda\\)"
|
||||
(1 (narf/show-as ?λ)))
|
||||
;; Highlight narf macros (macros are fontified in emacs 25+)
|
||||
(,(concat
|
||||
"(\\(def-"
|
||||
(regexp-opt '("electric" "project-type" "company-backend"
|
||||
"builder" "repl" "textobj" "tmp-excmd" "rotate"
|
||||
"repeat" "yas-mode" "env-command" "docset"))
|
||||
"!\\)")
|
||||
(1 font-lock-keyword-face append))
|
||||
(,(concat
|
||||
"(\\("
|
||||
(regexp-opt '("λ" "in" "map" "after" "shut-up" "add-hook"
|
||||
"associate" "open-with" "define-org-link"
|
||||
"define-org-section"))
|
||||
"!\\)")
|
||||
(1 font-lock-keyword-face append))
|
||||
;; Ert
|
||||
(,(concat
|
||||
"("
|
||||
(regexp-opt '("ert-deftest") t)
|
||||
" \\([^ ]+\\)")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-function-name-face))))
|
||||
|
||||
(remove-hook 'emacs-lisp-mode-hook 'narf/elisp-init))
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook 'narf/elisp-hook)
|
||||
(defun narf/elisp-hook ()
|
||||
(setq mode-name "Elisp") ; [pedantry intensifies]
|
||||
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace nil t)
|
||||
(add-hook 'after-save-hook 'narf/elisp-auto-compile nil t)
|
||||
|
||||
(let ((header-face 'font-lock-constant-face))
|
||||
(add-to-list 'imenu-generic-expression
|
||||
`("Evil Command" "\\(^\\s-*(evil-define-command +\\)\\(\\_<.+\\_>\\)" 2))
|
||||
(add-to-list 'imenu-generic-expression
|
||||
`("Evil Operator" "\\(^\\s-*(evil-define-operator +\\)\\(\\_<.+\\_>\\)" 2))
|
||||
(add-to-list 'imenu-generic-expression
|
||||
`("Package" "\\(^\\s-*(use-package +\\)\\(\\_<.+\\_>\\)" 2))
|
||||
(add-to-list 'imenu-generic-expression
|
||||
`("Spaceline Segment" "\\(^\\s-*(spaceline-define-segment +\\)\\(\\_<.+\\_>\\)" 2))))
|
||||
(push '("Evil Command" "\\(^\\s-*(evil-define-command +\\)\\(\\_<.+\\_>\\)" 2)
|
||||
imenu-generic-expression)
|
||||
(push '("Evil Operator" "\\(^\\s-*(evil-define-operator +\\)\\(\\_<.+\\_>\\)" 2)
|
||||
imenu-generic-expression)
|
||||
(push '("Package" "\\(^\\s-*(use-package +\\)\\(\\_<.+\\_>\\)" 2)
|
||||
imenu-generic-expression)
|
||||
(push '("Spaceline Segment" "\\(^\\s-*(spaceline-define-segment +\\)\\(\\_<.+\\_>\\)" 2)
|
||||
imenu-generic-expression)))
|
||||
|
||||
;; Add new colors to helm-imenu
|
||||
(after! helm-imenu
|
||||
|
@ -64,31 +101,6 @@
|
|||
collect
|
||||
(cons disp (cons k v)))))
|
||||
|
||||
(font-lock-add-keywords
|
||||
'emacs-lisp-mode `(("(\\(lambda\\)"
|
||||
(1 (narf/show-as ?λ)))
|
||||
;; Highlight narf macros (macros are fontified in emacs 25+)
|
||||
(,(concat
|
||||
"(\\(def-"
|
||||
(regexp-opt '("electric" "project-type" "company-backend"
|
||||
"builder" "repl" "textobj" "tmp-excmd"
|
||||
"repeat" "yas-mode" "env-command" "docset"))
|
||||
"!\\)")
|
||||
(1 font-lock-keyword-face append))
|
||||
(,(concat
|
||||
"(\\("
|
||||
(regexp-opt '("λ" "in" "map" "after" "shut-up" "add-hook"
|
||||
"associate" "open-with" "define-org-link"
|
||||
"define-org-section"))
|
||||
"!\\)")
|
||||
(1 font-lock-keyword-face append))
|
||||
;; Ert
|
||||
(,(concat
|
||||
"("
|
||||
(regexp-opt '("ert-deftest") t)
|
||||
" \\([^ ]+\\)")
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-function-name-face))))
|
||||
|
||||
;;
|
||||
(def-project-type! emacs-ert "ert"
|
||||
|
|
|
@ -3,13 +3,11 @@
|
|||
(use-package lua-mode
|
||||
:mode "\\.lua$"
|
||||
:interpreter "lua"
|
||||
:init
|
||||
:init (add-hook 'lua-mode-hook 'flycheck-mode)
|
||||
:config
|
||||
(def-company-backend! lua-mode (yasnippet))
|
||||
(def-electric! lua-mode :words ("else" "end"))
|
||||
(def-repl! lua-mode narf/inf-lua)
|
||||
(add-hook 'lua-mode-hook 'flycheck-mode)
|
||||
|
||||
:config
|
||||
(sp-with-modes '(lua-mode)
|
||||
;; disable defaults
|
||||
(sp-local-pair "if" nil :actions :rem)
|
||||
|
|
|
@ -2,20 +2,21 @@
|
|||
|
||||
(use-package hack-mode
|
||||
:mode "\\.hh$"
|
||||
:init (def-company-backend! hack-mode (capf)))
|
||||
:config (def-company-backend! hack-mode (capf)))
|
||||
|
||||
(use-package php-mode
|
||||
:mode ("\\.php[s345]?$" "\\.inc$" )
|
||||
:interpreter "php"
|
||||
:init
|
||||
(def-repl! php-mode php-boris)
|
||||
(def-docset! php-mode "php,laravel")
|
||||
(def-company-backend! php-mode '(company-ac-php-backend php-extras-company))
|
||||
(add-hook 'php-mode-hook 'flycheck-mode)
|
||||
(setq php-template-compatibility nil
|
||||
php-extras-eldoc-functions-file (concat narf-temp-dir "/php-extras-eldoc-functions"))
|
||||
|
||||
:config
|
||||
(def-repl! php-mode php-boris)
|
||||
(def-docset! php-mode "php,laravel")
|
||||
(def-company-backend! php-mode '(company-ac-php-backend php-extras-company))
|
||||
|
||||
(map! :map php-mode-map (:localleader :nv ";" 'narf/append-semicolon))
|
||||
|
||||
(sp-with-modes '(php-mode)
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
:commands (processing-mode processing-find-sketch)
|
||||
:mode "\\.pde$"
|
||||
:init
|
||||
(def-builder! processing-mode processing-sketch-build)
|
||||
(add-hook 'processing-compilation-mode-hook 'narf|hide-mode-line)
|
||||
|
||||
:config
|
||||
(def-builder! processing-mode processing-sketch-build)
|
||||
(setq processing-location "/usr/local/bin/processing-java"
|
||||
processing-application-dir "/Applications/Processing.app"
|
||||
processing-sketchbook-dir "~/Dropbox/work/pde"
|
||||
|
|
|
@ -17,13 +17,14 @@
|
|||
python-shell-completion-string-code
|
||||
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
|
||||
|
||||
(add-hook 'python-mode-hook 'flycheck-mode)
|
||||
|
||||
:config
|
||||
(def-company-backend! python-mode (anaconda))
|
||||
(def-docset! python-mode "py,py3,python")
|
||||
(def-env-command! python-mode "python --version 2>&1 | cut -d' ' -f2")
|
||||
(def-repl! python-mode narf/inf-python)
|
||||
(add-hook 'python-mode-hook 'flycheck-mode)
|
||||
|
||||
:config
|
||||
(define-key python-mode-map (kbd "DEL") nil)) ; interferes with smartparens
|
||||
|
||||
(use-package anaconda-mode
|
||||
|
@ -68,8 +69,8 @@
|
|||
:preface (defvar nose-mode-map (make-sparse-keymap))
|
||||
:init
|
||||
(associate! nose-mode :match "/test_.+\\.py$" :in (python-mode))
|
||||
(def-yas-mode! 'nose-mode)
|
||||
:config
|
||||
(def-yas-mode! 'nose-mode)
|
||||
(map! :map nose-mode-map
|
||||
(:localleader
|
||||
:n "tr" 'nosetests-again
|
||||
|
|
|
@ -4,16 +4,15 @@
|
|||
:mode ("\\.rb$" "\\.rake$" "\\.gemspec$" "\\.?pryrc$"
|
||||
"/\\(Gem\\|Cap\\|Vagrant\\|Rake\\)file$")
|
||||
:interpreter "ruby"
|
||||
:init
|
||||
:init (add-hook! ruby-mode '(flycheck-mode yard-mode))
|
||||
:config
|
||||
(def-builder! ruby-mode "rake %s" "Rakefile")
|
||||
(def-company-backend! ruby-mode (dabbrev-code))
|
||||
(def-docset! ruby-mode "rb,ruby,rubygem")
|
||||
(def-env-command! ruby-mode "ruby --version | cut -d' ' -f2")
|
||||
(def-repl! ruby-mode inf-ruby)
|
||||
(def-electric! ruby-mode :words ("else" "end" "elseif"))
|
||||
(add-hook! 'ruby-mode-hook '(flycheck-mode yard-mode))
|
||||
|
||||
:config
|
||||
(setq ruby-deep-indent-paren t) ; Formatting
|
||||
|
||||
;; Don't interfere with my custom RET behavior
|
||||
|
@ -68,7 +67,7 @@
|
|||
|
||||
(use-package inf-ruby
|
||||
:commands (inf-ruby inf-ruby-console-auto)
|
||||
:init (def-company-backend! inf-ruby-mode (inf-ruby)))
|
||||
:config (def-company-backend! inf-ruby-mode (inf-ruby)))
|
||||
|
||||
(use-package company-inf-ruby :after inf-ruby)
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
(use-package rust-mode
|
||||
:mode "\\.rs$"
|
||||
:init
|
||||
:init (add-hook 'rust-mode-hook 'flycheck-mode)
|
||||
:config
|
||||
(def-builder! rust-mode "cargo run" "Cargo.toml")
|
||||
(def-builder! toml-mode "cargo run" "Cargo.toml")
|
||||
(add-hook 'rust-mode-hook 'flycheck-mode))
|
||||
(def-builder! toml-mode "cargo run" "Cargo.toml"))
|
||||
|
||||
(use-package flycheck-rust :after rust-mode)
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
(associate! sh-mode :match "\\.\\(ba\\|z\\)sh$")
|
||||
(associate! sh-mode :match "/\\.?z\\(sh\\(/.*\\|$\\)\\|profile\\|login\\|logout\\|shrc\\|shenv\\)$")
|
||||
(associate! sh-mode :match "/\\.?bash\\(/.*\\|rc\\|_profile\\)$")
|
||||
(def-electric! sh-mode :words ("else" "elif" "fi" "done"))
|
||||
|
||||
(after! sh-script
|
||||
(def-electric! sh-mode :words ("else" "elif" "fi" "done"))
|
||||
(def-repl! sh-mode narf/inf-shell)
|
||||
(setq sh-indent-after-continuation 'always)
|
||||
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
;;; module-web.el
|
||||
|
||||
(def-company-backend! sass-mode (css))
|
||||
(def-company-backend! scss-mode (css))
|
||||
(def-docset! scss-mode "sass,bourbon")
|
||||
(add-hook! (sass-mode scss-mode less-css-mode)
|
||||
'(flycheck-mode narf|hl-line-off hs-minor-mode))
|
||||
|
||||
|
@ -17,13 +14,18 @@
|
|||
:config (push '("less" "css") projectile-other-file-alist))
|
||||
|
||||
(use-package sass-mode :mode "\\.sass$"
|
||||
:config (push '("sass" "css") projectile-other-file-alist))
|
||||
:config
|
||||
(def-company-backend! sass-mode (css))
|
||||
(def-docset! sass-mode "sass,bourbon")
|
||||
(push '("sass" "css") projectile-other-file-alist))
|
||||
|
||||
(use-package scss-mode
|
||||
:mode "\\.scss$"
|
||||
:preface (require 'css-mode)
|
||||
:init (setq scss-compile-at-save nil)
|
||||
:config
|
||||
(def-company-backend! scss-mode (css))
|
||||
(def-docset! scss-mode "sass,bourbon")
|
||||
(push '("scss" "css") projectile-other-file-alist)
|
||||
(sp-local-pair 'scss-mode "/*" "*/" :post-handlers '(("[d-3]||\n[i]" "RET") ("| " "SPC")))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue