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 ;; NOTE: Doesn't look pretty outside of emacs-mac
(use-package company-quickhelp (use-package company-quickhelp
:when (featurep 'mac)
:after company :after company
:config (company-quickhelp-mode +1)) :config (company-quickhelp-mode +1))

View file

@ -12,21 +12,22 @@
(setq shackle-rules (setq shackle-rules
`(;; Util `(;; Util
("^\\*.+-Profiler-Report .+\\*$" :align below :size 0.3 :regexp t) ("^\\*.+-Profiler-Report .+\\*$" :align below :size 0.3 :regexp t)
("*esup*" :align below :size 30 :noselect t) ("*esup*" :align below :size 30 :noselect t)
("*minor-modes*" :align below :size 0.5 :noselect t) ("*minor-modes*" :align below :size 0.5 :noselect t)
;; Emacs ;; Emacs
("*Apropos*" :align below :size 0.3) ("*Pp Eval Output*" :align below :size 0.3)
("*Backtrace*" :align below :size 25 :noselect t) ("*Apropos*" :align below :size 0.3)
("*Completions*" :align below :size 20 :noselect t) ("*Backtrace*" :align below :size 25 :noselect t)
("*Help*" :align below :size 16 :select t) ("*Completions*" :align below :size 20 :noselect t)
("*Messages*" :align below :size 15 :select t) ("*Help*" :align below :size 16 :select t)
("*Warnings*" :align below :size 10 :noselect t) ("*Messages*" :align below :size 15 :select t)
(compilation-mode :align below :size 15 :noselect t) ("*Warnings*" :align below :size 10 :noselect t)
(eww-mode :align below :size 30 :select t) (compilation-mode :align below :size 15 :noselect t)
(eww-mode :align below :size 30 :select t)
;; vcs ;; vcs
("*vc-diff*" :align below :size 15 :noselect t) ("*vc-diff*" :align below :size 15 :noselect t)
("*vc-change-log*" :align below :size 15 :select t) ("*vc-change-log*" :align below :size 15 :select t)
(vc-annotate-mode :same t))) (vc-annotate-mode :same t)))
(defvar doom-popup-windows '() (defvar doom-popup-windows '()
"A list of windows that have been opened via shackle. Do not touch this!") "A list of windows that have been opened via shackle. Do not touch this!")

View file

@ -1,13 +1,13 @@
;;; core-ui.el --- interface & mode-line config ;;; 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 ;; y/n instead of yes/no
(fset 'yes-or-no-p 'y-or-n-p) (fset 'yes-or-no-p 'y-or-n-p)
(setq-default (setq-default
indicate-buffer-boundaries nil ; don't show where buffer starts/ends 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 fringes-outside-margins t ; switches order of fringe and margin
;; Keep cursors and highlights in current window only ;; Keep cursors and highlights in current window only
cursor-in-non-selected-windows nil cursor-in-non-selected-windows nil
@ -52,6 +52,7 @@
(set-frame-font doom-default-font t) (set-frame-font doom-default-font t)
(set-face-attribute 'default t :font doom-current-font) (set-face-attribute 'default t :font doom-current-font)
;; standardize fringe width ;; standardize fringe width
(fringe-mode doom-fringe-size)
(push `(left-fringe . ,doom-fringe-size) default-frame-alist) (push `(left-fringe . ,doom-fringe-size) default-frame-alist)
(push `(right-fringe . ,doom-fringe-size) default-frame-alist) (push `(right-fringe . ,doom-fringe-size) default-frame-alist)
;; Default frame size on startup ;; 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-left ""
wg-list-display-decor-previous-right "") wg-list-display-decor-previous-right "")
(add-hook 'emacs-startup-hook 'workgroups-mode)
:config :config
;; Remember fixed workgroup names between sessions ;; Remember fixed workgroup names between sessions
(push 'doom-wg-names savehist-additional-variables) (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 'doom:switch-to-workgroup-at-index)
(defalias 'doom:switch-to-tab-left 'wg-switch-to-workgroup-left) (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-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) (provide 'core-workgroups)
;;; core-workgroups.el ends here ;;; core-workgroups.el ends here

View file

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

View file

@ -51,5 +51,12 @@
(evil-visual-state) (evil-visual-state)
(evil-goto-mark ?\])) (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) (provide 'defuns-editor)
;;; defuns-editor.el ends here ;;; 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 (align-regexp beg end
(concat "\\(\\s-*\\)" (rxt-pcre-to-elisp regexp)) 1 1))) (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) (provide 'defuns-whitespace)
;;; defuns-whitespace.el ends here ;;; defuns-whitespace.el ends here

View file

@ -1,5 +1,7 @@
;;; defuns-eshell.el ;;; defuns-eshell.el
(require 'eshell)
(defun doom--eshell-in-prompt-p (&optional offset) (defun doom--eshell-in-prompt-p (&optional offset)
(>= (- (point) (or offset 0)) (save-excursion (eshell-bol) (point)))) (>= (- (point) (or offset 0)) (save-excursion (eshell-bol) (point))))
@ -11,6 +13,16 @@
(concat " [" (substring branch 2) "]") (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 ;;;###autoload
(defun doom/eshell-prompt () (defun doom/eshell-prompt ()
(concat (propertize (abbreviate-file-name (eshell/pwd)) 'face 'eshell-prompt) (concat (propertize (abbreviate-file-name (eshell/pwd)) 'face 'eshell-prompt)

View file

@ -34,7 +34,7 @@
(font-lock-add-keywords (font-lock-add-keywords
nil `(("(\\(lambda\\)" (1 (doom/show-as ))) 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+) ;; Highlight doom macros (macros are fontified in emacs 25+)
(,(concat (,(concat
"(\\(def-" "(\\(def-"

View file

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

View file

@ -6,8 +6,7 @@
("\\.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
(def-docset! haskell-mode ("Haskell")) (def-docset! haskell-mode ("Haskell"))
(def-popup! "*debug:haskell*" :size 20) (def-popup! "*debug:haskell*" :size 20)
@ -16,8 +15,7 @@
(use-package inf-haskell (use-package inf-haskell
:commands (inferior-haskell-mode inf-haskell-mode switch-to-haskell) :commands (inferior-haskell-mode inf-haskell-mode switch-to-haskell)
:config :config (map! :map inf-haskell-mode-map "ESC ESC" 'doom/popup-close))
(map! :map inf-haskell-mode-map "ESC ESC" 'doom/popup-close))
(provide 'module-haskell) (provide 'module-haskell)
;;; module-haskell.el ends here ;;; module-haskell.el ends here

View file

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

View file

@ -4,9 +4,7 @@
:when IS-MAC :when IS-MAC
: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-mode-line)
(add-hook 'processing-compilation-mode-hook 'doom|hide-mode-line)
:config :config
(def-builder! processing-mode processing-sketch-build) (def-builder! processing-mode processing-sketch-build)
(def-docset! processing-mode ("Processing")) (def-docset! processing-mode ("Processing"))

View file

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

View file

@ -1,340 +1,323 @@
;;; my-bindings.el ;;; my-bindings.el
(map! (map! "<f9>" 'what-face
"M-x" 'helm-M-x ;; Essential
"A-x" 'helm-M-x "M-x" 'helm-M-x
"M-;" 'eval-expression "A-x" 'helm-M-x
"A-;" 'eval-expression "M-;" 'eval-expression
"M-/" 'evil-commentary-line "A-;" 'eval-expression
"A-/" 'evil-commentary-line ;; Tools
"M-/" 'evil-commentary-line
"A-/" 'evil-commentary-line
"M-b" 'doom:build
"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
"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))
:m "M-4" (λ! (doom:switch-to-tab 3))
:m "M-5" (λ! (doom:switch-to-tab 4))
:m "M-6" (λ! (doom:switch-to-tab 5))
: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
"A-SPC" 'just-one-space
"M-a" 'mark-whole-buffer
"M-c" 'evil-yank
"M-o" 'helm-find-files
"M-q" 'evil-quit-all
"M-s" 'save-buffer
"M-v" 'clipboard-yank
"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>" 'doom/delete-forward-word)
"M-0" (λ! (text-scale-set 0)) ;;; <leader> and <localleader>
"M-=" 'text-scale-increase :m ";" 'evil-ex
"M--" 'text-scale-decrease (:leader
:nv "," 'doom/helm-buffers-dwim
:nv "<" 'helm-buffers-list
:nv "." 'helm-find-files
:nv ">" 'helm-projectile-find-file-in-known-projects
:nv "/" 'helm-projectile-find-file
:nv ";" 'helm-semantic-or-imenu
:nv ":" 'helm-imenu-in-all-buffers
:nv "]" 'helm-etags-select
:nv "a" 'helm-projectile-find-other-file
:nv "m" 'helm-recentf
:nv "M" 'helm-projectile-recentf
:nv "P" 'helm-projectile-switch-project
:v "=" 'align-regexp
: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 "b" 'helm-bookmarks
:nv "l" 'doom/nlinum-toggle
: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
;; 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)
(: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 "t" 'os-switch-to-term
: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 "x" 'doom/org))
;; debug (:localleader
"<f9>" 'what-face :n "\\" 'doom/neotree
:n "]" 'imenu-list-minor-mode
:n "b" 'doom:build
:n "R" 'doom:repl
:v "R" 'doom:repl-eval
:v "r" 'doom:eval-region
(:prefix "r" ; <refactor/run>
:n "e" 'emr-show-refactor-menu
:n "r" 'doom:eval-buffer))
"M-b" 'doom:build ;;; Evil-esque bindings
"M-t" 'doom:tab-create ;; Yank to EOL
"M-T" 'doom/tab-display :n "Y" "y$"
"A-`" 'os-switch-to-term ;; Don't move cursor on indent
"C-`" 'doom/popup-toggle :n "=" 'doom/static-reindent
"C-~" 'doom:repl :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
: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
:m "[e" 'doom/flycheck-previous-error
;; Switch tabs
:n "]w" 'doom:switch-to-tab-right
: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))
;; Navigation
:nv "K" 'smart-up
:m "gD" 'doom/find-def
:n "gp" 'doom/reselect-paste
:n "gc" 'evil-commentary
:n "gx" 'evil-exchange
:n "gr" 'doom:eval-region
:n "gR" 'doom:eval-buffer
:v "gR" 'doom:eval-region-and-replace
:m "g]" 'smart-right
: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)
(evil-visual-restore))
;; vnoremap > >gv
: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
;; paste from recent yank register (which isn't overwritten)
:v "C-p" "\"0p"
"M-w" 'doom/close-window-or-tab (:map evil-window-map ; prefix "C-w"
"M-W" 'delete-frame ;; Navigation
"M-n" 'doom/new-buffer "C-h" 'evil-window-left
"M-N" 'doom/new-frame "C-j" 'evil-window-down
"C-k" 'evil-window-up
"C-l" 'evil-window-right
"C-w" 'ace-window
;; 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)))
;; Simpler window navigation ;;; Plugins
"C-j" 'evil-window-down ;; evil-visual-star
"C-k" 'evil-window-up :v "*" 'evil-visualstar/begin-search-forward
"C-h" 'evil-window-left :v "#" 'evil-visualstar/begin-search-backward
"C-l" 'evil-window-right
"A-j" 'doom/evil-window-resize-d ;; evil-multiedit
"A-k" 'doom/evil-window-resize-u :v "R" 'evil-multiedit-match-all
"A-h" 'doom/evil-window-resize-l :n "M-C-D" 'evil-multiedit-restore
"A-l" 'doom/evil-window-resize-r :nv "M-d" 'evil-multiedit-match-and-next
:nv "M-D" 'evil-multiedit-match-and-prev
(:map evil-multiedit-state-map
:v "RET" 'evil-multiedit-toggle-or-restrict-region)
"C-<escape>" 'evil-emacs-state ;; evil-surround
:e "C-<escape>" 'evil-normal-state :v "S" 'evil-surround-region
:o "s" 'evil-surround-edit
:o "S" 'evil-Surround-edit
:m "M-1" (λ! (doom:switch-to-tab 0)) ;; expand-region
:m "M-2" (λ! (doom:switch-to-tab 1)) :v "v" 'er/expand-region
:m "M-3" (λ! (doom:switch-to-tab 2)) :v "V" 'er/contract-region
:m "M-4" (λ! (doom:switch-to-tab 3))
:m "M-5" (λ! (doom:switch-to-tab 4))
:m "M-6" (λ! (doom:switch-to-tab 5))
: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 ;; evil-matchit
"<A-left>" 'backward-word :m "%" 'evilmi-jump-items
"<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
"M-o" 'helm-find-files
"M-q" 'evil-quit-all
"M-s" 'save-buffer
"M-v" 'clipboard-yank
"M-z" 'undo
"M-Z" 'redo
"C-M-f" 'doom:toggle-fullscreen
:m "M-j" 'doom/multi-next-line ;; hide-show
:m "M-k" 'doom/multi-previous-line :m [tab] (λ! (if (ignore-errors (hs-already-hidden-p))
(hs-toggle-hiding)
(call-interactively 'evilmi-jump-items)))
;; rotate-text
:n "!" 'rotate-text
:n "M-r" 'doom:eval-buffer ;; auto-yasnippet
:v "M-r" 'doom:eval-region :i "<C-tab>" 'aya-expand
:nv "<C-tab>" 'aya-create
:ni "<M-f1>" 'doom/dash-at-pt ;; yasnippet
(:map yas-minor-mode-map
:i [(tab)] 'yas-expand
:v "<backtab>" 'doom/yas-insert-snippet)
;; Textmate-esque indent shift left/right ;; company-mode and vim-like omni-complete
:i "M-]" 'doom/smart-indent :i "C-SPC" 'doom/company-complete
:i "M-[" 'doom/dumb-dedent (:prefix "C-x"
:i "C-l" 'doom/company-whole-lines
:i "C-k" 'doom/company-dict-or-keywords
:i "C-f" 'company-files
:i "C-]" 'company-tags
:i "s" 'company-ispell
:i "C-s" 'company-yasnippet
:i "C-o" 'company-capf
:i "C-n" 'company-dabbrev-code
:i "C-p" (λ! (let ((company-selection-wrap-around t))
(call-interactively 'company-dabbrev-code)
(company-select-previous-or-abort))))
;; Restore osx text objects (:after company
:i "<A-backspace>" 'evil-delete-backward-word (:map company-active-map
:i "<A-delete>" (λ! (evil-forward-word) (evil-delete-backward-word))) "C-o" 'company-search-kill-others
"C-n" 'company-select-next
"C-p" 'company-select-previous
"C-h" 'company-quickhelp-manual-begin
"C-S-h" 'company-show-doc-buffer
"C-S-s" 'company-search-candidates
"C-s" 'company-filter-candidates
"C-SPC" 'company-complete-common-or-cycle
[tab] 'doom/company-complete-common-or-complete-full
"<backtab>" 'company-select-previous
[escape] (λ! (company-abort) (evil-normal-state 1))
"<C-return>" 'helm-company)
(:map company-search-map
"C-n" 'company-search-repeat-forward
"C-p" 'company-search-repeat-backward
[escape] 'company-search-abort))
:m ";" 'evil-ex ;; help-mode
(:leader (:after help-mode
:nv "," 'doom/helm-buffers-dwim (:map help-map
:nv "<" 'helm-buffers-list "e" 'doom/popup-messages)
:nv "." 'helm-find-files (:map help-mode-map
:nv ">" 'helm-projectile-find-file-in-known-projects :n "]]" 'help-go-forward
:nv "/" 'helm-projectile-find-file :n "[[" 'help-go-back))
:nv ";" 'helm-semantic-or-imenu
:nv ":" 'helm-imenu-in-all-buffers
:nv "]" 'helm-etags-select
:nv "a" 'helm-projectile-find-other-file
:nv "m" 'helm-recentf
:nv "M" 'helm-projectile-recentf ; recent PROJECT files
:nv "P" 'helm-projectile-switch-project
:v "=" 'align-regexp
:n "h" 'help-command ;;; Insert mode hacks
:nv "p" 'helm-show-kill-ring ;; Textmate-esque newlines
:n "R" 'doom/reset-theme :i "<backspace>" 'backward-delete-char-untabify
:n "e" 'doom/flycheck-errors :i "<M-backspace>" 'doom/backward-kill-to-bol-and-indent
:n "s" 'yas-visit-snippet-file :i "<C-return>" 'evil-ret-and-indent
:n "S" 'doom/yas-find-file ;; Emacsien motions for insert mode
:n "D" 'vc-annotate :i "C-b" 'backward-word
(:prefix "d" :i "C-f" 'forward-word
:n "." 'doom/vcs-show-hunk ;; escape from insert mode (more responsive than using key-chord-define)
:n "/" 'vc-diff :irv "C-g" 'evil-normal-state)
: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 "E" 'doom/helm-find-in-emacsd
:nv "\\" 'doom/helm-find-in-dotfiles
;; Tmux
(:prefix "t"
: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"
:n "o" 'os-open-in-default-program
: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 "." 'doom/org-find-file
:n "/" 'doom/org-find-file-in-notes
:n "e" 'doom/org-find-exported-file))
(:localleader
:n "\\" 'doom/neotree
:n "]" 'imenu-list-minor-mode
:n "b" 'doom:build
:n "R" 'doom:repl
:v "R" 'doom:repl-eval
:v "r" 'doom:eval-region
(:prefix "r"
:n "e" 'emr-show-refactor-menu
:n "r" 'doom:eval-buffer))
:nv "K" 'smart-up
;; Don't move cursor on indent
:n "=" (λ! (save-excursion (call-interactively 'evil-indent)))
:v "=" 'evil-indent
:n "zr" 'doom/evil-open-folds
:n "zm" 'doom/evil-close-folds
:n "zx" 'doom/kill-real-buffer
:n "ZX" 'bury-buffer
;; These are intentionally reversed
:n "]b" 'doom/next-real-buffer
:n "[b" 'doom/previous-real-buffer
:m "]d" 'doom/vcs-next-hunk
:m "[d" 'doom/vcs-prev-hunk
:m "]e" 'doom/flycheck-next-error
:m "[e" 'doom/flycheck-previous-error
;; Switch tabs
:n "]w" 'doom:switch-to-tab-right
: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))
:m "gD" 'doom/find-def
:n "gp" 'doom/reselect-paste
:n "gc" 'evil-commentary
:n "gx" 'evil-exchange
:n "gr" 'doom:eval-region
:n "gR" 'doom:eval-buffer
:v "gR" 'doom:eval-region-and-replace
:m "g]" 'smart-right
:m "g[" 'smart-left
:v "@" 'doom/evil-macro-on-all-lines
:n "g@" 'doom/evil-macro-on-all-lines
:v "." 'evil-repeat
;; vnoremap < <gv
:v "<" (λ! (evil-shift-left (region-beginning) (region-end))
(evil-normal-state)
(evil-visual-restore))
;; vnoremap > >gv
: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.
: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
"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
;; `evil-multiedit'
:v "R" 'evil-multiedit-match-all
:n "M-C-D" 'evil-multiedit-restore
:nv "M-d" 'evil-multiedit-match-and-next
:nv "M-D" 'evil-multiedit-match-and-prev
(:map evil-multiedit-state-map
:v "RET" 'evil-multiedit-toggle-or-restrict-region)
;; `yasnippet'
:i [(tab)] 'yas-expand
:v "<backtab>" 'doom/yas-insert-snippet
;; `auto-yasnippet'
:i "<C-tab>" 'aya-expand
:nv "<C-tab>" 'aya-create
;; Vim omni-complete emulation
:i "C-SPC" 'doom/company-complete
(:prefix "C-x"
:i "C-l" 'doom/company-whole-lines
:i "C-k" 'doom/company-dict-or-keywords
:i "C-f" 'company-files
:i "C-]" 'company-tags
:i "s" 'company-ispell
:i "C-s" 'company-yasnippet
:i "C-o" 'company-capf
:i "C-n" 'company-dabbrev-code
:i "C-p" (λ! (let ((company-selection-wrap-around t))
(call-interactively 'company-dabbrev-code)
(company-select-previous-or-abort))))
(:after company
(:map company-active-map
"C-o" 'company-search-kill-others
"C-n" 'company-select-next
"C-p" 'company-select-previous
"C-h" 'company-quickhelp-manual-begin
"C-S-h" 'company-show-doc-buffer
"C-S-s" 'company-search-candidates
"C-s" 'company-filter-candidates
"C-SPC" 'company-complete-common-or-cycle
[tab] 'doom/company-complete-common-or-complete-full
"<backtab>" 'company-select-previous
[escape] (λ! (company-abort) (evil-normal-state 1))
"<C-return>" 'helm-company)
(:map company-search-map
"C-n" 'company-search-repeat-forward
"C-p" 'company-search-repeat-backward
[escape] 'company-search-abort))
(:after help-mode
(:map help-map
"e" 'doom/popup-messages)
(:map help-mode-map
:n "]]" 'help-go-forward
:n "[[" 'help-go-back)))
;; Common unicode characters ;; Common unicode characters
(map! :i "A-o" (λ! (insert "ø")) (map! :i "A-o" (λ! (insert "ø"))

View file

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