General cleanup

This commit is contained in:
Henrik Lissner 2016-05-24 22:15:44 -04:00
parent 2052fbba1c
commit 185ba75292
18 changed files with 793 additions and 704 deletions

View file

@ -27,7 +27,6 @@
;; NOTE: Doesn't look pretty outside of emacs-mac
(use-package company-quickhelp
:when (featurep 'mac)
:after company
:config (company-quickhelp-mode +1))

View file

@ -15,6 +15,7 @@
("*esup*" :align below :size 30 :noselect t)
("*minor-modes*" :align below :size 0.5 :noselect t)
;; Emacs
("*Pp Eval Output*" :align below :size 0.3)
("*Apropos*" :align below :size 0.3)
("*Backtrace*" :align below :size 25 :noselect t)
("*Completions*" :align below :size 20 :noselect t)

View file

@ -1,13 +1,13 @@
;;; core-ui.el --- interface & mode-line config
(defconst doom-fringe-size 3 "Default fringe width")
(defconst doom-fringe-size '3 "Default fringe width")
;; y/n instead of yes/no
(fset 'yes-or-no-p 'y-or-n-p)
(setq-default
indicate-buffer-boundaries nil ; don't show where buffer starts/ends
indicate-empty-lines nil ; show empty lines
indicate-empty-lines nil ; don't show empty lines
fringes-outside-margins t ; switches order of fringe and margin
;; Keep cursors and highlights in current window only
cursor-in-non-selected-windows nil
@ -52,6 +52,7 @@
(set-frame-font doom-default-font t)
(set-face-attribute 'default t :font doom-current-font)
;; standardize fringe width
(fringe-mode doom-fringe-size)
(push `(left-fringe . ,doom-fringe-size) default-frame-alist)
(push `(right-fringe . ,doom-fringe-size) default-frame-alist)
;; Default frame size on startup

View file

@ -44,8 +44,6 @@ automatically renamed to the project name.")
wg-list-display-decor-previous-left ""
wg-list-display-decor-previous-right "")
(add-hook 'emacs-startup-hook 'workgroups-mode)
:config
;; Remember fixed workgroup names between sessions
(push 'doom-wg-names savehist-additional-variables)
@ -72,7 +70,11 @@ automatically renamed to the project name.")
(defalias 'doom:switch-to-tab 'doom:switch-to-workgroup-at-index)
(defalias 'doom:switch-to-tab-left 'wg-switch-to-workgroup-left)
(defalias 'doom:switch-to-tab-right 'wg-switch-to-workgroup-right)
(defalias 'doom:switch-to-tab-last 'wg-switch-to-previous-workgroup))
(defalias 'doom:switch-to-tab-last 'wg-switch-to-previous-workgroup)
(add-hook! emacs-startup
(workgroups-mode +1)
(wg-create-workgroup wg-first-wg-name)))
(provide 'core-workgroups)
;;; core-workgroups.el ends here

View file

@ -9,7 +9,7 @@
;; doom|... A hook
;; doom*... An advising function
;; doom.... Custom prefix commands
;; ...! Macro or shortcut alias
;; ...! Macro, shortcut alias or subst defun
;;
;;; Autoloaded functions are in {core,modules}/defuns/defuns-*.el
@ -93,11 +93,12 @@
;; Populate the load-path manually; cask shouldn't be an internal dependency
(setq load-path
(! (defun --subdirs (path &optional include-self)
(! (defsubst --subdirs (path &optional include-self)
(let ((result (if include-self (list path) (list))))
(dolist (file (ignore-errors (directory-files path t "^[^.]" t)))
(mapc (lambda (file)
(when (file-directory-p file)
(push file result)))
(ignore-errors (directory-files path t "^[^.]" t)))
result))
(append (list doom-private-dir)
(--subdirs doom-core-dir t)

View file

@ -51,5 +51,12 @@
(evil-visual-state)
(evil-goto-mark ?\]))
;;;###autoload
(defun doom/delete-forward-word ()
"Delete the word in front of the cursor."
(interactive)
(evil-forward-word)
(evil-delete-backward-word))
(provide 'defuns-editor)
;;; defuns-editor.el ends here

View file

@ -181,5 +181,11 @@ spaces on either side of the point if so. Resorts to
(align-regexp beg end
(concat "\\(\\s-*\\)" (rxt-pcre-to-elisp regexp)) 1 1)))
;;;###autoload
(defun doom/static-reindent ()
"Reindent without moving cursor."
(interactive)
(save-excursion (call-interactively 'evil-indent)))
(provide 'defuns-whitespace)
;;; defuns-whitespace.el ends here

View file

@ -1,5 +1,7 @@
;;; defuns-eshell.el
(require 'eshell)
(defun doom--eshell-in-prompt-p (&optional offset)
(>= (- (point) (or offset 0)) (save-excursion (eshell-bol) (point))))
@ -11,6 +13,16 @@
(concat " [" (substring branch 2) "]")
"")))
;;;###autoload
(defun doom/eshell (&optional same &rest _)
(interactive)
(let ((buf (get-buffer-create eshell-buffer-name)))
(cl-assert (and buf (buffer-live-p buf)))
(doom/popup-buffer buf)
(with-current-buffer buf
(unless (derived-mode-p 'eshell-mode)
(eshell-mode)))))
;;;###autoload
(defun doom/eshell-prompt ()
(concat (propertize (abbreviate-file-name (eshell/pwd)) 'face 'eshell-prompt)

View file

@ -34,7 +34,7 @@
(font-lock-add-keywords
nil `(("(\\(lambda\\)" (1 (doom/show-as )))
("(\\(\\(doom\\)\\([-:/|][^) ]*\\)?\\)[) ]" (1 font-lock-builtin-face))
("(\\(\\(doom\\)\\([-:/|][^) ]*\\)?\\)[) \n]" (1 font-lock-builtin-face))
;; Highlight doom macros (macros are fontified in emacs 25+)
(,(concat
"(\\(def-"

View file

@ -2,17 +2,15 @@
(use-package eshell
:when IS-WINDOWS
:defer t
:init
(evil-set-initial-state 'eshell-mode 'normal)
(evil-set-initial-state 'eshell-mode 'emacs)
(setq eshell-directory-name (concat doom-temp-dir "/eshell")
eshell-scroll-to-bottom-on-input 'all
eshell-buffer-shorthand t
;; em-glob
eshell-glob-case-insensitive t
eshell-error-if-no-glob t
eshell-where-to-jump 'end
;; em-alias
eshell-aliases-file (concat doom-temp-dir "/.eshell-aliases"))
@ -21,14 +19,12 @@
;; plan 9 smart shell
(require 'em-smart)
(add-to-list 'eshell-modules-list 'eshell-smart)
(push 'eshell-smart eshell-modules-list)
(setq eshell-where-to-jump 'begin)
(setq eshell-review-quick-commands nil)
(setq eshell-smart-space-goes-to-end t)
;; em-prompt
(setq eshell-prompt-function 'doom/eshell-prompt)
(map! :map eshell-mode-map
:n "i" 'doom/eshell-evil-prepend-maybe
:n "I" 'doom/eshell-evil-prepend

View file

@ -6,8 +6,7 @@
("\\.cabal$" . haskell-cabal-mode))
:interpreter (("runghc" . haskell-mode)
("runhaskell" . haskell-mode))
:init
(add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode))
:init (add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode))
:config
(def-docset! haskell-mode ("Haskell"))
(def-popup! "*debug:haskell*" :size 20)
@ -16,8 +15,7 @@
(use-package inf-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))
(provide 'module-haskell)
;;; module-haskell.el ends here

View file

@ -32,7 +32,6 @@
:after php-mode
:config
(defun php-extras-company-setup ()) ;; company will set up itself
;; Generate php-extras documentation and completion asynchronously
(unless (file-exists-p (concat php-extras-eldoc-functions-file ".el"))
(async-start `(lambda ()

View file

@ -4,9 +4,7 @@
:when IS-MAC
:commands (processing-mode processing-find-sketch)
:mode "\\.pde$"
:init
(add-hook 'processing-compilation-mode-hook 'doom|hide-mode-line)
:init (add-hook 'processing-compilation-mode-hook 'doom|hide-mode-line)
:config
(def-builder! processing-mode processing-sketch-build)
(def-docset! processing-mode ("Processing"))

View file

@ -8,7 +8,8 @@
(def-builder! toml-mode "cargo run" "Cargo.toml")
(def-docset! rust-mode ("Rust")))
(use-package flycheck-rust :after rust-mode)
(use-package flycheck-rust
:after rust-mode)
(use-package racer
:after rust-mode

View file

@ -1,46 +1,41 @@
;;; my-bindings.el
(map!
(map! "<f9>" 'what-face
;; Essential
"M-x" 'helm-M-x
"A-x" 'helm-M-x
"M-;" 'eval-expression
"A-;" 'eval-expression
;; Tools
"M-/" 'evil-commentary-line
"A-/" 'evil-commentary-line
"M-0" (λ! (text-scale-set 0))
"M-=" 'text-scale-increase
"M--" 'text-scale-decrease
;; debug
"<f9>" 'what-face
"M-b" 'doom:build
"M-t" 'doom:tab-create
"M-T" 'doom/tab-display
"A-`" 'os-switch-to-term
"C-`" 'doom/popup-toggle
"C-~" 'doom:repl
;; Text-scaling
"M-0" (λ! (text-scale-set 0))
"M-=" 'text-scale-increase
"M--" 'text-scale-decrease
;; Simple window navigation/manipulation
"M-t" 'doom:tab-create
"M-T" 'doom/tab-display
"M-w" 'doom/close-window-or-tab
"M-W" 'delete-frame
"M-n" 'doom/new-buffer
"M-N" 'doom/new-frame
;; Simpler window navigation
"C-j" 'evil-window-down
"C-k" 'evil-window-up
"C-h" 'evil-window-left
"C-l" 'evil-window-right
"A-j" 'doom/evil-window-resize-d
"A-k" 'doom/evil-window-resize-u
"A-h" 'doom/evil-window-resize-l
"A-l" 'doom/evil-window-resize-r
;; Temporary escape into emacs mode
"C-<escape>" 'evil-emacs-state
:e "C-<escape>" 'evil-normal-state
;; Switching tabs (workgroups)
:m "M-1" (λ! (doom:switch-to-tab 0))
:m "M-2" (λ! (doom:switch-to-tab 1))
:m "M-3" (λ! (doom:switch-to-tab 2))
@ -50,11 +45,10 @@
:m "M-7" (λ! (doom:switch-to-tab 6))
:m "M-8" (λ! (doom:switch-to-tab 7))
:m "M-9" (λ! (doom:switch-to-tab 8))
(:when IS-MAC
"<M-backspace>" 'doom/backward-kill-to-bol-and-indent
"<A-left>" 'backward-word
"<A-right>" 'forward-word
"<M-backspace>" 'doom/backward-kill-to-bol-and-indent
"A-SPC" 'just-one-space
"M-a" 'mark-whole-buffer
"M-c" 'evil-yank
@ -65,23 +59,19 @@
"M-z" 'undo
"M-Z" 'redo
"C-M-f" 'doom:toggle-fullscreen
:m "M-j" 'doom/multi-next-line
:m "M-k" 'doom/multi-previous-line
:n "M-r" 'doom:eval-buffer
:v "M-r" 'doom:eval-region
:ni "<M-f1>" 'doom/dash-at-pt
;; Textmate-esque indent shift left/right
:i "M-]" 'doom/smart-indent
:i "M-[" 'doom/dumb-dedent
;; Restore osx text objects
:i "<A-backspace>" 'evil-delete-backward-word
:i "<A-delete>" (λ! (evil-forward-word) (evil-delete-backward-word)))
:i "<A-delete>" 'doom/delete-forward-word)
;;; <leader> and <localleader>
:m ";" 'evil-ex
(:leader
:nv "," 'doom/helm-buffers-dwim
@ -94,58 +84,54 @@
:nv "]" 'helm-etags-select
:nv "a" 'helm-projectile-find-other-file
:nv "m" 'helm-recentf
:nv "M" 'helm-projectile-recentf ; recent PROJECT files
:nv "M" 'helm-projectile-recentf
:nv "P" 'helm-projectile-switch-project
:v "=" 'align-regexp
:n "h" 'help-command
:nv "p" 'helm-show-kill-ring
:n "R" 'doom/reset-theme
:n "e" 'doom/flycheck-errors
:n "s" 'yas-visit-snippet-file
:n "S" 'doom/yas-find-file
:n "D" 'vc-annotate
(:prefix "d"
:n "." 'doom/vcs-show-hunk
:n "/" 'vc-diff
:n "s" 'doom/vcs-stage-hunk
:n "r" 'doom/vcs-revert-hunk)
:n "b" 'helm-bookmarks
:nv "l" 'doom/nlinum-toggle
:nv "qq" 'evil-save-and-quit
:nv "QQ" 'doom/kill-all-buffers-do-not-remember
;; Quick access to my dotfiles and emacs.d
:nv "Q" 'evil-save-and-quit
:nv "C-q" 'doom/kill-all-buffers-do-not-remember
;; Quick access to config files
:nv "E" 'doom/helm-find-in-emacsd
:nv "\\" 'doom/helm-find-in-dotfiles
;; Tmux
(:prefix "t"
;; Alternative to C-h (used as window shortcut)
:n "h" 'help-command
(:prefix "d" ; <diff>
:n "." 'doom/vcs-show-hunk
:n "/" 'vc-diff
:n "d" 'magit-status
:n "D" 'git-messenger:popup-message
:n "s" 'doom/vcs-stage-hunk
:v "s" 'magit-stage
:v "S" 'magit-stage
:n "r" 'doom/vcs-revert-hunk
:n "A" 'vc-annotate)
(:prefix "t" ; <tmux>
:n "." 'doom/tmux-cd-to-here
:n "/" 'doom/tmux-cd-to-project
:v "r" 'doom:tmux)
;; Open with O/S
:n "O" 'os-reveal
(:prefix "o"
(:prefix "o" ; <os>
:n "o" 'os-open-in-default-program
:n "r" 'os-reveal
:n "p" 'os-reveal-project
:n "b" 'os-open-in-browser
:n "u" 'os-upload
:n "U" 'os-upload-folder
:n "l" 'os-send-to-launchbar
:n "L" 'os-send-project-to-launchbar
:n "t" 'os-switch-to-term
:n "T" 'os-switch-to-term-and-cd)
;; Org notes
:n "X" 'doom/org
(:prefix "x"
:n "T" 'os-switch-to-term-and-cd
(:when IS-MAC
:n "l" 'os-send-to-launchbar
:n "L" 'os-send-project-to-launchbar))
(:prefix "x" ; <org>
:n "." 'doom/org-find-file
:n "/" 'doom/org-find-file-in-notes
:n "e" 'doom/org-find-exported-file))
:n "e" 'doom/org-find-exported-file
:n "x" 'doom/org))
(:localleader
:n "\\" 'doom/neotree
@ -154,25 +140,25 @@
:n "R" 'doom:repl
:v "R" 'doom:repl-eval
:v "r" 'doom:eval-region
(:prefix "r"
(:prefix "r" ; <refactor/run>
:n "e" 'emr-show-refactor-menu
:n "r" 'doom:eval-buffer))
:nv "K" 'smart-up
;;; Evil-esque bindings
;; Yank to EOL
:n "Y" "y$"
;; Don't move cursor on indent
:n "=" (λ! (save-excursion (call-interactively 'evil-indent)))
:n "=" 'doom/static-reindent
:v "=" 'evil-indent
;; Folding
:n "zr" 'doom/evil-open-folds
:n "zm" 'doom/evil-close-folds
:n "zx" 'doom/kill-real-buffer
;; Buffers
:n "ZX" 'bury-buffer
;; These are intentionally reversed
:n "]b" 'doom/next-real-buffer
:n "[b" 'doom/previous-real-buffer
;; Diffs
:m "]d" 'doom/vcs-next-hunk
:m "[d" 'doom/vcs-prev-hunk
:m "]e" 'doom/flycheck-next-error
@ -182,16 +168,13 @@
:n "[w" 'doom:switch-to-tab-left
:m "gt" 'doom:switch-to-tab-right
:m "gT" 'doom:switch-to-tab-left
;; Increment/decrement number under cursor
:n "g=" 'evil-numbers/inc-at-pt
:n "g-" 'evil-numbers/dec-at-pt
;; NOTE: Helm is too bulky for ffap (which I use for quick file navigation)
:n "gf" (λ! (helm-mode -1)
(call-interactively 'find-file-at-point)
(helm-mode 1))
:n "gf" (λ! (helm-mode -1) (call-interactively 'find-file-at-point) (helm-mode 1))
;; Navigation
:nv "K" 'smart-up
:m "gD" 'doom/find-def
:n "gp" 'doom/reselect-paste
:n "gc" 'evil-commentary
@ -203,9 +186,8 @@
:m "g[" 'smart-left
:v "@" 'doom/evil-macro-on-all-lines
:n "g@" 'doom/evil-macro-on-all-lines
;; Repeat in visual mode
:v "." 'evil-repeat
;; vnoremap < <gv
:v "<" (λ! (evil-shift-left (region-beginning) (region-end))
(evil-normal-state)
@ -214,72 +196,41 @@
:v ">" (λ! (evil-shift-right (region-beginning) (region-end))
(evil-normal-state)
(evil-visual-restore))
;; undo/redo for regions (NOTE: Buggy!)
:nv "u" 'undo-tree-undo
:nv "C-r" 'undo-tree-redo
:v "*" 'evil-visualstar/begin-search-forward
:v "#" 'evil-visualstar/begin-search-backward
:n "Y" "y$"
;; paste from recent yank register; which isn't overwritten by deletes or
;; other operations.
;; paste from recent yank register (which isn't overwritten)
:v "C-p" "\"0p"
:v "S" 'evil-surround-region
:v "v" 'er/expand-region
:v "V" 'er/contract-region
;; aliases for %
:m "%" 'evilmi-jump-items
:m [tab] (λ! (if (ignore-errors (hs-already-hidden-p))
(hs-toggle-hiding)
(call-interactively 'evilmi-jump-items)))
;; Textmate-esque newlines
:i "<backspace>" 'backward-delete-char-untabify
:i "<M-backspace>" 'doom/backward-kill-to-bol-and-indent
:i "<C-return>" 'evil-ret-and-indent
;; Emacsien motions for insert mode
:i "C-b" 'backward-word
:i "C-f" 'forward-word
;; escape from insert mode (more responsive than using key-chord-define)
:irv "C-g" 'evil-normal-state
:o "s" 'evil-surround-edit
:o "S" 'evil-Surround-edit
:n "!" 'rotate-text
(:map evil-window-map ; prefix "C-w"
"u" 'doom/undo-window-change
;; Jump to new splits
"s" 'doom/evil-window-split
"v" 'doom/evil-window-vsplit
;; Move window in one step
"H" (λ! (doom/evil-window-move 'left))
"J" (λ! (doom/evil-window-move 'down))
"K" (λ! (doom/evil-window-move 'up))
"L" (λ! (doom/evil-window-move 'right))
"C-u" 'doom/undo-window-change
"C-r" 'doom/redo-window-change
;; Navigation
"C-h" 'evil-window-left
"C-j" 'evil-window-down
"C-k" 'evil-window-up
"C-l" 'evil-window-right
"C-w" 'ace-window
"C-S-w" (λ! (ace-window 4)) ; swap windows
"C-C" (λ! (ace-window 16))) ; delete windows
;; Jump to new splits
"s" 'doom/evil-window-split
"v" 'doom/evil-window-vsplit
;; Swapping windows
"H" 'doom/evil-window-move-l
"J" 'doom/evil-window-move-d
"K" 'doom/evil-window-move-u
"L" 'doom/evil-window-move-r
"C-S-w" (λ! (ace-window 4))
;; Window undo/redo
"u" 'doom/undo-window-change
"C-u" 'doom/undo-window-change
"C-r" 'doom/redo-window-change
;; Delete window
"C-C" (λ! (ace-window 16)))
;; `evil-multiedit'
;;; Plugins
;; evil-visual-star
:v "*" 'evil-visualstar/begin-search-forward
:v "#" 'evil-visualstar/begin-search-backward
;; evil-multiedit
:v "R" 'evil-multiedit-match-all
:n "M-C-D" 'evil-multiedit-restore
:nv "M-d" 'evil-multiedit-match-and-next
@ -287,15 +238,35 @@
(:map evil-multiedit-state-map
:v "RET" 'evil-multiedit-toggle-or-restrict-region)
;; `yasnippet'
:i [(tab)] 'yas-expand
:v "<backtab>" 'doom/yas-insert-snippet
;; evil-surround
:v "S" 'evil-surround-region
:o "s" 'evil-surround-edit
:o "S" 'evil-Surround-edit
;; `auto-yasnippet'
;; expand-region
:v "v" 'er/expand-region
:v "V" 'er/contract-region
;; evil-matchit
:m "%" 'evilmi-jump-items
;; hide-show
:m [tab] (λ! (if (ignore-errors (hs-already-hidden-p))
(hs-toggle-hiding)
(call-interactively 'evilmi-jump-items)))
;; rotate-text
:n "!" 'rotate-text
;; auto-yasnippet
:i "<C-tab>" 'aya-expand
:nv "<C-tab>" 'aya-create
;; Vim omni-complete emulation
;; yasnippet
(:map yas-minor-mode-map
:i [(tab)] 'yas-expand
:v "<backtab>" 'doom/yas-insert-snippet)
;; company-mode and vim-like omni-complete
:i "C-SPC" 'doom/company-complete
(:prefix "C-x"
:i "C-l" 'doom/company-whole-lines
@ -329,12 +300,24 @@
"C-p" 'company-search-repeat-backward
[escape] 'company-search-abort))
;; help-mode
(:after help-mode
(:map help-map
"e" 'doom/popup-messages)
(:map help-mode-map
:n "]]" 'help-go-forward
:n "[[" 'help-go-back)))
:n "[[" 'help-go-back))
;;; Insert mode hacks
;; Textmate-esque newlines
:i "<backspace>" 'backward-delete-char-untabify
:i "<M-backspace>" 'doom/backward-kill-to-bol-and-indent
:i "<C-return>" 'evil-ret-and-indent
;; Emacsien motions for insert mode
:i "C-b" 'backward-word
:i "C-f" 'forward-word
;; escape from insert mode (more responsive than using key-chord-define)
:irv "C-g" 'evil-normal-state)
;; Common unicode characters
(map! :i "A-o" (λ! (insert "ø"))

View file

@ -7,12 +7,17 @@
;; Emacs utilities
(ex! "echo" 'doom:echo)
(ex! "minor" 'helm-describe-modes) ; list minor modes
(ex! "bc[omp]" 'doom:byte-compile)
(ex! "re[load]" 'doom-reload)
(ex! "re[load]au" 'doom-reload-autoloads)
;; Quick mapping keys to commands, allows :nmap \m !make
(ex! "imap" 'doom:imap)
(ex! "mmap" 'doom:mmap)
(ex! "nmap" 'doom:nmap)
(ex! "omap" 'doom:omap)
(ex! "vmap" 'doom:vmap)
;; Editing
(ex! "@" 'doom/evil-macro-on-all-lines)
(ex! "al[ign]" 'doom:align)
@ -27,14 +32,20 @@
(ex! "snip[pets]" 'doom:yas-snippets) ; open snippet
(ex! "tsnip[pets]" 'doom:yas-file-templates) ; open file template
(ex! "wal[ign]" 'doom:whitespace-align) ; align by spaces
(ex! "date" 'doom:insert-date)
;; External resources
(ex! "dash" 'doom:dash) ; look up in Dash.app
(ex! "dash" 'doom:dash) ; look up in `helm-dash'
(ex! "dashi" 'doom:dash-install) ; install docset
(ex! "db" 'doom:db)
(ex! "dbu[se]" 'doom:db-select)
(ex! "http" 'httpd-start) ; start http server
(ex! "re[gex]" 'doom:regex) ; open re-builder
(ex! "repl" 'doom:repl) ; invoke or send to repl
(ex! "t[mux]" 'doom:tmux) ; send to tmux
(ex! "tcd" 'doom:tmux-cd) ; cd to default-directory in tmux
(ex! "x" 'doom:scratch-or-org)
;; GIT
(ex! "ga[dd]" 'doom/vcs-stage-hunk)
(ex! "gbr[owse]" 'doom:git-remote-browse) ; show file in github/gitlab
@ -48,21 +59,28 @@
(ex! "k[ill]u" 'doom/kill-unreal-buffers) ; kill unreal buffers
(ex! "l[ast]" 'doom/popup-last-buffer) ; pop up last popup
(ex! "m[sg]" 'doom/popup-messages) ; open *messages* in popup
;; Project navigation
(ex! "a" 'helm-projectile-find-other-file)
(ex! "ag" 'doom:helm-ag-search)
(ex! "ag[cw]d" 'doom:helm-ag-search-cwd)
(ex! "cd" 'doom:cd)
(ex! "se[arch]" 'doom:helm-swoop) ; in-file search
;; Project tools
(ex! "build" 'doom:build)
(ex! "debug" 'doom:debug)
(ex! "er[rors]" 'doom/flycheck-errors)
(ex! "ma[ke]" 'doom:build)
;; File operations
(ex! "mv" 'doom:file-move)
(ex! "rm" 'doom:file-delete)
;; Presentation/demo
(ex! "big" 'big-mode)
(ex! "full[scr]" 'doom:toggle-fullscreen)
;; Sessions/tabs
(ex! "sl[oad]" 'doom:load-session)
(ex! "ss[ave]" 'doom:save-session)
@ -74,14 +92,11 @@
(ex! "tabp[rev]" 'doom:switch-to-tab-left)
(ex! "tabr[ename]" 'doom:tab-rename)
(ex! "tabs" 'doom/tab-display)
;; Org-mode
(ex! "att[ach]" 'doom:org-attach) ; attach file to org file
(ex! "link" 'doom:org-link)
(ex! "org" 'doom:org-helm-search) ; search org notes
;; Plugins
(ex! "er[rors]" 'doom/flycheck-errors)
;; Debuggers
(ex! "debug" 'doom:debug)
(provide 'my-commands)
;;; my-commands.el ends here

View file

@ -1,338 +0,0 @@
;; DOOM Light
;; By Henrik Lissner <http://github.com/hlissner/emacs.d>
(deftheme doom-light "A light theme for hellish emacs, inspired by Base 16")
(let* ((c '((class color)))
(base00 "#2b303b")
(base01 "#343d46")
(base02 "#4f5b66")
(base03 "#65737e")
(base04 "#a7adba")
(base05 "#c0c5ce")
(base06 "#dfe1e8")
(base07 "#eff1f5")
(base08 "#bf616a")
(base09 "#d08770")
(base0A "#ebcb8b")
(base0B "#a3be8c")
(base0C "#96b5b4")
(base0D "#8fa1b3")
(base0E "#b48ead")
(base0F "#ab7967")
(bg base07)
(fg base01)
(subtle "#aab6c7")
(vsubtle "#556172")
(vvsubtle "#354152")
(dim-highlight "#3f4b56")
(black base01)
(grey base06)
(grey-1 base05)
(grey-2 base04)
(white base07)
(white-1 base06)
(yellow base0A)
(orange base09)
(red base08)
(magenta base0F)
(violet base0E)
(blue base0D)
(blue+2 "#727280")
(cyan base0C)
(green base0B)
(green-3 "#86B20E")
(dark-cyan "#8fa1b3")
(light-cyan "#CBECFF")
(search-bg magenta)
(search-fg black)
(search-rest-bg orange)
(search-rest-fg black)
(highlight orange)
(vertical-bar grey-2)
(current-line base06)
(selection "#535556")
(comments grey-1)
(comments-docs comments)
(builtin red)
(constants green)
(delimiters "#c0c5ce")
(functions cyan)
(keywords blue)
(methods dark-cyan)
(operators violet)
(type cyan)
(strings green)
(variables orange)
(error-highlight red)
(linum-bg current-line)
(linum-fg grey-1)
(linum-hl-fg blue)
(linum-hl-bg current-line)
(modeline-fg black)
(modeline-fg-2 black)
(modeline-fg-3 black)
(modeline-fg-inactive "#80858F")
(modeline-bg grey-1)
(modeline-bg-2 grey-1)
(modeline-bg-3 grey-1)
(modeline-bg-inactive grey)
(vc-modified grey)
(vc-added green)
(vc-deleted orange))
(custom-theme-set-faces
'doom-light
;; Text
`(default ((,c (:foreground ,fg :background ,bg))))
`(fringe ((,c (:foreground ,grey :background ,bg))))
`(cursor ((,c (:background ,black))))
`(hl-line ((,c (:background ,current-line))))
`(region ((,c (:background ,grey-1 :foreground ,white))))
`(highlight ((,c (:foreground ,yellow :inverse-video t))))
`(shadow ((,c (:foreground ,blue))))
;; `(secondary-selection ((,c (:background ,orange))))
;; `(lazy-highlight ((,c (:background ,orange))))
;; `(match ((,c (:background ,magenta))))
`(minibuffer-prompt ((,c (:foreground ,blue))))
`(error ((,c (:foreground ,red :bold t))))
`(warning ((,c (:foreground ,yellow :bold t))))
`(success ((,c (:foreground ,green :bold t))))
`(spaceline-flycheck-error ((,c (:bold t :foreground ,red))))
`(spaceline-flycheck-warning ((,c (:bold t :foreground ,yellow))))
`(spaceline-flycheck-info ((,c (:bold t :foreground ,green))))
`(hs-face ((,c (:foreground ,black :background ,grey))))
`(hs-fringe-face ((,c (:foreground ,orange))))
`(font-lock-builtin-face ((,c (:foreground ,builtin))))
`(font-lock-comment-face ((,c (:foreground ,comments))))
`(font-lock-comment-delimiter-face ((,c (:foreground ,comments))))
`(font-lock-doc-face ((,c (:foreground ,comments-docs))))
`(font-lock-doc-string-face ((,c (:foreground ,comments-docs))))
`(font-lock-constant-face ((,c (:foreground ,constants))))
`(font-lock-function-name-face ((,c (:foreground ,functions))))
`(font-lock-keyword-face ((,c (:foreground ,keywords))))
`(font-lock-string-face ((,c (:foreground ,strings))))
`(font-lock-type-face ((,c (:foreground ,type))))
`(font-lock-variable-name-face ((,c (:foreground ,variables))))
`(font-lock-warning-face ((,c (:foreground ,red))))
`(font-lock-negation-char-face ((,c (:foreground ,operators))))
`(font-lock-preprocessor-char-face ((,c (:foreground ,operators))))
`(font-lock-regexp-grouping-backslash ((,c (:foreground ,operators))))
`(font-lock-regexp-grouping-construct ((,c (:foreground ,operators))))
`(bold ((,c (:weight bold :foreground ,black))))
`(italic ((,c (:slant italic :foreground ,grey))))
`(bold-italic ((,c (:weight bold :slant italic :foreground ,white))))
`(trailing-whitespace ((,c (:background "#884444"))))
`(whitespace-tab ((,c (:foreground ,grey-2))))
`(whitespace-newline ((,c (:foreground ,grey-2))))
`(whitespace-trailing ((,c (:background ,grey-2))))
`(vertical-border ((,c (:foreground ,vertical-bar :background ,vertical-bar))))
;; `(linum ((,c (:foreground ,linum-fg :bold nil :height 0.9))))
`(linum ((,c (:foreground ,linum-fg :bold nil :height 0.8))))
`(doom-linum-highlight-face ((,c (:inherit linum :bold t :foreground ,linum-hl-fg))))
`(show-paren-match ((,c (:foreground ,magenta :bold t :inverse-video t))))
;; Modeline
`(mode-line ((,c (:foreground ,modeline-fg :background ,modeline-bg))))
`(mode-line-inactive ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive))))
`(mode-line-is-modified ((,c (:foreground ,red :background nil :bold t))))
`(mode-line-buffer-file ((,c (:foreground ,modeline-fg))))
`(mode-line-count-face ((,c (:foreground ,black :background ,magenta :bold t))))
`(powerline-active1 ((,c (:foreground ,modeline-fg-2 :background ,modeline-bg-2))))
`(powerline-active2 ((,c (:foreground ,modeline-fg-3 :background ,modeline-bg-3))))
`(powerline-inactive1 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive))))
`(powerline-inactive2 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive))))
`(spaceline-flycheck-error ((,c (:underline nil :foreground ,black :background ,red))))
`(spaceline-flycheck-warning ((,c (:underline nil :foreground ,black :background ,yellow))))
`(spaceline-flycheck-info ((,c (:underline nil :foreground ,black :background ,green))))
`(spaceline-highlight-face ((,c (:foreground ,black :background ,highlight))))
;; Search
`(isearch ((,c (:foreground ,search-fg :background ,search-bg))))
`(isearch-lazy-highlight-face ((,c (:foreground ,search-rest-fg :background ,search-rest-bg))))
`(doom-todo-face ((,c (:foreground ,yellow :bold t))))
`(doom-fixme-face ((,c (:foreground ,red :bold t))))
`(doom-note-face ((,c (:foreground ,cyan :bold t))))
`(evil-ex-substitute-replacement ((,c (:foreground ,magenta :background ,black :bold t))))
`(evil-search-highlight-persist-highlight-face ((,c (:background ,search-rest-bg))))
;; plugin-specific
;; *****************************************************************************************
`(reb-match-0 ((,c (:foreground ,orange :inverse-video t))))
`(reb-match-1 ((,c (:foreground ,magenta :inverse-video t))))
`(reb-match-2 ((,c (:foreground ,green :inverse-video t))))
`(reb-match-3 ((,c (:foreground ,yellow :inverse-video t))))
;; neotree
`(neo-root-dir-face ((,c (:foreground ,cyan))))
`(neo-file-link-face ((,c (:foreground ,black))))
`(neo-dir-link-face ((,c (:foreground ,blue))))
`(neo-expand-btn-face ((,c (:foreground ,magenta))))
;; company-mode
`(company-tooltip ((,c (:background ,black :foreground ,fg))))
`(company-tooltip-common ((,c (:foreground ,orange))))
`(company-tooltip-search ((,c (:foreground ,search-fg :background ,highlight))))
`(company-tooltip-selection ((,c (:background ,selection))))
`(company-tooltip-mouse ((,c (:background ,magenta :foreground ,bg))))
`(company-scrollbar-bg ((,c (:background ,black))))
`(company-scrollbar-fg ((,c (:background ,orange))))
`(company-preview ((,c (:foreground ,orange))))
`(company-preview-common ((,c (:foreground ,magenta :background ,grey-1))))
`(company-preview-search ((,c (:inherit company-tooltip-search))))
`(popup ((,c (:inherit company-tooltip))))
`(popup-tip-face ((,c (:inherit company-tooltip))))
;; evil-snipe
`(evil-snipe-first-match-face ((,c (:foreground ,search-fg :background ,search-bg))))
`(evil-snipe-matches-face ((,c (:foreground ,search-bg :underline t))))
;; Volatile highlights
`(vhl/default-face ((,c (:background ,grey-2))))
;; VCS
`(diff-hl-change ((,c (:foreground ,vc-modified))))
`(diff-hl-delete ((,c (:foreground ,vc-deleted))))
`(diff-hl-insert ((,c (:foreground ,vc-added))))
`(git-gutter+-modified ((,c (:foreground ,vc-modified :background nil))))
`(git-gutter+-added ((,c (:foreground ,vc-added :background nil))))
`(git-gutter+-deleted ((,c (:foreground ,vc-deleted :background nil))))
;; Rainbow delimiters
`(rainbow-delimiters-depth-1-face ((,c (:bold t :foreground ,magenta))))
`(rainbow-delimiters-depth-2-face ((,c (:bold t :foreground ,red))))
`(rainbow-delimiters-depth-3-face ((,c (:bold t :foreground ,cyan))))
`(rainbow-delimiters-depth-4-face ((,c (:bold t :foreground ,green))))
`(rainbow-delimiters-depth-5-face ((,c (:bold t :foreground ,yellow))))
`(rainbow-delimiters-unmatched-face ((,c (:foreground ,orange :inverse-video t))))
`(flyspell-incorrect ((,c (:underline (:style wave :color ,error-highlight) :inherit unspecified))))
;; Helm
`(helm-source-header ((,c (:background ,current-line :foreground ,grey-1))))
`(helm-selection ((,c (:background ,current-line))))
`(helm-swoop-target-line-face ((,c (:foreground ,highlight :inverse-video t))))
`(helm-match ((,c (:foreground ,blue))))
`(helm-ff-file ((,c (:foreground ,black))))
`(helm-ff-prefix ((,c (:foreground ,magenta))))
`(helm-ff-dotted-directory ((,c (:foreground ,grey-1))))
`(helm-ff-directory ((,c (:foreground ,orange :bold t))))
`(helm-ff-executable ((,c (:foreground ,white :slant italic))))
;; Avy
`(avy-lead-face-0 ((,c (:background ,orange :foreground ,black))))
`(avy-lead-face-1 ((,c (:background ,orange :foreground ,black))))
`(avy-lead-face-2 ((,c (:background ,orange :foreground ,black))))
`(avy-lead-face ((,c (:background ,orange :foreground ,black))))
;; lang-specific
;; *****************************************************************************************
;; js2-mode
`(js2-function-param ((,c (:foreground ,variables))))
`(js2-jsdoc-tag ((,c (:foreground ,comments :bold t))))
;; markdown-mode
`(markdown-header-face ((,c (:foreground ,orange :bold t))))
`(markdown-header-delimiter-face ((,c (:foreground ,orange :bold t))))
`(markdown-blockquote-face ((,c (:foreground ,blue+2))))
`(markdown-markup-face ((,c (:foreground ,cyan))))
`(markdown-inline-face ((,c (:foreground ,cyan))))
`(markdown-list-face ((,c (:foreground ,magenta))))
`(markdown-pre-face ((,c (:foreground ,cyan))))
`(markdown-header-face-1 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-2 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-3 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-4 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-5 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-6 ((,c (:inherit markdown-header-face))))
;; `(markdown-header-rule-face (:inherit shadow))
;; `(markdown-italic-face (:inherit italic))
;; `(markdown-link-face (:inherit shadow))
;; `(markdown-link-title-face (:inherit link))
;; `(markdown-url-face (:inherit link))
;; org-mode
`(variable-pitch ((,c (:font "DejaVu Sans" :height 1.0))))
`(fixed-pitch ((,c (:font "Hack" :height 1.0))))
`(org-tag ((,c (:foreground ,grey-1))))
;; `(org-ellipsis ((,c (:inherit hs-face))))
`(org-table ((,c (:foreground ,cyan))))
`(org-quote ((,c (:slant italic :foreground ,grey :background ,current-line))))
`(org-document-info ((,c (:foreground ,orange))))
`(org-document-info-keyword ((,c (:foreground ,grey-1))))
`(org-meta-line ((,c (:background ,current-line :foreground ,vsubtle))))
`(org-block-begin-line ((,c (:background ,current-line :foreground ,vsubtle))))
`(org-block-end-line ((,c (:inherit org-block-begin-line))))
`(org-document-title ((,c (:foreground ,cyan :height 1.2 :bold t))))
`(org-level-1 ((,c (:background ,current-line :foreground "#222222" :bold t))))
`(org-level-2 ((,c ( :foreground "#444444" :bold t))))
`(org-level-3 ((,c ( :foreground "#888888" :bold t))))
`(org-level-4 ((,c ( :foreground ,violet :bold t))))
`(org-level-5 ((,c ( :foreground ,orange))))
`(org-level-6 ((,c ( :foreground ,blue+2))))
;;`(org-level-7 ((,c ())))
;;`(org-level-8 ((,c ())))
;;`(org-checkbox ((,class (:box (:line-width 1 :style released-button)))))
`(org-code ((,c (:foreground ,orange))))
`(org-verbatim ((,c (:foreground ,green))))
`(org-formula ((,c (:foreground ,cyan))))
`(org-list-dt ((,c (:foreground ,cyan :bold t))))
`(org-footnote ((,c (:foreground ,orange))))
`(org-link ((,c (:underline t :foreground ,green :bold inherit))))
`(org-date ((,c (:foreground ,violet))))
`(org-todo ((,c (:foreground ,orange :bold inherit))))
`(org-done ((,c (:foreground ,green :bold inherit))))
`(org-headline-done ((,c (:foreground ,grey-1 :strike-through t :bold nil))))
`(org-special-keyword ((,c (:foreground ,magenta))))
`(org-checkbox-statistics-todo ((,c (:inherit org-todo))))
`(org-checkbox-statistics-done ((,c (:inherit org-done))))
;; DOOM custom org faces
`(org-headline-todo ((,c (:foreground ,dark-cyan :bold nil))))
`(org-block ((,c (:background ,current-line))))
`(org-block-background ((,c (:background ,current-line))))
`(org-todo-high ((,c (:foreground ,orange :bold inherit))))
`(org-todo-vhigh ((,c (:foreground ,magenta :bold inherit))))
`(org-list-bullet ((,c (:foreground ,orange :bold t))))
`(org-whitespace ((,c (:inherit fixed-pitch))))
`(org-todo-checkbox ((,c (:inherit variable-pitch))))
))
;; *****************************************************************************************
(provide-theme 'doom-light)
;; Local Variables:
;; no-byte-compile: t
;; End:

View file

@ -0,0 +1,408 @@
;;; doom-one-light-theme.el
(deftheme doom-one-light
"A dark theme for hellish emacs, inspired by Atom One Light")
;; Color helper functions
;; Shamelessly *borrowed* from solarized
(defun doom-name-to-rgb (color &optional frame)
(mapcar (lambda (x) (/ x (float (car (color-values "#ffffff")))))
(color-values color frame)))
(defun doom-blend (color1 color2 alpha)
(apply (lambda (r g b) (format "#%02x%02x%02x" (* r 255) (* g 255) (* b 255)))
(--zip-with (+ (* alpha it) (* other (- 1 alpha)))
(doom-name-to-rgb color1)
(doom-name-to-rgb color2))))
(defun doom-darken (color alpha)
(doom-blend color "#000000" (- 1 alpha)))
(defun doom-lighten (color alpha)
(doom-blend color "#FFFFFF" (- 1 alpha)))
(when (display-graphic-p)
(defface doom-default '((t (:inherit default)))
"Face for source code windows."
:group 'doom)
(defface doom-fringe '((t (:inherit doom-default)))
"Face for source code window fringes."
:group 'doom)
(defface doom-minibuffer-active '((t (:inherit mode-line)))
"Face for active minibuffer. See `doom-enable-bright-minibuffer'."
:group 'doom)
(defface doom-linum '((t (:inherit linum)))
"Another linum face for darker windows (like popups)."
:group 'doom)
(defface doom-nlinum-highlight '((t (:inherit linum)))
"A face for the nlinum overlay on the current line."
:group 'doom)
;; Brighten up code buffers; darken special and popup buffers
(put 'face-remapping-alist 'permanent-local t)
(make-variable-buffer-local 'face-remapping-alist)
(defun doom|brighten-buffer (&rest _)
(setq-local face-remapping-alist
'((default doom-default)
(fringe doom-default)
(linum doom-linum))))
(add-hook 'find-file-hook 'doom|brighten-buffer)
;; Brighter minibuffer when active + no fringe in minibuffer
(defun doom|brighten-minibuffer ()
(with-selected-window (minibuffer-window)
(setq-local face-remapping-alist
'((default doom-minibuffer-active)))))
(add-hook 'minibuffer-setup-hook 'doom|brighten-minibuffer))
(let ((c '((class color) (min-colors 89)))
(bold t)
(italic t)
(black "#373a42")
(white "#FFFFFF")
(grey "#373a47")
(grey-l "#d0d0d1")
(grey-d "#586470")
(grey-dd "#20272e")
(yellow "#E2C770")
(yellow-d "#CDB464")
(orange "#E69055")
(red "#ff665c")
(magenta "#DC79DC")
(violet "#9C91E4")
(violet-d "#7C71C4")
(cyan "#46D9FF")
(cyan-d "#8FA1B3")
(blue "#0087bc")
(blue-l "#007ff3")
(blue-d "#00437F")
(green "#7bc275")
(green-d "#86B20E"))
(let* ((bg "#fafafa")
(bg-l "#dadadb")
(bg-d "#f2f2f2")
(fg "#282929")
(highlight blue)
(vertical-bar "#d1d1d2")
(current-line bg-d)
(selection blue-d)
(builtin magenta)
(comments grey-l)
(doc-comments "#7F7F8A")
(constants green)
(delimiters violet)
(functions blue)
(keywords blue)
(methods cyan-d)
(operators magenta)
(type yellow)
(strings green)
(variables cyan)
;; main search regions
(search-bg blue)
(search-fg black)
;; other search regions
(search-rest-bg grey-d)
(search-rest-fg blue)
;; line number column
(linum-bg bg-d)
(linum-fg grey-l)
(linum-hl-bg bg-d)
(linum-hl-fg grey-d)
;; mode line
(modeline-fg grey-d)
(modeline-fg-l blue)
(modeline-bg bg-d)
(modeline-fg-inactive grey)
(modeline-bg-inactive grey-l)
;; vcs
(vc-modified yellow-d)
(vc-added green)
(vc-deleted red))
(custom-theme-set-faces
'doom-one-light
;; Doom faces
`(doom-default ((,c (:inherit default :background ,bg))))
`(doom-minibuffer-active ((,c (:background ,bg))))
`(doom-linum ((,c (:inherit linum :background ,bg))))
`(doom-nlinum-highlight ((,c (:inherit linum :foreground ,linum-hl-fg :background ,current-line))))
`(doom-flycheck-error ((,c (:underline nil :foreground ,black :background ,red))))
`(doom-flycheck-warning ((,c (:underline nil :foreground ,black :background ,yellow))))
`(doom-flycheck-info ((,c (:underline nil :foreground ,black :background ,green))))
;; Base
`(bold ((,c (:weight ,(if bold 'bold 'normal)))))
`(italic ((,c (:slant ,(if italic 'italic 'normal)))))
`(bold-italic ((,c (:weight ,(if bold 'bold 'normal) :slant ,(if italic 'italic 'normal) :foreground ,white))))
;; Global
`(default ((,c (:background ,bg-d :foreground ,fg))))
`(fringe ((,c (:inherit doom-default :foreground ,comments))))
`(region ((,c (:background ,selection :foreground ,white))))
`(highlight ((,c (:background ,blue :foreground ,black))))
`(hl-line ((,c (:background ,current-line))))
`(cursor ((,c (:background ,white))))
`(shadow ((,c (:foreground ,violet))))
`(minibuffer-prompt ((,c (:foreground ,blue))))
`(tooltip ((,c (:background ,black :foreground ,fg))))
`(error ((,c (:foreground ,red))))
`(warning ((,c (:foreground ,yellow))))
`(success ((,c (:foreground ,green))))
;;`(secondary-selection ((,c (:background ,orange))))
;;`(lazy-highlight ((,c (:background ,orange))))
`(match ((,c (:foreground ,magenta :background ,black :bold ,bold))))
`(trailing-whitespace ((,c (:background ,doc-comments))))
`(vertical-border ((,c (:foreground ,vertical-bar :background ,vertical-bar))))
`(show-paren-match ((,c (:foreground ,magenta :inverse-video t))))
`(linum ((,c (:foreground ,linum-fg :background ,bg-d :bold nil))))
`(font-lock-builtin-face ((,c (:foreground ,builtin))))
`(font-lock-comment-face ((,c (:foreground ,comments))))
`(font-lock-comment-delimiter-face ((,c (:foreground ,comments))))
`(font-lock-doc-face ((,c (:foreground ,doc-comments))))
`(font-lock-doc-string-face ((,c (:foreground ,doc-comments))))
`(font-lock-constant-face ((,c (:foreground ,constants))))
`(font-lock-function-name-face ((,c (:foreground ,functions))))
`(font-lock-keyword-face ((,c (:foreground ,keywords))))
`(font-lock-string-face ((,c (:foreground ,strings))))
`(font-lock-type-face ((,c (:foreground ,type))))
`(font-lock-variable-name-face ((,c (:foreground ,variables))))
`(font-lock-warning-face ((,c (:inherit warning))))
`(font-lock-negation-char-face ((,c (:foreground ,operators :bold ,bold))))
`(font-lock-preprocessor-char-face ((,c (:foreground ,operators :bold ,bold))))
`(font-lock-regexp-grouping-backslash ((,c (:foreground ,operators :bold ,bold))))
`(font-lock-regexp-grouping-construct ((,c (:foreground ,operators :bold ,bold))))
;; Modeline
`(mode-line ((,c (:foreground ,modeline-fg :background ,modeline-bg))))
`(mode-line-inactive ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive))))
`(spaceline-highlight-face ((,c (:foreground ,black :background ,yellow))))
`(powerline-active1 ((,c (:foreground ,modeline-fg-l :background ,modeline-bg))))
`(powerline-active2 ((,c (:foreground ,modeline-fg-l :background ,modeline-bg))))
`(powerline-inactive1 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive))))
`(powerline-inactive2 ((,c (:foreground ,modeline-fg-inactive :background ,modeline-bg-inactive))))
;; Custom modeline faces
`(mode-line-is-modified ((,c (:foreground ,red :bold ,bold))))
`(mode-line-buffer-file ((,c (:foreground ,modeline-fg :bold ,bold))))
`(mode-line-buffer-path ((,c (:foreground ,modeline-fg-l))))
`(mode-line-count-face ((,c (:foreground ,black :background ,modeline-fg-l))))
`(mode-line-vcs-info ((,c (:inherit success))))
`(mode-line-vcs-warning ((,c (:inherit error))))
;; Search
`(isearch ((,c (:foreground ,search-fg :background ,search-bg))))
`(isearch-lazy-highlight-face ((,c (:foreground ,search-rest-fg :background ,search-rest-bg))))
;;
;; Plugins
;;
;; whitespace
`(whitespace-tab ((,c (:foreground ,grey-d))))
`(whitespace-newline ((,c (:foreground ,grey-d))))
`(whitespace-trailing ((,c (:background ,grey-d))))
`(whitespace-line ((,c (:background ,current-line :foreground ,magenta))))
;; hide-show
`(hs-face ((,c (:foreground ,comments :background ,black))))
`(hs-fringe-face ((,c (:foreground ,blue))))
;; flycheck
`(flycheck-error ((,c (:underline (:style wave :color ,red) :background ,bg-d))))
`(flycheck-warning ((,c (:underline (:style wave :color ,yellow) :background ,bg-d))))
`(flycheck-info ((,c (:underline (:style wave :color ,green) :background ,bg-d))))
`(flyspell-incorrect ((,c (:underline (:style wave :color ,red) :inherit unspecified))))
;; indent-guide, highlight-{quoted,numbers,indentation}-mode
`(indent-guide-face ((,c (:foreground "#2F2F38"))))
`(highlight-indentation-face ((,c (:background "#222830"))))
`(highlight-indentation-current-column-face ((,c (:background "#222830"))))
`(highlight-indentation-guides-odd-face ((,c (:background ,bg))))
`(highlight-indentation-guides-even-face ((,c (:background "#222830"))))
`(highlight-quoted-symbol ((,c (:foreground ,type))))
`(highlight-quoted-quote ((,c (:foreground ,operators))))
`(highlight-numbers-number ((,c (:foreground ,constants))))
;; re-builder
`(reb-match-0 ((,c (:foreground ,orange :inverse-video t))))
`(reb-match-1 ((,c (:foreground ,magenta :inverse-video t))))
`(reb-match-2 ((,c (:foreground ,green :inverse-video t))))
`(reb-match-3 ((,c (:foreground ,yellow :inverse-video t))))
;; workgroups2
`(wg-current-workgroup-face ((,c (:foreground ,black :background ,blue))))
`(wg-other-workgroup-face ((,c (:foreground ,grey-l :background ,current-line))))
`(wg-divider-face ((,c (:foreground ,grey-d))))
`(wg-brace-face ((,c (:foreground ,blue))))
;; neotree
`(neo-root-dir-face ((,c (:foreground ,green))))
`(neo-file-link-face ((,c (:foreground ,fg))))
`(neo-dir-link-face ((,c (:foreground ,blue))))
`(neo-expand-btn-face ((,c (:foreground ,blue))))
;; company-mode
`(company-tooltip ((,c (:inherit tooltip))))
`(company-tooltip-common ((,c (:foreground ,blue))))
`(company-tooltip-search ((,c (:foreground ,search-fg :background ,highlight))))
`(company-tooltip-selection ((,c (:background ,selection))))
`(company-tooltip-mouse ((,c (:background ,magenta :foreground ,bg))))
`(company-tooltip-annotation ((,c (:foreground ,violet))))
`(company-scrollbar-bg ((,c (:background ,black))))
`(company-scrollbar-fg ((,c (:background ,blue))))
`(company-preview ((,c (:foreground ,blue))))
`(company-preview-common ((,c (:foreground ,magenta :background ,grey-d))))
`(company-preview-search ((,c (:inherit company-tooltip-search))))
;; pos-tip
`(popup ((,c (:inherit tooltip))))
`(popup-tip-face ((,c (:inherit tooltip))))
;; evil-mode
`(evil-ex-substitute-replacement ((,c (:inherit match))))
`(evil-search-highlight-persist-highlight-face ((,c (:inherit isearch-lazy-highlight-face))))
;; evil-snipe
`(evil-snipe-first-match-face ((,c (:foreground ,search-fg :background ,search-bg))))
`(evil-snipe-matches-face ((,c (:foreground ,search-bg :underline t))))
;; Volatile highlights
`(vhl/default-face ((,c (:background ,grey-d))))
;; VCS
`(diff-hl-change ((,c (:foreground ,vc-modified))))
`(diff-hl-delete ((,c (:foreground ,vc-deleted))))
`(diff-hl-insert ((,c (:foreground ,vc-added))))
`(git-gutter:modified ((,c (:foreground ,vc-modified))))
`(git-gutter:added ((,c (:foreground ,vc-added))))
`(git-gutter:deleted ((,c (:foreground ,vc-deleted))))
`(git-gutter+-modified ((,c (:foreground ,vc-modified :background nil))))
`(git-gutter+-added ((,c (:foreground ,vc-added :background nil))))
`(git-gutter+-deleted ((,c (:foreground ,vc-deleted :background nil))))
;; Rainbow delimiters
`(rainbow-delimiters-depth-1-face ((,c (:foreground ,blue))))
`(rainbow-delimiters-depth-2-face ((,c (:foreground ,magenta))))
`(rainbow-delimiters-depth-3-face ((,c (:foreground ,green))))
`(rainbow-delimiters-depth-4-face ((,c (:foreground ,orange))))
`(rainbow-delimiters-depth-5-face ((,c (:foreground ,violet))))
`(rainbow-delimiters-unmatched-face ((,c (:foreground ,red :inverse-video t))))
;; Helm
`(helm-selection ((,c (:background ,selection :foreground ,fg))))
`(helm-match ((,c (:foreground ,magenta :bold ,bold))))
`(helm-source-header ((,c (:background ,current-line :foreground ,grey-l))))
`(helm-swoop-target-line-face ((,c (:foreground ,highlight :inverse-video t))))
`(helm-ff-file ((,c (:foreground ,fg))))
`(helm-ff-prefix ((,c (:foreground ,magenta))))
`(helm-ff-dotted-directory ((,c (:foreground ,grey-d))))
`(helm-ff-directory ((,c (:foreground ,orange))))
`(helm-ff-executable ((,c (:foreground ,white :slant italic))))
;; Avy
`(avy-lead-face-0 ((,c (:background ,search-bg :foreground ,search-fg))))
`(avy-lead-face-1 ((,c (:background ,search-bg :foreground ,search-fg))))
`(avy-lead-face-2 ((,c (:background ,search-bg :foreground ,search-fg))))
`(avy-lead-face ((,c (:background ,search-bg :foreground ,search-fg))))
;; which-key
`(which-key-key-face ((,c (:foreground ,green))))
`(which-key-group-description-face ((,c (:foreground ,violet))))
`(which-key-command-description-face ((,c (:foreground ,blue))))
`(which-key-local-map-description-face ((,c (:foreground ,magenta))))
;;
;; Language-specific
;;
;; (css|scss)-mode
`(css-proprietary-property ((,c (:foreground ,keywords))))
;; js2-mode
`(js2-function-param ((,c (:foreground ,variables))))
`(js2-function-call ((,c (:foreground ,functions))))
`(js2-object-property ((,c (:foreground ,methods))))
`(js2-jsdoc-tag ((,c (:foreground ,comments))))
;; web-mode
`(web-mode-doctype-face ((,c (:foreground ,comments))))
`(web-mode-html-tag-face ((,c (:foreground ,methods))))
`(web-mode-html-tag-bracket-face ((,c (:foreground ,methods))))
`(web-mode-html-attr-name-face ((,c (:foreground ,type))))
`(web-mode-html-entity-face ((,c (:foreground ,cyan :italic t))))
`(web-mode-block-control-face ((,c (:foreground ,orange))))
;;`(web-mode-html-tag-bracket-face ((,c (:foreground ,operators))))
;; markdown-mode
`(markdown-header-face ((,c (:foreground ,blue :bold ,bold))))
`(markdown-header-delimiter-face ((,c (:inherit markdown-header-face))))
`(markdown-blockquote-face ((,c (:foreground ,violet))))
`(markdown-markup-face ((,c (:foreground ,operators))))
`(markdown-pre-face ((,c (:inherit markdown-markup-face))))
`(markdown-inline-face ((,c (:foreground ,cyan))))
`(markdown-list-face ((,c (:foreground ,magenta))))
`(markdown-link-face ((,c (:foreground ,yellow :bold nil))))
`(markdown-url-face ((,c (:foreground ,green :bold nil))))
`(markdown-header-face-1 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-2 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-3 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-4 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-5 ((,c (:inherit markdown-header-face))))
`(markdown-header-face-6 ((,c (:inherit markdown-header-face))))
;;`(markdown-header-rule-face (:inherit shadow))
;;`(markdown-italic-face (:inherit italic))
;;`(markdown-link-face (:inherit shadow))
;;`(markdown-link-title-face (:inherit link))
;;`(markdown-url-face (:inherit link))
;; org-mode
`(org-tag ((,c (:foreground ,yellow :bold nil))))
;;`(org-ellipsis ((,c (:inherit hs-face))))
`(org-hide ((,c (:foreground ,bg))))
`(org-table ((,c (:foreground ,cyan))))
`(org-quote ((,c (:slant italic :foreground ,grey-l :background ,current-line))))
`(org-document-info ((,c (:foreground ,orange))))
`(org-document-info-keyword ((,c (:foreground ,grey-d))))
`(org-meta-line ((,c (:foreground ,doc-comments))))
`(org-block-begin-line ((,c (:background ,current-line :foreground ,doc-comments))))
`(org-block-end-line ((,c (:inherit org-block-begin-line))))
`(org-block-background ((,c (:background ,current-line))))
`(org-archived ((,c (:foreground ,grey-l))))
`(org-document-title ((,c (:foreground ,cyan))))
`(org-level-1 ((,c (:background ,current-line :foreground ,magenta :bold ,bold))))
`(org-level-2 ((,c ( :foreground ,cyan-d :bold ,bold))))
`(org-level-3 ((,c ( :foreground ,violet :bold ,bold))))
`(org-level-4 ((,c ( :foreground ,green :bold ,bold))))
`(org-level-5 ((,c ( :foreground ,yellow))))
`(org-level-6 ((,c ( :foreground ,blue))))
`(org-code ((,c (:foreground ,orange))))
`(org-verbatim ((,c (:foreground ,green))))
`(org-formula ((,c (:foreground ,cyan))))
`(org-list-dt ((,c (:foreground ,cyan))))
`(org-footnote ((,c (:foreground ,orange))))
`(org-link ((,c (:foreground ,cyan :bold inherit :underline t))))
`(org-date ((,c (:foreground ,violet))))
`(org-todo ((,c (:foreground ,yellow :bold inherit))))
`(org-done ((,c (:foreground ,green :bold inherit))))
`(org-headline-done ((,c (:foreground ,grey-l :bold nil :strike-through t))))
`(org-special-keyword ((,c (:foreground ,magenta))))
`(org-checkbox-statistics-todo ((,c (:inherit org-todo))))
`(org-checkbox-statistics-done ((,c (:inherit org-done))))
)
(custom-theme-set-variables
'doom-one-light
`(vc-annotate-color-map
'((20 . ,green)
(40 . ,(doom-blend yellow green (/ 1.0 3)))
(60 . ,(doom-blend yellow green (/ 2.0 3)))
(80 . ,yellow)
(100 . ,(doom-blend orange yellow (/ 1.0 3)))
(120 . ,(doom-blend orange yellow (/ 2.0 3)))
(140 . ,orange)
(160 . ,(doom-blend magenta orange (/ 1.0 3)))
(180 . ,(doom-blend magenta orange (/ 2.0 3)))
(200 . ,magenta)
(220 . ,(doom-blend red magenta (/ 1.0 3)))
(240 . ,(doom-blend red magenta (/ 2.0 3)))
(260 . ,red)
(280 . ,(doom-blend grey red (/ 1.0 4)))
(300 . ,(doom-blend grey red (/ 2.0 4)))
(320 . ,(doom-blend grey red (/ 3.0 4)))
(340 . ,grey)
(360 . ,grey)))
`(vc-annotate-very-old-color nil)
`(vc-annotate-background ,black))))
(provide-theme 'doom-one-light)
;; Local Variables:
;; no-byte-compile: t
;; End: