+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster startup; ~5-20% general boost + reduce consing, function calls & garbage collection by preferring cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and various cl-lib filter/map/reduce functions) -- where possible + prefer functions with dedicated opcodes, like assq (see byte-defop's in bytecomp.el for more) + prefer pcase & cond (faster) over cl-case + general refactor for code readability + ensure naming & style conventions are adhered to + appease byte-compiler by marking unused variables with underscore + defer minor mode activation to after-init, emacs-startup or window-setup hooks; a customization opportunity for users + ensures custom functionality won't interfere with startup.
56 lines
1 KiB
EmacsLisp
56 lines
1 KiB
EmacsLisp
;;; lang/data/config.el -*- lexical-binding: t; -*-
|
|
|
|
(push '("/sxhkdrc" . conf-mode) auto-mode-alist)
|
|
|
|
|
|
(def-package! nxml-mode
|
|
:mode "\\.plist$"
|
|
:config
|
|
(set! :company-backend 'nxml-mode '(company-nxml company-yasnippet)))
|
|
|
|
|
|
(def-package! toml-mode :mode "\\.toml$")
|
|
|
|
|
|
(def-package! yaml-mode :mode "\\.ya?ml$")
|
|
|
|
|
|
(def-package! json-mode
|
|
:mode "\\.js\\(on\\|[hl]int\\(rc\\)?\\)$"
|
|
:config
|
|
(set! :electric 'json-mode :chars '(?\n ?: ?{ ?})))
|
|
|
|
|
|
(def-package! vimrc-mode
|
|
:mode "/\\.?g?vimrc$"
|
|
:mode "\\.vim$"
|
|
:mode "\\.?vimperatorrc$"
|
|
:mode "\\.vimp$")
|
|
|
|
|
|
(def-package! dockerfile-mode
|
|
:mode "/Dockerfile$"
|
|
:config
|
|
;; TODO
|
|
;; (set! :build 'build-image 'dockerfile-mode '+data/dockerfile-build
|
|
;; :when '+data-dockerfile-p)
|
|
)
|
|
|
|
|
|
;; For ROM hacking or debugging
|
|
(def-package! hexl
|
|
:mode ("\\.hex$" . hexl-mode)
|
|
:mode ("\\.nes$" . hexl-mode))
|
|
|
|
|
|
;;
|
|
;; Frameworks
|
|
;;
|
|
|
|
(def-project-mode! +data-ansible-mode
|
|
:modes (yaml-mode)
|
|
:files "roles/")
|
|
|
|
(def-project-mode! +data-vagrant-mode
|
|
:files "Vagrantfile")
|
|
|