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

@ -22,7 +22,7 @@
(puthash args (apply ',func args) doom-memoized-table)))) (puthash args (apply ',func args) doom-memoized-table))))
;;;###autoload ;;;###autoload
(defmacro @def-memoized (name arglist &rest body) (defmacro def-memoized! (name arglist &rest body)
"Create a memoize'd function. NAME, ARGLIST, DOCSTRING and BODY "Create a memoize'd function. NAME, ARGLIST, DOCSTRING and BODY
have the same meaning as in `defun'." have the same meaning as in `defun'."
(declare (indent defun) (doc-string 3)) (declare (indent defun) (doc-string 3))

View file

@ -9,15 +9,15 @@
;; regular plists. ;; regular plists.
;; ;;
;; (let ((a '(abc :commands 1 :config 3 4 5))) ;; (let ((a '(abc :commands 1 :config 3 4 5)))
;; (@mplist a &delete :commands :config)) ;; (mplist! a &delete :commands :config))
;;;###autoload ;;;###autoload
(defmacro @mplist (var action &rest args) (defmacro mplist! (var action &rest args)
"A helper macro that makes dealing with doom-mplist-* functions a little more concise. "A helper macro that makes dealing with doom-mplist-* functions a little more concise.
Examples: Examples:
(@mplist plist &delete :x :y) (mplist! plist &delete :x :y)
(@mplist plist &get :x)" (mplist! plist &get :x)"
(declare (indent defun)) (declare (indent defun))
(let ((fn-sym (intern (format "doom-mplist-%s" (substring (symbol-name action) 1))))) (let ((fn-sym (intern (format "doom-mplist-%s" (substring (symbol-name action) 1)))))
(when (fboundp fn-sym) (when (fboundp fn-sym)

View file

@ -102,7 +102,7 @@ Used by `doom/packages-autoremove'."
(defun doom-get-missing-packages () (defun doom-get-missing-packages ()
"Return a list of requested packages that aren't installed or built-in. Each "Return a list of requested packages that aren't installed or built-in. Each
element is a list whose CAR is the package symbol, and whose CDR is a plist element is a list whose CAR is the package symbol, and whose CDR is a plist
taken from that package's `@package' declaration. taken from that package's `package!' declaration.
Used by `doom/packages-install'." Used by `doom/packages-install'."
(cl-remove-if (lambda (pkgsym) (cl-remove-if (lambda (pkgsym)

View file

@ -55,10 +55,10 @@
recentf-max-menu-items 0 recentf-max-menu-items 0
recentf-max-saved-items 250 recentf-max-saved-items 250
recentf-filename-handlers '(abbreviate-file-name)) recentf-filename-handlers '(abbreviate-file-name))
(@quiet (recentf-mode 1)) (quiet! (recentf-mode 1))
;; Ediff ;; Ediff
(@add-hook ediff-load (add-hook! ediff-load
(setq ediff-diff-options "-w" (setq ediff-diff-options "-w"
ediff-split-window-function 'split-window-horizontally ediff-split-window-function 'split-window-horizontally
ediff-window-setup-function 'ediff-setup-windows-plain)) ; no extra frames ediff-window-setup-function 'ediff-setup-windows-plain)) ; no extra frames
@ -85,15 +85,15 @@
;; Handles whitespace (tabs/spaces) settings externally. This way projects can ;; Handles whitespace (tabs/spaces) settings externally. This way projects can
;; specify their own formatting rules. ;; specify their own formatting rules.
(@def-package editorconfig :demand t (def-package! editorconfig :demand t
:mode ("\\.?editorconfig$" . editorconfig-conf-mode) :mode ("\\.?editorconfig$" . editorconfig-conf-mode)
:config (editorconfig-mode +1) :config (editorconfig-mode +1)
;; Show whitespace in tabs indentation mode ;; Show whitespace in tabs indentation mode
(@add-hook 'editorconfig-custom-hooks (add-hook! 'editorconfig-custom-hooks
(if indent-tabs-mode (whitespace-mode +1)))) (if indent-tabs-mode (whitespace-mode +1))))
;; Auto-close delimiters and blocks as you type ;; Auto-close delimiters and blocks as you type
(@def-package smartparens :demand t (def-package! smartparens :demand t
:init :init
(setq sp-autowrap-region nil ; let evil-surround handle this (setq sp-autowrap-region nil ; let evil-surround handle this
sp-highlight-pair-overlay nil sp-highlight-pair-overlay nil
@ -129,49 +129,49 @@
;; Autoloaded Plugins ;; Autoloaded Plugins
;; ;;
(@def-package ace-link (def-package! ace-link
:commands (ace-link-help ace-link-org)) :commands (ace-link-help ace-link-org))
(@def-package ace-window (def-package! ace-window
:commands ace-window :commands ace-window
:config :config
(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)
aw-scope 'frame aw-scope 'frame
aw-background t)) aw-background t))
(@def-package avy (def-package! avy
:commands (avy-goto-char-2 avy-goto-line) :commands (avy-goto-char-2 avy-goto-line)
:config :config
(setq avy-all-windows nil (setq avy-all-windows nil
avy-background t)) avy-background t))
(@def-package command-log-mode (def-package! command-log-mode
:commands (command-log-mode global-command-log-mode) :commands (command-log-mode global-command-log-mode)
:config :config
(@set :popup "*command-log*" :size 40 :align 'right :noselect t) (set! :popup "*command-log*" :size 40 :align 'right :noselect t)
(setq command-log-mode-auto-show t (setq command-log-mode-auto-show t
command-log-mode-open-log-turns-on-mode t)) command-log-mode-open-log-turns-on-mode t))
(@def-package expand-region (def-package! expand-region
:commands (er/expand-region er/contract-region er/mark-symbol er/mark-word)) :commands (er/expand-region er/contract-region er/mark-symbol er/mark-word))
(@def-package goto-last-change :commands goto-last-change) (def-package! goto-last-change :commands goto-last-change)
(@def-package help-fns+ ; Improved help commands (def-package! help-fns+ ; Improved help commands
:commands (describe-buffer describe-command describe-file :commands (describe-buffer describe-command describe-file
describe-keymap describe-option describe-option-of-type)) describe-keymap describe-option describe-option-of-type))
(@def-package imenu-anywhere (def-package! imenu-anywhere
:commands (ido-imenu-anywhere ivy-imenu-anywhere helm-imenu-anywhere)) :commands (ido-imenu-anywhere ivy-imenu-anywhere helm-imenu-anywhere))
(@def-package imenu-list :commands imenu-list-minor-mode) (def-package! imenu-list :commands imenu-list-minor-mode)
(@def-package pcre2el :commands rxt-quote-pcre) (def-package! pcre2el :commands rxt-quote-pcre)
(@def-package smart-forward (def-package! smart-forward
:commands (smart-up smart-down smart-backward smart-forward)) :commands (smart-up smart-down smart-backward smart-forward))
(@def-package wgrep (def-package! wgrep
:commands (wgrep-setup wgrep-change-to-wgrep-mode) :commands (wgrep-setup wgrep-change-to-wgrep-mode)
:config :config
(setq wgrep-auto-save-buffer t) (setq wgrep-auto-save-buffer t)

View file

@ -12,7 +12,7 @@
(defvar doom--which-key-defs '(nil)) (defvar doom--which-key-defs '(nil))
(@def-package which-key (def-package! which-key
:defer 1 :defer 1
:config :config
(setq which-key-sort-order 'which-key-prefix-then-key-order (setq which-key-sort-order 'which-key-prefix-then-key-order
@ -50,7 +50,7 @@
state)) state))
(split-string (substring (symbol-name keyword) 1) "" t))))) (split-string (substring (symbol-name keyword) 1) "" t)))))
;; Register keywords for proper indentation (see `@map') ;; Register keywords for proper indentation (see `map!')
(put ':prefix 'lisp-indent-function 'defun) (put ':prefix 'lisp-indent-function 'defun)
(put ':map 'lisp-indent-function 'defun) (put ':map 'lisp-indent-function 'defun)
(put ':map* 'lisp-indent-function 'defun) (put ':map* 'lisp-indent-function 'defun)
@ -59,7 +59,7 @@
(put ':unless 'lisp-indent-function 'defun) (put ':unless 'lisp-indent-function 'defun)
(put ':desc 'lisp-indent-function 'defun) (put ':desc 'lisp-indent-function 'defun)
(defmacro @map (&rest rest) (defmacro map! (&rest rest)
"A nightmare of a key-binding macro that will use `evil-define-key*', "A nightmare of a key-binding macro that will use `evil-define-key*',
`define-key', `local-set-key' and `global-set-key' depending on context and `define-key', `local-set-key' and `global-set-key' depending on context and
plist key flags (and whether evil is loaded or not). It was designed to make plist key flags (and whether evil is loaded or not). It was designed to make
@ -96,7 +96,7 @@ Conditional keybinds
(:unless [CONDITION] [...]) (:unless [CONDITION] [...])
Example Example
(@map :map magit-mode-map (map! :map magit-mode-map
:m \"C-r\" 'do-something ; assign C-r in motion state :m \"C-r\" 'do-something ; assign C-r in motion state
:nv \"q\" 'magit-mode-quit-window ; assign to 'q' in normal and visual states :nv \"q\" 'magit-mode-quit-window ; assign to 'q' in normal and visual states
\"C-x C-r\" 'a-global-keybind \"C-x C-r\" 'a-global-keybind
@ -113,7 +113,7 @@ Example
(cond (cond
;; it's a sub expr ;; it's a sub expr
((listp key) ((listp key)
(push (macroexpand `(@map ,@key)) forms)) (push (macroexpand `(map! ,@key)) forms))
;; it's a flag ;; it's a flag
((keywordp key) ((keywordp key)
@ -126,9 +126,9 @@ Example
(setq key :prefix (setq key :prefix
desc "<localleader>"))) desc "<localleader>")))
(pcase key (pcase key
(:when (prog1 `((if ,(pop rest) ,(macroexpand `(@map ,@rest)))) (setq rest '()))) (:when (prog1 `((if ,(pop rest) ,(macroexpand `(map! ,@rest)))) (setq rest '())))
(:unless (prog1 `((if (not ,(pop rest)) ,(macroexpand `(@map ,@rest)))) (setq rest '()))) (:unless (prog1 `((if (not ,(pop rest)) ,(macroexpand `(map! ,@rest)))) (setq rest '())))
(:after (prog1 `((@after ,(pop rest) ,(macroexpand `(@map ,@rest)))) (setq rest '()))) (:after (prog1 `((after! ,(pop rest) ,(macroexpand `(map! ,@rest)))) (setq rest '())))
(:desc (setq desc (pop rest))) (:desc (setq desc (pop rest)))
(:map* (setq defer t) (push :map rest)) (:map* (setq defer t) (push :map rest))
(:map (:map
@ -166,7 +166,7 @@ Example
(when prefix (when prefix
(setq key (append prefix (list key)))) (setq key (append prefix (list key))))
(unless (> (length rest) 0) (unless (> (length rest) 0)
(user-error "@map has no definition for %s key" key)) (user-error "map! has no definition for %s key" key))
(setq def (pop rest)) (setq def (pop rest))
(when desc (when desc
(push `(nconc doom--which-key-defs (list ,(key-description (eval key)) ,desc)) (push `(nconc doom--which-key-defs (list ,(key-description (eval key)) ,desc))

View file

@ -42,12 +42,12 @@
;; Library ;; Library
;; ;;
(defmacro @λ (&rest body) (defmacro λ! (&rest body)
"A shortcut for inline interactive lambdas." "A shortcut for inline interactive lambdas."
(declare (doc-string 1)) (declare (doc-string 1))
`(lambda () (interactive) ,@body)) `(lambda () (interactive) ,@body))
(defmacro @after (feature &rest forms) (defmacro after! (feature &rest forms)
"A smart wrapper around `with-eval-after-load'. Supresses warnings during "A smart wrapper around `with-eval-after-load'. Supresses warnings during
compilation." compilation."
(declare (indent defun) (debug t)) (declare (indent defun) (debug t))
@ -60,7 +60,7 @@ compilation."
'with-no-warnings) 'with-no-warnings)
(with-eval-after-load ',feature ,@forms))) (with-eval-after-load ',feature ,@forms)))
(defmacro @quiet (&rest forms) (defmacro quiet! (&rest forms)
"Run FORMS without making any noise." "Run FORMS without making any noise."
`(if doom-debug-mode `(if doom-debug-mode
(progn ,@forms) (progn ,@forms)
@ -77,7 +77,7 @@ compilation."
(save-silently t)) (save-silently t))
,@forms))) ,@forms)))
(defmacro @add-hook (hook &rest func-or-forms) (defmacro add-hook! (hook &rest func-or-forms)
"A convenience macro for `add-hook'. "A convenience macro for `add-hook'.
HOOK can be one hook or a list of hooks. If the hook(s) are not quoted, -hook is HOOK can be one hook or a list of hooks. If the hook(s) are not quoted, -hook is
@ -88,14 +88,14 @@ will be wrapped in a lambda. A list of symbols will expand into a series of
add-hook calls. add-hook calls.
Examples: Examples:
(@add-hook 'some-mode-hook 'enable-something) (add-hook! 'some-mode-hook 'enable-something)
(@add-hook some-mode '(enable-something and-another)) (add-hook! some-mode '(enable-something and-another))
(@add-hook '(one-mode-hook second-mode-hook) 'enable-something) (add-hook! '(one-mode-hook second-mode-hook) 'enable-something)
(@add-hook (one-mode second-mode) 'enable-something) (add-hook! (one-mode second-mode) 'enable-something)
(@add-hook (one-mode second-mode) (setq v 5) (setq a 2))" (add-hook! (one-mode second-mode) (setq v 5) (setq a 2))"
(declare (indent defun) (debug t)) (declare (indent defun) (debug t))
(unless func-or-forms (unless func-or-forms
(error "@add-hook: FUNC-OR-FORMS is empty")) (error "add-hook!: FUNC-OR-FORMS is empty"))
(let* ((val (car func-or-forms)) (let* ((val (car func-or-forms))
(quoted-p (eq (car-safe hook) 'quote)) (quoted-p (eq (car-safe hook) 'quote))
(hook (if quoted-p (cadr hook) hook)) (hook (if quoted-p (cadr hook) hook))
@ -113,7 +113,7 @@ Examples:
forms))) forms)))
`(progn ,@(reverse forms)))) `(progn ,@(reverse forms))))
(defmacro @associate (mode &rest plist) (defmacro associate! (mode &rest plist)
"Associate a major or minor mode to certain patterns and project files." "Associate a major or minor mode to certain patterns and project files."
(declare (indent 1)) (declare (indent 1))
(unless noninteractive (unless noninteractive
@ -126,7 +126,7 @@ Examples:
(when (and files (when (and files
(not (or (listp files) (not (or (listp files)
(stringp files)))) (stringp files))))
(user-error "@associate :files expects a string or list of strings")) (user-error "associate! :files expects a string or list of strings"))
(let ((hook-name (intern (format "doom--init-mode-%s" mode)))) (let ((hook-name (intern (format "doom--init-mode-%s" mode))))
(macroexp-progn (macroexp-progn
(list `(defun ,hook-name () (list `(defun ,hook-name ()
@ -146,21 +146,21 @@ Examples:
(match (match
`(add-to-list ',(if minor 'doom-auto-minor-mode-alist 'auto-mode-alist) `(add-to-list ',(if minor 'doom-auto-minor-mode-alist 'auto-mode-alist)
(cons ,match ',mode))) (cons ,match ',mode)))
(t (user-error "@associate invalid rules for mode [%s] (in %s) (match %s) (files %s)" (t (user-error "associate! invalid rules for mode [%s] (in %s) (match %s) (files %s)"
mode in match files)))))) mode in match files))))))
;; Provides a centralized configuration system that a) won't evaluate its ;; Provides a centralized configuration system that a) won't evaluate its
;; arguments if it doesn't need to (performance), b) won't complain if the ;; arguments if it doesn't need to (performance), b) won't complain if the
;; setting doesn't exist and c) is more elegant than a bunch of `@after' blocks, ;; setting doesn't exist and c) is more elegant than a bunch of `after!' blocks,
;; which can cause intermittent stuttering in large quantities. I'm a fan of ;; which can cause intermittent stuttering in large quantities. I'm a fan of
;; concise, do-what-I-mean front-facing configuration, believe it or not. ;; concise, do-what-I-mean front-facing configuration, believe it or not.
;; ;;
;; Plus, it can benefit from byte-compilation. ;; Plus, it can benefit from byte-compilation.
(defmacro @def-setting (keyword arglist &optional docstring &rest forms) (defmacro def-setting! (keyword arglist &optional docstring &rest forms)
"Define a setting macro. Like `defmacro', this should return a form to be "Define a setting macro. Like `defmacro', this should return a form to be
executed when called with `@set'. FORMS are not evaluated until `@set' calls it." executed when called with `set!'. FORMS are not evaluated until `set!' calls it."
(declare (indent defun) (doc-string 3)) (declare (indent defun) (doc-string 3))
(unless (keywordp keyword) (unless (keywordp keyword)
(error "Not a valid property name: %s" keyword)) (error "Not a valid property name: %s" keyword))
@ -168,11 +168,11 @@ executed when called with `@set'. FORMS are not evaluated until `@set' calls it.
,docstring ,docstring
,@forms)) ,@forms))
(defmacro @set (keyword &rest values) (defmacro set! (keyword &rest values)
"Set an option defined by `@def-setting'. Skip if doesn't exist." "Set an option defined by `def-setting!'. Skip if doesn't exist."
(declare (indent defun)) (declare (indent defun))
(unless values (unless values
(error "Empty @set for %s" keyword)) (error "Empty set! for %s" keyword))
(let ((fn (intern (format "doom-setting--setter%s" keyword)))) (let ((fn (intern (format "doom-setting--setter%s" keyword))))
(if (functionp fn) (if (functionp fn)
(apply fn (eval `(list ,@values))) (apply fn (eval `(list ,@values)))

View file

@ -38,7 +38,7 @@
(when (require 'osx-clipboard nil t) (when (require 'osx-clipboard nil t)
(osx-clipboard-mode +1)))) (osx-clipboard-mode +1))))
(@after evil (after! evil
;; On OSX, stop copying each visual state move to the clipboard: ;; On OSX, stop copying each visual state move to the clipboard:
;; https://bitbucket.org/lyro/evil/issue/336/osx-visual-state-copies-the-region-on ;; https://bitbucket.org/lyro/evil/issue/336/osx-visual-state-copies-the-region-on
;; Most of this code grokked from: ;; Most of this code grokked from:

View file

@ -51,7 +51,7 @@ This will be nil if you have byte-compiled your configuration (as intended).")
(defvar doom-packages nil (defvar doom-packages nil
"A list of enabled packages. Each element is a sublist, whose CAR is the "A list of enabled packages. Each element is a sublist, whose CAR is the
package's name as a symbol, and whose CDR is the plist supplied to its package's name as a symbol, and whose CDR is the plist supplied to its
`@package' declaration. Set by `doom-initialize-packages'.") `package!' declaration. Set by `doom-initialize-packages'.")
(defvar doom-protected-packages (defvar doom-protected-packages
'(persistent-soft quelpa use-package) '(persistent-soft quelpa use-package)
@ -65,7 +65,7 @@ missing) and shouldn't be deleted.")
(append (list doom-core-dir doom-modules-dir) (append (list doom-core-dir doom-modules-dir)
load-path) load-path)
"A backup of `load-path' before it was altered by `doom-initialize'. Used as a "A backup of `load-path' before it was altered by `doom-initialize'. Used as a
base when running `doom/reload', or by `@doom', for calculating how many base when running `doom/reload', or by `doom!', for calculating how many
packages exist.") packages exist.")
(setq load-prefer-newer nil (setq load-prefer-newer nil
@ -150,7 +150,7 @@ to speed up startup."
"Ensures that `doom-autoload-file' exists and is loaded. Otherwise run "Ensures that `doom-autoload-file' exists and is loaded. Otherwise run
`doom/reload-autoloads' to generate it." `doom/reload-autoloads' to generate it."
(unless (file-exists-p doom-autoload-file) (unless (file-exists-p doom-autoload-file)
(@quiet (doom/reload-autoloads)))) (quiet! (doom/reload-autoloads))))
(defun doom-initialize-packages (&optional force-p load-p) (defun doom-initialize-packages (&optional force-p load-p)
"Crawls across your emacs.d in order to fill `doom-modules' (from init.el) and "Crawls across your emacs.d in order to fill `doom-modules' (from init.el) and
@ -189,7 +189,7 @@ files."
(cond ((keywordp m) (cond ((keywordp m)
(setq mode m)) (setq mode m))
((not mode) ((not mode)
(error "No namespace specified on `@doom' for %s" m)) (error "No namespace specified on `doom!' for %s" m))
((eq m '*) ((eq m '*)
(doom-initialize-modules (doom-initialize-modules
(cons mode (cons mode
@ -243,7 +243,7 @@ the file exists."
FORCE-P is non-nil). MODULE is a keyword, SUBMODULE is a symbol. e.g. :lang FORCE-P is non-nil). MODULE is a keyword, SUBMODULE is a symbol. e.g. :lang
'emacs-lisp. 'emacs-lisp.
Used by `@require' and `@depends-on'." Used by `require!' and `depends-on!'."
(unless (or force-p (doom-module-loaded-p module submodule)) (unless (or force-p (doom-module-loaded-p module submodule))
(puthash (cons module submodule) t doom-modules))) (puthash (cons module submodule) t doom-modules)))
@ -259,7 +259,7 @@ Used by `@require' and `@depends-on'."
(autoload 'use-package "use-package" nil nil 'macro) (autoload 'use-package "use-package" nil nil 'macro)
(defmacro @doom (&rest modules) (defmacro doom! (&rest modules)
"DOOM Emacs bootstrap macro. List the modules to load. Benefits from "DOOM Emacs bootstrap macro. List the modules to load. Benefits from
byte-compilation." byte-compilation."
(doom-initialize-modules modules) (doom-initialize-modules modules)
@ -267,7 +267,7 @@ byte-compilation."
(setq doom-modules ',doom-modules) (setq doom-modules ',doom-modules)
(unless noninteractive (unless noninteractive
,@(mapcar (lambda (module) `(@require ,(car module) ,(cdr module) t)) ,@(mapcar (lambda (module) `(require! ,(car module) ,(cdr module) t))
(doom--module-pairs)) (doom--module-pairs))
(when (display-graphic-p) (when (display-graphic-p)
@ -278,15 +278,15 @@ byte-compilation."
;; Benchmark ;; Benchmark
(add-hook 'after-init-hook 'doom--display-benchmark t)))) (add-hook 'after-init-hook 'doom--display-benchmark t))))
(defmacro @def-package (name &rest plist) (defmacro def-package! (name &rest plist)
"Defines and configures a package using `use-package'. Packages are deferred "Defines and configures a package using `use-package'. Packages are deferred
by default. If the package isn't installed or loaded, `@def-package' is by default. If the package isn't installed or loaded, `def-package!' is
ignored." ignored."
(when (or (featurep name) (when (or (featurep name)
(package-installed-p name)) (package-installed-p name))
`(use-package ,name ,@plist))) `(use-package ,name ,@plist)))
(defmacro @load (filesym &optional path noerror) (defmacro load! (filesym &optional path noerror)
"Loads a file relative to the current module (or PATH). FILESYM is a file path "Loads a file relative to the current module (or PATH). FILESYM is a file path
as a symbol. PATH is a directory to prefix it with. If NOERROR is non-nil, don't as a symbol. PATH is a directory to prefix it with. If NOERROR is non-nil, don't
throw an error if the file doesn't exist." throw an error if the file doesn't exist."
@ -304,9 +304,9 @@ throw an error if the file doesn't exist."
(if (file-exists-p file) (if (file-exists-p file)
`(load ,(file-name-sans-extension file) ,noerror (not doom-debug-mode)) `(load ,(file-name-sans-extension file) ,noerror (not doom-debug-mode))
(unless noerror (unless noerror
(error "Could not @load file %s" file)))))) (error "Could not load! file %s" file))))))
(defmacro @require (module submodule &optional reload-p) (defmacro require! (module submodule &optional reload-p)
"Like `require', but for doom modules. Will load a module's config.el file if "Like `require', but for doom modules. Will load a module's config.el file if
it hasn't already, and if it exists." it hasn't already, and if it exists."
(when (or (not noninteractive) (when (or (not noninteractive)
@ -315,9 +315,9 @@ it hasn't already, and if it exists."
(when (or reload-p (not loaded-p)) (when (or reload-p (not loaded-p))
(unless loaded-p (unless loaded-p
(doom--enable-module module submodule t)) (doom--enable-module module submodule t))
`(@load config ,(doom-module-path module submodule) t))))) `(load! config ,(doom-module-path module submodule) t)))))
(defmacro @featurep (module submodule) (defmacro featurep! (module submodule)
"Convenience macro that wraps `doom-module-loaded-p'." "Convenience macro that wraps `doom-module-loaded-p'."
`(doom-module-loaded-p ,module ',submodule)) `(doom-module-loaded-p ,module ',submodule))
@ -326,7 +326,7 @@ it hasn't already, and if it exists."
;; Declarative macros ;; Declarative macros
;; ;;
(defmacro @package (name &rest plist) (defmacro package! (name &rest plist)
"Declares a package and how to install it (if applicable). This does not load "Declares a package and how to install it (if applicable). This does not load
nor install them. nor install them.
@ -359,11 +359,11 @@ them."
(assq-delete-all ',name doom-packages)) (assq-delete-all ',name doom-packages))
(push ',(cons name plist) doom-packages)))) (push ',(cons name plist) doom-packages))))
(defmacro @depends-on (module submodule) (defmacro depends-on! (module submodule)
"Declares that this module depends on another. MODULE is a keyword, and "Declares that this module depends on another. MODULE is a keyword, and
SUBMODULE is a symbol." SUBMODULE is a symbol."
(doom--enable-module module submodule) (doom--enable-module module submodule)
`(@load packages ,(doom-module-path module submodule) t)) `(load! packages ,(doom-module-path module submodule) t))
;; ;;
@ -402,7 +402,7 @@ the commandline."
;; Make evil.el autoload files a special case; don't load them ;; Make evil.el autoload files a special case; don't load them
;; unless evil is enabled. ;; unless evil is enabled.
(unless (and (equal (file-name-nondirectory file) "evil.el") (unless (and (equal (file-name-nondirectory file) "evil.el")
(not (@featurep :feature evil))) (not (featurep! :feature evil)))
(push file autoload-files))) (push file autoload-files)))
(file-expand-wildcards (expand-file-name "*.el" auto-dir) t))))) (file-expand-wildcards (expand-file-name "*.el" auto-dir) t)))))
(when (file-exists-p generated-autoload-file) (when (file-exists-p generated-autoload-file)

View file

@ -38,7 +38,7 @@
"A list of window parameters that are set (and cleared) when `doom-popup-mode "A list of window parameters that are set (and cleared) when `doom-popup-mode
is enabled/disabled.'") is enabled/disabled.'")
(@def-setting :popup (&rest rules) (def-setting! :popup (&rest rules)
"Prepend a new popup rule to `shackle-rules'." "Prepend a new popup rule to `shackle-rules'."
(if (cl-every 'listp rules) (if (cl-every 'listp rules)
`(nconc shackle-rules ',rules) `(nconc shackle-rules ',rules)
@ -49,7 +49,7 @@ is enabled/disabled.'")
;; Bootstrap ;; Bootstrap
;; ;;
(@def-package shackle :demand t (def-package! shackle :demand t
:init :init
(setq shackle-default-alignment 'below (setq shackle-default-alignment 'below
;;; Baseline popup-window rules ;;; Baseline popup-window rules
@ -146,7 +146,7 @@ for :align t on every rule."
(set-window-parameter window param nil)))))) (set-window-parameter window param nil))))))
;; Hide modeline in completion popups ;; Hide modeline in completion popups
(@add-hook (completion-in-region-mode completion-list-mode) 'doom-hide-modeline-mode) (add-hook! (completion-in-region-mode completion-list-mode) 'doom-hide-modeline-mode)
;; ;;
(defun doom*popup-init (orig-fn &rest args) (defun doom*popup-init (orig-fn &rest args)
@ -203,7 +203,7 @@ properties."
;; Hacks ;; Hacks
;; ;;
(@after evil (after! evil
(let ((map doom-popup-mode-map)) (let ((map doom-popup-mode-map))
(define-key map [remap evil-window-delete] 'doom/popup-close) (define-key map [remap evil-window-delete] 'doom/popup-close)
(define-key map [remap evil-window-move-very-bottom] 'ignore) (define-key map [remap evil-window-move-very-bottom] 'ignore)
@ -269,7 +269,7 @@ the command buffer."
(advice-add 'windmove-find-other-window :override 'doom*ignore-window-parameters-in-popups)) (advice-add 'windmove-find-other-window :override 'doom*ignore-window-parameters-in-popups))
(@after help-mode (after! help-mode
;; Help buffers use `other-window' to decide where to open followed links, ;; Help buffers use `other-window' to decide where to open followed links,
;; which can be unpredictable. It should *only* replace the original buffer we ;; which can be unpredictable. It should *only* replace the original buffer we
;; opened the popup from. To fix this these three button ;; opened the popup from. To fix this these three button
@ -318,12 +318,12 @@ the command buffer."
(message "Unable to find location in file")))))) (message "Unable to find location in file"))))))
;; (@after magit ;; (after! magit
;; ;; Don't open files (from magit) within the magit popup ;; ;; Don't open files (from magit) within the magit popup
;; (advice-add 'magit-display-file-buffer-traditional :around 'doom*popups-save)) ;; (advice-add 'magit-display-file-buffer-traditional :around 'doom*popups-save))
(@after neotree (after! neotree
(defun doom*popups-save-neotree (orig-fn &rest args) (defun doom*popups-save-neotree (orig-fn &rest args)
"Prevents messing up the neotree buffer on window changes." "Prevents messing up the neotree buffer on window changes."
(let ((neo-p (and (featurep 'neotree) (let ((neo-p (and (featurep 'neotree)
@ -350,7 +350,7 @@ the command buffer."
(advice-add 'evil-window-move-far-right :around 'doom*popups-save-neotree)) (advice-add 'evil-window-move-far-right :around 'doom*popups-save-neotree))
(@add-hook org-load (add-hook! org-load
;; Ensures org-src-edit yields control of its buffer to shackle. ;; Ensures org-src-edit yields control of its buffer to shackle.
(defun doom*org-src-switch-to-buffer (buffer context) (pop-to-buffer buffer)) (defun doom*org-src-switch-to-buffer (buffer context) (pop-to-buffer buffer))
(advice-add 'org-src-switch-to-buffer :override 'doom*org-src-switch-to-buffer) (advice-add 'org-src-switch-to-buffer :override 'doom*org-src-switch-to-buffer)
@ -382,8 +382,8 @@ the command buffer."
(setq org-agenda-archives-mode nil (setq org-agenda-archives-mode nil
org-agenda-buffer nil)))) org-agenda-buffer nil))))
(@after org-agenda (after! org-agenda
(@after evil (after! evil
(evil-define-key* 'motion org-agenda-mode-map (evil-define-key* 'motion org-agenda-mode-map
[escape] 'doom/popup-org-agenda-quit [escape] 'doom/popup-org-agenda-quit
(kbd "ESC") 'doom/popup-org-agenda-quit)) (kbd "ESC") 'doom/popup-org-agenda-quit))
@ -393,8 +393,8 @@ the command buffer."
(define-key map "Q" 'doom/popup-org-agenda-quit)))) (define-key map "Q" 'doom/popup-org-agenda-quit))))
(@after repl-toggle (after! repl-toggle
(@add-hook doom-popup-close (add-hook! doom-popup-close
(setq rtog/--last-buffer nil))) (setq rtog/--last-buffer nil)))
(provide 'core-popups) (provide 'core-popups)

View file

@ -4,7 +4,7 @@
;; digging through project files and exposing an API I can use to make other ;; digging through project files and exposing an API I can use to make other
;; plugins/features project-aware. ;; plugins/features project-aware.
(@def-package projectile :demand t (def-package! projectile :demand t
:init :init
(setq projectile-cache-file (concat doom-cache-dir "projectile.cache") (setq projectile-cache-file (concat doom-cache-dir "projectile.cache")
projectile-enable-caching (not noninteractive) projectile-enable-caching (not noninteractive)

View file

@ -44,8 +44,8 @@
;; show typed keystrokes in minibuffer ;; show typed keystrokes in minibuffer
(setq echo-keystrokes 0.02) (setq echo-keystrokes 0.02)
;; ...but hide them while isearch is active ;; ...but hide them while isearch is active
(@add-hook isearch-mode (setq echo-keystrokes 0)) (add-hook! isearch-mode (setq echo-keystrokes 0))
(@add-hook isearch-mode-end (setq echo-keystrokes 0.02)) (add-hook! isearch-mode-end (setq echo-keystrokes 0.02))
;; A minor mode for toggling the mode-line ;; A minor mode for toggling the mode-line
(defvar doom--hidden-modeline-format nil (defvar doom--hidden-modeline-format nil
@ -90,7 +90,7 @@ disabled.")
(push (cons 'left-fringe doom-ui-fringe-size) default-frame-alist) (push (cons 'left-fringe doom-ui-fringe-size) default-frame-alist)
(push (cons 'right-fringe doom-ui-fringe-size) default-frame-alist) (push (cons 'right-fringe doom-ui-fringe-size) default-frame-alist)
;; no fringe in the minibuffer ;; no fringe in the minibuffer
(@add-hook (emacs-startup minibuffer-setup) (add-hook! (emacs-startup minibuffer-setup)
(set-window-fringes (minibuffer-window) 0 0 nil))) (set-window-fringes (minibuffer-window) 0 0 nil)))
@ -101,7 +101,7 @@ disabled.")
;; I modified the built-in `hideshow' package to enable itself when needed. A ;; I modified the built-in `hideshow' package to enable itself when needed. A
;; better, more vim-like code-folding plugin would be the `origami' plugin, but ;; better, more vim-like code-folding plugin would be the `origami' plugin, but
;; until certain breaking bugs are fixed in it, I won't switch over. ;; until certain breaking bugs are fixed in it, I won't switch over.
(@def-package hideshow ; built-in (def-package! hideshow ; built-in
:commands (hs-minor-mode hs-toggle-hiding hs-already-hidden-p) :commands (hs-minor-mode hs-toggle-hiding hs-already-hidden-p)
:init :init
(defun doom*autoload-hideshow () (defun doom*autoload-hideshow ()
@ -112,7 +112,7 @@ disabled.")
(setq hs-hide-comments-when-hiding-all nil)) (setq hs-hide-comments-when-hiding-all nil))
;; Show uninterrupted indentation markers with some whitespace voodoo. ;; Show uninterrupted indentation markers with some whitespace voodoo.
(@def-package highlight-indent-guides (def-package! highlight-indent-guides
:commands highlight-indent-guides-mode :commands highlight-indent-guides-mode
:config :config
(setq highlight-indent-guides-method 'character) (setq highlight-indent-guides-method 'character)
@ -154,7 +154,7 @@ file."
(set-buffer-modified-p nil)) (set-buffer-modified-p nil))
nil) nil)
(@add-hook highlight-indent-guides-mode (add-hook! highlight-indent-guides-mode
(if highlight-indent-guides-mode (if highlight-indent-guides-mode
(progn (progn
(doom|inject-trailing-whitespace) (doom|inject-trailing-whitespace)
@ -163,10 +163,10 @@ file."
(delete-trailing-whitespace)))) (delete-trailing-whitespace))))
;; For modes that don't adequately highlight numbers ;; For modes that don't adequately highlight numbers
(@def-package highlight-numbers :commands highlight-numbers-mode) (def-package! highlight-numbers :commands highlight-numbers-mode)
;; Line highlighting ;; Line highlighting
(@def-package hl-line ; built-in (def-package! hl-line ; built-in
:config :config
;; stickiness doesn't play nice with emacs 25+ ;; stickiness doesn't play nice with emacs 25+
(setq hl-line-sticky-flag nil (setq hl-line-sticky-flag nil
@ -174,35 +174,35 @@ file."
;; Line number column. A faster (or equivalent, in the worst case) line number ;; Line number column. A faster (or equivalent, in the worst case) line number
;; plugin than the built-in `linum'. ;; plugin than the built-in `linum'.
(@def-package nlinum (def-package! nlinum
:commands nlinum-mode :commands nlinum-mode
:preface :preface
(defvar linum-format "%3d ") (defvar linum-format "%3d ")
(defvar nlinum-format "%4d ") (defvar nlinum-format "%4d ")
:init :init
(@add-hook (add-hook!
(markdown-mode prog-mode scss-mode web-mode conf-mode groovy-mode (markdown-mode prog-mode scss-mode web-mode conf-mode groovy-mode
nxml-mode snippet-mode php-mode) nxml-mode snippet-mode php-mode)
'nlinum-mode) 'nlinum-mode)
:config :config
;; Optimization: calculate line number column width beforehand ;; Optimization: calculate line number column width beforehand
(@add-hook nlinum-mode (add-hook! nlinum-mode
(setq nlinum--width (length (save-excursion (goto-char (point-max)) (setq nlinum--width (length (save-excursion (goto-char (point-max))
(format-mode-line "%l"))))) (format-mode-line "%l")))))
;; Disable nlinum explicitly before making a frame, otherwise nlinum throws ;; Disable nlinum explicitly before making a frame, otherwise nlinum throws
;; linum face errors that prevent the frame from spawning. ;; linum face errors that prevent the frame from spawning.
(@add-hook '(before-make-frame-hook after-make-frame-functions) (add-hook! '(before-make-frame-hook after-make-frame-functions)
(nlinum-mode -1))) (nlinum-mode -1)))
;; Helps us distinguish stacked delimiter pairs. Especially in parentheses-drunk ;; Helps us distinguish stacked delimiter pairs. Especially in parentheses-drunk
;; languages like Lisp. ;; languages like Lisp.
(@def-package rainbow-delimiters (def-package! rainbow-delimiters
:commands rainbow-delimiters-mode :commands rainbow-delimiters-mode
:config (setq rainbow-delimiters-max-face-count 3) :config (setq rainbow-delimiters-max-face-count 3)
:init :init
(@add-hook (emacs-lisp-mode lisp-mode js-mode css-mode c-mode-common) (add-hook! (emacs-lisp-mode lisp-mode js-mode css-mode c-mode-common)
'rainbow-delimiters-mode)) 'rainbow-delimiters-mode))
@ -211,7 +211,7 @@ file."
;; ;;
;; TODO Improve docstrings ;; TODO Improve docstrings
(defmacro @def-modeline-segment (name &rest forms) (defmacro def-modeline-segment! (name &rest forms)
"Defines a modeline segment function and byte compiles it." "Defines a modeline segment function and byte compiles it."
(declare (indent defun) (doc-string 2)) (declare (indent defun) (doc-string 2))
`(defun ,(intern (format "doom-modeline-segment--%s" name)) () `(defun ,(intern (format "doom-modeline-segment--%s" name)) ()
@ -226,11 +226,11 @@ file."
(list (intern (format "doom-modeline-segment--%s" (symbol-name seg)))))) (list (intern (format "doom-modeline-segment--%s" (symbol-name seg))))))
segments))) segments)))
(defmacro @def-modeline (name lhs &optional rhs) (defmacro def-modeline! (name lhs &optional rhs)
"Defines a modeline format and byte-compiles it. "Defines a modeline format and byte-compiles it.
Example: Example:
(@def-modeline minimal (def-modeline! minimal
(bar matches \" \" buffer-info) (bar matches \" \" buffer-info)
(media-info major-mode)) (media-info major-mode))
(setq-default mode-line-format (doom-modeline 'minimal))" (setq-default mode-line-format (doom-modeline 'minimal))"

View file

@ -9,7 +9,7 @@
;; doom|... hook function ;; doom|... hook function
;; doom*... advising functions ;; doom*... advising functions
;; doom!... interaction commands exclusively for installing external dependencies ;; doom!... interaction commands exclusively for installing external dependencies
;; @... a macro or function that configures DOOM ;; ...! a macro or function that configures DOOM
;; %... functions used for in-snippet logic ;; %... functions used for in-snippet logic
;; +... Any of the above, but part of a module, e.g. +emacs-lisp|init-hook ;; +... Any of the above, but part of a module, e.g. +emacs-lisp|init-hook
;; ;;
@ -148,7 +148,7 @@ enable multiple minor modes for the same regexp.")
(require 'core-projects) ; making Emacs project-aware (require 'core-projects) ; making Emacs project-aware
(require 'core-keybinds))) ; centralized keybind system + which-key (require 'core-keybinds))) ; centralized keybind system + which-key
(@add-hook 'window-setup-hook (add-hook! 'window-setup-hook
(setq gc-cons-threshold 134217728 (setq gc-cons-threshold 134217728
gc-cons-percentage 0.3)) gc-cons-percentage 0.3))

View file

@ -2,42 +2,42 @@
;;; core/packages.el ;;; core/packages.el
;; core packages ;; core packages
(@package async) (package! async)
(@package s) (package! s)
(@package f) (package! f)
;; core-os.el ;; core-os.el
(when IS-MAC (when IS-MAC
(@package exec-path-from-shell) (package! exec-path-from-shell)
(@package osx-clipboard)) (package! osx-clipboard))
;; core-ui.el ;; core-ui.el
(@package highlight-indent-guides) (package! highlight-indent-guides)
(@package highlight-numbers) (package! highlight-numbers)
(@package nlinum) (package! nlinum)
(@package rainbow-delimiters) (package! rainbow-delimiters)
;; core-popups.el ;; core-popups.el
(@package shackle) (package! shackle)
;; core-editor.el ;; core-editor.el
(@package editorconfig) (package! editorconfig)
(@package smartparens) (package! smartparens)
(@package ace-link) (package! ace-link)
(@package ace-window) (package! ace-window)
(@package avy) (package! avy)
(@package command-log-mode) (package! command-log-mode)
(@package expand-region) (package! expand-region)
(@package goto-last-change) (package! goto-last-change)
(@package help-fns+) (package! help-fns+)
(@package imenu-anywhere) (package! imenu-anywhere)
(@package imenu-list) (package! imenu-list)
(@package pcre2el) (package! pcre2el)
(@package smart-forward) (package! smart-forward)
(@package wgrep) (package! wgrep)
;; core-projects.el ;; core-projects.el
(@package projectile) (package! projectile)
;; core-keybinds.el ;; core-keybinds.el
(@package which-key) (package! which-key)

View file

@ -30,7 +30,7 @@
(require 'core (concat user-emacs-directory "core/core")) (require 'core (concat user-emacs-directory "core/core"))
(@doom :feature (doom! :feature
evil ; come to the dark side, we have cookies evil ; come to the dark side, we have cookies
;; TODO jump ; navigating your code ;; TODO jump ; navigating your code
snippets ; my elves. They type so I don't have to snippets ; my elves. They type so I don't have to

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 + A `config.el` file, automatically loaded when the module is loaded
(through `@doom` or `@require`). It uses `@def-package` calls (thin (through `@doom` or `@require`). It uses `@def-package` calls (thin
wrappers around `use-package`) to configure packages. 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 declarations. These are purely declarative macros. They populate
`doom-packages` and `doom-modules` for the package management `doom-packages` and `doom-modules` for the package management
system. system.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,4 @@
;; -*- no-byte-compile: t; -*- ;; -*- no-byte-compile: t; -*-
;;; feature/debug/packages.el ;;; 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:open "feature/repl/autoload/repl" nil t)
;;;###autoload (autoload '+repl:send "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) (evil-define-command +repl:open (&optional bang command)
:repeat nil :repeat nil
(interactive "<!><a>") (interactive "<!><a>")

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,6 @@
;;; feature/syntax-checker/config.el ;;; feature/syntax-checker/config.el
(@def-package flycheck (def-package! flycheck
:commands (flycheck-mode flycheck-list-errors flycheck-buffer) :commands (flycheck-mode flycheck-list-errors flycheck-buffer)
:config :config
(setq flycheck-indication-mode 'right-fringe ; git-gutter is in the left fringe (setq flycheck-indication-mode 'right-fringe ; git-gutter is in the left fringe
@ -9,9 +9,9 @@
flycheck-highlighting-mode 'symbols flycheck-highlighting-mode 'symbols
flycheck-disabled-checkers '(emacs-lisp-checkdoc make)) 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-n" 'flycheck-error-list-next-error
:n "C-p" 'flycheck-error-list-previous-error :n "C-p" 'flycheck-error-list-previous-error
:n "j" 'flycheck-error-list-next-error :n "j" 'flycheck-error-list-next-error
@ -27,7 +27,7 @@
(advice-add 'evil-force-normal-state :after '+syntax-checkers|flycheck-buffer)) (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 :config
(setq flycheck-pos-tip-timeout 10 (setq flycheck-pos-tip-timeout 10
flycheck-display-errors-delay 0.5) flycheck-display-errors-delay 0.5)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,8 @@
;;; lang/assembly/config.el ;;; 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; -*- ;; -*- no-byte-compile: t; -*-
;;; lang/assembly/packages.el ;;; lang/assembly/packages.el
(@package mips-mode) (package! mips-mode)
(@package haxor-mode) (package! haxor-mode)
(@package nasm-mode) (package! nasm-mode)

View file

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

View file

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

View file

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

View file

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

View file

@ -1,41 +1,41 @@
;;; module-data.el ;;; module-data.el
(@associate conf-mode :match "/sxhkdrc$") (associate! conf-mode :match "/sxhkdrc$")
(@def-package nxml-mode (def-package! nxml-mode
:mode "\\.plist$" :mode "\\.plist$"
:config :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$" :mode "\\.ya?ml$"
:config :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 :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$")) :mode ("/\\.?g?vimrc$" "\\.vim$" "/\\.?vimperatorrc$" "\\.vimp$"))
(@def-package dockerfile-mode (def-package! dockerfile-mode
:mode "/Dockerfile$" :mode "/Dockerfile$"
:config :config
;; TODO ;; 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 ;; For ROM hacking or debugging
(@def-package hexl-mode (def-package! hexl-mode
:mode ("\\.hex$" "\\.nes$")) :mode ("\\.hex$" "\\.nes$"))
@ -43,10 +43,10 @@
;; Frameworks ;; Frameworks
;; ;;
;; (@def-project ansible-mode "ans" ;; (def-project! ansible-mode "ans"
;; :modes (yaml-mode) ;; :modes (yaml-mode)
;; :files ("roles/")) ;; :files ("roles/"))
;; (@def-project vagrant "vagrant" ;; (def-project! vagrant "vagrant"
;; :files ("Vagrantfile")) ;; :files ("Vagrantfile"))

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,20 +1,20 @@
;;; module-haskell.el ;;; module-haskell.el
(@def-package haskell (def-package! haskell
:mode (("\\.hs$" . haskell-mode) :mode (("\\.hs$" . haskell-mode)
("\\.ghci$" . ghci-script-mode) ("\\.ghci$" . ghci-script-mode)
("\\.cabal$" . haskell-cabal-mode)) ("\\.cabal$" . haskell-cabal-mode))
:interpreter (("runghc" . haskell-mode) :interpreter (("runghc" . haskell-mode)
("runhaskell" . haskell-mode)) ("runhaskell" . haskell-mode))
:init :init
(@add-hook haskell-mode '(interactive-haskell-mode flycheck-mode)) (add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode))
:config :config
(@set :popup "*debug:haskell*" :size 20) (set! :popup "*debug:haskell*" :size 20)
(@set :repl 'haskell-mode 'switch-to-haskell) (set! :repl 'haskell-mode 'switch-to-haskell)
(push ".hi" completion-ignored-extensions)) (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) :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; -*- ;; -*- no-byte-compile: t; -*-
;;; lang/haskell/packages.el ;;; lang/haskell/packages.el
(@package haskell-mode) (package! haskell-mode)

View file

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

View file

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

View file

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

View file

@ -1,8 +1,8 @@
;; lang/javascript/config.el ;; lang/javascript/config.el
;; TODO (@load +screeps) ;; TODO (load! +screeps)
(@def-package js2-mode (def-package! js2-mode
:mode "\\.js$" :mode "\\.js$"
:interpreter "node" :interpreter "node"
:config :config
@ -10,19 +10,19 @@
js2-highlight-external-variables nil js2-highlight-external-variables nil
js2-mode-show-parse-errors 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 ;; 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 ?\} ?\) ?. :chars ?\} ?\) ?.
:words "||" "&&") :words "||" "&&")
(@map :map js2-mode-map (map! :map js2-mode-map
:localleader :localleader
:nv ";" 'doom/append-semicolon :nv ";" 'doom/append-semicolon
@ -55,10 +55,10 @@
:n "ii" 'js2r-wrap-buffer-in-iife)) :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 :commands
(js2r-extract-function js2r-extract-method js2r-introduce-parameter (js2r-extract-function js2r-extract-method js2r-introduce-parameter
js2r-localize-parameter js2r-expand-object js2r-contract-object js2r-localize-parameter js2r-expand-object js2r-contract-object
@ -70,16 +70,16 @@
js2r-debug-this js2r-forward-slurp js2r-forward-barf)) js2r-debug-this js2r-forward-slurp js2r-forward-barf))
(@def-package company-tern (def-package! company-tern
:when (featurep 'company) :when (featurep 'company)
:commands company-tern :commands company-tern
:after 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$" :mode "\\.coffee$"
:init (setq coffee-indent-like-python-mode t)) :init (setq coffee-indent-like-python-mode t))

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -39,6 +39,6 @@
,@dnd-protocol-alist)) ,@dnd-protocol-alist))
;; keybinds ;; 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-capture)
(require 'org-protocol) (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) (defadvice org-capture (after make-full-window-frame activate)
"If org-capture creates a new frame, this initializes it properly, by "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))) ;; (setq org-pandoc-options '((standalone . t) (mathjax . t) (parse-raw . t)))
;; keybinds ;; 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 ;; "A list of attachments for the current buffer. This is so my custom attachment
;; system can keep track of each buffer's attachments.") ;; system can keep track of each buffer's attachments.")
(@load +attach) (load! +attach)
(@load +capture) (load! +capture)
(@load +export) (load! +export)
;; ;;
@ -75,7 +75,7 @@
:keymap (make-sparse-keymap) :keymap (make-sparse-keymap)
:group 'evil-org) :group 'evil-org)
(@set :popup (set! :popup
'(" *Agenda Commands*" :size 30 :noselect t) '(" *Agenda Commands*" :size 30 :noselect t)
'(" *Org todo*" :size 5 :noselect t) '(" *Org todo*" :size 5 :noselect t)
'("*Calendar*" :size 0.4 :noselect t) '("*Calendar*" :size 0.4 :noselect t)
@ -216,10 +216,10 @@
(sp-local-pair "{" nil)) (sp-local-pair "{" nil))
;; bullets ;; bullets
(@def-package org-bullets :commands org-bullets-mode) (def-package! org-bullets :commands org-bullets-mode)
;; Keybinds ;; Keybinds
(@map (:map org-mode-map (map! (:map org-mode-map
"RET" nil "RET" nil
"C-j" nil "C-j" nil
"C-k" nil "C-k" nil
@ -262,18 +262,18 @@
:nv "k" 'evil-previous-visual-line :nv "k" 'evil-previous-visual-line
:v "<S-tab>" '+snippets/expand-on-region :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 :n "M-a" 'org-mark-element
:v "M-a" 'mark-whole-buffer :v "M-a" 'mark-whole-buffer
:ni "<M-return>" (@λ (+org/insert-item 'below)) :ni "<M-return>" (λ! (+org/insert-item 'below))
:ni "<S-M-return>" (@λ (+org/insert-item 'above)) :ni "<S-M-return>" (λ! (+org/insert-item 'above))
;; Formatting shortcuts ;; Formatting shortcuts
:i "M-b" (@λ (+org-surround "*")) ; bold :i "M-b" (λ! (+org-surround "*")) ; bold
:i "M-u" (@λ (+org-surround "_")) ; underline :i "M-u" (λ! (+org-surround "_")) ; underline
:i "M-i" (@λ (+org-surround "/")) ; italics :i "M-i" (λ! (+org-surround "/")) ; italics
:i "M-`" (@λ (+org-surround "+")) ; strikethrough :i "M-`" (λ! (+org-surround "+")) ; strikethrough
:v "M-b" "S*" :v "M-b" "S*"
:v "M-u" "S_" :v "M-u" "S_"
@ -288,17 +288,17 @@
:n "?" 'org-tags-view :n "?" 'org-tags-view
:n "D" 'org-deadline :n "D" 'org-deadline
:nv "L" 'org-store-link :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 "T" 'org-todo
:n "a" 'org-agenda :n "a" 'org-agenda
:n "d" 'org-time-stamp :n "d" 'org-time-stamp
:n "e" 'org-edit-special :n "e" 'org-edit-special
:n "l" 'org-insert-link :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 "r" 'org-refile
:n "s" 'org-schedule :n "s" 'org-schedule
:n "t" (@λ (org-todo (if (org-entry-is-todo-p) 'none 'todo))) :n "t" (λ! (org-todo (if (org-entry-is-todo-p) 'none 'todo)))
:v "t" (@λ (evil-ex-normal evil-visual-beginning evil-visual-end "\\t")) :v "t" (λ! (evil-ex-normal evil-visual-beginning evil-visual-end "\\t"))
:n "v" 'variable-pitch-mode :n "v" 'variable-pitch-mode
;; :n "w" 'writing-mode ;; :n "w" 'writing-mode
;; :n "x" '+org/remove-link ;; :n "x" '+org/remove-link
@ -308,25 +308,25 @@
:n "za" '+org/toggle-fold :n "za" '+org/toggle-fold
:n "zA" 'org-shifttab :n "zA" 'org-shifttab
:n "zc" 'outline-hide-subtree :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 "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-subtree
:n "zO" 'outline-show-all :n "zO" 'outline-show-all
:n "zr" 'outline-show-all :n "zr" 'outline-show-all
:m "]]" (@λ (call-interactively 'org-forward-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 "[[" (λ! (call-interactively 'org-backward-heading-same-level) (org-beginning-of-line))
:m "]l" 'org-next-link :m "]l" 'org-next-link
:m "[l" 'org-previous-link :m "[l" 'org-previous-link
:m "gh" 'outline-up-heading :m "gh" 'outline-up-heading
:m "gj" 'org-forward-heading-same-level :m "gj" 'org-forward-heading-same-level
:m "gk" 'org-backward-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" '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) (org-file-apps '(("\\.org$" . emacs)
(t . "open \"%s\"")))) (t . "open \"%s\""))))
(call-interactively 'org-open-at-point))) (call-interactively 'org-open-at-point)))
@ -336,13 +336,13 @@
:m "^" 'org-beginning-of-line :m "^" 'org-beginning-of-line
:n "<" 'org-metaleft :n "<" 'org-metaleft
:n ">" 'org-metaright :n ">" 'org-metaright
:v "<" (@λ (org-metaleft) (evil-visual-restore)) :v "<" (λ! (org-metaleft) (evil-visual-restore))
:v ">" (@λ (org-metaright) (evil-visual-restore)) :v ">" (λ! (org-metaright) (evil-visual-restore))
:n "-" 'org-cycle-list-bullet :n "-" 'org-cycle-list-bullet
:m "<tab>" 'org-cycle) :m "<tab>" 'org-cycle)
(:map org-src-mode-map (:map org-src-mode-map
:n "<escape>" (@λ (message "Exited") (org-edit-src-exit))) :n "<escape>" (λ! (message "Exited") (org-edit-src-exit)))
(:after org-agenda (:after org-agenda
(:map org-agenda-mode-map (:map org-agenda-mode-map

View file

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

View file

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

View file

@ -1,13 +1,13 @@
;; -*- no-byte-compile: t; -*- ;; -*- no-byte-compile: t; -*-
;;; lang/php/packages.el ;;; lang/php/packages.el
(@package php-boris) (package! php-boris)
(@package php-extras :recipe (:fetcher github :repo "arnested/php-extras")) (package! php-extras :recipe (:fetcher github :repo "arnested/php-extras"))
(@package php-mode) (package! php-mode)
(@package php-refactor-mode) (package! php-refactor-mode)
(@package phpunit) (package! phpunit)
;; (@package hack-mode ;; (package! hack-mode
;; :recipe ;; :recipe
;; (:fetcher url :url "https://raw.githubusercontent.com/facebook/hhvm/master/hphp/hack/editor-plugins/emacs/hack-mode.el")) ;; (: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 ;;; module-processing.el
(@def-package processing-mode (def-package! processing-mode
:commands (processing-mode processing-find-sketch) :commands (processing-mode processing-find-sketch)
:mode "\\.pde$" :mode "\\.pde$"
:init :init
(add-hook 'processing-compilation-mode-hook 'doom-hide-modeline-mode) (add-hook 'processing-compilation-mode-hook 'doom-hide-modeline-mode)
:config :config
(@set :build 'build-sketch 'processing-mode 'processing-sketch-build) (set! :build 'build-sketch 'processing-mode 'processing-sketch-build)
(@set :popup "*processing-compilation*" :size 10 :noselect t) (set! :popup "*processing-compilation*" :size 10 :noselect t)
(@set :eval 'processing-mode (set! :eval 'processing-mode
'((:command . ,processing-location) '((:command . ,processing-location)
(:exec . (lambda () (format "--sketch=%s --output=%s --force --run" (:exec . (lambda () (format "--sketch=%s --output=%s --force --run"
(doom/project-root) processing-output-dir))) (doom/project-root) processing-output-dir)))
(:description . "Run Processing sketch"))) (:description . "Run Processing sketch")))
(@set :company-backend 'processing-mode (set! :company-backend 'processing-mode
'(company-keywords :with company-yasnippet company-dabbrev-code)) '(company-keywords :with company-yasnippet company-dabbrev-code))
(setq processing-location "/usr/local/bin/processing-java" (setq processing-location "/usr/local/bin/processing-java"
@ -21,7 +21,7 @@
processing-sketchbook-dir "~/Dropbox/work/pde" processing-sketchbook-dir "~/Dropbox/work/pde"
processing-output-dir "/tmp") processing-output-dir "/tmp")
(@map :map processing-mode-map (map! :map processing-mode-map
:nv "M-r" 'processing-sketch-run :nv "M-r" 'processing-sketch-run
:m "gd" 'processing-find-in-reference :m "gd" 'processing-find-in-reference
:m "gF" 'processing-find-sketch :m "gF" 'processing-find-sketch
@ -32,7 +32,7 @@
:n "e" 'processing-open-examples :n "e" 'processing-open-examples
:n "o" 'processing-open-sketchbook) :n "o" 'processing-open-sketchbook)
(@after company-keywords (after! company-keywords
(nconc company-keywords-alist (nconc company-keywords-alist
(cons 'processing-mode (append processing-functions (cons 'processing-mode (append processing-functions
processing-builtins processing-builtins

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,17 +1,17 @@
;;; lang/scala/config.el ;;; lang/scala/config.el
(@def-package scala-mode (def-package! scala-mode
:mode "\\.s\\(cala\\|bt\\)$" :mode "\\.s\\(cala\\|bt\\)$"
:init :init
(add-hook 'scala-mode-hook 'eldoc-mode) (add-hook 'scala-mode-hook 'eldoc-mode)
:config :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) :commands (ensime ensime-mode ensime-scala-mode-hook)
:init :init
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)) (add-hook 'scala-mode-hook 'ensime-scala-mode-hook))

View file

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

View file

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

View file

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

View file

@ -2,17 +2,17 @@
;; TODO Set up emacs task runners for fruitstrap ;; TODO Set up emacs task runners for fruitstrap
(@def-package swift-mode (def-package! swift-mode
:mode "\\.swift$" :mode "\\.swift$"
:init :init
(add-hook 'swift-mode-hook 'flycheck-mode) (add-hook 'swift-mode-hook 'flycheck-mode)
:config :config
(@set :repl 'swift-mode 'swift-mode-run-repl) ; TODO test this (set! :repl 'swift-mode 'swift-mode-run-repl) ; TODO test this
(@after flycheck (push 'swift flycheck-checkers))) (after! flycheck (push 'swift flycheck-checkers)))
(@def-package company-sourcekit (def-package! company-sourcekit
:after swift-mode :after swift-mode
:config :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; -*- ;; -*- no-byte-compile: t; -*-
;;; lang/swift/packages.el ;;; lang/swift/packages.el
(@package swift-mode) (package! swift-mode)
(when (@featurep :completion company) (when (featurep! :completion company)
(@package company-sourcekit)) (package! company-sourcekit))

View file

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

View file

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

View file

@ -3,7 +3,7 @@
(sp-with-modes '(css-mode scss-mode less-css-mode stylus-mode) (sp-with-modes '(css-mode scss-mode less-css-mode stylus-mode)
(sp-local-pair "/*" "*/" :post-handlers '(("[d-3]||\n[i]" "RET") ("| " "SPC")))) (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 :n "M-R" '+css/web-refresh-browser
:localleader :localleader
:nv ";" '+css/append-semicolon :nv ";" '+css/append-semicolon
@ -15,33 +15,33 @@
;; Packages ;; Packages
;; ;;
(@def-package css-mode (def-package! css-mode
:mode "\\.css$" :mode "\\.css$"
:mode ("\\.scss$" . scss-mode) :mode ("\\.scss$" . scss-mode)
:init :init
(@add-hook css-mode (add-hook! css-mode
'(yas-minor-mode-on flycheck-mode rainbow-mode highlight-numbers-mode '(yas-minor-mode-on flycheck-mode rainbow-mode highlight-numbers-mode
;; doom|counsel-css-imenu-setup ;; doom|counsel-css-imenu-setup
)) ))
:config :config
(@set :company-backend '(css-mode scss-mode) '(company-css company-yasnippet)) (set! :company-backend '(css-mode scss-mode) '(company-css company-yasnippet))
(@set :build 'scss 'scss-mode '+css/scss-build)) (set! :build 'scss 'scss-mode '+css/scss-build))
(@def-package sass-mode (def-package! sass-mode
:mode "\\.sass$" :mode "\\.sass$"
:config :config
(setq sass-command-options '("--style compressed")) (setq sass-command-options '("--style compressed"))
(@set :build 'sass 'sass-mode '+css/sass-build) (set! :build 'sass 'sass-mode '+css/sass-build)
(@set :company-backend 'sass-mode '(company-css company-yasnippet))) (set! :company-backend 'sass-mode '(company-css company-yasnippet)))
(@def-package less-css-mode (def-package! less-css-mode
:mode "\\.less$") :mode "\\.less$")
(@def-package stylus-mode (def-package! stylus-mode
:mode "\\.styl$" :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 ;;; lang/web/config.el
(@def-package web-mode (def-package! web-mode
:mode ("\\.p?html?$" :mode ("\\.p?html?$"
"\\.\\(tpl\\|blade\\)\\(\\.php\\)?$" "\\.\\(tpl\\|blade\\)\\(\\.php\\)?$"
"\\.erb$" "\\.erb$"
@ -12,13 +12,13 @@
:init :init
(add-hook 'web-mode-hook 'turn-off-smartparens-mode) (add-hook 'web-mode-hook 'turn-off-smartparens-mode)
:config :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) (setq web-mode-enable-html-entities-fontification t)
;; Fix blank line numbers after unfolding ;; Fix blank line numbers after unfolding
(advice-add 'web-mode-fold-or-unfold :after 'nlinum--flush) (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) (:localleader :n "t" 'web-mode-element-rename)
"M-/" 'web-mode-comment-or-uncomment "M-/" 'web-mode-comment-or-uncomment
:i "SPC" 'self-insert-command :i "SPC" 'self-insert-command
@ -31,17 +31,17 @@
:nv "]T" 'web-mode-element-child :nv "]T" 'web-mode-element-child
:nv "[T" 'web-mode-element-parent) :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$") :mode ("\\.jade$" "\\.pug$")
:config :config
(@set :company-backend 'pug-mode '(company-yasnippet)) (set! :company-backend 'pug-mode '(company-yasnippet))
(@map :map pug-mode-map (map! :map pug-mode-map
:i [tab] 'doom/dumb-indent :i [tab] 'doom/dumb-indent
:i [backtab] 'doom/dumb-dedent)) :i [backtab] 'doom/dumb-dedent))
@ -50,14 +50,14 @@
;; Tools ;; Tools
;; ;;
(@def-package emmet-mode (def-package! emmet-mode
:commands emmet-mode :commands emmet-mode
:preface (defvar emmet-mode-keymap (make-sparse-keymap)) :preface (defvar emmet-mode-keymap (make-sparse-keymap))
:init :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 :config
(setq emmet-move-cursor-between-quotes t) (setq emmet-move-cursor-between-quotes t)
(@map :map emmet-mode-keymap (map! :map emmet-mode-keymap
:v "M-e" 'emmet-wrap-with-markup :v "M-e" 'emmet-wrap-with-markup
:i "M-e" 'emmet-expand-yas :i "M-e" 'emmet-expand-yas
:i "M-E" 'emmet-expand-line)) :i "M-E" 'emmet-expand-line))

View file

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

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