Revert macros to ...! name convention (elisp doesn't like @...)

This commit is contained in:
Henrik Lissner 2017-02-23 00:06:12 -05:00
parent b64d5554e3
commit 33c88d4f82
125 changed files with 877 additions and 880 deletions

View file

@ -5,7 +5,7 @@ Modules are made up of three (optional) parts:
+ A `config.el` file, automatically loaded when the module is loaded
(through `@doom` or `@require`). It uses `@def-package` calls (thin
wrappers around `use-package`) to configure packages.
+ A `packages.el` file filled with `@package` and `@depends-on`
+ A `packages.el` file filled with `package!` and `depends-on!`
declarations. These are purely declarative macros. They populate
`doom-packages` and `doom-modules` for the package management
system.

View file

@ -1,6 +1,6 @@
;;; completion/company/config.el
(@def-setting :company-backend (modes backends)
(def-setting! :company-backend (modes backends)
"Register company BACKENDS to MODES."
(let* ((modes (if (listp modes) modes (list modes)))
(backends (if (listp backends) backends (list backends)))
@ -13,14 +13,14 @@
(require 'company)
(set (make-local-variable 'company-backends)
(append '((,@backends)) company-backends)))
(@add-hook ,modes ',def-name))))
(add-hook! ,modes ',def-name))))
;;
;; Packages
;;
(@def-package company
(def-package! company
:commands (company-mode global-company-mode company-complete
company-complete-common company-manual-begin company-grab-line)
:config
@ -36,14 +36,14 @@
company-frontends '(company-pseudo-tooltip-frontend company-echo-metadata-frontend)
company-backends '(company-capf))
(@set :company-backend 'python-mode '(company-anaconda))
(set! :company-backend 'python-mode '(company-anaconda))
(push 'company-sort-by-occurrence company-transformers)
(@after yasnippet
(after! yasnippet
(nconc company-backends '(company-yasnippet)))
(@map (:map company-active-map
(map! (:map company-active-map
;; Don't interfere with insert mode binding for `evil-delete-backward-word'
"C-w" nil
@ -57,20 +57,20 @@
"C-SPC" 'company-complete-common
[tab] 'company-complete-common-or-cycle
[backtab] 'company-select-previous
[escape] (@λ (company-abort) (evil-normal-state 1))
[escape] (λ! (company-abort) (evil-normal-state 1))
[C-return] 'counsel-company)
;; Automatically applies to `company-filter-map'
(:map company-search-map
"C-n" 'company-search-repeat-forward
"C-p" 'company-search-repeat-backward
"C-s" (@λ (company-search-abort) (company-filter-candidates))
"C-s" (λ! (company-search-abort) (company-filter-candidates))
[escape] 'company-search-abort))
(global-company-mode +1))
(@def-package company-statistics
(def-package! company-statistics
:after company
:config
(setq company-statistics-file (concat doom-cache-dir "company-stats-cache.el"))
@ -78,14 +78,14 @@
;; Looks ugly on OSX without emacs-mac build
(@def-package company-quickhelp
(def-package! company-quickhelp
:after company
:config
(setq company-quickhelp-delay nil)
(company-quickhelp-mode +1))
(@def-package company-dict
(def-package! company-dict
:commands company-dict)

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; completion/company/packages.el
(@package company)
(@package company-dict)
(@package company-quickhelp)
(@package company-statistics)
(package! company)
(package! company-dict)
(package! company-quickhelp)
(package! company-statistics)

View file

@ -12,7 +12,7 @@
;; Packages
;;
(@def-package helm :demand t
(def-package! helm :demand t
:init
(setq helm-quick-update t
;; Speedier without fuzzy matching
@ -35,7 +35,7 @@
:config
(setq projectile-completion-system 'helm)
(@map "M-x" 'helm-M-x
(map! "M-x" 'helm-M-x
"A-x" 'helm-M-x
"M-X" 'helm-apropos
"A-X" 'helm-apropos
@ -60,7 +60,7 @@
:e "ESC" 'helm-keyboard-quit))
;;; Popup setup
(@set :popup "\\` ?\\*[hH]elm.*?\\*\\'" :size 14 :regexp t)
(set! :popup "\\` ?\\*[hH]elm.*?\\*\\'" :size 14 :regexp t)
;;; Helm hacks
(defconst doom-helm-header-fg (face-attribute 'helm-source-header :foreground))
@ -74,7 +74,7 @@
(require 'helm-mode)
(helm-mode +1)
(@map :map helm-mode-map
(map! :map helm-mode-map
[remap find-file] 'helm-find-files
[remap switch-to-buffer] 'doom/helm-buffers-dwim
[remap projectile-switch-to-buffer] (λ! (doom/helm-buffers-dwim t))
@ -94,40 +94,40 @@
(set-keymap-parent helm-projectile-find-file-map helm-map))
(@def-package helm-locate
(def-package! helm-locate
:init
(defvar helm-generic-files-map (make-sparse-keymap)
"Generic Keymap for files.")
:config (set-keymap-parent helm-generic-files-map helm-map))
(@def-package helm-buffers
(def-package! helm-buffers
:commands (helm-buffers-list helm-mini)
:config (advice-add 'helm-buffer-list :override 'helm*buffer-list))
(@def-package helm-tags
(def-package! helm-tags
:commands (helm-tags-get-tag-file helm-etags-select))
(@def-package helm-bookmark
(def-package! helm-bookmark
:commands (helm-bookmarks helm-filtered-bookmarks)
:config (setq-default helm-bookmark-show-location t))
(@def-package helm-files
(def-package! helm-files
:commands (helm-browse-project helm-find helm-find-files helm-for-files helm-multi-files helm-recentf)
:config
(setq helm-boring-file-regexp-list
(append (list "\\.projects$" "\\.DS_Store$")
helm-boring-file-regexp-list))
(@map :map helm-find-files-map
(map! :map helm-find-files-map
"C-w" 'helm-find-files-up-one-level
"TAB" 'helm-execute-persistent-action))
(@def-package helm-ag
(def-package! helm-ag
:commands (helm-ag
helm-ag-mode
helm-do-ag
@ -139,7 +139,7 @@
helm-ag-buffers
helm-ag-clear-stack)
:config
(@map (:map helm-ag-map
(map! (:map helm-ag-map
"<backtab>" 'helm-ag-edit)
(:map helm-ag-edit-map
"<escape>" 'helm-ag--edit-abort
@ -147,7 +147,7 @@
:n "zx" 'helm-ag--edit-abort)))
(@def-package helm-css-scss ; https://github.com/ShingoFukuyama/helm-css-scss
(def-package! helm-css-scss ; https://github.com/ShingoFukuyama/helm-css-scss
:commands (helm-css-scss
helm-css-scss-multi
helm-css-scss-insert-close-comment)
@ -156,7 +156,7 @@
helm-css-scss-split-with-multiple-windows t))
(@def-package helm-swoop ; https://github.com/ShingoFukuyama/helm-swoop
(def-package! helm-swoop ; https://github.com/ShingoFukuyama/helm-swoop
:commands (helm-swoop helm-multi-swoop helm-multi-swoop-all)
:config
(setq helm-swoop-use-line-number-face t
@ -165,18 +165,18 @@
helm-swoop-pre-input-function (lambda () "")))
(@def-package helm-describe-modes :commands helm-describe-modes)
(@def-package helm-ring :commands helm-show-kill-ring)
(@def-package helm-semantic :commands helm-semantic-or-imenu)
(@def-package helm-elisp :commands helm-apropos)
(@def-package helm-command :commands helm-M-x)
(def-package! helm-describe-modes :commands helm-describe-modes)
(def-package! helm-ring :commands helm-show-kill-ring)
(def-package! helm-semantic :commands helm-semantic-or-imenu)
(def-package! helm-elisp :commands helm-apropos)
(def-package! helm-command :commands helm-M-x)
;;
;; Popup hacks
;;
(@after helm
(after! helm
;; Helm tries to clean up after itself, but shackle has already done this.
;; This fixes that. To reproduce, add a helm rule in `shackle-rules', open two
;; splits side-by-side, move to the buffer on the right and invoke helm. It
@ -184,10 +184,10 @@
(setq-default helm-reuse-last-window-split-state t
helm-split-window-in-side-p t))
(@after helm-swoop
(after! helm-swoop
(setq helm-swoop-split-window-function (lambda (b) (doom-popup-buffer b))))
(@after helm-ag
(after! helm-ag
;; This prevents helm-ag from switching between windows and buffers.
(defadvice helm-ag--edit-abort (around helm-ag-edit-abort-popup-compat activate)
(cl-letf (((symbol-function 'select-window) 'ignore)) ad-do-it)

View file

@ -1,11 +1,11 @@
;; -*- no-byte-compile: t; -*-
;;; completion/helm/packages.el
(@package helm)
(@package helm-ag)
(@package helm-c-yasnippet)
(@package helm-company)
(@package helm-css-scss)
(@package helm-describe-modes :recipe (:fetcher github :repo "emacs-helm/helm-describe-modes"))
(@package helm-projectile)
(@package helm-swoop)
(package! helm)
(package! helm-ag)
(package! helm-c-yasnippet)
(package! helm-company)
(package! helm-css-scss)
(package! helm-describe-modes :recipe (:fetcher github :repo "emacs-helm/helm-describe-modes"))
(package! helm-projectile)
(package! helm-swoop)

View file

@ -1,6 +1,6 @@
;;; emacs/ido/config.el
(@def-package ido
(def-package! ido
:init
(setq ido-ignore-buffers
'("\\` " "^\\*ESS\\*" "^\\*Messages\\*" "^\\*Help\\*" "^\\*Buffer"
@ -24,12 +24,12 @@
(ido-everywhere 1)
(require 'ido-ubiquitous)
(@add-hook ido-setup
(add-hook! ido-setup
(require 'ido-vertical-mode)
(require 'flx-ido)
(require 'crm-custom)
(@map :map (ido-common-completion-map ido-completion-map ido-file-completion-map)
(map! :map (ido-common-completion-map ido-completion-map ido-file-completion-map)
"C-n" 'ido-next-match
"C-p" 'ido-prev-match
"C-w" 'ido-delete-backward-word-updir))
@ -47,21 +47,21 @@
(lambda (x) (and (char-equal (string-to-char x) ?.) x))
ido-temp-list))))
(advice-add 'ido-sort-mtime :override '+ido*sort-mtime)
(@add-hook (ido-make-file-list ido-make-dir-list) '+ido*sort-mtime)
(add-hook! (ido-make-file-list ido-make-dir-list) '+ido*sort-mtime)
(defun +ido|setup-home-keybind ()
"Go to $HOME with ~"
(define-key ido-file-completion-map (kbd "~")
(@λ (if (looking-back "/")
(λ! (if (looking-back "/")
(insert "~/")
(call-interactively 'self-insert-command)))))
(add-hook 'ido-setup-hook '+ido|setup-home-keybind))
(@def-package ido-ubiquitous :config (ido-ubiquitous-mode 1))
(def-package! ido-ubiquitous :config (ido-ubiquitous-mode 1))
(@def-package ido-vertical-mode :config (ido-vertical-mode 1))
(def-package! ido-vertical-mode :config (ido-vertical-mode 1))
(@def-package flx-ido :config (flx-ido-mode +1))
(def-package! flx-ido :config (flx-ido-mode +1))
(@def-package crm-custom :config (crm-custom-mode +1))
(def-package! crm-custom :config (crm-custom-mode +1))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; emacs/ido/packages.el
(@package flx-ido)
(@package ido-ubiquitous)
(@package ido-vertical-mode)
(@package crm-custom)
(package! flx-ido)
(package! ido-ubiquitous)
(package! ido-vertical-mode)
(package! crm-custom)

View file

@ -10,7 +10,7 @@
;; `counsel-imenu'.
;; TODO Make this a setting
(defmacro @def-counsel-action (name &rest forms)
(defmacro def-counsel-action! (name &rest forms)
`(defun ,(intern (format "+ivy/counsel-%s" (symbol-name name))) ()
(interactive)
(ivy-set-action ',@forms)
@ -22,7 +22,7 @@
;; Packages
;;
(@def-package ivy :demand t
(def-package! ivy :demand t
:config
(setq ivy-height 14
ivy-do-completion-in-region nil
@ -33,12 +33,12 @@
;; highlight til EOL
ivy-format-function 'ivy-format-function-line)
(@after magit (setq magit-completing-read-function 'ivy-completing-read))
(@after yasnippet (push '+ivy-yas-prompt yas-prompt-functions))
(after! magit (setq magit-completing-read-function 'ivy-completing-read))
(after! yasnippet (push '+ivy-yas-prompt yas-prompt-functions))
(ivy-mode +1)
(@map :map ivy-minibuffer-map
(map! :map ivy-minibuffer-map
[escape] 'keyboard-escape-quit
"C-r" 'evil-paste-from-register
"M-v" 'clipboard-yank
@ -47,7 +47,7 @@
"C-b" 'backward-word
"C-f" 'forward-word)
(@map :map ivy-mode-map
(map! :map ivy-mode-map
[remap find-file] 'counsel-find-file
[remap switch-to-buffer] '+ivy/switch-buffer
[remap persp-switch-to-buffer] '+ivy/switch-workspace-buffer
@ -59,7 +59,7 @@
[remap imenu-anywhere] 'ivy-imenu-anywhere
[remap execute-extended-command] 'counsel-M-x)
(when (@featurep :feature workspaces)
(when (featurep! :feature workspaces)
(nconc ivy-sort-functions-alist
'((persp-kill-buffer . nil)
(persp-remove-buffer . nil)
@ -71,20 +71,20 @@
(+workspace/delete . nil)))))
(@def-package swiper :commands (swiper swiper-all))
(def-package! swiper :commands (swiper swiper-all))
(@def-package counsel
(def-package! counsel
:after ivy
:config
(setq counsel-find-file-ignore-regexp "\\(?:^[#.]\\)\\|\\(?:[#~]$\\)\\|\\(?:^Icon?\\)")
(@set :popup "^\\*ivy-occur counsel-ag" :size 25 :regexp t :autokill t)
(set! :popup "^\\*ivy-occur counsel-ag" :size 25 :regexp t :autokill t)
(require 'counsel-projectile)
;; FIXME Messy workaround, refactor this
(@def-counsel-action ag-open-in-other-window
(def-counsel-action! ag-open-in-other-window
(lambda (x)
(when (string-match "\\`\\(.*?\\):\\([0-9]+\\):\\(.*\\)\\'" x)
(let ((file-name (match-string-no-properties 1 x))
@ -104,21 +104,21 @@
(when dest-win
(select-window dest-win))))))
(@add-hook 'doom-popup-mode-hook
(add-hook! 'doom-popup-mode-hook
(when (eq major-mode 'ivy-occur-grep-mode)
(ivy-wgrep-change-to-wgrep-mode)))
(defun +ivy*recenter (&rest _) (recenter))
(advice-add 'counsel-ag-function :override '+ivy*counsel-ag-function)
(advice-add 'imenu :after '+ivy*recenter)
(@map :map counsel-ag-map
(map! :map counsel-ag-map
[backtab] '+ivy/counsel-ag-occur ; search/replace on results
"C-SPC" 'counsel-git-grep-recenter ; preview
"M-RET" '+ivy/counsel-ag-open-in-other-window))
;; Used by `counsel-M-x'
(@def-package smex
(def-package! smex
:commands (smex smex-major-mode-commands)
:config
(setq smex-save-file (concat doom-cache-dir "/smex-items"))

View file

@ -1,8 +1,8 @@
;; -*- no-byte-compile: t; -*-
;;; completion/ivy/packages.el
(@package ivy)
(@package counsel)
(@package counsel-projectile)
(@package smex)
(@package swiper)
(package! ivy)
(package! counsel)
(package! counsel-projectile)
(package! smex)
(package! swiper)

View file

@ -11,7 +11,7 @@
;;;###autoload (autoload '+debug:debug-toggle-breakpoint "feature/debug/autoload" nil t)
;;;###autoload (autoload '+debug:run "feature/debug/autoload" nil t)
(@after evil
(after! evil
(evil-define-command +debug:run (&optional path)
"Initiate debugger for current major mode"
(interactive "<f>")

View file

@ -1,17 +1,17 @@
;;; feature/debug/config.el
(@after debug
(after! debug
;; For elisp debugging
(@map :map debugger-mode-map
(map! :map debugger-mode-map
:n "RET" 'debug-help-follow
:n "n" 'debugger-step-through
:n "c" 'debugger-continue))
(@def-package realgud
(def-package! realgud
:commands (realgud:gdb realgud:trepanjs realgud:bashdb realgud:zshdb)
:config
(@map :map realgud:shortkey-mode-map
(map! :map realgud:shortkey-mode-map
:n "j" 'evil-next-line
:n "k" 'evil-previous-line
:n "h" 'evil-backward-char
@ -22,7 +22,7 @@
:n "c" 'realgud:cmd-continue)
;; Popup rules
(@set :popup
(set! :popup
'("^\\*\\(g\\|zsh\\|bash\\)db.*?\\*$" :size 20 :regexp t)
'("^\\*trepanjs.*?\\*$" :size 20 :regexp t))

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; feature/debug/packages.el
(@package realgud)
(package! realgud)

View file

@ -15,7 +15,7 @@
;;;###autoload (autoload '+repl:open "feature/repl/autoload/repl" nil t)
;;;###autoload (autoload '+repl:send "feature/repl/autoload/repl" nil t)
(@after evil
(after! evil
(evil-define-command +repl:open (&optional bang command)
:repeat nil
(interactive "<!><a>")

View file

@ -17,13 +17,13 @@ by `+eval/build', and filled with the `:build' setting")
(setq eval-expression-print-length nil
eval-expression-print-level nil)
(@def-setting :repl (mode command)
(def-setting! :repl (mode command)
"Define a REPL for a mode. Takes same arguements as `rtog/add-repl'."
(if (featurep 'repl-toggle)
(list 'rtog/add-repl mode command)
`(push ',(list mode command) +eval--repls)))
(@def-setting :build (name mode pred-fn &optional build-fn)
(def-setting! :build (name mode pred-fn &optional build-fn)
"Define a build command function (BUILD-FN) for major-mode MODE, called NAME
-- a symbol -- PRED-FN is a predicate function that determines this builder's
suitability for the current buffer."
@ -34,7 +34,7 @@ suitability for the current buffer."
(list :predicate ,pred-fn :fn ,build-fn)
+eval-builders))
(@def-setting :eval (mode command)
(def-setting! :eval (mode command)
"Define a code evaluator for `quickrun'.
1. If MODE is a string and COMMAND is the string, MODE is a file regexp and
@ -45,12 +45,12 @@ suitability for the current buffer."
3. If MODE is not a string and COMMAND is a list, use `quickrun-add-command'. e.g.
(quickrun-add-command MODE COMMAND :mode MODE)"
(if (stringp command)
`(@after quickrun
`(after! quickrun
(push ,(cons mode command)
,(if (stringp mode)
'quickrun-file-alist
'quickrun--major-mode-alist)))
`(@after quickrun
`(after! quickrun
(quickrun-add-command
,(symbol-name mode)
',command :mode ',mode))))
@ -60,7 +60,7 @@ suitability for the current buffer."
;; Packages
;;
(@def-package quickrun
(def-package! quickrun
:commands (quickrun
quickrun-region
quickrun-with-arg
@ -69,7 +69,7 @@ suitability for the current buffer."
quickrun-replace-region)
:init (add-hook 'quickrun/mode-hook 'linum-mode)
:config
(@set :popup "*quickrun*" :size 10)
(set! :popup "*quickrun*" :size 10)
;; don't auto-focus quickrun windows. Shackle handles that for us.
(setq quickrun-focus-p nil)
@ -94,12 +94,12 @@ suitability for the current buffer."
(add-hook 'quickrun-after-run-hook '+repl|quickrun-scroll-to-bof))
(@def-package repl-toggle
(def-package! repl-toggle
:commands rtog/toggle-repl
:preface (defvar rtog/mode-repl-alist nil)
:init (@add-hook repl-toggle-mode (evil-initialize-state 'emacs))
:init (add-hook! repl-toggle-mode (evil-initialize-state 'emacs))
:config
(@set :popup
(set! :popup
'(:custom (lambda (b &rest _)
(when (and (featurep 'repl-toggle)
(string-prefix-p "*" (buffer-name (get-buffer b))))
@ -109,7 +109,7 @@ suitability for the current buffer."
(dolist (repl +eval--repls)
(apply 'rtog/add-repl repl))
(@map :map repl-toggle-mode-map
(map! :map repl-toggle-mode-map
:ei "C-n" 'comint-next-input
:ei "C-p" 'comint-previous-input
:ei "<down>" 'comint-next-input

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; feature/repl/packages.el
(@package quickrun)
(@package repl-toggle)
(package! quickrun)
(package! repl-toggle)

View file

@ -3,7 +3,7 @@
;; I'm a vimmer at heart. Its modal philosophy suits me better, and this module
;; strives to make Emacs a much better vim than vim was.
(@def-setting :evil-state (&rest mode-state-list)
(def-setting! :evil-state (&rest mode-state-list)
"Set the initialize STATE of MODE using `evil-set-initial-state'."
(if (cl-every 'listp mode-state-list)
(let (forms)
@ -22,7 +22,7 @@
;; evil-mode
;;
(@def-package evil :demand t
(def-package! evil :demand t
:init
(setq evil-want-C-u-scroll t
evil-want-visual-char-semi-exclusive t
@ -44,12 +44,12 @@
(evil-mode +1)
(evil-select-search-module 'evil-search-module 'evil-search)
(@set :popup
(set! :popup
'("*evil-registers*" :size 0.3)
'("*Command Line*" :size 8))
;; Set cursor colors later, presumably once theme is loaded
(@add-hook 'after-init-hook
(add-hook! 'after-init-hook
(setq evil-default-cursor (face-attribute 'cursor :background nil t)
evil-normal-state-cursor 'box
evil-emacs-state-cursor `(,(face-attribute 'warning :foreground nil nil) box)
@ -153,19 +153,19 @@
;; Plugins
;;
(@def-package evil-args
(def-package! evil-args
:commands (evil-inner-arg evil-outer-arg
evil-forward-arg evil-backward-arg
evil-jump-out-args)
:init (+evil--textobj "a" 'evil-inner-arg 'evil-outer-arg))
(@def-package evil-commentary
(def-package! evil-commentary
:commands (evil-commentary evil-commentary-yank evil-commentary-line)
:config (evil-commentary-mode 1))
(@def-package evil-easymotion
(def-package! evil-easymotion
:defer 1
:commands evilem-define
:config
@ -192,7 +192,7 @@
(evil-snipe-enable-incremental-highlight)))))
(@def-package evil-embrace
(def-package! evil-embrace
:after evil-surround
:config
(setq evil-embrace-show-help-p nil)
@ -238,15 +238,15 @@
;; Add extra pairs
(add-hook 'LaTeX-mode-hook 'embrace-LaTeX-mode-hook)
(add-hook 'org-mode-hook 'embrace-org-mode-hook)
(@add-hook emacs-lisp-mode
(add-hook! emacs-lisp-mode
(embrace-add-pair ?\` "`" "'"))
(@add-hook (emacs-lisp-mode lisp-mode)
(add-hook! (emacs-lisp-mode lisp-mode)
(embrace-add-pair-regexp ?f "([^ ]+ " ")" '+evil--embrace-elisp-fn))
(@add-hook (org-mode LaTeX-mode)
(add-hook! (org-mode LaTeX-mode)
(embrace-add-pair-regexp ?l "\\[a-z]+{" "}" '+evil--embrace-latex)))
(@def-package evil-escape
(def-package! evil-escape
:commands evil-escape-mode
:init
(defun +evil|escape-disable () (evil-escape-mode -1))
@ -261,7 +261,7 @@
evil-escape-delay 0.25))
(@def-package evil-exchange
(def-package! evil-exchange
:commands evil-exchange
:config
(defun +evil*exchange-off ()
@ -269,7 +269,7 @@
(advice-add 'evil-force-normal-state :after '+evil*exchange-off))
(@def-package evil-indent-plus
(def-package! evil-indent-plus
:commands (evil-indent-plus-i-indent
evil-indent-plus-a-indent
evil-indent-plus-i-indent-up
@ -282,13 +282,13 @@
(+evil--textobj "J" 'evil-indent-plus-i-indent-up-down 'evil-indent-plus-a-indent-up-down))
(@def-package evil-matchit
(def-package! evil-matchit
:commands (evilmi-jump-items evilmi-text-object global-evil-matchit-mode)
:config (global-evil-matchit-mode 1)
:init (+evil--textobj "%" 'evilmi-text-object))
(@def-package evil-multiedit
(def-package! evil-multiedit
:commands (evil-multiedit-match-all
evil-multiedit-match-and-next
evil-multiedit-match-and-prev
@ -302,20 +302,20 @@
:config (evil-multiedit-default-keybinds))
(@def-package evil-textobj-anyblock
(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 'evil-textobj-anyblock-a-block))
(@def-package evil-search-highlight-persist :demand t
(def-package! evil-search-highlight-persist :demand t
:commands (evil-textobj-anyblock-inner-block evil-textobj-anyblock-a-block)
:config
(global-evil-search-highlight-persist t)
(advice-add 'evil-force-normal-state :after 'evil-search-highlight-persist-remove-all))
(@def-package evil-snipe :demand t
(def-package! evil-snipe :demand t
:init
(setq evil-snipe-smart-case t
evil-snipe-scope 'line
@ -331,12 +331,12 @@
(evil-snipe-mode 1)
(evil-snipe-override-mode 1)
;; Switch to evil-easymotion/avy after first snipe
(@map :map evil-snipe-parent-transient-map
"C-;" (@λ (require 'evil-easymotion)
(map! :map evil-snipe-parent-transient-map
"C-;" (λ! (require 'evil-easymotion)
(call-interactively +evil--snipe-repeat-fn))))
(@def-package evil-surround
(def-package! evil-surround
:commands (global-evil-surround-mode
evil-surround-edit
evil-Surround-edit
@ -344,7 +344,7 @@
:config (global-evil-surround-mode 1))
(@def-package evil-visualstar
(def-package! evil-visualstar
:commands (global-evil-visualstar-mode
evil-visualstar/begin-search
evil-visualstar/begin-search-forward
@ -353,7 +353,7 @@
;; A side-panel for browsing my project files. Inspired by vim's NERDTree.
(@def-package neotree
(def-package! neotree
:commands (neotree-show
neotree-hide
neotree-toggle
@ -382,7 +382,7 @@
"~$"
"^#.*#$"))
(@set :evil-state 'neotree-mode 'motion)
(set! :evil-state 'neotree-mode 'motion)
(push neo-buffer-name winner-boring-buffers)
@ -390,7 +390,7 @@
;; overridden when the neotree buffer is spawned). So we bind them in a hook.
(add-hook 'neo-after-create-hook '+evil|neotree-init-keymap)
(defun +evil|neotree-init-keymap (&rest _)
(@map :Lm "\\\\" 'evil-window-prev
(map! :Lm "\\\\" 'evil-window-prev
:Lm "RET" 'neotree-enter
:Lm "<return>" 'neotree-enter
:Lm "ESC ESC" 'neotree-hide

View file

@ -1,20 +1,20 @@
;; -*- no-byte-compile: t; -*-
;;; feature/evil/packages.el
(@package evil)
(@package evil-args)
(@package evil-commentary)
(@package evil-easymotion)
(@package evil-embrace)
(@package evil-escape)
(@package evil-exchange)
(@package evil-indent-plus)
(@package evil-matchit)
(@package evil-multiedit)
(@package evil-numbers)
(@package evil-textobj-anyblock)
(@package evil-search-highlight-persist)
(@package evil-snipe)
(@package evil-surround)
(@package evil-visualstar)
(@package neotree)
(package! evil)
(package! evil-args)
(package! evil-commentary)
(package! evil-easymotion)
(package! evil-embrace)
(package! evil-escape)
(package! evil-exchange)
(package! evil-indent-plus)
(package! evil-matchit)
(package! evil-multiedit)
(package! evil-numbers)
(package! evil-textobj-anyblock)
(package! evil-search-highlight-persist)
(package! evil-snipe)
(package! evil-surround)
(package! evil-visualstar)
(package! neotree)

View file

@ -1,12 +1,12 @@
;;; feature/file-templates/config.el
(@require :feature snippets)
(require! :feature snippets)
(defvar +file-templates-dir
(expand-file-name "templates/" (file-name-directory load-file-name))
"")
(@def-package autoinsert ; built-in
(def-package! autoinsert ; built-in
:after yasnippet
:init
(setq auto-insert-query nil ; Don't prompt before insertion

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; feature/file-templates/packages.el
(@depends-on :feature snippets)
(depends-on! :feature snippets)

View file

@ -3,7 +3,7 @@
;; Snippets! I've thrown together a few hacks to make `yasnippet' and `evil'
;; behave together.
(@def-package yasnippet
(def-package! yasnippet
:commands (yas-minor-mode
yas-minor-mode-on
yas-expand
@ -14,7 +14,7 @@
(defvar yas-minor-mode-map (make-sparse-keymap))
:init
(@add-hook (text-mode prog-mode snippet-mode markdown-mode org-mode)
(add-hook! (text-mode prog-mode snippet-mode markdown-mode org-mode)
'yas-minor-mode-on)
:config
@ -34,8 +34,8 @@
;; fix an error caused by smartparens interfering with yasnippet bindings
(advice-add 'yas-expand :before 'sp-remove-active-pair-overlay)
(@after evil
(@map (:map yas-keymap
(after! evil
(map! (:map yas-keymap
"C-e" '+snippets/goto-end-of-field
"C-a" '+snippets/goto-start-of-field
"<M-right>" '+snippets/goto-end-of-field
@ -73,10 +73,10 @@
(add-hook 'yas-after-exit-snippet-hook '+snippets|yas-after-expand)))
(@def-package auto-yasnippet
(def-package! auto-yasnippet
:commands (aya-create aya-expand aya-open-line aya-persist-snippet)
:init
(@map :i [C-tab] 'aya-expand
(map! :i [C-tab] 'aya-expand
:nv [C-tab] 'aya-create)
:config
(setq aya-persist-snippets-dir (concat doom-local-dir "auto-snippets/")))

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; feature/snippets/packages.el
(@package yasnippet)
(@package auto-yasnippet)
(package! yasnippet)
(package! auto-yasnippet)

View file

@ -1,6 +1,6 @@
;;; feature/spellcheck/config.el
(@def-package flyspell ; built-in
(def-package! flyspell ; built-in
:commands flyspell-mode
:init
(add-hook 'text-mode-hook 'flyspell-mode)
@ -9,25 +9,25 @@
ispell-list-command "--list"
ispell-extr-args '("--dont-tex-check-comments"))
(@map :map flyspell-mode-map
(map! :map flyspell-mode-map
:localleader
:n "s" 'flyspell-correct-word-generic
:n "S" 'flyspell-correct-previous-word-generic))
(@def-package flyspell-correct
(def-package! flyspell-correct
:commands (flyspell-correct-word-generic
flyspell-correct-previous-word-generic))
(@def-package flyspell-correct-popup
(def-package! flyspell-correct-popup
:after flyspell-correct
:config
(setq flyspell-popup-correct-delay 0.8)
(define-key popup-menu-keymap [escape] 'keyboard-quit))
(@def-package flyspell-correct-helm :after flyspell-correct)
(def-package! flyspell-correct-helm :after flyspell-correct)
(@def-package flyspell-correct-ivy :after flyspell-correct)
(def-package! flyspell-correct-ivy :after flyspell-correct)

View file

@ -1,11 +1,11 @@
;; -*- no-byte-compile: t; -*-
;;; feature/spellcheck/packages.el
(@package flyspell-correct)
(cond ((@featurep :completion ivy)
(@package flyspell-correct-ivy))
((@featurep :completion helm)
(@package flyspell-correct-helm))
(package! flyspell-correct)
(cond ((featurep! :completion ivy)
(package! flyspell-correct-ivy))
((featurep! :completion helm)
(package! flyspell-correct-helm))
(t
(@package flyspell-correct-popup)))
(package! flyspell-correct-popup)))

View file

@ -1,6 +1,6 @@
;;; feature/syntax-checker/config.el
(@def-package flycheck
(def-package! flycheck
:commands (flycheck-mode flycheck-list-errors flycheck-buffer)
:config
(setq flycheck-indication-mode 'right-fringe ; git-gutter is in the left fringe
@ -9,9 +9,9 @@
flycheck-highlighting-mode 'symbols
flycheck-disabled-checkers '(emacs-lisp-checkdoc make))
(@set :popup " ?\\*Flycheck.+\\*" :size 14 :noselect t :regexp t)
(set! :popup " ?\\*Flycheck.+\\*" :size 14 :noselect t :regexp t)
(@map :map flycheck-error-list-mode-map
(map! :map flycheck-error-list-mode-map
:n "C-n" 'flycheck-error-list-next-error
:n "C-p" 'flycheck-error-list-previous-error
:n "j" 'flycheck-error-list-next-error
@ -27,7 +27,7 @@
(advice-add 'evil-force-normal-state :after '+syntax-checkers|flycheck-buffer))
(@def-package flycheck-pos-type :after flycheck
(def-package! flycheck-pos-type :after flycheck
:config
(setq flycheck-pos-tip-timeout 10
flycheck-display-errors-delay 0.5)

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; feature/syntax-checker/packages.el
(@package flycheck)
(@package flycheck-pos-tip)
(package! flycheck)
(package! flycheck-pos-tip)

View file

@ -1,44 +1,44 @@
;;; feature/version-control/+git.el
(@def-package gitconfig-mode
(def-package! gitconfig-mode
:mode "/\\.?git/?config$"
:mode "/\\.gitmodules$"
:init (add-hook 'gitconfig-mode-hook 'flyspell-mode))
(@def-package gitignore-mode
(def-package! gitignore-mode
:mode "/\\.gitignore$")
(@def-package git-gutter-fringe
(def-package! git-gutter-fringe
:commands git-gutter-mode
:init
(@add-hook (text-mode prog-mode conf-mode) 'git-gutter-mode)
(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)
(@after evil
(after! evil
;; Refreshing git-gutter on ESC
(advice-add 'evil-force-normal-state :after 'git-gutter)))
(@def-package browse-at-remote
(def-package! browse-at-remote
:commands (browse-at-remote/browse browse-at-remote/get-url))
(@def-package magit
(def-package! magit
:commands magit-status
:config
(@set :popup "^\\*magit" :regexp t)
(@map :map magit-mode-map
(set! :popup "^\\*magit" :regexp t)
(map! :map magit-mode-map
;; Don't interfere with window movement keys
:nv "C-j" nil
:nv "C-k" nil))
(@def-package evil-magit
(def-package! evil-magit
:after magit
:config
;; evil-snipe conflicts with magit

View file

@ -1,19 +1,19 @@
;;; feature/version-control/config.el
(@load +git)
;; (@load +hg)
(load! +git)
;; (load! +hg)
(@after vc-annotate
(@set :popup
(after! vc-annotate
(set! :popup
'("*vc-diff*" :size 15 :noselect t)
'("*vc-change-log*" :size 15)
'(vc-annotate-mode :same t))
(@set :evil-state
(set! :evil-state
'(vc-annotate-mode . normal)
'(vc-git-log-view-mode . normal))
(@map :map vc-annotate-mode-map
(map! :map vc-annotate-mode-map
:n "q" 'kill-this-buffer
:n "d" 'vc-annotate-show-diff-revision-at-line
:n "D" 'vc-annotate-show-changeset-diff-revision-at-line

View file

@ -5,12 +5,12 @@
;; n/a
;;; +git
(@package browse-at-remote)
(@package git-gutter-fringe)
(@package gitconfig-mode)
(@package gitignore-mode)
(@package magit)
(when (@featurep :feature evil)
(@package evil-magit))
(package! browse-at-remote)
(package! git-gutter-fringe)
(package! gitconfig-mode)
(package! gitignore-mode)
(package! magit)
(when (featurep! :feature evil)
(package! evil-magit))
;;; TODO +hg

View file

@ -15,7 +15,7 @@
"A hook that runs when persp loads a new session.")
(@def-package persp-mode :demand t
(def-package! persp-mode :demand t
:config
(setq persp-autokill-buffer-on-remove 'kill-weak
persp-nil-name "main"
@ -55,7 +55,7 @@
;; TODO Test per-frame perspectives
;; Be quiet when saving
(defun +workspace*silence (orig-fn &rest args) (@quiet (apply orig-fn args)))
(defun +workspace*silence (orig-fn &rest args) (quiet! (apply orig-fn args)))
(advice-add 'persp-save-state-to-file :around '+workspace*silence)
;; Add a hook to session loading

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; feature/workspaces/packages.el
(@package persp-mode)
(package! persp-mode)

View file

@ -1,8 +1,8 @@
;;; lang/assembly/config.el
(@def-package mips-mode :mode "\\.mips$")
(def-package! mips-mode :mode "\\.mips$")
(@def-package haxor-mode :mode "\\.hax$")
(def-package! haxor-mode :mode "\\.hax$")
(@def-package nasm-mode :commands nasm-mode)
(def-package! nasm-mode :commands nasm-mode)

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; lang/assembly/packages.el
(@package mips-mode)
(@package haxor-mode)
(@package nasm-mode)
(package! mips-mode)
(package! haxor-mode)
(package! nasm-mode)

View file

@ -1,6 +1,6 @@
;;; lang/cc/config.el --- C, C++, and Objective-C
(@def-package cc-mode
(def-package! cc-mode
:commands (c-mode c++-mode objc-mode java-mode)
:mode ("\\.mm" . objc-mode)
:init
@ -32,10 +32,10 @@
;; Fontification of C++11 string literals
(add-hook 'c++-mode-hook '+cc|extra-fontify-c++)
(@set :electric '(c-mode c++-mode objc-mode java-mode)
(set! :electric '(c-mode c++-mode objc-mode java-mode)
:chars '(?\n ?\}))
(@set :company-backend
(set! :company-backend
'(c-mode c++-mode objc-mode)
'(company-irony-c-headers company-irony))
@ -74,7 +74,7 @@
;; Certain mappings interfere with smartparens and custom bindings,
;; so unbind them
(@map :map c-mode-map
(map! :map c-mode-map
"DEL" nil
"#" 'self-insert-command
"{" 'self-insert-command
@ -99,58 +99,58 @@
:i ">" '+cc/autoclose->-maybe))
(@def-package modern-cpp-font-lock
(def-package! modern-cpp-font-lock
:commands modern-c++-font-lock-mode
:init (add-hook 'c++-mode-hook 'modern-c++-font-lock-mode))
(@def-package irony
(def-package! irony
:after cc-mode
:config
(setq irony-server-install-prefix (concat doom-cache-dir "irony-server/"))
(@add-hook 'irony-mode-hook '(irony-eldoc flycheck-mode))
(@add-hook 'c++-mode-hook
(add-hook! 'irony-mode-hook '(irony-eldoc flycheck-mode))
(add-hook! 'c++-mode-hook
(make-local-variable 'irony-additional-clang-options)
(push "-std=c++11" irony-additional-clang-options)))
(@def-package irony-eldoc :after irony)
(def-package! irony-eldoc :after irony)
(@def-package flycheck-irony :after irony :config (flycheck-irony-setup))
(def-package! flycheck-irony :after irony :config (flycheck-irony-setup))
;;
;; Tools
;;
(@def-package disaster :commands disaster)
(def-package! disaster :commands disaster)
;;
;; Plugins
;;
(@def-package company-cmake :after cmake-mode)
(def-package! company-cmake :after cmake-mode)
(@def-package company-irony :after irony)
(def-package! company-irony :after irony)
(@def-package company-irony-c-headers :after company-irony)
(def-package! company-irony-c-headers :after company-irony)
;;
;; Major modes
;;
(@def-package cmake-mode
(def-package! cmake-mode
:mode "CMakeLists\\.txt$"
:config
(@set :company-backend 'cmake-mode '(company-cmake company-yasnippet)))
(set! :company-backend 'cmake-mode '(company-cmake company-yasnippet)))
(@def-package glsl-mode :mode ("\\.glsl\\'" "\\.vert\\'" "\\.frag\\'" "\\.geom\\'"))
(def-package! glsl-mode :mode ("\\.glsl\\'" "\\.vert\\'" "\\.frag\\'" "\\.geom\\'"))
(@def-package cuda-mode :mode "\\.cuh?$")
(def-package! cuda-mode :mode "\\.cuh?$")
(@def-package opencl-mode :mode "\\.cl$")
(def-package! opencl-mode :mode "\\.cl$")
(@def-package demangle-mode
(def-package! demangle-mode
:commands demangle-mode
:init (add-hook 'llvm-mode-hook 'demangle-mode))

View file

@ -1,19 +1,19 @@
;; -*- no-byte-compile: t; -*-
;;; lang/cc/packages.el
(@package cmake-mode)
(@package cuda-mode)
(@package demangle-mode)
(@package disaster)
(@package glsl-mode)
(@package irony)
(@package irony-eldoc)
(@package opencl-mode)
(@package modern-cpp-font-lock)
(package! cmake-mode)
(package! cuda-mode)
(package! demangle-mode)
(package! disaster)
(package! glsl-mode)
(package! irony)
(package! irony-eldoc)
(package! opencl-mode)
(package! modern-cpp-font-lock)
(when (@featurep :feature syntax-checker)
(@package flycheck-irony))
(when (featurep! :feature syntax-checker)
(package! flycheck-irony))
(when (@featurep :completion company)
(@package company-irony)
(@package company-irony-c-headers))
(when (featurep! :completion company)
(package! company-irony)
(package! company-irony-c-headers))

View file

@ -1,10 +1,10 @@
;;; module-crystal.el
(@def-package crystal-mode
(def-package! crystal-mode
:mode "\\.cr$"
:interpreter "crystal"
:config
(@set :eval 'crystal-mode
(set! :eval 'crystal-mode
'((:command . "crystal")
(:exec . "%c %s")
(:description . "Run Crystal script"))))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; lang/crystal/packages.el
(@package crystal-mode :recipe (:fetcher github :repo "dotmilk/emacs-crystal-mode"))
(package! crystal-mode :recipe (:fetcher github :repo "dotmilk/emacs-crystal-mode"))

View file

@ -1,23 +1,23 @@
;;; module-csharp.el
(@def-package csharp-mode
(def-package! csharp-mode
:mode "\\.cs$"
:init (add-hook 'csharp-mode-hook 'flycheck-mode))
(@def-package omnisharp
(def-package! omnisharp
:commands omnisharp-mode
:preface
(setq omnisharp-auto-complete-want-documentation nil
omnisharp-server-executable-path (concat doom-local-dir "OmniSharp.exe"))
:when (file-exists-p omnisharp-server-executable-path)
:init
(@add-hook csharp-mode '(eldoc-mode omnisharp-mode))
(add-hook! csharp-mode '(eldoc-mode omnisharp-mode))
:config
(@set :company-backend 'csharp-mode '(company-omnisharp))
(set! :company-backend 'csharp-mode '(company-omnisharp))
;; Map all refactor commands (see emr)
(@map :map omnisharp-mode-map
(map! :map omnisharp-mode-map
:n "gd" 'omnisharp-go-to-definition
:localleader
@ -40,10 +40,10 @@
:n "o" 'omnisharp-show-overloads-at-point
:prefix "t"
:n "tr" (@λ (omnisharp-unit-test "fixture"))
:n "ts" (@λ (omnisharp-unit-test "single"))
:n "ta" (@λ (omnisharp-unit-test "all"))))
:n "tr" (λ! (omnisharp-unit-test "fixture"))
:n "ts" (λ! (omnisharp-unit-test "single"))
:n "ta" (λ! (omnisharp-unit-test "all"))))
(@def-package shader-mode :mode "\\.shader$") ; unity shaders
(def-package! shader-mode :mode "\\.shader$") ; unity shaders

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/csharp/packages.el
(@package csharp-mode)
(@package omnisharp)
(@package shader-mode)
(package! csharp-mode)
(package! omnisharp)
(package! shader-mode)

View file

@ -1,41 +1,41 @@
;;; module-data.el
(@associate conf-mode :match "/sxhkdrc$")
(associate! conf-mode :match "/sxhkdrc$")
(@def-package nxml-mode
(def-package! nxml-mode
:mode "\\.plist$"
:config
(@set :company-backend 'nxml-mode '(company-nxml company-yasnippet)))
(set! :company-backend 'nxml-mode '(company-nxml company-yasnippet)))
(@def-package toml-mode :mode "\\.toml$")
(def-package! toml-mode :mode "\\.toml$")
(@def-package yaml-mode
(def-package! yaml-mode
:mode "\\.ya?ml$"
:config
(@set :electric 'yaml-mode :chars '(?\n ?\: ?\-)))
(set! :electric 'yaml-mode :chars '(?\n ?\: ?\-)))
(@def-package json-mode :mode "\\.js\\(on\\|[hl]int\\(rc\\)?\\)$"
(def-package! json-mode :mode "\\.js\\(on\\|[hl]int\\(rc\\)?\\)$"
:config
(@set :electric 'json-mode :chars '(?\n ?: ?{ ?})))
(set! :electric 'json-mode :chars '(?\n ?: ?{ ?})))
(@def-package vimrc-mode
(def-package! vimrc-mode
:mode ("/\\.?g?vimrc$" "\\.vim$" "/\\.?vimperatorrc$" "\\.vimp$"))
(@def-package dockerfile-mode
(def-package! dockerfile-mode
:mode "/Dockerfile$"
:config
;; TODO
(@set :build 'docker 'dockerfile-mode '+data-dockerfile-p '+data/dockerfile-build))
(set! :build 'docker 'dockerfile-mode '+data-dockerfile-p '+data/dockerfile-build))
;; For ROM hacking or debugging
(@def-package hexl-mode
(def-package! hexl-mode
:mode ("\\.hex$" "\\.nes$"))
@ -43,10 +43,10 @@
;; Frameworks
;;
;; (@def-project ansible-mode "ans"
;; (def-project! ansible-mode "ans"
;; :modes (yaml-mode)
;; :files ("roles/"))
;; (@def-project vagrant "vagrant"
;; (def-project! vagrant "vagrant"
;; :files ("Vagrantfile"))

View file

@ -1,9 +1,9 @@
;; -*- no-byte-compile: t; -*-
;;; lang/data/packages.el
(@package dockerfile-mode)
(@package json-mode)
(@package toml-mode)
(@package vimrc-mode)
(@package yaml-mode)
(package! dockerfile-mode)
(package! json-mode)
(package! toml-mode)
(package! vimrc-mode)
(package! yaml-mode)

View file

@ -1,16 +1,16 @@
;;; lang/emacs-lisp/config.el
(@def-package elisp-mode ; built-in
(def-package! elisp-mode ; built-in
:mode ("/Cask$" . emacs-lisp-mode)
:init
(add-hook 'emacs-lisp-mode-hook '+emacs-lisp|hook)
:config
(@map :map emacs-lisp-mode-map
(map! :map emacs-lisp-mode-map
:m "gd" '+emacs-lisp/find-function
:leader :m "gd" '+emacs-lisp/find-function-in-other-window)
(@set :rotate 'emacs-lisp-mode
(set! :rotate 'emacs-lisp-mode
:symbols '(("t" "nil")
("let" "let*")
("when" "unless")
@ -35,17 +35,14 @@
nil `(;; Display "lambda" as λ
("(\\(lambda\\)" (1 (ignore (compose-region (match-beginning 1) (match-end 1) 'decompose-region))))
;; Highlight doom/module functions
("\\(^\\|\\s-\\|,\\)(\\(\\(doom\\|\\+\\)[^) ]+\\)[) \n]" (2 font-lock-builtin-face))
;; Highlight doom macros (no need, macros are fontified in emacs 25+)
;; ("\\(^\\|\\s-\\)(\\(@[^) ]+\\)[) \n]" (2 font-lock-preprocessor-face append))
))
("\\(^\\|\\s-\\|,\\)(\\(\\(doom\\|\\+\\)[^) ]+\\)[) \n]" (2 font-lock-builtin-face))))
(setq imenu-generic-expression
'(("Evil Commands" "^\\s-*(evil-define-\\(?:command\\|operator\\|motion\\) +\\(\\_<[^ ()\n]+\\_>\\)" 1)
("Package" "^\\s-*(@\\(?:use-package\\|package\\) +\\(\\_<[^ ()\n]+\\_>\\)" 1)
("Settings" "^\\s-*(@def-setting +\\([^ ()\n]+\\)" 1)
("Modelines" "^\\s-*(@def-modeline +\\([^ ()\n]+\\)" 1)
("Modeline Segments" "^\\s-*(@def-modeline-segment +\\([^ ()\n]+\\)" 1)
("Package" "^\\s-*(\\(?:def-\\)?package! +\\(\\_<[^ ()\n]+\\_>\\)" 1)
("Settings" "^\\s-*(def-setting! +\\([^ ()\n]+\\)" 1)
("Modelines" "^\\s-*(def-modeline! +\\([^ ()\n]+\\)" 1)
("Modeline Segments" "^\\s-*(def-modeline-segment! +\\([^ ()\n]+\\)" 1)
("Advice" "^\\s-*(def\\(?:\\(?:ine-\\)?advice\\))")
("Modes" "^\\s-*(define-\\(?:global\\(?:ized\\)?-minor\\|generic\\|minor\\)-mode +\\([^ ()\n]+\\)" 1)
("Macros" "^\\s-*(\\(?:cl-\\)?def\\(?:ine-compile-macro\\|macro\\) +\\([^ )\n]+\\)" 1)
@ -61,17 +58,17 @@
;; Plugins
;;
(@def-package auto-compile
(def-package! auto-compile
:commands auto-compile-on-save-mode
:config
(setq auto-compile-display-buffer nil
auto-compile-use-mode-line nil))
(@def-package highlight-quoted
(def-package! highlight-quoted
:commands highlight-quoted-mode)
(@def-package slime
(def-package! slime
:config (setq inferior-lisp-program "clisp"))

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; lang/emacs-lisp/packages.el
(@package auto-compile)
(@package highlight-quoted)
(@package slime)
(package! auto-compile)
(package! highlight-quoted)
(package! slime)

View file

@ -1,17 +1,17 @@
;;; lang/go/config.el
(@def-package go-mode
(def-package! go-mode
:mode "\\.go$"
:interpreter "go"
:init
(add-hook 'go-mode-hook 'flycheck-mode)
(@add-hook go-mode (add-hook 'before-save-hook 'gofmt-before-save))
(add-hook! go-mode (add-hook 'before-save-hook 'gofmt-before-save))
:config
(@set :build 'go-build 'go-mode '+go/build)
(@set :company-backend 'go-mode '(company-go company-yasnippet))
(@set :repl 'go-mode 'gorepl-run)
(set! :build 'go-build 'go-mode '+go/build)
(set! :company-backend 'go-mode '(company-go company-yasnippet))
(set! :repl 'go-mode 'gorepl-run)
(@map :map go-mode-map
(map! :map go-mode-map
:n "gd" 'godef-jump
(:localleader
:n "k" 'godef-describe
@ -24,14 +24,14 @@
:n "s" '+go/test-run-package)))
(@def-package company-go :after go-mode)
(def-package! company-go :after go-mode)
(@def-package go-eldoc
(def-package! go-eldoc
:after go-mode
:init (add-hook 'go-mode-hook 'go-eldoc-setup))
(@def-package gorepl-mode
(def-package! gorepl-mode
:commands (gorepl-run gorepl-run-load-current-file))

View file

@ -1,8 +1,8 @@
;; -*- no-byte-compile: t; -*-
;;; lang/go/packages.el
(@package go-eldoc)
(@package go-mode)
(@package gorepl-mode)
(when (@featurep :completion company)
(@package company-go))
(package! go-eldoc)
(package! go-mode)
(package! gorepl-mode)
(when (featurep! :completion company)
(package! company-go))

View file

@ -1,20 +1,20 @@
;;; module-haskell.el
(@def-package haskell
(def-package! haskell
:mode (("\\.hs$" . haskell-mode)
("\\.ghci$" . ghci-script-mode)
("\\.cabal$" . haskell-cabal-mode))
:interpreter (("runghc" . haskell-mode)
("runhaskell" . haskell-mode))
:init
(@add-hook haskell-mode '(interactive-haskell-mode flycheck-mode))
(add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode))
:config
(@set :popup "*debug:haskell*" :size 20)
(@set :repl 'haskell-mode 'switch-to-haskell)
(set! :popup "*debug:haskell*" :size 20)
(set! :repl 'haskell-mode 'switch-to-haskell)
(push ".hi" completion-ignored-extensions))
(@def-package inf-haskell ; part of haskell
(def-package! inf-haskell ; part of haskell
:commands (inferior-haskell-mode inf-haskell-mode switch-to-haskell)
:config (@map :map inf-haskell-mode-map "ESC ESC" 'doom/popup-close))
:config (map! :map inf-haskell-mode-map "ESC ESC" 'doom/popup-close))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; lang/haskell/packages.el
(@package haskell-mode)
(package! haskell-mode)

View file

@ -1,35 +1,35 @@
;;; lang/java/config.el
(@def-package meghanada
(def-package! meghanada
:commands meghanada-mode
:init
(@add-hook java-mode '(meghanada-mode flycheck-mode))
(add-hook! java-mode '(meghanada-mode flycheck-mode))
:config
(@set :build 'compile-file 'java-mode 'meghanada-compile-file)
(@set :build 'compile-project 'java-mode 'meghanada-compile-project)
(set! :build 'compile-file 'java-mode 'meghanada-compile-file)
(set! :build 'compile-project 'java-mode 'meghanada-compile-project)
(setq meghanada-server-install-dir (expand-file-name "meghanada-server" doom-cache-dir)
meghanada-use-company t
meghanada-use-flycheck t
meghanada-use-auto-start t)
(@map :map meghanada-mode-map :m "gd" 'meghanada-jump-declaration)
(map! :map meghanada-mode-map :m "gd" 'meghanada-jump-declaration)
(unless (file-exists-p (meghanada--locate-server-jar))
(meghanada-install-server)))
(@def-package android-mode
(def-package! android-mode
:commands android-mode
:init
(@add-hook (java-mode groovy-mode nxml-mode) '+java|android-mode-maybe)
(add-hook! (java-mode groovy-mode nxml-mode) '+java|android-mode-maybe)
:config
(@set :yas-minor-mode 'android-mode)
(@set :company-dict-minor-mode 'android-mode))
(set! :yas-minor-mode 'android-mode)
(set! :company-dict-minor-mode 'android-mode))
(@def-package groovy-mode
(def-package! groovy-mode
:mode "\\.g\\(radle\\|roovy\\)$"
:config
(@set :eval 'groovy-mode "groovy"))
(set! :eval 'groovy-mode "groovy"))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/java/packages.el
(@package meghanada)
(@package android-mode)
(@package groovy-mode)
(package! meghanada)
(package! android-mode)
(package! groovy-mode)

View file

@ -166,11 +166,11 @@
"REACTIONS" "BODYPARTS_ALL" "RESOURCES_ALL" "COLORS_ALL"))
;; TODO
;; (@def-project screeps "screeps"
;; (def-project! screeps "screeps"
;; :match "/screeps/.+$"
;; :modes (nodejs-project-mode))
;; (@add-hook screeps-project-mode
;; (add-hook! screeps-project-mode
;; (when (eq major-mode 'js2-mode)
;; (add-to-list 'flycheck-disabled-checkers 'javascript-jshint)
;; (setq js2-additional-externs (append '("_") screeps-objects screeps-constants))))

View file

@ -1,8 +1,8 @@
;; lang/javascript/config.el
;; TODO (@load +screeps)
;; TODO (load! +screeps)
(@def-package js2-mode
(def-package! js2-mode
:mode "\\.js$"
:interpreter "node"
:config
@ -10,19 +10,19 @@
js2-highlight-external-variables nil
js2-mode-show-parse-errors nil)
(@add-hook js2-mode '(tern-mode flycheck-mode highlight-indent-guides-mode))
(add-hook! js2-mode '(tern-mode flycheck-mode highlight-indent-guides-mode))
;; Conform switch-case indentation to editorconfig's config
(@add-hook js2-mode (setq js-switch-indent-offset js-indent-level))
(add-hook! js2-mode (setq js-switch-indent-offset js-indent-level))
(@set :repl 'js2-mode 'nodejs-repl)
(set! :repl 'js2-mode 'nodejs-repl)
(@set :company-backend 'js2-mode '(company-tern))
(set! :company-backend 'js2-mode '(company-tern))
(@set :electric 'js2-mode
(set! :electric 'js2-mode
:chars ?\} ?\) ?.
:words "||" "&&")
(@map :map js2-mode-map
(map! :map js2-mode-map
:localleader
:nv ";" 'doom/append-semicolon
@ -55,10 +55,10 @@
:n "ii" 'js2r-wrap-buffer-in-iife))
(@def-package nodejs-repl :commands nodejs-repl)
(def-package! nodejs-repl :commands nodejs-repl)
(@def-package js2-refactor
(def-package! js2-refactor
:commands
(js2r-extract-function js2r-extract-method js2r-introduce-parameter
js2r-localize-parameter js2r-expand-object js2r-contract-object
@ -70,16 +70,16 @@
js2r-debug-this js2r-forward-slurp js2r-forward-barf))
(@def-package company-tern
(def-package! company-tern
:when (featurep 'company)
:commands company-tern
:after tern)
(@def-package jsx-mode :mode "\\.jsx$")
(def-package! jsx-mode :mode "\\.jsx$")
(@def-package coffee-mode
(def-package! coffee-mode
:mode "\\.coffee$"
:init (setq coffee-indent-like-python-mode t))

View file

@ -1,13 +1,13 @@
;; -*- no-byte-compile: t; -*-
;;; lang/javascript/packages.el
(@package coffee-mode)
(@package js2-mode)
(@package js2-refactor)
(@package jsx-mode)
(@package nodejs-repl)
(@package tern)
(package! coffee-mode)
(package! js2-mode)
(package! js2-refactor)
(package! jsx-mode)
(package! nodejs-repl)
(package! tern)
(when (@featurep :completion company)
(@package company-tern))
(when (featurep! :completion company)
(package! company-tern))

View file

@ -4,5 +4,5 @@
:mode "\\.jl$"
:interpreter "julia"
:config
(@set :repl 'julia-mode '+julia/repl))
(set! :repl 'julia-mode '+julia/repl))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; lang/julia/packages.el
(@package julia-mode)
(package! julia-mode)

View file

@ -13,7 +13,7 @@
;; Plugins
;;
(@def-package auctex
(def-package! auctex
:mode ("\\.tex$" . LaTeX-mode)
:init
(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)
@ -23,25 +23,25 @@
TeX-source-correlate-start-server nil
LaTeX-fill-break-at-separators nil)
(@add-hook LaTeX-mode '(LaTeX-math-mode TeX-source-correlate-mode))
(add-hook! LaTeX-mode '(LaTeX-math-mode TeX-source-correlate-mode))
(@set :company-backend 'LaTeX-mode '(company-auctex)))
(set! :company-backend 'LaTeX-mode '(company-auctex)))
(@def-package company-auctex)
(def-package! company-auctex)
(@def-package bibtex ; built-in
(def-package! bibtex ; built-in
:config
(setq bibtex-dialect 'biblatex
bibtex-align-at-equal-sign t
bibtex-text-indentation 20
bibtex-completion-bibliography (list +latex-bibtex-default-file))
(@map :map bibtex-mode-map
(map! :map bibtex-mode-map
"C-c \\" 'bibtex-fill-entry))
(@def-package reftex ; built-in
(def-package! reftex ; built-in
:commands turn-on-reftex
:init
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
@ -49,13 +49,13 @@
(setq reftex-plug-into-AUCTeX t
reftex-default-bibliography (list +latex-bibtex-default-file))
(@map :map reftex-mode-map
(map! :map reftex-mode-map
:leader :n ";" 'reftex-toc))
(@def-package ivy-bibtex
(def-package! ivy-bibtex
:commands ivy-bibtex)
(@def-package helm-bibtex
(def-package! helm-bibtex
:commands helm-bibtex)

View file

@ -1,12 +1,12 @@
;; -*- no-byte-compile: t; -*-
;;; lang/latex/packages.el
(@package auctex)
;; (@package auctex-latexmk)
(package! auctex)
;; (package! auctex-latexmk)
(when (@featurep :completion company)
(@package company-auctex))
(when (@featurep :completion ivy)
(@package ivy-bibtex))
(when (@featurep :completion helm)
(@package helm-bibtex))
(when (featurep! :completion company)
(package! company-auctex))
(when (featurep! :completion ivy)
(package! ivy-bibtex))
(when (featurep! :completion helm)
(package! helm-bibtex))

View file

@ -1,24 +1,24 @@
;;; lang/lua/config.el --- lua + Love2D
(@def-package lua-mode
(def-package! lua-mode
:mode "\\.lua$"
:interpreter "lua"
:init
(add-hook 'lua-mode-hook 'flycheck-mode)
:config
(@set :company-backend 'lua-mode '(company-lua company-yasnippet))
(@set :electric 'lua-mode :words '("else" "end"))
(@set :repl 'lua-mode '+lua/repl)
(set! :company-backend 'lua-mode '(company-lua company-yasnippet))
(set! :electric 'lua-mode :words '("else" "end"))
(set! :repl 'lua-mode '+lua/repl)
;; sp's lua-specific rules are obnoxious, so we disable them
(setq sp-pairs (delete (assq 'lua-mode sp-pairs) sp-pairs)))
(@def-package company-lua
(def-package! company-lua
:after lua-mode)
(@def-package moonscript
(def-package! moonscript
:mode ("\\.moon$" . moonscript-mode)
:config
(push '(moonscript-mode moonscript-indent-offset) editorconfig-indentation-alist))

View file

@ -1,9 +1,9 @@
;; -*- no-byte-compile: t; -*-
;;; lang/lua/packages.el
(@package lua-mode)
(@package moonscript)
(package! lua-mode)
(package! moonscript)
(when (@featurep :completion company)
(@package company-lua))
(when (featurep! :completion company)
(package! company-lua))

View file

@ -1,6 +1,6 @@
;;; lang/markdown/config.el
(@def-package markdown-mode
(def-package! markdown-mode
:mode ("\\.m\\(d\\|arkdown\\)$" "/README$"
("/README\\.md$" . gfm-mode))
:init
@ -11,9 +11,9 @@
markdown-gfm-additional-languages '("sh"))
:config
(@set :electric 'markdown-mode :chars '(?+ ?#))
(set! :electric 'markdown-mode :chars '(?+ ?#))
(@add-hook markdown-mode
(add-hook! markdown-mode
(auto-fill-mode +1)
(setq line-spacing 2
fill-column 70))
@ -22,7 +22,7 @@
'(markdown-mode gfm-mode)
"\`\`\`" "\`\`\`" :post-handlers '(("||\n" "RET")))
(@map :map gfm-mode-map
(map! :map gfm-mode-map
"`" 'self-insert-command
:map markdown-mode-map
@ -54,6 +54,6 @@
:nv "L" 'markdown-insert-reference-link-dwim))))
(@def-package markdown-toc
(def-package! markdown-toc
:commands markdown-toc-generate-toc)

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; lang/markdown/packages.el
(@package markdown-mode)
(@package markdown-toc)
(package! markdown-mode)
(package! markdown-toc)

View file

@ -1,14 +1,14 @@
;;; lang/octave/config.el
;; built-in
(@def-package octave
(def-package! octave
:mode (("\\.m$" . octave-mode))
:commands (octave-mode run-octave)
:config (@set :repl 'octave-mode 'run-octave))
:config (set! :repl 'octave-mode 'run-octave))
;; (use-package ac-octave
;; :config
;; (@add-hook octave-mode
;; (add-hook! octave-mode
;; (require 'ac-octave)
;; (setq ac-sources '(ac-source-octave))))

View file

@ -39,6 +39,6 @@
,@dnd-protocol-alist))
;; keybinds
;; (@map :leader :n "oa" (@find-file-in +org-attachment-dir))
;; (map! :leader :n "oa" (find-file-in! +org-attachment-dir))
)

View file

@ -13,7 +13,7 @@
(require 'org-capture)
(require 'org-protocol)
(@set :popup "*Org Select*" :size 0.4)
(set! :popup "*Org Select*" :size 0.4)
(defadvice org-capture (after make-full-window-frame activate)
"If org-capture creates a new frame, this initializes it properly, by

View file

@ -23,6 +23,6 @@
;; (setq org-pandoc-options '((standalone . t) (mathjax . t) (parse-raw . t)))
;; keybinds
;; (@map :leader :n "oe" (@find-file-in org-export-directory))
;; (map! :leader :n "oe" (find-file-in! org-export-directory))
)

View file

@ -35,9 +35,9 @@
;; "A list of attachments for the current buffer. This is so my custom attachment
;; system can keep track of each buffer's attachments.")
(@load +attach)
(@load +capture)
(@load +export)
(load! +attach)
(load! +capture)
(load! +export)
;;
@ -75,7 +75,7 @@
:keymap (make-sparse-keymap)
:group 'evil-org)
(@set :popup
(set! :popup
'(" *Agenda Commands*" :size 30 :noselect t)
'(" *Org todo*" :size 5 :noselect t)
'("*Calendar*" :size 0.4 :noselect t)
@ -216,10 +216,10 @@
(sp-local-pair "{" nil))
;; bullets
(@def-package org-bullets :commands org-bullets-mode)
(def-package! org-bullets :commands org-bullets-mode)
;; Keybinds
(@map (:map org-mode-map
(map! (:map org-mode-map
"RET" nil
"C-j" nil
"C-k" nil
@ -262,18 +262,18 @@
:nv "k" 'evil-previous-visual-line
:v "<S-tab>" '+snippets/expand-on-region
:i "M-a" (@λ (evil-visual-state) (org-mark-element))
:i "M-a" (λ! (evil-visual-state) (org-mark-element))
:n "M-a" 'org-mark-element
:v "M-a" 'mark-whole-buffer
:ni "<M-return>" (@λ (+org/insert-item 'below))
:ni "<S-M-return>" (@λ (+org/insert-item 'above))
:ni "<M-return>" (λ! (+org/insert-item 'below))
:ni "<S-M-return>" (λ! (+org/insert-item 'above))
;; Formatting shortcuts
:i "M-b" (@λ (+org-surround "*")) ; bold
:i "M-u" (@λ (+org-surround "_")) ; underline
:i "M-i" (@λ (+org-surround "/")) ; italics
:i "M-`" (@λ (+org-surround "+")) ; strikethrough
:i "M-b" (λ! (+org-surround "*")) ; bold
:i "M-u" (λ! (+org-surround "_")) ; underline
:i "M-i" (λ! (+org-surround "/")) ; italics
:i "M-`" (λ! (+org-surround "+")) ; strikethrough
:v "M-b" "S*"
:v "M-u" "S_"
@ -288,17 +288,17 @@
:n "?" 'org-tags-view
:n "D" 'org-deadline
:nv "L" 'org-store-link
:n "R" (@λ (org-metaleft) (org-archive-to-archive-sibling)) ; archive to parent sibling
:n "R" (λ! (org-metaleft) (org-archive-to-archive-sibling)) ; archive to parent sibling
:n "T" 'org-todo
:n "a" 'org-agenda
:n "d" 'org-time-stamp
:n "e" 'org-edit-special
:n "l" 'org-insert-link
:n "n" (@λ (if (buffer-narrowed-p) (widen) (org-narrow-to-subtree)))
:n "n" (λ! (if (buffer-narrowed-p) (widen) (org-narrow-to-subtree)))
:n "r" 'org-refile
:n "s" 'org-schedule
:n "t" (@λ (org-todo (if (org-entry-is-todo-p) 'none 'todo)))
:v "t" (@λ (evil-ex-normal evil-visual-beginning evil-visual-end "\\t"))
:n "t" (λ! (org-todo (if (org-entry-is-todo-p) 'none 'todo)))
:v "t" (λ! (evil-ex-normal evil-visual-beginning evil-visual-end "\\t"))
:n "v" 'variable-pitch-mode
;; :n "w" 'writing-mode
;; :n "x" '+org/remove-link
@ -308,25 +308,25 @@
:n "za" '+org/toggle-fold
:n "zA" 'org-shifttab
:n "zc" 'outline-hide-subtree
:n "zC" (@λ (outline-hide-sublevels 1))
:n "zC" (λ! (outline-hide-sublevels 1))
:n "zd" (lambda (&optional arg) (interactive "p") (outline-hide-sublevels (or arg 3)))
:n "zm" (@λ (outline-hide-sublevels 1))
:n "zm" (λ! (outline-hide-sublevels 1))
:n "zo" 'outline-show-subtree
:n "zO" 'outline-show-all
:n "zr" 'outline-show-all
:m "]]" (@λ (call-interactively 'org-forward-heading-same-level) (org-beginning-of-line))
:m "[[" (@λ (call-interactively 'org-backward-heading-same-level) (org-beginning-of-line))
:m "]]" (λ! (call-interactively 'org-forward-heading-same-level) (org-beginning-of-line))
:m "[[" (λ! (call-interactively 'org-backward-heading-same-level) (org-beginning-of-line))
:m "]l" 'org-next-link
:m "[l" 'org-previous-link
:m "gh" 'outline-up-heading
:m "gj" 'org-forward-heading-same-level
:m "gk" 'org-backward-heading-same-level
:m "gl" (@λ (call-interactively 'outline-next-visible-heading) (show-children))
:m "gl" (λ! (call-interactively 'outline-next-visible-heading) (show-children))
:n "go" 'org-open-at-point
:n "gO" (@λ (let ((org-link-frame-setup (append '((file . find-file-other-window)) org-link-frame-setup))
:n "gO" (λ! (let ((org-link-frame-setup (append '((file . find-file-other-window)) org-link-frame-setup))
(org-file-apps '(("\\.org$" . emacs)
(t . "open \"%s\""))))
(call-interactively 'org-open-at-point)))
@ -336,13 +336,13 @@
:m "^" 'org-beginning-of-line
:n "<" 'org-metaleft
:n ">" 'org-metaright
:v "<" (@λ (org-metaleft) (evil-visual-restore))
:v ">" (@λ (org-metaright) (evil-visual-restore))
:v "<" (λ! (org-metaleft) (evil-visual-restore))
:v ">" (λ! (org-metaright) (evil-visual-restore))
:n "-" 'org-cycle-list-bullet
:m "<tab>" 'org-cycle)
(:map org-src-mode-map
:n "<escape>" (@λ (message "Exited") (org-edit-src-exit)))
:n "<escape>" (λ! (message "Exited") (org-edit-src-exit)))
(:after org-agenda
(:map org-agenda-mode-map

View file

@ -1,10 +1,10 @@
;; -*- no-byte-compile: t; -*-
;;; lang/org/packages.el
(@package org-plus-contrib :pin "org")
(@package org-download)
;; (@package ox-pandox)
;; (@package org-bullets)
;; (@package ob-go :recipe (:fetcher github :repo "pope/ob-go"))
;; (@package ob-http)
(package! org-plus-contrib :pin "org")
(package! org-download)
;; (package! ox-pandox)
;; (package! org-bullets)
;; (package! ob-go :recipe (:fetcher github :repo "pope/ob-go"))
;; (package! ob-http)

View file

@ -1,12 +1,12 @@
;;; lang/php/config.el
;; (@def-package hack-mode
;; (def-package! hack-mode
;; :mode "\\.hh$"
;; :config
;; (@set :company-backend 'hack-mode '(company-capf)))
;; (set! :company-backend 'hack-mode '(company-capf)))
(@def-package php-mode
(def-package! php-mode
:mode ("\\.php[s345]?$" "\\.inc$")
:interpreter "php"
:init
@ -14,10 +14,10 @@
:config
(setq php-template-compatibility nil)
(@set :repl 'php-mode 'php-boris)
(@set :company-bakend 'php-mode '(php-extras-company company-yasnippet))
(set! :repl 'php-mode 'php-boris)
(set! :company-bakend 'php-mode '(php-extras-company company-yasnippet))
(@add-hook php-mode (setq-local sp-max-pair-length 6))
(add-hook! php-mode (setq-local sp-max-pair-length 6))
(sp-with-modes '(php-mode)
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
@ -28,7 +28,7 @@
(sp-local-pair "<?" "?>" :when '(("RET")) :post-handlers '("||\n[i]"))
(sp-local-pair "<?php" "?>" :when '(("RET")) :post-handlers '("||\n[i]")))
(@map :map php-mode-map
(map! :map php-mode-map
:localleader
:nv ";" 'doom/append-semicolon
@ -44,7 +44,7 @@
:n "s" 'phpunit-current-test))
(@def-package php-extras
(def-package! php-extras
:after php-mode
:init
(add-hook 'php-mode-hook 'eldoc-mode)
@ -65,28 +65,28 @@
(message "PHP eldoc updated!")))))
(@def-package php-refactor-mode
(def-package! php-refactor-mode
:commands php-refactor-mode
:init (add-hook 'php-mode-hook 'php-refactor-mode))
(@def-package phpunit
(def-package! phpunit
:commands (phpunit-current-test phpunit-current-class phpunit-current-project))
(@def-package php-boris :commands php-boris)
(def-package! php-boris :commands php-boris)
;;
;; Projects
;;
;; (@def-project laravel "laravel"
;; (def-project! laravel "laravel"
;; :modes (php-mode yaml-mode web-mode nxml-mode js2-mode scss-mode)
;; :files ("artisan" "server.php"))
;; (defvar php-composer-conf (make-hash-table :test 'equal))
;; (@def-project composer "composer"
;; (def-project! composer "composer"
;; :modes (web-mode php-mode)
;; :files ("composer.json")
;; :when

View file

@ -1,13 +1,13 @@
;; -*- no-byte-compile: t; -*-
;;; lang/php/packages.el
(@package php-boris)
(@package php-extras :recipe (:fetcher github :repo "arnested/php-extras"))
(@package php-mode)
(@package php-refactor-mode)
(@package phpunit)
(package! php-boris)
(package! php-extras :recipe (:fetcher github :repo "arnested/php-extras"))
(package! php-mode)
(package! php-refactor-mode)
(package! phpunit)
;; (@package hack-mode
;; (package! hack-mode
;; :recipe
;; (:fetcher url :url "https://raw.githubusercontent.com/facebook/hhvm/master/hphp/hack/editor-plugins/emacs/hack-mode.el"))

View file

@ -1,19 +1,19 @@
;;; module-processing.el
(@def-package processing-mode
(def-package! processing-mode
:commands (processing-mode processing-find-sketch)
:mode "\\.pde$"
:init
(add-hook 'processing-compilation-mode-hook 'doom-hide-modeline-mode)
:config
(@set :build 'build-sketch 'processing-mode 'processing-sketch-build)
(@set :popup "*processing-compilation*" :size 10 :noselect t)
(@set :eval 'processing-mode
(set! :build 'build-sketch 'processing-mode 'processing-sketch-build)
(set! :popup "*processing-compilation*" :size 10 :noselect t)
(set! :eval 'processing-mode
'((:command . ,processing-location)
(:exec . (lambda () (format "--sketch=%s --output=%s --force --run"
(doom/project-root) processing-output-dir)))
(:description . "Run Processing sketch")))
(@set :company-backend 'processing-mode
(set! :company-backend 'processing-mode
'(company-keywords :with company-yasnippet company-dabbrev-code))
(setq processing-location "/usr/local/bin/processing-java"
@ -21,7 +21,7 @@
processing-sketchbook-dir "~/Dropbox/work/pde"
processing-output-dir "/tmp")
(@map :map processing-mode-map
(map! :map processing-mode-map
:nv "M-r" 'processing-sketch-run
:m "gd" 'processing-find-in-reference
:m "gF" 'processing-find-sketch
@ -32,7 +32,7 @@
:n "e" 'processing-open-examples
:n "o" 'processing-open-sketchbook)
(@after company-keywords
(after! company-keywords
(nconc company-keywords-alist
(cons 'processing-mode (append processing-functions
processing-builtins

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; lang/processing/packages.el
(@package processing-mode)
(package! processing-mode)

View file

@ -1,6 +1,6 @@
;;; lang/python/config.el
(@def-package python
(def-package! python
:commands python-mode
:init
(setq python-environment-directory doom-cache-dir
@ -17,11 +17,11 @@
(add-hook 'python-mode-hook 'flycheck-mode)
:config
(@set :repl 'python-mode '+python/repl)
(set! :repl 'python-mode '+python/repl)
(define-key python-mode-map (kbd "DEL") nil)) ; interferes with smartparens
(@def-package anaconda-mode
(def-package! anaconda-mode
:after python
:init
(add-hook 'python-mode-hook 'anaconda-mode)
@ -30,17 +30,17 @@
anaconda-mode-eldoc-as-single-line t)
:config
(@set :company-backend 'python-mode '(company-anaconda))
(set! :company-backend 'python-mode '(company-anaconda))
(@map :map anaconda-mode-map :m "gd" 'anaconda-mode-find-definitions
(map! :map anaconda-mode-map :m "gd" 'anaconda-mode-find-definitions
:map anaconda-nav-mode-map :n [escape] 'anaconda-nav-quit)
(advice-add 'anaconda-mode-doc-buffer :after 'doom*anaconda-mode-doc-buffer))
(@def-package company-anaconda
(def-package! company-anaconda
:after anaconda-mode
:config
(@set :emr 'python-mode
(set! :emr 'python-mode
'(:nv anaconda-mode-show-doc "view documentation")
'(:nv anaconda-mode-find-assignments "find assignments")
'(:nv anaconda-mode-find-definitions "find definitions")
@ -48,20 +48,20 @@
'(:n anaconda-mode-find-references "show usages")))
(@def-package pip-requirements
(def-package! pip-requirements
:mode ("/requirements.txt$" . pip-requirements-mode))
(@def-package nose
(def-package! nose
:commands nose-mode
:preface
(defvar nose-mode-map (make-sparse-keymap))
:init
(@associate nose-mode :match "/test_.+\\.py$" :in (python-mode))
(associate! nose-mode :match "/test_.+\\.py$" :in (python-mode))
:config
(@set :popup "*nosetests*" :size 0.4 :noselect t)
(@set :yas-minor-mode 'nose-mode)
(@map :map nose-mode-map
(set! :popup "*nosetests*" :size 0.4 :noselect t)
(set! :yas-minor-mode 'nose-mode)
(map! :map nose-mode-map
:localleader
:n "tr" 'nosetests-again
:n "ta" 'nosetests-all

View file

@ -1,9 +1,9 @@
;; -*- no-byte-compile: t; -*-
;;; lang/python/packages.el
(@package anaconda-mode)
(@package nose)
(@package pip-requirements)
(package! anaconda-mode)
(package! nose)
(package! pip-requirements)
(when (@featurep :completion company)
(@package company-anaconda))
(when (featurep! :completion company)
(package! company-anaconda))

View file

@ -1,21 +1,21 @@
;;; lang/ruby/config.el
(@def-package ruby-mode
(def-package! ruby-mode
:mode ("\\.rb$" "\\.rake$" "\\.gemspec$" "\\.?pryrc$"
"/\\(Gem\\|Cap\\|Vagrant\\|Rake\\)file$")
:interpreter "ruby"
:init
(add-hook 'ruby-mode-hook 'flycheck-mode)
:config
(@set :build 'rake 'ruby-mode '+ruby/rake)
(@set :company-backend 'ruby-mode '(company-dabbrev-code))
(@set :electric 'ruby-mode :words '("else" "end" "elseif"))
(@set :repl 'ruby-mode 'inf-ruby)
(set! :build 'rake 'ruby-mode '+ruby/rake)
(set! :company-backend 'ruby-mode '(company-dabbrev-code))
(set! :electric 'ruby-mode :words '("else" "end" "elseif"))
(set! :repl 'ruby-mode 'inf-ruby)
(setq ruby-deep-indent-paren t)
;; Don't interfere with my custom RET behavior
(define-key ruby-mode-map [?\n] nil)
(@map :map ruby-mode-map
(map! :map ruby-mode-map
:localleader
:prefix "r"
:desc "toggle block" :nv "b" 'ruby-toggle-block
@ -27,7 +27,7 @@
:desc "convert post conditional" :nv "cc" 'ruby-refactor-convert-post-conditional))
(@def-package ruby-refactor
(def-package! ruby-refactor
:commands
(ruby-refactor-extract-to-method ruby-refactor-extract-local-variable
ruby-refactor-extract-constant ruby-refactor-add-parameter
@ -35,16 +35,16 @@
;; Highlight doc comments
(@def-package yard-mode
(def-package! yard-mode
:commands yard-mode
:init (add-hook 'ruby-mode-hook 'yard-mode))
(@def-package rspec-mode
(def-package! rspec-mode
:mode ("/\\.rspec$" . text-mode)
:init
(@associate rspec-mode :match "/\\.rspec$")
(@associate rspec-mode :in (ruby-mode yaml-mode) :files ("/spec/"))
(associate! rspec-mode :match "/\\.rspec$")
(associate! rspec-mode :in (ruby-mode yaml-mode) :files ("/spec/"))
(defvar rspec-mode-verifiable-map (make-sparse-keymap))
(defvar evilmi-ruby-match-tags
'((("unless" "if") ("elsif" "else") "end")
@ -54,7 +54,7 @@
;; Rake
(("task" "namespace") () "end")))
:config
(@map :map rspec-mode-map
(map! :map rspec-mode-map
:localleader
:n "tr" 'rspec-rerun
:n "ta" 'rspec-verify-all
@ -62,19 +62,19 @@
:n "tv" 'rspec-verify))
(@def-package inf-ruby
(def-package! inf-ruby
:commands (inf-ruby inf-ruby-console-auto)
:config
(@set :company-backend 'inf-ruby-mode '(company-inf-ruby)))
(set! :company-backend 'inf-ruby-mode '(company-inf-ruby)))
(@def-package company-inf-ruby
(def-package! company-inf-ruby
:after inf-ruby)
;;
;; TODO Frameworks
;;
;; (@def-project rake "rake"
;; (def-project! rake "rake"
;; :files ("Rakefile"))

View file

@ -1,10 +1,10 @@
;; -*- no-byte-compile: t; -*-
;;; lang/ruby/packages.el
(@package inf-ruby)
(@package rspec-mode)
(@package ruby-refactor)
(@package yard-mode)
(package! inf-ruby)
(package! rspec-mode)
(package! ruby-refactor)
(package! yard-mode)
(when (@featurep :completion company)
(@package company-inf-ruby))
(when (featurep! :completion company)
(package! company-inf-ruby))

View file

@ -3,33 +3,33 @@
(defvar +rust-cache-dir (concat doom-cache-dir "+rust/")
"TODO")
(@def-package rust-mode
(def-package! rust-mode
:mode "\\.rs$"
:init
(add-hook 'rust-mode-hook 'flycheck-mode)
:config
(@set :build 'cargo-run '(rust-mode toml-mode)
(set! :build 'cargo-run '(rust-mode toml-mode)
'+rust-is-cargo-project-p '+rust/cargo-run))
(@def-package racer
(def-package! racer
:after rust-mode
:preface
:init
(@add-hook rust-mode '(racer-mode eldoc-mode flycheck-rust-setup))
(add-hook! rust-mode '(racer-mode eldoc-mode flycheck-rust-setup))
:config
(setq racer-cmd (expand-file-name "racer/target/release/racer" +rust-cache-dir)
racer-rust-src-path (expand-file-name "rust/src/" +rust-cache-dir))
;; TODO Unit test keybinds
(@set :company-backend 'rust-mode '(company-racer))
(@map :map rust-mode-map :m "gd" 'racer-find-definition))
(set! :company-backend 'rust-mode '(company-racer))
(map! :map rust-mode-map :m "gd" 'racer-find-definition))
(@def-package company-racer
(def-package! company-racer
:after racer)
(@def-package flycheck-rust
(def-package! flycheck-rust
:after rust-mode)

View file

@ -1,10 +1,10 @@
;; -*- no-byte-compile: t; -*-
;;; lang/rust/packages.el
(@package racer)
(@package rust-mode)
(package! racer)
(package! rust-mode)
(when (@featurep :feature syntax-checker)
(@package flycheck-rust))
(when (@featurep :completion company)
(@package company-racer))
(when (featurep! :feature syntax-checker)
(package! flycheck-rust))
(when (featurep! :completion company)
(package! company-racer))

View file

@ -1,17 +1,17 @@
;;; lang/scala/config.el
(@def-package scala-mode
(def-package! scala-mode
:mode "\\.s\\(cala\\|bt\\)$"
:init
(add-hook 'scala-mode-hook 'eldoc-mode)
:config
(@set :company-backend 'scala-mode '(ensime-company (company-yasnippet))))
(set! :company-backend 'scala-mode '(ensime-company (company-yasnippet))))
(@def-package sbt-mode :after scala-mode)
(def-package! sbt-mode :after scala-mode)
(@def-package ensime
(def-package! ensime
:commands (ensime ensime-mode ensime-scala-mode-hook)
:init
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook))

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; lang/scala/packages.el
(@package ensime)
(@package sbt-mode)
(@package scala-mode)
(package! ensime)
(package! sbt-mode)
(package! scala-mode)

View file

@ -1,18 +1,18 @@
;;; lang/sh/config.el
(@def-package sh-script ; built-in
(def-package! sh-script ; built-in
:mode (("\\.zsh$" . sh-mode)
("/bspwmrc$" . sh-mode))
:init
(@add-hook sh-mode '(flycheck-mode highlight-numbers-mode +sh|extra-fontify))
(add-hook! sh-mode '(flycheck-mode highlight-numbers-mode +sh|extra-fontify))
:config
(@set :company-backend 'sh-mode '(company-shell))
(@set :electric 'sh-mode :words '("else" "elif" "fi" "done" "then" "do" "esac" ";;"))
(@set :repl 'sh-mode '+sh/repl)
(set! :company-backend 'sh-mode '(company-shell))
(set! :electric 'sh-mode :words '("else" "elif" "fi" "done" "then" "do" "esac" ";;"))
(set! :repl 'sh-mode '+sh/repl)
(setq sh-indent-after-continuation 'always)
;; [pedantry intensifies]
(@add-hook sh-mode (setq mode-name "sh"))
(add-hook! sh-mode (setq mode-name "sh"))
(defun +sh|detect-zsh ()
(when (and buffer-file-name (string-match-p "\\.zsh\\'" buffer-file-name))
@ -20,7 +20,7 @@
(add-hook 'sh-mode-hook '+sh|detect-zsh))
(@def-package company-shell
(def-package! company-shell
:after sh-script
:config (setq company-shell-delete-duplicates t))

View file

@ -1,5 +1,5 @@
;; -*- no-byte-compile: t; -*-
;;; lang/sh/packages.el
(when (@featurep :completion company)
(@package company-shell))
(when (featurep! :completion company)
(package! company-shell))

View file

@ -2,17 +2,17 @@
;; TODO Set up emacs task runners for fruitstrap
(@def-package swift-mode
(def-package! swift-mode
:mode "\\.swift$"
:init
(add-hook 'swift-mode-hook 'flycheck-mode)
:config
(@set :repl 'swift-mode 'swift-mode-run-repl) ; TODO test this
(@after flycheck (push 'swift flycheck-checkers)))
(set! :repl 'swift-mode 'swift-mode-run-repl) ; TODO test this
(after! flycheck (push 'swift flycheck-checkers)))
(@def-package company-sourcekit
(def-package! company-sourcekit
:after swift-mode
:config
(@set :company-backend 'swift-mode '(company-sourcekit company-yasnippet)))
(set! :company-backend 'swift-mode '(company-sourcekit company-yasnippet)))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/swift/packages.el
(@package swift-mode)
(package! swift-mode)
(when (@featurep :completion company)
(@package company-sourcekit))
(when (featurep! :completion company)
(package! company-sourcekit))

View file

@ -1,17 +1,17 @@
;;; lang/typescript/config.el
(@def-package typescript-mode
(def-package! typescript-mode
:mode "\\.ts$"
:init
(add-hook 'typescript-mode-hook 'rainbow-delimiters-mode)
:config
(@set :company-backend 'typescript-mode '(company-tide))
(@set :electric 'typescript-mode :chars '(?\} ?\)) :words '("||" "&&"))
(set! :company-backend 'typescript-mode '(company-tide))
(set! :electric 'typescript-mode :chars '(?\} ?\)) :words '("||" "&&"))
;; TODO emr definitions for:
;; + tide-jump-back
;; + (tide-jump-to-definition t)
(@set :emr 'typescript-mode
(set! :emr 'typescript-mode
'(tide-find-references "find usages")
'(tide-rename-symbol "rename symbol")
'(tide-jump-to-definition "jump to definition")
@ -26,16 +26,16 @@
(tide-setup)
(flycheck-mode +1)
(eldoc-mode +1)))
(@add-hook (typescript-mode web-mode) '+typescript|tide-setup)
(add-hook! (typescript-mode web-mode) '+typescript|tide-setup)
(advice-add 'tide-project-root :override 'doom-project-root)
(@map :map typescript-mode-map
(map! :map typescript-mode-map
:m "gd" 'tide-jump-to-definition
:m "K" 'tide-documentation-at-point))
(@def-package tide
(def-package! tide
:after typescript-mode
:config
(setq tide-format-options

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; lang/typescript/packages.el
(@package tide)
(@package typescript-mode)
(package! tide)
(package! typescript-mode)

View file

@ -3,7 +3,7 @@
(sp-with-modes '(css-mode scss-mode less-css-mode stylus-mode)
(sp-local-pair "/*" "*/" :post-handlers '(("[d-3]||\n[i]" "RET") ("| " "SPC"))))
(@map :map* (css-mode-map scss-mode-map less-css-mode-map)
(map! :map* (css-mode-map scss-mode-map less-css-mode-map)
:n "M-R" '+css/web-refresh-browser
:localleader
:nv ";" '+css/append-semicolon
@ -15,33 +15,33 @@
;; Packages
;;
(@def-package css-mode
(def-package! css-mode
:mode "\\.css$"
:mode ("\\.scss$" . scss-mode)
:init
(@add-hook css-mode
(add-hook! css-mode
'(yas-minor-mode-on flycheck-mode rainbow-mode highlight-numbers-mode
;; doom|counsel-css-imenu-setup
))
:config
(@set :company-backend '(css-mode scss-mode) '(company-css company-yasnippet))
(@set :build 'scss 'scss-mode '+css/scss-build))
(set! :company-backend '(css-mode scss-mode) '(company-css company-yasnippet))
(set! :build 'scss 'scss-mode '+css/scss-build))
(@def-package sass-mode
(def-package! sass-mode
:mode "\\.sass$"
:config
(setq sass-command-options '("--style compressed"))
(@set :build 'sass 'sass-mode '+css/sass-build)
(@set :company-backend 'sass-mode '(company-css company-yasnippet)))
(set! :build 'sass 'sass-mode '+css/sass-build)
(set! :company-backend 'sass-mode '(company-css company-yasnippet)))
(@def-package less-css-mode
(def-package! less-css-mode
:mode "\\.less$")
(@def-package stylus-mode
(def-package! stylus-mode
:mode "\\.styl$"
:init (@add-hook stylus-mode '(yas-minor-mode-on flycheck-mode)))
:init (add-hook! stylus-mode '(yas-minor-mode-on flycheck-mode)))

View file

@ -1,6 +1,6 @@
;;; lang/web/config.el
(@def-package web-mode
(def-package! web-mode
:mode ("\\.p?html?$"
"\\.\\(tpl\\|blade\\)\\(\\.php\\)?$"
"\\.erb$"
@ -12,13 +12,13 @@
:init
(add-hook 'web-mode-hook 'turn-off-smartparens-mode)
:config
(@set :company-backend 'web-mode '(company-web-html company-yasnippet))
(set! :company-backend 'web-mode '(company-web-html company-yasnippet))
(setq web-mode-enable-html-entities-fontification t)
;; Fix blank line numbers after unfolding
(advice-add 'web-mode-fold-or-unfold :after 'nlinum--flush)
(@map :map web-mode-map
(map! :map web-mode-map
(:localleader :n "t" 'web-mode-element-rename)
"M-/" 'web-mode-comment-or-uncomment
:i "SPC" 'self-insert-command
@ -31,17 +31,17 @@
:nv "]T" 'web-mode-element-child
:nv "[T" 'web-mode-element-parent)
(@def-package company-web :after company))
(def-package! company-web :after company))
(@def-package haml-mode :mode "\\.haml$")
(def-package! haml-mode :mode "\\.haml$")
(@def-package pug-mode
(def-package! pug-mode
:mode ("\\.jade$" "\\.pug$")
:config
(@set :company-backend 'pug-mode '(company-yasnippet))
(@map :map pug-mode-map
(set! :company-backend 'pug-mode '(company-yasnippet))
(map! :map pug-mode-map
:i [tab] 'doom/dumb-indent
:i [backtab] 'doom/dumb-dedent))
@ -50,14 +50,14 @@
;; Tools
;;
(@def-package emmet-mode
(def-package! emmet-mode
:commands emmet-mode
:preface (defvar emmet-mode-keymap (make-sparse-keymap))
:init
(@add-hook (scss-mode web-mode html-mode haml-mode nxml-mode) 'emmet-mode)
(add-hook! (scss-mode web-mode html-mode haml-mode nxml-mode) 'emmet-mode)
:config
(setq emmet-move-cursor-between-quotes t)
(@map :map emmet-mode-keymap
(map! :map emmet-mode-keymap
:v "M-e" 'emmet-wrap-with-markup
:i "M-e" 'emmet-expand-yas
:i "M-E" 'emmet-expand-line))

View file

@ -1,7 +1,7 @@
;;; lang/web/config.el
(@load +html)
(@load +css)
(load! +html)
(load! +css)
;;
@ -9,7 +9,7 @@
;;
;; (defvar bower-conf (make-hash-table :test 'equal))
;; (@def-project bower "bower"
;; (def-project! bower "bower"
;; :modes (web-mode js-mode coffee-mode css-mode sass-mode pug-mode)
;; :files ("bower.json")
;; :when
@ -23,7 +23,7 @@
;; (puthash project-path it bower-conf)))
;; t))
;; (@def-project angularjs "angular"
;; (def-project! angularjs "angular"
;; :modes (nodejs-project-mode bower-project-mode)
;; :when
;; (lambda (&rest _)
@ -36,15 +36,15 @@
;; (cdr-safe (assq 'devDependencies npm)))))
;; (assq 'angular deps))))
;; (@def-project jekyll ":{"
;; (def-project! jekyll ":{"
;; :modes (web-mode js-mode coffee-mode css-mode haml-mode pug-mode)
;; :match "/\\(\\(css\\|_\\(layouts\\|posts\\|sass\\)\\)/.+\\|.+.html\\)$"
;; :files ("config.yml" "_layouts/")
;; (@add-hook mode
;; (add-hook! mode
;; (when (eq major-mode 'web-mode)
;; (web-mode-set-engine "django"))))
;; (@def-project wordpress "wp"
;; (def-project! wordpress "wp"
;; :modes (php-mode web-mode css-mode haml-mode pug-mode)
;; :match "/wp-\\(\\(content\\|admin\\|includes\\)/\\)?.+$"
;; :files ("wp-config.php" "wp-content/"))

View file

@ -5,14 +5,14 @@
;; n/a
;; +html.el
(@package company-web)
(@package emmet-mode)
(@package haml-mode)
(@package pug-mode)
(@package web-mode)
(package! company-web)
(package! emmet-mode)
(package! haml-mode)
(package! pug-mode)
(package! web-mode)
;; +css.el
(@package less-css-mode)
(@package sass-mode)
(@package stylus-mode)
(package! less-css-mode)
(package! sass-mode)
(package! stylus-mode)

View file

@ -4,7 +4,7 @@
(setq x-super-keysym 'alt
x-alt-keysym 'meta)
(defmacro @find-file-in (path &optional project-p)
(defmacro find-file-in! (path &optional project-p)
"Returns a interactive function for searching files"
`(lambda () (interactive)
(let ((default-directory ,path))
@ -12,7 +12,7 @@
'(call-interactively (command-remapping 'projectile-find-file))
'(call-interactive (command-remapping 'find-file))))))
(@map
(map!
;; Essential
"M-x" 'execute-extended-command
"A-x" 'execute-extended-command
@ -22,7 +22,7 @@
[f9] 'doom/what-face
"C-`" 'doom/popup-toggle
;; Text-scaling
"M-0" (@λ (text-scale-set 0))
"M-0" (λ! (text-scale-set 0))
"M-=" 'text-scale-increase
"M--" 'text-scale-decrease
;; Simple window navigation/manipulation
@ -46,15 +46,15 @@
:n [C-escape] 'evil-normal-state
;; Switching tabs (workgroups)
"M-1" (@λ (+workspace/switch-to 0))
"M-2" (@λ (+workspace/switch-to 1))
"M-3" (@λ (+workspace/switch-to 2))
"M-4" (@λ (+workspace/switch-to 3))
"M-5" (@λ (+workspace/switch-to 4))
"M-6" (@λ (+workspace/switch-to 5))
"M-7" (@λ (+workspace/switch-to 6))
"M-8" (@λ (+workspace/switch-to 7))
"M-9" (@λ (+workspace/switch-to 8))
"M-1" (λ! (+workspace/switch-to 0))
"M-2" (λ! (+workspace/switch-to 1))
"M-3" (λ! (+workspace/switch-to 2))
"M-4" (λ! (+workspace/switch-to 3))
"M-5" (λ! (+workspace/switch-to 4))
"M-6" (λ! (+workspace/switch-to 5))
"M-7" (λ! (+workspace/switch-to 6))
"M-8" (λ! (+workspace/switch-to 7))
"M-9" (λ! (+workspace/switch-to 8))
"M-0" '+workspace/switch-to-last
[M-backspace] 'doom/backward-kill-to-bol-and-indent
@ -115,7 +115,7 @@
(:desc "SSH/FTP"
:prefix "u"
:desc "Upload local" :n "u" '+upload/local
:desc "Upload local (force)" :n "U" (@λ (+upload/local t))
:desc "Upload local (force)" :n "U" (λ! (+upload/local t))
:desc "Download remote" :n "d" '+upload/remote-download
:desc "Diff local & remote" :n "D" '+upload/diff
:desc "Browse remote files" :n "." '+upload/browse
@ -245,7 +245,7 @@
:i "C-s" 'company-yasnippet
:i "C-o" 'company-capf
:i "C-n" 'company-dabbrev-code
:i "C-p" (@λ (let ((company-selection-wrap-around t))
:i "C-p" (λ! (let ((company-selection-wrap-around t))
(call-interactively 'company-dabbrev-code)
(company-select-previous-or-abort))))
;; evil-visual-star
@ -286,7 +286,7 @@
;; This section is dedicated to "fixing" certain keys so that they behave
;; properly or more like vim (or how I like it).
(@map (:unless window-system "TAB" [tab]) ; Fix TAB in terminal
(map! (:unless window-system "TAB" [tab]) ; Fix TAB in terminal
;; I want C-a and C-e to be a little smarter. C-a will jump to
;; indentation. Pressing it again will send you to the true bol. Same goes
@ -300,7 +300,7 @@
:i "<tab>" 'doom/dumb-indent
:i "<backtab>" 'doom/dumb-dedent
:i "<C-tab>" 'indent-for-tab-command
:i "<A-tab>" (@λ (insert "\t"))
:i "<A-tab>" (λ! (insert "\t"))
;; 'smart' indentation for lisp modes
(:after lisp-mode
(:map lisp-mode-map :i [remap doom/dumb-indent] 'indent-for-tab-command))

View file

@ -1,86 +1,86 @@
(defalias '@ex 'evil-ex-define-cmd)
(defalias 'ex! 'evil-ex-define-cmd)
;;; Custom commands
;; Emacs utilities
(@ex "bc[omp]" '+hlissner:byte-compile)
(@ex "clog" 'global-command-log-mode)
(@ex "minor" 'describe-minor-mode) ; list minor modes
(@ex "re[load]" 'doom/reload)
(@ex "re[load]au" 'doom/reload-autoloads)
(ex! "bc[omp]" '+hlissner:byte-compile)
(ex! "clog" 'global-command-log-mode)
(ex! "minor" 'describe-minor-mode) ; list minor modes
(ex! "re[load]" 'doom/reload)
(ex! "re[load]au" 'doom/reload-autoloads)
;; Editing
(@ex "@" '+evil:macro-on-all-lines) ; TODO Test me
(@ex "date" '+text:insert-date)
(@ex "enhtml" '+hlissner:encode-html-entities)
(@ex "dehtml" '+hlissner:decode-html-entities)
(@ex "ie[dit]" 'evil-multiedit-ex-match)
(@ex "na[rrow]" '+hlissner:narrow-buffer)
(@ex "ref[actor]" 'emr-show-refactor-menu)
(@ex "retab" '+hlissner:retab)
(ex! "@" '+evil:macro-on-all-lines) ; TODO Test me
(ex! "date" '+text:insert-date)
(ex! "enhtml" '+hlissner:encode-html-entities)
(ex! "dehtml" '+hlissner:decode-html-entities)
(ex! "ie[dit]" 'evil-multiedit-ex-match)
(ex! "na[rrow]" '+hlissner:narrow-buffer)
(ex! "ref[actor]" 'emr-show-refactor-menu)
(ex! "retab" '+hlissner:retab)
;; External resources
;; TODO (@ex "db" 'doom:db)
;; TODO (@ex "dbu[se]" 'doom:db-select)
;; TODO (@ex "go[ogle]" 'doom:google-search)
(@ex "http" 'httpd-start) ; start http server
(@ex "repl" '+repl/run) ; invoke or send to repl
;; TODO (@ex "rx" 'doom:regex) ; open re-builder
(@ex "sh[ell]" '+eshell:run)
(@ex "t[mux]" '+tmux:run) ; send to tmux
(@ex "tcd" '+tmux:cd-here) ; cd to default-directory in tmux
(@ex "x" 'doom:scratch-buffer)
;; TODO (ex! "db" 'doom:db)
;; TODO (ex! "dbu[se]" 'doom:db-select)
;; TODO (ex! "go[ogle]" 'doom:google-search)
(ex! "http" 'httpd-start) ; start http server
(ex! "repl" '+repl/run) ; invoke or send to repl
;; TODO (ex! "rx" 'doom:regex) ; open re-builder
(ex! "sh[ell]" '+eshell:run)
(ex! "t[mux]" '+tmux:run) ; send to tmux
(ex! "tcd" '+tmux:cd-here) ; cd to default-directory in tmux
(ex! "x" 'doom:scratch-buffer)
;; GIT
(@ex "gbrowse" '+vcs/git-browse) ; show file in github/gitlab
(@ex "gissues" '+vcs/git-browse-issues) ; show github issues
(@ex "git" 'magit-status) ; open magit status window
(@ex "gstage" 'magit-stage)
(@ex "gunstage" 'magit-unstage)
(ex! "gbrowse" '+vcs/git-browse) ; show file in github/gitlab
(ex! "gissues" '+vcs/git-browse-issues) ; show github issues
(ex! "git" 'magit-status) ; open magit status window
(ex! "gstage" 'magit-stage)
(ex! "gunstage" 'magit-unstage)
;; TODO :gblame
;; TODO :grevert
;; TODO :gblame
;; Dealing with buffers
(@ex "clean[up]" 'doom:cleanup-buffers) ; Clean up old/unreal buffers
(@ex "k[ill]" 'doom/kill-real-buffer) ; Kill current buffer
(@ex "k[ill]all" 'doom:kill-all-buffers) ; Kill buffers (bang = in project)
(@ex "k[ill]m" 'doom:kill-matching-buffers) ; kill buffers by regexp
(@ex "k[ill]o" 'doom:kill-other-buffers) ; kill other buffers
(@ex "l[ast]" 'doom/popup-last-buffer) ; pop up last popup
(@ex "m[sg]" 'view-echo-area-messages) ; open *messages* in popup
(@ex "pop[up]" 'doom/popup) ; open current buffer in popup
(ex! "clean[up]" 'doom/cleanup-buffers) ; Clean up old/unreal buffers
(ex! "k[ill]" 'doom/kill-real-buffer) ; Kill current buffer
(ex! "k[ill]all" 'doom:kill-all-buffers) ; Kill buffers (bang = in project)
(ex! "k[ill]m" 'doom:kill-matching-buffers) ; kill buffers by regexp
(ex! "k[ill]o" 'doom:kill-other-buffers) ; kill other buffers
(ex! "l[ast]" 'doom/popup-last-buffer) ; pop up last popup
(ex! "m[sg]" 'view-echo-area-messages) ; open *messages* in popup
(ex! "pop[up]" 'doom/popup) ; open current buffer in popup
;; Project navigation
(@ex "a" 'projectile-find-other-file)
(@ex "ag" '+ivy:ag-search)
(@ex "ag[cw]d" '+ivy:ag-search-cwd)
(@ex "cd" '+hlissner:cd)
(@ex "sw[iper]" '+ivy:swiper) ; in-file search
(ex! "a" 'projectile-find-other-file)
(ex! "ag" '+ivy:ag-search)
(ex! "ag[cw]d" '+ivy:ag-search-cwd)
(ex! "cd" '+hlissner:cd)
(ex! "sw[iper]" '+ivy:swiper) ; in-file search
;; Project tools
(@ex "build" '+eval/build)
(@ex "debug" '+debug/run)
(@ex "er[rors]" 'flycheck-list-errors)
(@ex "todo" '+ivy/tasks)
(ex! "build" '+eval/build)
(ex! "debug" '+debug/run)
(ex! "er[rors]" 'flycheck-list-errors)
(ex! "todo" '+ivy/tasks)
;; File operations
(@ex "mv" '+evil:file-move)
(@ex "rm" '+evil:file-delete)
(ex! "mv" '+evil:file-move)
(ex! "rm" '+evil:file-delete)
;; Sessions/tabs
(@ex "sclear" '+workspace/kill-session)
(@ex "sl[oad]" '+workspace:load-session) ; TODO :sload [NAME]
(@ex "ss[ave]" '+workspace:save-session) ; TODO :ssave [NAME]
(@ex "tabc[lose]" '+workspace:delete)
(@ex "tabclear" 'doom/kill-all-buffers)
(@ex "tabl[ast]" '+workspace/switch-to-list)
(@ex "tabload" '+workspace:load)
(@ex "tabn[ew]" '+workspace:new)
(@ex "tabn[ext]" '+workspace:switch-next)
(@ex "tabp[rev]" '+workspace:switch-previous)
(@ex "tabr[ename]" '+workspace:rename)
(@ex "tabs" '+workspace/display)
(@ex "tabsave" '+workspace:save)
(ex! "sclear" '+workspace/kill-session)
(ex! "sl[oad]" '+workspace:load-session) ; TODO :sload [NAME]
(ex! "ss[ave]" '+workspace:save-session) ; TODO :ssave [NAME]
(ex! "tabc[lose]" '+workspace:delete)
(ex! "tabclear" 'doom/kill-all-buffers)
(ex! "tabl[ast]" '+workspace/switch-to-list)
(ex! "tabload" '+workspace:load)
(ex! "tabn[ew]" '+workspace:new)
(ex! "tabn[ext]" '+workspace:switch-next)
(ex! "tabp[rev]" '+workspace:switch-previous)
(ex! "tabr[ename]" '+workspace:rename)
(ex! "tabs" '+workspace/display)
(ex! "tabsave" '+workspace:save)
;; Org-mode
(@ex "org" '+org:capture)
(ex! "org" '+org:capture)

View file

@ -1,8 +1,8 @@
;;; private/hlissner/config.el
(@load +bindings) ; my key bindings
(load! +bindings) ; my key bindings
(when (featurep 'evil)
(@load +commands)) ; my custom ex commands
(load! +commands)) ; my custom ex commands
(defvar +hlissner-snippets-dir
(expand-file-name "snippets/" (file-name-directory load-file-name)))
@ -12,19 +12,19 @@
;; the right side of the frame (which causes display glitches). I fix this by
;; simply cycling fullscreen:
(when (and (display-graphic-p) IS-LINUX)
(@add-hook 'after-init-hook
(add-hook! 'after-init-hook
(set-frame-parameter nil 'fullscreen 'fullboth)
(set-frame-parameter nil 'fullscreen nil)))
;; Don't use default snippets, use mine.
(@after yasnippet
(after! yasnippet
(setq yas-snippet-dirs (append (list '+hlissner-snippets-dir)
(delete 'yas-installed-snippets-dir yas-snippet-dirs))))
;; Repeat all sorts of motion and searches with SPC & C-SPC
(defmacro +my@repeat-with-spc (command next-func prev-func)
(defmacro +my!repeat-with-spc (command next-func prev-func)
"Repeat motions with SPC/S-SPC"
(let ((fn-sym (intern (format "+evil*repeat-%s" command))))
`(progn
@ -33,31 +33,31 @@
(define-key evil-motion-state-map (kbd "S-SPC") ',prev-func))
(advice-add ',command :before ',fn-sym))))
(@after evil
(after! evil
;; n/N
(+my@repeat-with-spc evil-ex-search-next evil-ex-search-next evil-ex-search-previous)
(+my@repeat-with-spc evil-ex-search-previous evil-ex-search-next evil-ex-search-previous)
(+my@repeat-with-spc evil-ex-search-forward evil-ex-search-next evil-ex-search-previous)
(+my@repeat-with-spc evil-ex-search-backward evil-ex-search-next evil-ex-search-previous)
(+my!repeat-with-spc evil-ex-search-next evil-ex-search-next evil-ex-search-previous)
(+my!repeat-with-spc evil-ex-search-previous evil-ex-search-next evil-ex-search-previous)
(+my!repeat-with-spc evil-ex-search-forward evil-ex-search-next evil-ex-search-previous)
(+my!repeat-with-spc evil-ex-search-backward evil-ex-search-next evil-ex-search-previous)
;; f/F/t/T/s/S
(@after evil-snipe
(after! evil-snipe
(setq evil-snipe-repeat-keys nil
evil-snipe-override-evil-repeat-keys nil) ; causes problems with remapped ;
(+my@repeat-with-spc evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse)
(+my@repeat-with-spc evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse))
(+my!repeat-with-spc evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse)
(+my!repeat-with-spc evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse))
;; */#
(@after evil-visualstar
(+my@repeat-with-spc evil-visualstar/begin-search-forward
(after! evil-visualstar
(+my!repeat-with-spc evil-visualstar/begin-search-forward
evil-ex-search-next evil-ex-search-previous)
(+my@repeat-with-spc evil-visualstar/begin-search-backward
(+my!repeat-with-spc evil-visualstar/begin-search-backward
evil-ex-search-previous evil-ex-search-next)))

View file

@ -32,7 +32,7 @@
;; Packages
;;
(@def-package dired-k
(def-package! dired-k
:after dired
:config
(setq dired-k-style 'git)
@ -40,7 +40,7 @@
(add-hook 'dired-after-readin-hook #'dired-k-no-revert))
;; Striped dired buffers
(@def-package stripe-buffer
(def-package! stripe-buffer
:commands stripe-buffer-mode
:init (add-hook 'dired-mode-hook 'stripe-buffer-mode))

View file

@ -1,6 +1,6 @@
;; -*- no-byte-compile: t; -*-
;;; emacs/dired/packages.el
(@package dired-k)
(@package stripe-buffer)
(package! dired-k)
(package! stripe-buffer)

View file

@ -18,7 +18,7 @@
(concat "\\<" (regexp-opt doom-electric-indent-words))))))
electric-indent-functions)
(@def-setting :electric (modes &rest plist)
(def-setting! :electric (modes &rest plist)
"Declare :words (list of strings) or :chars (lists of chars) in MODES that
trigger electric indentation."
(declare (indent 1))
@ -32,5 +32,5 @@ trigger electric indentation."
(electric-indent-local-mode +1)
,(if chars `(setq electric-indent-chars ',chars))
,(if words `(setq doom-electric-indent-words ',words)))
(@add-hook ,modes ',fn-name))))))
(add-hook! ,modes ',fn-name))))))

View file

@ -25,7 +25,7 @@
"Open eshell in a separate workspace. Requires the (:feature workspaces)
module to be loaded."
(interactive)
(unless (@featurep :feature workspaces)
(unless (featurep! :feature workspaces)
(user-error ":feature workspaces is required, but disabled"))
(unless (+workspace-get "eshell" t)
(+workspace/new "eshell"))

View file

@ -10,7 +10,7 @@
(defvar +eshell-buffers '()
"TODO")
(@def-package eshell ; built-in
(def-package! eshell ; built-in
:init
(setq eshell-directory-name (concat doom-cache-dir "/eshell")
eshell-scroll-to-bottom-on-input 'all
@ -25,13 +25,13 @@
eshell-aliases-file "~/.eshell-aliases")
:config
(@set :popup "^\\*eshell:popup\\*$" :regexp t :size 25)
(@set :evil-state 'eshell-mode 'insert)
(set! :popup "^\\*eshell:popup\\*$" :regexp t :size 25)
(set! :evil-state 'eshell-mode 'insert)
(defun +eshell|keymap-setup ()
"Setup eshell keybindings. This must be done in a hook because eshell
redefines its keys every time `eshell-mode' is enabled."
(@map :map eshell-mode-map
(map! :map eshell-mode-map
:n "i" '+eshell/evil-prepend-maybe
:n "I" '+eshell/evil-prepend
:n "a" '+eshell/evil-append-maybe
@ -55,7 +55,7 @@ redefines its keys every time `eshell-mode' is enabled."
(setq +eshell-buffers (delete (current-buffer) +eshell-buffers))
(cond ((doom-popup-p)
(delete-window))
((and (@featurep :feature workspaces)
((and (featurep! :feature workspaces)
(string= "eshell" (+workspace-current-name)))
(+workspace/close-window-or-workspace))))
(add-hook 'eshell-exit-hook 'doom|eshell-cleanup)
@ -67,7 +67,7 @@ redefines its keys every time `eshell-mode' is enabled."
(add-hook 'eshell-mode-hook 'doom-hide-modeline-mode)
(@add-hook eshell-mode
(add-hook! eshell-mode
(add-hook 'evil-insert-state-exit-hook 'hl-line-mode nil t)
(add-hook 'evil-insert-state-entry-hook (lambda () (hl-line-mode -1)) nil t))

View file

@ -17,28 +17,28 @@
(message "Running: %s" command)
(shell-command command)))
(defmacro +macos@open-with (id &optional app dir)
(defmacro +macos!open-with (id &optional app dir)
`(defun ,(intern (format "+macos/%s" id)) ()
(interactive)
(+macos-open-with ,app ,dir)))
;;;###autoload (autoload '+macos/open-in-default-program "os/macos/autoload" nil t)
(+macos@open-with open-in-default-program)
(+macos!open-with open-in-default-program)
;;;###autoload (autoload '+macos/reveal-in-finder "os/macos/autoload" nil t)
(+macos@open-with reveal-in-finder "Finder" default-directory)
(+macos!open-with reveal-in-finder "Finder" default-directory)
;;;###autoload (autoload '+macos/reveal-project-in-finder "os/macos/autoload" nil t)
(+macos@open-with reveal-project-in-finder "Finder" (doom-project-root))
(+macos!open-with reveal-project-in-finder "Finder" (doom-project-root))
;;;###autoload (autoload '+macos/send-to-transmit "os/macos/autoload" nil t)
(+macos@open-with send-to-transmit "Transmit")
(+macos!open-with send-to-transmit "Transmit")
;;;###autoload (autoload '+macos/send-cwd-to-transmit "os/macos/autoload" nil t)
(+macos@open-with send-cwd-to-transmit "Transmit" default-directory)
(+macos!open-with send-cwd-to-transmit "Transmit" default-directory)
;;;###autoload (autoload '+macos/send-to-launchbar "os/macos/autoload" nil t)
(+macos@open-with send-to-launchbar "LaunchBar")
(+macos!open-with send-to-launchbar "LaunchBar")
;;;###autoload (autoload '+macos/send-project-to-launchbar "os/macos/autoload" nil t)
(+macos@open-with send-project-to-launchbar "LaunchBar" (doom-project-root))
(+macos!open-with send-project-to-launchbar "LaunchBar" (doom-project-root))

View file

@ -1,9 +1,9 @@
;;; lang/rest/config.el
(@def-package restclient
(def-package! restclient
:commands restclient-mode
:mode ("\\.http$" . restclient-mode))
(@def-package company-restclient
(def-package! company-restclient
:after restclient
:config (@set :company-backend 'restclient-mode '(company-restclient)))
:config (set! :company-backend 'restclient-mode '(company-restclient)))

View file

@ -1,7 +1,7 @@
;; -*- no-byte-compile: t; -*-
;;; lang/rest/packages.el
(@package restclient)
(when (@featurep :completion company)
(@package company-restclient))
(package! restclient)
(when (featurep! :completion company)
(package! company-restclient))

View file

@ -1,12 +1,12 @@
;;; tools/rotate-text/config.el
(@def-package rotate-text
(def-package! rotate-text
:commands (rotate-text rotate-text-backward)
:config
(push '("true" "false") rotate-text-words))
(@def-setting :rotate (modes &rest plist)
(def-setting! :rotate (modes &rest plist)
"Declare :symbols, :words or :patterns that `rotate-text' will cycle through."
(declare (indent 1))
(let ((modes (if (listp modes) modes (list modes)))
@ -21,5 +21,5 @@
,(if symbols `(setq rotate-text-local-symbols ',symbols))
,(if words `(setq rotate-text-local-words ',words))
,(if patterns `(setq rotate-text-local-patterns ',patterns)))
(@add-hook ,modes ',fn-name))))))
(add-hook! ,modes ',fn-name))))))

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*-
;;; tools/rotate-text/packages.el
(@package rotate-text :recipe (:fetcher github :repo "debug-ito/rotate-text.el"))
(package! rotate-text :recipe (:fetcher github :repo "debug-ito/rotate-text.el"))

Some files were not shown because too many files have changed in this diff Show more