Emacs: Finish namespacing

master
Pierre Neidhardt 2018-02-15 13:28:49 +01:00
parent 2ff577fa71
commit 81e1392b5c
22 changed files with 173 additions and 173 deletions

View File

@ -113,8 +113,6 @@
debbugs-gnu-persistency-file (expand-file-name "debbugs" ambrevar/emacs-cache-folder)))
;;; Diff
;;; REVIEW: Show permissions in ztree.
;;; See https://github.com/fourier/ztree/issues/50.
;;; TODO: In diff-mode, both `[[` and `C-M-a` do not go back to previous index
;;; once they are at the beginning of an index.
(nconc package-selected-packages '(ztree))
@ -148,11 +146,11 @@
(setq fish-completion-fallback-on-bash-p t)
(global-fish-completion-mode))
(with-eval-after-load 'eshell (require 'init-eshell))
(autoload 'eshell-or-new-session "eshell")
(autoload 'ambrevar/eshell-or-new-session "eshell")
;;; Eww
(with-eval-after-load 'eww (require 'init-eww))
(autoload 'eww-switch-back "eww")
(autoload 'ambrevar/eww-switch-back "eww")
;;; GLSL
(nconc package-selected-packages '(glsl-mode))
@ -185,12 +183,13 @@
;;; TODO: Disable white frame.
;;; I think it's the cursor.
;;; Evil-mode reverts cursor changes.
;; (set-face-foreground 'cursor "black")
;;; TODO: Implement other sxiv features:
;;; - Gamma
;;; - Marks
;;; - Gallery
;;; TODO: Is it possible to display an image fullscreen?
;;; TODO: Image+: Do no auto-adjust animated files
;;; TODO: Image+: Dot no auto-adjust animated files
;;; https://github.com/mhayashi1120/Emacs-imagex/issues/10
;;; TODO: Image+: Restore animation state
;;; https://github.com/mhayashi1120/Emacs-imagex/issues/9
@ -261,7 +260,7 @@
;; (nconc package-selected-packages '(mu4e-maildirs-extension))
(nconc package-selected-packages '(helm-mu)))
(with-eval-after-load 'mu4e (require 'init-mu4e))
(autoload 'mu4e-headers "mu4e")
(autoload 'ambrevar/mu4e-headers "mu4e")
;;; Makefile
(with-eval-after-load 'make-mode (require 'init-makefile))
@ -290,13 +289,13 @@
;;; News
(nconc package-selected-packages '(elfeed))
(with-eval-after-load 'elfeed (require 'init-elfeed))
(autoload 'elfeed-switch-back "elfeed")
(autoload 'ambrevar/elfeed-switch-back "elfeed")
;;; Org-mode
(nconc package-selected-packages '(org-plus-contrib org-bullets)) ; org-plus contains latest Org mode.
(with-eval-after-load 'org (require 'init-org))
(autoload 'org-switch-agenda-file "org")
(autoload 'org-switch-agenda-file-other-window "org")
(autoload 'ambrevar/org-switch-agenda-file "org")
(autoload 'ambrevar/org-switch-agenda-file-other-window "org")
;;; Packaging
(nconc package-selected-packages '(esup package-lint))
@ -311,7 +310,7 @@
;;; REVIEW: `save-place' does not seem to work with pdf-tools.
;;; See https://github.com/politza/pdf-tools/issues/18.
;;; TODO: windmove fails when selecting text and then moving up/down.
;;; It only fails if in evil mode.
;;; It only fails in Evil mode.
(nconc package-selected-packages '(pdf-tools))
(when (require 'pdf-tools nil t)
;; (setq pdf-view-midnight-colors '("#ffffff" . "#000000"))

View File

@ -56,7 +56,7 @@ TO-STRING."
Tabify if `indent-tabs-mode' is true, otherwise use spaces.
Work on buffer or region.
If `fmt-inhinit-p' is non-nil, it does nothing.
If `ambrevar/fmt-inhinit-p' is non-nil, it does nothing.
Require `ambrevar/tabify-leading'."
(interactive)
@ -73,7 +73,7 @@ Require `ambrevar/tabify-leading'."
(defcustom ambrevar/fmt-inhibit-p t
"Do not run `ambrevar/fmt' if non-nil.
As this is not friendly to foreign projects, `fmt' should be run
As this is not friendly to foreign projects, `ambrevar/fmt' should be run
selectively."
:safe 'booleanp)
@ -353,7 +353,7 @@ This does not interfere with `subword-mode'."
(message "_ is a word delimiter")))
;;; TODO: Move turn-on-* functions to 'hook-functions.el'?
;;; Replace useless individual comments with a single global comment.
;;; And replace useless individual comments with a single global comment.
(defun ambrevar/turn-on-column-number-mode ()
"Unconditionally turn on `column-number-mode' for the current buffer."
@ -374,8 +374,8 @@ This does not affect .csv files."
(remove-hook 'before-save-hook 'delete-trailing-whitespace t))
(defun ambrevar/turn-on-fmt-before-save ()
"Unconditionally add the `fmt' function to `before-save-hook'."
(add-hook 'before-save-hook 'fmt nil t))
"Unconditionally add the `ambrevar/fmt' function to `before-save-hook'."
(add-hook 'before-save-hook 'ambrevar/fmt nil t))
(defun ambrevar/turn-off-fmt-before-save ()
"Unconditionally remove the `ambrevar/fmt' function to `before-save-hook'."

View File

@ -4,7 +4,7 @@
(dolist (map (list c-mode-map c++-mode-map))
(ambrevar/define-keys map "C-c m" 'cc-main
"<f5>" 'cc-clean
"<f5>" 'ambrevar/cc-clean
"M-." 'semantic-ia-fast-jump
"C-c C-d" 'semantic-ia-show-summary
"M-<tab>" 'semantic-complete-analyze-inline)
@ -24,13 +24,13 @@
;; ("\\<\\(\\sw+\\)(" 1 'font-lock-function-name-face)
;; ("\\<\\(\\sw+\\)<\\sw+>(" 1 'font-lock-function-name-face))))
(defvar-local cc-ldlibs "-lm -pthread"
(defvar-local ambrevar/cc-ldlibs "-lm -pthread"
"Custom linker flags for C/C++ linkage.")
(defvar-local cc-ldflags ""
(defvar-local ambrevar/cc-ldflags ""
"Custom linker libs for C/C++ linkage.")
(defun cc-set-compiler (&optional nomakefile)
(defun ambrevar/cc-set-compiler (&optional nomakefile)
"Set compile command to be nearest Makefile or a generic command.
The Makefile is looked up in parent folders. If no Makefile is
found (or if NOMAKEFILE is non-nil or if function was called with
@ -57,10 +57,10 @@ provided."
(if c++-p
(or (getenv "CXXFLAGS") "-Wall -Wextra -Wshadow -DDEBUG=9 -g3 -O0")
(or (getenv "CFLAGS") "-ansi -pedantic -std=c11 -Wall -Wextra -Wshadow -DDEBUG=9 -g3 -O0"))
(or (getenv "LDFLAGS") cc-ldflags)
(or (getenv "LDLIBS") cc-ldlibs)))))))
(or (getenv "LDFLAGS") ambrevar/cc-ldflags)
(or (getenv "LDLIBS") ambrevar/cc-ldlibs)))))))
(defun cc-clean ()
(defun ambrevar/cc-clean ()
"Find Makefile and call the `clean' rule. If no Makefile is
found, no action is taken. The previous `compile' command is
restored."
@ -70,12 +70,12 @@ restored."
(when makefile-dir
(compile (format "make -k -C %s clean" (shell-quote-argument makefile-dir))))))
;;; It is tempting to add `cc-fmt' to the hook:
;; (add-hook 'before-save-hook 'cc-fmt nil t)
;;; It is tempting to add `ambrevar/cc-fmt' to the hook:
;; (add-hook 'before-save-hook 'ambrevar/cc-fmt nil t)
;;; Unlike Go however, there is no formatting standard and thus this would break
;;; the formatting rules of every third-party C file that does not follow the
;;; same style.
(defun cc-fmt ()
(defun ambrevar/cc-fmt ()
"Run uncrustify(1) on current buffer or region."
(interactive)
(let (status
@ -102,8 +102,7 @@ restored."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Options
;;; Semanticdb folders must be set before starting semantic.
(setq semanticdb-default-save-directory (concat ambrevar/emacs-cache-folder "semanticdb"))
;;; Make sure Semanticdb folders is set before starting semantic.
(semantic-mode 1)
;;; Extra semantic support
@ -144,7 +143,7 @@ restored."
(dolist (hook '(c-mode-hook c++-mode-hook))
(when (require 'company nil t)
(add-hook hook 'company-mode))
(add-hook hook 'cc-set-compiler))
(add-hook hook 'ambrevar/cc-set-compiler))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Skeletons

View File

@ -3,7 +3,7 @@
;;; We cannot assume that current buffer is in dired-mode.
(ambrevar/define-keys dired-mode-map
"C-c h" 'dired-toggle-humansize
"C-c h" 'ambrevar/dired-toggle-humansize
"<left>" 'dired-up-directory
"<right>" 'dired-find-file
"SPC" 'dired-mark
@ -22,7 +22,7 @@
;;; dired-internal-noselect is a lower level function, so it is faster. WARNING:
;;; Not sure if it is equivalent though.
;; (dired dired-directory dired-listing-switches)
(defun dired-set-listing-switches ()
(defun ambrevar/dired-set-listing-switches ()
(dired-internal-noselect dired-directory dired-listing-switches))
(setq wdired-allow-to-change-permissions t)
@ -37,9 +37,9 @@
'("\\.\\(jpe?g\\|png\\|git\\)$" "sxiv")
'("\\.\\(mkv\\|mpe?g\\|avi\\|mp4\\|ogm\\)$" "mpv")))
(defvar dired-showing-humansize t "If dired is displaying humansize or not.")
(defvar ambrevar/dired-showing-humansize t "If dired is displaying humansize or not.")
(defun dired-toggle-humansize ()
(defun ambrevar/dired-toggle-humansize ()
"Toggle displaying humansize in dired."
(interactive)
(let ((switch-regexp "\\(\\`\\| \\)-\\([a-gi-zA-Z]*\\)\\(h\\)\\([^ ]*\\)")
@ -51,18 +51,18 @@
(replace-match "" t t dired-actual-switches))
(setq dired-actual-switches
(replace-match "" t t dired-actual-switches 3))))
(if dired-showing-humansize
(setq dired-showing-humansize nil)
(if ambrevar/dired-showing-humansize
(setq ambrevar/dired-showing-humansize nil)
(progn
(setq dired-actual-switches
(concat dired-actual-switches
(if (string-match-p "\\`-[[:alnum:]]+\\'"
dired-actual-switches)
"h" " -h")))
(setq dired-showing-humansize t))))
(setq ambrevar/dired-showing-humansize t))))
(revert-buffer))
(dolist (fun '(dired-omit-mode dired-set-listing-switches))
(dolist (fun '(dired-omit-mode ambrevar/dired-set-listing-switches))
(add-hook 'dired-mode-hook fun))
(provide 'init-dired)

View File

@ -2,7 +2,7 @@
(setq elfeed-db-directory (concat ambrevar/emacs-cache-folder "elfeed"))
(defun elfeed-play-with-mpv ()
(defun ambrevar/elfeed-play-with-mpv ()
"Play entry link with mpv."
(interactive)
(let ((entry (if (eq major-mode 'elfeed-show-mode) elfeed-show-entry (elfeed-search-selected :single)))
@ -14,25 +14,25 @@
(setq quality-arg (format "--ytdl-format=[height<=?%s]" quality-val)))
(start-process "elfeed-mpv" nil "mpv" quality-arg (elfeed-entry-link entry))))
(defun elfeed-open-with-eww ()
(defun ambrevar/elfeed-open-with-eww ()
"Open in eww with `eww-readable'."
(interactive)
(let ((entry (if (eq major-mode 'elfeed-show-mode) elfeed-show-entry (elfeed-search-selected :single))))
(eww (elfeed-entry-link entry))
(add-hook 'eww-after-render-hook 'eww-readable nil t)))
(defvar elfeed-visit-patterns
'(("youtu\\.?be" . elfeed-play-with-mpv)
("phoronix" . elfeed-open-with-eww))
(defvar ambrevar/elfeed-visit-patterns
'(("youtu\\.?be" . ambrevar/elfeed-play-with-mpv)
("phoronix" . ambrevar/elfeed-open-with-eww))
"List of (regexps . function) to match against elfeed entry link to know
whether how to visit the link.")
(defun elfeed-visit-maybe-external ()
"Visit with external function if entry link matches `elfeed-visit-patterns',
(defun elfeed-ambrevar/visit-maybe-external ()
"Visit with external function if entry link matches `ambrevar/elfeed-visit-patterns',
visit otherwise."
(interactive)
(let ((entry (if (eq major-mode 'elfeed-show-mode) elfeed-show-entry (elfeed-search-selected :single)))
(patterns elfeed-visit-patterns))
(patterns ambrevar/elfeed-visit-patterns))
(while (and patterns (not (string-match (caar patterns) (elfeed-entry-link entry))))
(setq patterns (cdr patterns)))
(if patterns
@ -43,14 +43,14 @@ visit otherwise."
(define-key elfeed-search-mode-map "v" #'elfeed-play-in-mpv)
(defun elfeed-kill-entry ()
(defun ambrevar/elfeed-kill-entry ()
"Like `elfeed-kill-buffer' but pop elfeed search."
(interactive)
(elfeed-kill-buffer)
(switch-to-buffer "*elfeed-search*"))
(define-key elfeed-show-mode-map "q" #'elfeed-kill-entry)
(define-key elfeed-show-mode-map "q" #'ambrevar/elfeed-kill-entry)
(defun elfeed-switch-back ()
(defun ambrevar/elfeed-switch-back ()
"Back to the last elfeed buffer, entry or search."
(interactive)
(let ((buffer (get-buffer "*elfeed-entry*")))

View File

@ -51,7 +51,7 @@
(emms-pause))))
;;; Browse by album-artist.
(defun emms-browser-get-track-custom (track type)
(defun ambrevar/emms-browser-get-track-custom (track type)
"Return TYPE from TRACK.
This function uses 'info-albumartistsort, 'info-albumartist,
'info-artistsort, 'info-originalyear, 'info-originaldate and
@ -69,7 +69,7 @@ This function uses 'info-albumartistsort, 'info-albumartist,
(emms-format-date-to-year date)))
(t (emms-track-get track type "<unknown>"))))
(setq emms-browser-get-track-field-function #'emms-browser-get-track-custom)
(setq emms-browser-get-track-field-function #'ambrevar/emms-browser-get-track-custom)
(when (require 'helm-emms nil t)
(setq helm-emms-default-sources
@ -80,15 +80,15 @@ This function uses 'info-albumartistsort, 'info-albumartist,
;;; Cover thumbnails.
(setq emms-browser-covers 'emms-browser-cache-thumbnail)
(defun emms-browser-add-tracks-and-maybe-play ()
(defun ambrevar/emms-browser-add-tracks-and-maybe-play ()
"Like `emms-browser-add-tracks' but play immediately if nothing
is currently playing."
(interactive)
(if emms-player-playing-p
(emms-browser-add-tracks)
(emms-browser-add-tracks-and-play)))
(define-key emms-browser-mode-map (kbd "<return>") 'emms-browser-add-tracks-and-maybe-play)
(define-key emms-browser-mode-map (kbd "<return>") 'ambrevar/emms-browser-add-tracks-and-maybe-play)
(when (fboundp 'evil-define-key)
(evil-define-key '(normal motion) emms-browser-mode-map (kbd "<return>") 'emms-browser-add-tracks-and-maybe-play))
(evil-define-key '(normal motion) emms-browser-mode-map (kbd "<return>") 'ambrevar/emms-browser-add-tracks-and-maybe-play))
(provide 'init-emms)

View File

@ -76,14 +76,14 @@
;;; Change mode-line color by Evil state.
(setq evil-default-modeline-color (cons (face-background 'mode-line) (or (face-foreground 'mode-line) "black")))
(defun evil-color-modeline ()
(defun ambrevar/evil-color-modeline ()
(let ((color (cond ((minibufferp) evil-default-modeline-color)
((evil-insert-state-p) '("#006fa0" . "#ffffff")) ; 00bb00
((evil-emacs-state-p) '("#444488" . "#ffffff"))
(t evil-default-modeline-color))))
(set-face-background 'mode-line (car color))
(set-face-foreground 'mode-line (cdr color))))
(add-hook 'post-command-hook 'evil-color-modeline)
(add-hook 'post-command-hook 'ambrevar/evil-color-modeline)
(setq evil-mode-line-format nil)
;;; Add defun text-object. TODO: Does not work for "around".
@ -198,7 +198,7 @@
(add-hook 'org-mode-hook 'evil-org-mode)
;; No need for 'insert, 'shift (I use custom definitions), 'todo 'heading.
(evil-org-set-key-theme '(navigation textobjects additional shift))
(defun evil-org-meta-return ()
(defun ambrevar/evil-org-meta-return ()
"Like `org-meta-return' but switch to insert mode."
(interactive)
(evil-insert 1)
@ -207,7 +207,7 @@
"^" 'org-up-element ; Evil-Magit-inspired. TODO: Suggest upstream.
"<" 'org-up-element ; Custom
">" 'org-down-element ; Custom
(kbd "M-<return>") 'evil-org-meta-return)
(kbd "M-<return>") 'ambrevar/evil-org-meta-return)
(with-eval-after-load 'org-agenda
(require 'evil-org-agenda)
(evil-org-agenda-set-keys))))

View File

@ -25,8 +25,8 @@
;;; https://github.com/emacs-helm/helm/issues/1889
;;; Rename buffer to window title.
(defun exwm-rename-buffer-to-title () (exwm-workspace-rename-buffer exwm-title))
(add-hook 'exwm-update-title-hook 'exwm-rename-buffer-to-title)
(defun ambrevar/exwm-rename-buffer-to-title () (exwm-workspace-rename-buffer exwm-title))
(add-hook 'exwm-update-title-hook 'ambrevar/exwm-rename-buffer-to-title)
(add-hook 'exwm-floating-setup-hook 'exwm-layout-hide-mode-line)
(add-hook 'exwm-floating-exit-hook 'exwm-layout-show-mode-line)
@ -76,13 +76,13 @@
(exwm-input-set-key (kbd "s-b") #'helm-mini)
(exwm-input-set-key (kbd "s-f") #'helm-find-files)
(exwm-input-set-key (kbd "s-F") #'helm-locate)
(when (fboundp 'helm-locate-meta)
(exwm-input-set-key (kbd "s-F") #'helm-locate-meta))
(when (fboundp 'ambrevar/helm-locate-meta)
(exwm-input-set-key (kbd "s-F") #'ambrevar/helm-locate-meta))
(exwm-input-set-key (kbd "s-g") 'ambrevar/helm-grep-git-or-ag)
(exwm-input-set-key (kbd "s-G") 'ambrevar/helm-grep-git-all-or-ag))
(require 'functions)
(exwm-input-set-key (kbd "s-<tab>") #'switch-to-last-buffer)
(exwm-input-set-key (kbd "s-<tab>") #'ambrevar/switch-to-last-buffer)
(when (require 'evil nil t)
(exwm-input-set-key (kbd "s-<tab>") #'evil-switch-to-windows-last-buffer)
(exwm-input-set-key (kbd "C-6") #'evil-switch-to-windows-last-buffer))
@ -102,7 +102,7 @@
(when (fboundp 'helm-pass)
(exwm-input-set-key (kbd "s-p") #'helm-pass))
(when (delq nil (mapcar (lambda (path) (string-match "/mu4e/\\|/mu4e$" path)) load-path))
(exwm-input-set-key (kbd "s-m") #'mu4e-headers))
(exwm-input-set-key (kbd "s-m") #'ambrevar/mu4e-headers))
(exwm-input-set-key (kbd "s-n") #'ambrevar/elfeed-switch-back) ; "n" for "news"
(exwm-input-set-key (kbd "s-e") #'ambrevar/eww-switch-back)
(exwm-input-set-key (kbd "s-E") #'eww)
@ -110,11 +110,11 @@
;;; External application shortcuts.
(defun exwm-start (command)
(defun ambrevar/exwm-start (command)
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command))
(exwm-input-set-key (kbd "s-&") #'exwm-start)
(exwm-input-set-key (kbd "s-r") #'exwm-start)
(exwm-input-set-key (kbd "s-&") #'ambrevar/exwm-start)
(exwm-input-set-key (kbd "s-r") #'ambrevar/exwm-start)
(when (require 'helm-exwm nil t)
(add-to-list 'helm-source-names-using-follow "EXWM buffers")
@ -136,17 +136,16 @@
(exwm-input-set-key (kbd "s-W") #'helm-exwm-switch-browser-other-window))
;;; Lock screen
(defvar exwm-lock-program "slock" "Shell command used to lock the screen.")
(defun exwm-start-lock () (interactive) (start-process-shell-command exwm-lock-program nil exwm-lock-program))
(exwm-input-set-key (kbd "s-z") #'exwm-start-lock)
(defun ambrevar/exwm-start-lock () (interactive) (start-process "slock" nil "slock"))
(exwm-input-set-key (kbd "s-z") #'ambrevar/exwm-start-lock)
;;; Screenshot
(defun exwm-start-screenshot () (interactive) (start-process-shell-command "scrot" nil "scrot ~/temp/screen-%F-%T.png"))
(exwm-input-set-key (kbd "<print>") #'exwm-start-screenshot)
(defun ambrevar/exwm-start-screenshot () (interactive) (start-process-shell-command "scrot" nil "scrot ~/temp/screen-%F-%T.png"))
(exwm-input-set-key (kbd "<print>") #'ambrevar/exwm-start-screenshot)
;;; Volume control
;;; TODO: Check out the 'volume' package.
(defun exwm-volume (&optional up-or-down)
(defun ambrevar/exwm-volume (&optional up-or-down)
(let ((controllers '(("amixer" . ((control . "set Master") (down . "5%-") (up . "5%+") (toggle . "toggle")))
("mixer" . ((control . "vol") (down . "-5") (up . "+5") (toggle . "^"))))))
(while (not (executable-find (caar controllers)))
@ -158,15 +157,15 @@
(alist-get 'control (cdar controllers))
(alist-get up-or-down (cdar controllers) (alist-get 'toggle (cdar controllers) )))))))
(defun exwm-start-volume-down () (interactive) (exwm-volume 'down))
(defun exwm-start-volume-up () (interactive) (exwm-volume 'up))
(defun exwm-start-volume-toggle () (interactive) (exwm-volume))
(exwm-input-set-key (kbd "s-<kp-subtract>") #'exwm-start-volume-down)
(exwm-input-set-key (kbd "s-<kp-add>") #'exwm-start-volume-up)
(exwm-input-set-key (kbd "s-<kp-enter>") #'exwm-start-volume-toggle)
(exwm-input-set-key (kbd "s--") #'exwm-start-volume-down)
(exwm-input-set-key (kbd "s-=") #'exwm-start-volume-up)
(exwm-input-set-key (kbd "s-0") #'exwm-start-volume-toggle)
(defun ambrevar/exwm-start-volume-down () (interactive) (ambrevar/exwm-volume 'down))
(defun ambrevar/exwm-start-volume-up () (interactive) (ambrevar/exwm-volume 'up))
(defun ambrevar/exwm-start-volume-toggle () (interactive) (ambrevar/exwm-volume))
(exwm-input-set-key (kbd "s-<kp-subtract>") #'ambrevar/exwm-start-volume-down)
(exwm-input-set-key (kbd "s-<kp-add>") #'ambrevar/exwm-start-volume-up)
(exwm-input-set-key (kbd "s-<kp-enter>") #'ambrevar/exwm-start-volume-toggle)
(exwm-input-set-key (kbd "s--") #'ambrevar/exwm-start-volume-down)
(exwm-input-set-key (kbd "s-=") #'ambrevar/exwm-start-volume-up)
(exwm-input-set-key (kbd "s-0") #'ambrevar/exwm-start-volume-toggle)
;;; Check for start-up errors. See ~/.profile.
(let ((error-logs (directory-files "~" t "errors.*log$")))
@ -178,9 +177,9 @@
(lambda () (get-buffer "*Warnings*"))))))
;;; Some programs such as 'emacs' are better off being started in char-mode.
(defun exwm-start-in-char-mode ()
(defun ambrevar/exwm-start-in-char-mode ()
(when (string= exwm-instance-name "emacs")
(exwm-input-release-keyboard (exwm--buffer->id (window-buffer)))))
(add-hook 'exwm-manage-finish-hook 'exwm-start-in-char-mode)
(add-hook 'exwm-manage-finish-hook 'ambrevar/exwm-start-in-char-mode)
(provide 'init-exwm)

View File

@ -1,6 +1,6 @@
;;; Flycheck
(defun flycheck-and-whitespace-mode ()
(defun ambrevar/flycheck-and-whitespace-mode ()
"Toggle `flycheck-mode' and `whitespace-mode'."
(interactive)
(if (derived-mode-p 'text-mode)
@ -8,7 +8,7 @@
(flycheck-mode 'toggle)
(if flyspell-mode (flyspell-mode 0) (flyspell-prog-mode)))
(whitespace-mode 'toggle))
(global-set-key (kbd "<f9>") 'flycheck-and-whitespace-mode)
(global-set-key (kbd "<f9>") 'ambrevar/flycheck-and-whitespace-mode)
(define-key flycheck-mode-map (kbd "C-c ! h") 'helm-flycheck)

View File

@ -5,12 +5,12 @@
(use-local-map go-mode-map)
(ambrevar/local-set-keys
"C-c m" 'go-main
"C-c m" 'ambrevar/go-main
"C-c D" 'godoc
"C-c d" 'godoc-at-point
"M-." #'godef-jump
"<f5>" 'go-metalinter
"C-<f5>" 'go-metalinter-command)
"<f5>" 'ambrevar/go-metalinter
"C-<f5>" 'ambrevar/go-metalinter-command)
(when (require 'helm-go-package nil t)
(local-set-key (kbd "C-c D") 'helm-go-package))
@ -23,7 +23,7 @@
(setq godoc-command "godoc -ex")
(setq godoc-and-godef-command "godoc -ex")
(defvar-local gometalinter-args
(defvar-local ambrevar/gometalinter-args
(mapconcat
'identity
'("--cyclo-over=20 --deadline=20s"
@ -41,21 +41,21 @@
"-E gofmt")
" ") "Additional arguments to pass to gometalinter.")
(defun go-metalinter (arg)
(defun ambrevar/go-metalinter (arg)
"Run gometalinter.
With prefix argument, prompt for commandline."
(interactive "P")
(let ((compile-command (format "gometalinter %s" gometalinter-args)))
(let ((compile-command (format "gometalinter %s" ambrevar/gometalinter-args)))
(if arg
(call-interactively 'compile)
(compile compile-command))))
(defun go-metalinter-command ()
(defun ambrevar/go-metalinter-command ()
"Prompt for gometalinter commandline and run it."
(interactive)
(go-metalinter t))
(ambrevar/go-metalinter t))
(defun go-set-compile-command ()
(defun ambrevar/go-set-compile-command ()
"Set `compile-command' depending on the context.
- go install: file is in GOPATH and is not a test file.
@ -65,13 +65,13 @@ With prefix argument, prompt for commandline."
Note that the -cover test flag is left out since it shifts line numbers."
(interactive)
(setq compile-command
(if (go-buffer-in-gopath-p)
(if (ambrevar/go-buffer-in-gopath-p)
(if (string-match "_test.[gG][oO]$" buffer-file-name)
"go test -v -run ."
"go install")
(concat "go run " (shell-quote-argument buffer-file-name)))))
(defun go-buffer-in-gopath-p ()
(defun ambrevar/go-buffer-in-gopath-p ()
(if (not buffer-file-name)
nil
(let ((dir (expand-file-name (file-name-directory buffer-file-name))) (looping t) (gopath (split-string (getenv "GOPATH") ":")))
@ -97,14 +97,14 @@ Note that the -cover test flag is left out since it shifts line numbers."
(when (require 'go-eldoc nil t)
(add-hook 'go-mode-hook 'go-eldoc-setup))
(add-hook 'go-mode-hook 'go-set-compile-command)
(add-hook 'go-mode-hook 'ambrevar/go-set-compile-command)
(defun godoc-setup ()
(defun ambrevar/godoc-setup ()
(setq tab-width 8))
(add-hook 'godoc-mode-hook 'godoc-setup)
(add-hook 'godoc-mode-hook 'ambrevar/godoc-setup)
(define-skeleton go-main
(define-skeleton ambrevar/go-main
"Insert main function with basic includes."
nil
> "package main" "\n" \n

View File

@ -215,7 +215,7 @@ Requires `call-process-to-string' from `functions'."
(setq helm-source-names-using-follow '("Occur" "Git-Grep" "AG" "mark-ring" "Org Headings"))
;;; From https://www.reddit.com/r/emacs/comments/5q922h/removing_dot_files_in_helmfindfiles_menu/.
(defun helm-skip-dots (old-func &rest args)
(defun ambrevar/helm-skip-dots (old-func &rest args)
"Skip . and .. initially in helm-find-files. First call OLD-FUNC with ARGS."
(apply old-func args)
(let ((sel (helm-get-selection)))
@ -224,8 +224,8 @@ Requires `call-process-to-string' from `functions'."
(let ((sel (helm-get-selection))) ; if we reached .. move back
(if (and (stringp sel) (string-match "/\\.\\.$" sel))
(helm-previous-line 1))))
(advice-add #'helm-preselect :around #'helm-skip-dots)
(advice-add #'helm-ff-move-to-first-real-candidate :around #'helm-skip-dots)
(advice-add #'helm-preselect :around #'ambrevar/helm-skip-dots)
(advice-add #'helm-ff-move-to-first-real-candidate :around #'ambrevar/helm-skip-dots)
(with-eval-after-load 'desktop
(add-to-list 'desktop-globals-to-save 'helm-ff-history))
@ -240,8 +240,8 @@ Requires `call-process-to-string' from `functions'."
(setq helm-locate-recursive-dirs-command "find %s -type d -regex .*%s.*$"))
;; See https://github.com/emacs-helm/helm/issues/1962.
(defun helm-locate-create-or-update-db (db root &optional update)
"See `helm-locate-meta'."
(defun ambrevar/helm-locate-create-or-update-db (db root &optional update)
"See `ambrevar/helm-locate-meta'."
(let ((was-missing (not (file-exists-p db))))
(when (or update was-missing)
(if (= (shell-command
@ -251,18 +251,18 @@ Requires `call-process-to-string' from `functions'."
0)
(message "locatedb file `%s' %s" db (if was-missing "created" "updated"))
(error "Failed to %s locatedb file `%s'" db (if was-missing "create" "update"))))))
(defun helm-locate-meta (&optional update)
(defun ambrevar/helm-locate-meta (&optional update)
"Like `helm-locate' but also use the databases found in /media and /run/media.
With prefix argument, UPDATE the databases."
(interactive "P")
(let ((user-db (expand-file-name "~/.cache/locate.db")))
(helm-locate-create-or-update-db user-db "/" update)
(ambrevar/helm-locate-create-or-update-db user-db "/" update)
(helm-locate-with-db
(mapconcat 'identity
(append (list user-db)
(mapc
(lambda (db)
(helm-locate-create-or-update-db db (file-name-directory db) update))
(ambrevar/helm-locate-create-or-update-db db (file-name-directory db) update))
(apply 'append (mapcar
(lambda (root) (file-expand-wildcards (concat root "/*/locate.db")))
(list (concat "/run/media/" (user-login-name)) "/media")))))
@ -270,9 +270,9 @@ With prefix argument, UPDATE the databases."
nil (thing-at-point 'filename))))
;;; Convenience.
(defun helm-toggle-visible-mark-backwards (arg)
(defun ambrevar/helm-toggle-visible-mark-backwards (arg)
(interactive "p")
(helm-toggle-visible-mark (- arg)))
(define-key helm-map (kbd "S-SPC") 'helm-toggle-visible-mark-backwards)
(define-key helm-map (kbd "S-SPC") 'ambrevar/helm-toggle-visible-mark-backwards)
(provide 'init-helm)

View File

@ -9,9 +9,9 @@
;;; Since current buffer is a LaTeX one, we can use `local-set-key'.
(ambrevar/local-set-keys
"C-c m" 'latex-article
"C-c l" 'latex-lstinline
"C-c o" 'latex-orgtbl)
"C-c m" 'ambrevar/latex-article
"C-c l" 'ambrevar/latex-lstinline
"C-c o" 'ambrevar/latex-orgtbl)
(dolist (fun '(turn-on-orgtbl ambrevar/turn-on-skeleton-markers))
;; Since this file is loaded from `latex-mode-hook', these functions will not
@ -54,7 +54,7 @@
;;; Skeletons
;;; TODO: implement orgtbl directly with latex tables and remove this skel.
(define-skeleton latex-orgtbl
(define-skeleton ambrevar/latex-orgtbl
"Insert orgtbl skel."
"Table name: "
> "\\begin{center}" \n
@ -67,18 +67,18 @@
"%$" \n
"\\end{comment}" > \n @)
(define-skeleton latex-lstinline
(define-skeleton ambrevar/latex-lstinline
"Insert inline listing." nil
"\\lstinline @" @ _ "@" @)
(define-skeleton latex-graphics
(define-skeleton ambrevar/latex-graphics
"Insert centered picture."
nil
> "\\begin{center}" \n
"\\includegraphics[width=" @ (skeleton-read "Width: " "\\linewidth") "]{" @ _ "}" \n
"\\end{center}" > \n @)
(define-skeleton latex-article
(define-skeleton ambrevar/latex-article
"Insert article template."
nil
> "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -121,7 +121,7 @@
\\let\\thedate\\@date
\\makeatother" \n
'(setq latex-setup-list '(latex-preamble-aliases latex-preamble-tables latex-preamble-listing))
'(setq latex-setup-list '(ambrevar/latex-preamble-aliases ambrevar/latex-preamble-tables ambrevar/latex-preamble-listing))
'(while (and latex-setup-list
(= (read-key (concat "Insert " (symbol-name (car latex-setup-list)) "? (y)")) ?y))
(newline-and-indent)
@ -185,7 +185,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
" \n)
(define-skeleton latex-preamble-aliases
(define-skeleton ambrevar/latex-preamble-aliases
"Insert setup template."
nil
> "%%=============================================================================
@ -201,7 +201,7 @@
\\def\\ie{\\textsl{i.e.}\\xspace}
\\def\\eg{\\textsl{e.g.}\\xspace}" \n)
(define-skeleton latex-preamble-tables
(define-skeleton ambrevar/latex-preamble-tables
"Insert setup template."
nil
> "%%==============================================================================
@ -210,7 +210,7 @@
\\usepackage{longtable}
\\usepackage{tabu}" \n)
(define-skeleton latex-preamble-graphics
(define-skeleton ambrevar/latex-preamble-graphics
"Insert setup template."
nil
> "%%==============================================================================
@ -224,7 +224,7 @@
"\\end{tikzpicture}" > \n
"}" > \n)
(define-skeleton latex-preamble-listing
(define-skeleton ambrevar/latex-preamble-listing
"Insert listing setup template."
;; WARNING: we need to put a '-' at the very end so that the cursor will end
;; there. Otherwise it will be placed at the beginning. This is due to some

View File

@ -2,9 +2,9 @@
(defvaralias 'lua-indent-level 'tab-width)
(defun lua-set-compiler ()
(defun ambrevar/lua-set-compiler ()
(setq compile-command (concat lua-default-application " " (shell-quote-argument buffer-file-name))))
(add-hook 'lua-mode-hook 'lua-set-compiler)
(add-hook 'lua-mode-hook 'ambrevar/lua-set-compiler)
(provide 'init-lua)

View File

@ -1,12 +1,12 @@
;;; Makefile
(ambrevar/define-keys makefile-mode-map
"C-c c" 'makefile-config
"C-c d" 'makefile-doc
"C-c m" 'makefile-main
"C-c s" 'makefile-c)
"C-c c" 'ambrevar/makefile-config
"C-c d" 'ambrevar/makefile-doc
"C-c m" 'ambrevar/makefile-main
"C-c s" 'ambrevar/makefile-c)
(define-skeleton makefile-main
(define-skeleton ambrevar/makefile-main
"Insert root Makefile." nil
"ROOT = .
include ${ROOT}/config.mk
@ -86,7 +86,7 @@ uninstall:
-rmdir -p ${DESTDIR}${licensedir}/${cmdname}
" > \n)
(define-skeleton makefile-doc
(define-skeleton ambrevar/makefile-doc
"Insert documentation Makefile." nil
".SUFFIXES: .in
@ -105,7 +105,7 @@ clean:
rm -f ${manpages}
" > \n)
(define-skeleton makefile-c
(define-skeleton ambrevar/makefile-c
"Insert Makefile for building c." nil
"ROOT ?= ..
include ${ROOT}/config.mk
@ -137,7 +137,7 @@ deps = ${sources:.c=.d}
-include ${deps}
" > \n)
(define-skeleton makefile-config
(define-skeleton ambrevar/makefile-config
"Insert Makefile config." nil
"## This file is included by all (sub-)makefiles.
@ -145,9 +145,9 @@ deps = ${sources:.c=.d}
appname = Name
authors = Pierre Neidhardt
cmdname = name
url = http://ambrevar.bitbucket.org/
url =
version = 1.0
year = 2014
year = " (format-time-string "%Y") "
## Folders.
srcdir = src

View File

@ -21,7 +21,7 @@
(add-hook 'mediawiki-mode-hook 'visual-line-mode)
(add-hook 'mediawiki-mode-hook 'turn-off-auto-fill)
(define-skeleton mediawiki-tt
(define-skeleton ambrevar/mediawiki-tt
"Insert truetype text."
nil "<tt>" @ _ "</tt>" @)

View File

@ -17,9 +17,9 @@
(when (require 'mu4e-maildirs-extension nil t)
(mu4e-maildirs-extension))
(defun mu4e-headers ()
(defun ambrevar/mu4e-headers ()
"Like `mu4e' but show the header view.
Default to unread messages if no"
Default to unread messages if the header buffer does not already exist."
(interactive)
(mu4e~start)
(if (get-buffer "*mu4e-headers*" )
@ -91,52 +91,52 @@ Default to unread messages if no"
;;; Since we sort in ascending direction, we default to the end of buffer.
;; (add-hook 'mu4e-headers-found-hook 'end-of-buffer)
(defvar mu4e-compose-fortune-p t "Whether or not to include a fortune in the signature.")
(defun mu4e-add-fortune-signature ()
(defvar ambrevar/mu4e-compose-fortune-p t "Whether or not to include a fortune in the signature.")
(defun ambrevar/mu4e-add-fortune-signature ()
(require 'functions) ; For `call-process-to-string'.
(setq mu4e-compose-signature
(if mu4e-compose-fortune-p
(if ambrevar/mu4e-compose-fortune-p
(format "%s\n\n%s"
user-full-name
(ambrevar/call-process-to-string "fortune" "-s"))
user-full-name)))
(add-hook 'mu4e-compose-pre-hook 'mu4e-add-fortune-signature)
(add-hook 'mu4e-compose-pre-hook 'ambrevar/mu4e-add-fortune-signature)
;;; Make some e-mails stand out a bit.
(set-face-foreground 'mu4e-unread-face "yellow")
(set-face-attribute 'mu4e-flagged-face nil :inherit 'font-lock-warning-face)
;;; Confirmation on every mark execution is too slow to my taste.
(defun mu4e-mark-execute-all-no-confirm ()
(defun ambrevar/mu4e-mark-execute-all-no-confirm ()
(interactive)
(mu4e-mark-execute-all t))
(define-key mu4e-headers-mode-map "x" 'mu4e-mark-execute-all-no-confirm)
(define-key mu4e-headers-mode-map "x" 'ambrevar/mu4e-mark-execute-all-no-confirm)
(when (require 'helm-mu nil t)
(dolist (map (list mu4e-headers-mode-map mu4e-main-mode-map mu4e-view-mode-map))
(define-key map "s" 'helm-mu)))
(defvar mu4e-compose-signed-p nil)
(defvar mu4e-compose-signed-and-crypted-p nil)
(defun mu4e-compose-maybe-signed-and-crypted ()
(defvar ambrevar/mu4e-compose-signed-p nil)
(defvar ambrevar/mu4e-compose-signed-and-crypted-p nil)
(defun ambrevar/mu4e-compose-maybe-signed-and-crypted ()
"Maybe sign or encrypt+sign message.
Message is signed or encrypted+signed when replying to a signed or encrypted
message, respectively.
Alternatively, message is signed or encrypted+signed if
`mu4e-compose-signed-p' or `mu4e-compose-signed-and-crypted-p' is
`ambrevar/mu4e-compose-signed-p' or `ambrevar/mu4e-compose-signed-and-crypted-p' is
non-nil, respectively.
This function is suitable for `mu4e-compose-mode-hook'."
(let ((msg mu4e-compose-parent-message))
(cond
((or mu4e-compose-signed-and-crypted-p
((or ambrevar/mu4e-compose-signed-and-crypted-p
(and msg (member 'encrypted (mu4e-message-field msg :flags))))
(mml-secure-message-sign-encrypt))
((or mu4e-compose-signed-p
((or ambrevar/mu4e-compose-signed-p
(and msg (member 'signed (mu4e-message-field msg :flags))))
(mml-secure-message-sign-pgpmime)))))
(add-hook 'mu4e-compose-mode-hook 'mu4e-compose-maybe-signed-and-crypted)
(add-hook 'mu4e-compose-mode-hook 'ambrevar/mu4e-compose-maybe-signed-and-crypted)
;;; Org capture
(when (require 'org-mu4e nil t)

View File

@ -1,11 +1,11 @@
;;; Nroff
(ambrevar/define-keys nroff-mode-map
"C-c C-b" 'nroff-bold
"C-c C-i" 'nroff-italic)
"C-c C-b" 'ambrevar/nroff-bold
"C-c C-i" 'ambrevar/nroff-italic)
;;; Skeletons
(define-skeleton nroff-bold "Bold text." nil "\\fB" @ _ "\\fR" @)
(define-skeleton nroff-italic "Italic text." nil "\\fI" @ _ "\\fR" @)
(define-skeleton ambrevar/nroff-bold "Bold text." nil "\\fB" @ _ "\\fR" @)
(define-skeleton ambrevar/nroff-italic "Italic text." nil "\\fI" @ _ "\\fR" @)
(provide 'init-nroff)

View File

@ -1,6 +1,6 @@
;;; Python
(defun python-set-compiler ()
(defun ambrevar/python-set-compiler ()
"Returns the value of the shebang if any, `python-shell-interpreter' otherwise."
(when buffer-file-name
(let* ((firstline
@ -12,7 +12,7 @@
(setq compile-command
(concat interpreter " " (shell-quote-argument buffer-file-name))))))
(add-hook 'python-mode-hook 'python-set-compiler)
(add-hook 'python-mode-hook 'ambrevar/python-set-compiler)
;;; Doc lookup. Requires the python.info file to be installed. See
;;; https://bitbucket.org/jonwaltman/pydoc-info/.

View File

@ -12,7 +12,7 @@
(set-face-foreground 'sh-heredoc "#00bfff")
(set-face-bold 'sh-heredoc nil)
(defun sh-set-compiler ()
(defun ambrevar/sh-set-compiler ()
"Set shell interpreter.
Set `sh-shell', `sh-shell-file' and `compile-command' according to the following rules:
- Look at shabang.
@ -53,21 +53,21 @@ The advantages of this function over the vanilla code are:
(when (stringp buffer-file-name)
(setq compile-command (concat sh-shell-file " " (shell-quote-argument buffer-file-name)))))
(defun sh-set-indent-rules ()
(defun ambrevar/sh-set-indent-rules ()
(setq sh-indent-for-case-label 0
sh-indent-for-case-alt '+))
(defun sh-set-prompt ()
(defun ambrevar/sh-set-prompt ()
(set (make-local-variable 'defun-prompt-regexp)
(concat "^\\(function[ \t]\\|[[:alnum:]_]+[ \t]+()[ \t]+\\)")))
;;; Hooks
(dolist (fun '(sh-set-indent-rules sh-set-prompt sh-set-compiler))
(dolist (fun '(ambrevar/sh-set-indent-rules ambrevar/sh-set-prompt ambrevar/sh-set-compiler))
(add-hook 'sh-mode-hook fun))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-skeleton sh-commands-or-die
(define-skeleton ambrevar/sh-commands-or-die
"Insert a loop that exits if any of the commands is not found in path."
"Command names: "
> "for i " @ str "; do" \n
@ -77,14 +77,14 @@ The advantages of this function over the vanilla code are:
"fi" > \n
"done" > \n \n)
(define-skeleton sh-ifcommand
(define-skeleton ambrevar/sh-ifcommand
"Insert a test to check if command is found in path."
"Command name: "
> "if command -v " @ str " >/dev/null 2>&1; then" \n
> @ _ \n
"fi" > \n)
(define-skeleton sh-while-getopts
(define-skeleton ambrevar/sh-while-getopts
"Insert a getops prototype."
"optstring: "
> "usage() {" \n
@ -121,7 +121,7 @@ EOF
"exit 1" \n
"fi" > \n)
(define-skeleton sh-while-read
(define-skeleton ambrevar/sh-while-read
"Insert a while read loop."
nil
> "while IFS= read -r i; do" \n

View File

@ -5,7 +5,7 @@
prettify-symbols-mode))
(add-hook 'tex-mode-hook fun))
(defun tex-toggle-escape-char ()
(defun ambrevar/tex-toggle-escape-char ()
"Make backslash part of the word syntax or not.
This does not interfere with `subword-mode'."
(interactive)

View File

@ -224,19 +224,19 @@
;;; Some commands ignore that compilation-mode is a "dumb" terminal and still display colors.
;;; Thus we render those colors.
(require 'ansi-color)
(defun compilation-colorize-buffer ()
(defun ambrevar/compilation-colorize-buffer ()
(when (eq major-mode 'compilation-mode)
(ansi-color-apply-on-region compilation-filter-start (point-max))))
(add-hook 'compilation-filter-hook 'compilation-colorize-buffer)
(add-hook 'compilation-filter-hook 'ambrevar/compilation-colorize-buffer)
(global-set-key (kbd "<f7>") 'previous-error)
(global-set-key (kbd "<f8>") 'next-error)
(defun compile-last-command ()
(defun ambrevar/compile-last-command ()
(interactive)
(compile compile-command))
(ambrevar/define-keys prog-mode-map
"C-<f6>" 'compile
;; Do not use `recompile' since we want to change the compilation folder for the current buffer.
"<f6>" 'compile-last-command)
"<f6>" 'ambrevar/compile-last-command)
;;; REVIEW: Bug 26658 reports that cc-modes mistakenly does not make use of prog-mode-map.
;;; The following line is a suggested work-around.
@ -272,11 +272,11 @@
desktop-load-locked-desktop 'ask
desktop-restore-frames nil
desktop-save t)
(defun desktop-init (_frame)
(defun ambrevar/desktop-init (_frame)
(desktop-save-mode)
(desktop-read)
(remove-hook 'after-make-frame-functions 'desktop-init))
(add-hook 'after-make-frame-functions 'desktop-init) ; This does not fix the window register restoration.
(remove-hook 'after-make-frame-functions 'ambrevar/desktop-init))
(add-hook 'after-make-frame-functions 'ambrevar/desktop-init) ; This does not fix the window register restoration.
(add-to-list 'desktop-modes-not-to-save 'pdf-view-mode)
(add-to-list 'desktop-modes-not-to-save 'image-mode)
(unless (file-directory-p desktop-dirname)
@ -371,4 +371,7 @@
(setq epa-pinentry-mode 'loopback) ; This will fail if gpg>=2.1 is not available.
(pinentry-start)
;;; Semanticdb folders must be set before starting semantic.
(setq semanticdb-default-save-directory (concat ambrevar/emacs-cache-folder "semanticdb"))
(provide 'main)

View File

@ -122,7 +122,7 @@
;;; Key notes highlighting. We need to apply it to the mode hook since
;;; font-lock-add-keywords has no inheritance support.
(set-face-foreground 'font-lock-warning-face "DarkOrange")
(defun fontify-comment-tag ()
(defun ambrevar/fontify-comment-tag ()
(font-lock-add-keywords
nil
;; See https://en.wikipedia.org/wiki/Comment_(computer_programming)#Tags.
@ -130,7 +130,7 @@
(lambda (keyword) `(,(concat "\\<\\(" keyword "\\):") 1 font-lock-warning-face prepend))
'("FIXME\\(([^)]+)\\)?" "HACK" "OPTIMIZE\\(([^)]+)\\)?" "REVIEW\\(([^)]+)\\)?" "TODO\\(([^)]+)\\)?" "UNDONE" "UX" "WARNING" "XXX"))))
(dolist (hook '(prog-mode-hook text-mode-hook))
(add-hook hook 'fontify-comment-tag))
(add-hook hook 'ambrevar/fontify-comment-tag))
;;; Man pages
(with-eval-after-load 'man