|
|
- ;;; -*- lexical-binding: t -*-
- ;;; DO NOT EDIT THIS FILE DIRECTLY
- ;;; EDIT ~init.org~ instead
-
- ;; (setq byte-compile-warnings nil)
- (defun tangle-init ()
- "If the current buffer is 'init.org' the code-blocks are tangled, and the tangled file is compiled."
- (when (equal (buffer-file-name)
- (expand-file-name (concat user-emacs-directory "init.org")))
- ;; Avoid running hooks when tangling.
- (let ((prog-mode-hook nil))
- (org-babel-tangle)
- (byte-compile-file (concat user-emacs-directory "init.el")))))
-
- (add-hook 'after-save-hook 'tangle-init)
-
- (require 'package)
- (package-initialize)
-
- (defvar my-packages
- '(all-the-icons
- amx
- anzu
- base16-theme
- bbdb
- better-defaults
- company
- company-go
- counsel
- counsel-projectile
- dash-at-point
- dashboard
- diminish
- dockerfile-mode
- doom-modeline
- doom-themes
- ein
- eldoc-eval
- elfeed
- elfeed-org
- elpy
- emmet-mode
- excorporate
- expand-region
- fic-mode
- flycheck
- gitignore-mode
- go-mode
- go-playground
- gorepl-mode
- iedit
- indium
- ivy
- ivy-hydra
- jabber
- json-mode
- magit
- markdown-mode
- material-theme
- multiple-cursors
- ox-reveal
- poporg
- projectile
- rainbow-delimiters
- rust-mode
- shrink-path
- tide
- typescript-mode
- ;; use-package
- web-mode
- which-key))
-
- (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
- (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
-
- (when (not package-archive-contents)
- (package-refresh-contents))
- (package-initialize)
-
- (dolist (p my-packages)
- (when (not (package-installed-p p))
- (package-install p)))
-
- (require 'better-defaults)
-
- ;; Instead of the annoying giant warning icon, just flash the modeline.
- ;; (this happens when you do something like C-g)
- (setq ring-bell-function
- (lambda ()
- (let ((orig-fg (face-foreground 'mode-line)))
- (set-face-foreground 'mode-line "#F2804F")
- (run-with-idle-timer 0.1 nil
- (lambda (fg) (set-face-foreground 'mode-line fg))
- orig-fg))))
-
- (defun set-frame-size-according-to-resolution ()
- "Set the Emacs window size on startup."
- (interactive)
- (if window-system
- (progn
- ;; WIDTH
- (if (> (x-display-pixel-width) 1280)
- ;; Large Screen (only show 120 cols)
- (add-to-list 'default-frame-alist (cons 'width 240))
- ;; Small Screen (fill window)
- (add-to-list 'default-frame-alist (cons 'width (/ (x-display-pixel-width) (frame-char-width)))))
-
- ;; HEIGHT
- (if (> (x-display-pixel-height) 1080)
- ;; Large Screen (only fill half screen)
- (add-to-list 'default-frame-alist (cons 'height (/ (/ (x-display-pixel-height) 2)
- (frame-char-height))))
- ;; Small Screen (fill window)
- (add-to-list 'default-frame-alist (cons 'height (/ (x-display-pixel-height) (frame-char-height)))))
- )))
-
- ;; (set-frame-size-according-to-resolution)
-
- (defun window-px-width ()
- "Get the width of the Emacs window in pixels."
- (interactive)
- (* (* (window-total-width) 2.874) (frame-char-width)))
-
- (defun window-px-left-pos ()
- "Calculate the left position of the Emacs window."
- (interactive)
- (/ (- (x-display-pixel-width) (window-px-width)) 2))
-
-
- ;; (add-to-list 'default-frame-alist (cons 'top 0))
- ;; (add-to-list 'default-frame-alist (cons 'left 1000))
-
- (put 'narrow-to-region 'disabled nil)
- (put 'upcase-region 'disabled nil)
- (put 'downcase-region 'disabled nil)
-
- (require 'dashboard)
-
- (dashboard-setup-startup-hook)
-
- ;; Set the title
- (setq dashboard-banner-logo-title "Let's begin...")
- ;; Set the banner
- (setq dashboard-startup-banner "~/.emacs.d/public/emacs-logo-350.png")
- ;; Value can be
- ;; 'official which displays the official emacs logo
- ;; 'logo which displays an alternative emacs logo
- ;; 1, 2 or 3 which displays one of the text banners
- ;; "path/to/your/image.png" which displays whatever image you would prefer
-
- ;; Content is not centered by default. To center, set
- (setq dashboard-center-content t)
-
- ;; To disable shortcut "jump" indicators for each section, set
- (setq dashboard-show-shortcuts t)
-
- (setq show-week-agenda-p t)
-
- (setq dashboard-items '((recents . 5)
- (bookmarks . 5)
- (projects . 5)
- (agenda . 5)
- (registers . 5)))
-
- (defvar backup-dir (expand-file-name "~/.emacs.d/backup/"))
- (defvar autosave-dir (expand-file-name "~/.emacs.d/autosave/"))
-
- (setq initial-scratch-message nil
- backup-directory-alist (list (cons ".*" backup-dir))
- auto-save-list-file-prefix autosave-dir
- auto-save-file-name-transforms `((".*" ,autosave-dir t)))
-
- (menu-bar-mode 0)
- (scroll-bar-mode 0)
- (tool-bar-mode 0)
- (setq auth-sources '("~/.authinfo.gpg"))
- (set-default 'truncate-lines t)
-
- ;; (load-theme 'doom-city-lights t)
- ;; (load-theme 'doom-dracula t)
- ;; (load-theme 'doom-nord t)
- (load-theme 'doom-one t)
- ;; (load-theme 'doom-spacegrey t)
- ;; (load-theme 'base16-ocean t)
- (load-theme 'base16-onedark t)
- (global-linum-mode t)
- (global-auto-revert-mode t)
-
- (defalias 'yes-or-no-p 'y-or-n-p)
-
- (defvar diary-file (expand-file-name "~/.emacs.d/diary/main"))
-
- (add-hook 'diary-list-entries-hook 'diary-sort-entries t)
- (add-hook 'diary-list-entries-hook 'diary-include-other-diary-files)
- (add-hook 'diary-mark-entries-hook 'diary-mark-included-diary-files)
- (add-hook 'calendar-today-visible-hook 'calendar-mark-today)
-
- (setq calendar-latitude 44
- calendar-longitude -97
- calendar-location-name "Hayti, SD")
-
- (require 'font-lock)
-
- (defvar openhab-mode-hook nil)
-
- (defvar openhab-mode-map
- (let ((map (make-keymap)))
- (define-key map "\C-j" 'newline-and-indent)
- map)
- "Keymap for OPENHAB major mode.")
-
- (add-to-list 'auto-mode-alist '("\\.sitemap\\'" . openhab-mode))
- (add-to-list 'auto-mode-alist '("\\.items\\'" . openhab-mode))
- (add-to-list 'auto-mode-alist '("\\.rules\\'" . openhab-mode))
- (add-to-list 'auto-mode-alist '("\\.things\\'" . openhab-mode))
-
- (defconst openhab-font-lock-keywords
- `(
- ("\<.*\>" . font-lock-constant-face)
- (,(regexp-opt
- '(
- ;; KEYWORDS
- "Selection" "Slider" "List" "Setpoint" "Video" "Chart" "Webview" "Colorpicker"
- "Timer" "Number" "String"
- "Switch" "Rollershutter" "Number" "String" "Dimmer" "Contact" "DateTime" "Color"
- "Text" "Group" "Image" "Frame"
- "Thing" "Bridge"
- "Time" "System"
- "sitemap"
-
- "rule" "when" "then" "end"
- "if" "val"
- "import" "var" "say" "postUpdate" "switch" "println" "case" "or" "sendCommand"
- )
- 'words)
- (1 font-lock-keyword-face))
- (,(regexp-opt
- '(
- "ON" "OFF" "on" "off"
- "AND" "OR" "NAND" "NOR" "AVG" "SUM" "MAX" "MIN"
- "true" "false"
- )
- 'words)
- (1 font-lock-constant-face))
- (,(regexp-opt
- '(
- "name" "label" "item" "period" "refresh" "icon" "mappings" "minValue" "maxValue" "step" "switchsupport" "url" "height" "refresh" "visibility" "valuecolor"
- )
- 'words)
- (1 font-lock-type-face))
- ("\(.*\)" . font-lock-variable-name-face)
- ("[^a-zA-Z0-9_:]\\([0-9]*\\)[^a-zA-Z0-9_:]" . (1 font-lock-variable-name-face))
- ("\s@\s" . font-lock-variable-name-face)
- ("\s\\([a-zA-Z0-9_:]*\\)\\(\s\\|$\\)" . (1 font-lock-type-face))
- ("=\\([a-zA-Z_]*\\)" . (1 font-lock-string-face))
- ("\\([a-zA-Z]*\\)=" . (1 font-lock-type-face))
- )
- "The regexps to highlight in openHAB mode.")
-
- (defvar openhab-mode-syntax-table
- (let ((st (make-syntax-table)))
- (modify-syntax-entry ?/ ". 12b" st) ;; C-style comments // ...
- (modify-syntax-entry ?\n "> b" st) ;; \n ends comment
- ;; Block comments /*...*/
- (modify-syntax-entry ?\/ ". 14" st)
- (modify-syntax-entry ?* ". 23" st)
- st)
- "Syntax table for openhab-mode.")
-
- (defun openhab-mode ()
- "Major mode for editing OPENHAB config files."
- (interactive)
- (kill-all-local-variables)
- (set-syntax-table openhab-mode-syntax-table)
- (use-local-map openhab-mode-map)
- (set (make-local-variable 'font-lock-defaults) '(openhab-font-lock-keywords nil t))
- (electric-pair-mode -1)
- (flycheck-mode -1)
- (setq major-mode 'openhab-mode)
- (setq mode-name "OpenHAB")
- (run-hooks 'openhab-mode-hook))
-
- (provide 'openhab-mode)
-
- ;;; hyperspace.el --- Get there from here -*- lexical-binding: t; -*-
-
- ;; Copyright (C) 2017-2019 Ian Eure
-
- ;; Author: Ian Eure <ian@retrospec.tv>
- ;; URL: https://github.com/ieure/hyperspace-el
- ;; Version: 0.8.4
- ;; Package-Requires: ((emacs "25") (s "1.12.0"))
- ;; Keywords: tools, convenience
-
- ;; This program is free software; you can redistribute it and/or modify
- ;; it under the terms of the GNU General Public License as published by
- ;; the Free Software Foundation, either version 3 of the License, or
- ;; (at your option) any later version.
-
- ;; This program is distributed in the hope that it will be useful,
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;; GNU General Public License for more details.
-
- ;; You should have received a copy of the GNU General Public License
- ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- ;;; Commentary:
-
- ;; Hyperspace is a way to get nearly anywhere from wherever you are,
- ;; whether that's within Emacs or on the web. It's somewhere in
- ;; between Quicksilver and keyword URLs, giving you a single,
- ;; consistent interface to get directly where you want to go. It’s
- ;; for things that you use often, but not often enough to justify a
- ;; dedicated binding.
- ;;
- ;; When you enter Hyperspace, it prompts you where to go:
- ;;
- ;; HS:
- ;;
- ;; This prompt expects a keyword and a query. The keyword picks where
- ;; you want to go, and the remainder of the input is an optional
- ;; argument which can be used to further search or direct you within
- ;; that space.
- ;;
- ;; Some concrete examples:
- ;;
- ;; | *If you enter* | *then Hyperspace* |
- ;; |------------------+----------------------------------------------------------|
- ;; | "el" | opens info node "(elisp)Top" |
- ;; | "el eval-region" | searches for "eval-region" in the elisp Info index |
- ;; | "bb" | shows all BBDB entries |
- ;; | "bb kenneth" | shows all BBDB entries with a name matching "kenneth" |
- ;; | "ddg foo" | searches DuckDuckGo for "foo" using browse-url |
- ;; | "wp foo" | searches Wikipedia for "foo" using browse-url |
- ;;
-
- ;;; Code:
-
- (require 'subr-x)
- (require 's)
-
- ;; Action helpers
-
- (defun hyperspace-action->browse-url-pattern (pattern query)
- "Browse a URL former from PATTERN and QUERY."
- (browse-url (format pattern query)))
-
- (defun hyperspace-action->info (node &optional query)
- "Open an Info buffer for NODE.
-
- If QUERY is present, look it up in the index."
- (info node)
- (when query
- (Info-index query)))
-
- ;; Package definitions
-
- (defvar hyperspace-history nil
- "History of Hyperspace actions.")
-
- (defgroup hyperspace nil
- "Getting there from here"
- :prefix "hyperspace-"
- :group 'applications)
-
- (defcustom hyperspace-actions
- '(("ddg" . "https://duckduckgo.com/?q=%s")
- ("dis" . "https://duckduckgo.com/?q=%s&iax=images&ia=images")
- ("wp" . "https://en.wikipedia.org/wiki/%s")
- ("g" . "https://www.google.com/search?q=%s")
- ("gi" . "https://www.google.com/search?tbm=isch&q=%s")
- ("gm" . "https://www.google.com/maps/search/%s")
- ("yt" . "https://www.youtube.com/results?search_query=%s")
- ("clp" . "https://portland.craigslist.org/search/sss?query=%s")
- ("eb" . "https://www.ebay.com/sch/i.html?_nkw=%s")
- ("nf" . "https://www.netflix.com/search?q=%s")
- ("sh" . (lambda (query) (interactive) (shell-command query)))
- ("imdb" . "https://www.imdb.com/find?q=peter+jackson&s=all")
- ("bb" . bbdb-search-name)
- ("el" . (apply-partially #'hyperspace-action->info "(elisp)Top"))
- ("av" . apropos-variable)
- ("ac" . apropos-command)
- ("af" . (lambda (query) (apropos-command query t))))
-
- "Where Hyperspace should send you.
-
- Hyperspace actions are a cons of (KEYWORD . DISPATCHER). When
- Hyperspace is invoked, the keyword is extracted from the user
- input and looked up in this alist. The remainder of the
- string is passed to the dispatcher as its QUERY argument.
-
- DISPATCHER can be a function which performs the action.
-
- DISPATCHER can also be an expression which returns a function
- to perform the action.
-
- Finally, DISPATCHER can be a string with a URL pattern containing
- '%s'. The '%s' will be replaced with the query, and the URL browsed."
-
- :group 'hyperspace
- :type '(alist :key-type (string :tag "Keyword")
- :value-type (choice
- (function :tag "Function")
- (string :tag "URL Pattern")
- (sexp :tag "Expression"))))
-
- (defcustom hyperspace-default-action
- (caar hyperspace-actions)
- "A place to go if you don't specify one."
- :group 'hyperspace
- :type `(radio
- ,@(mapcar (lambda (action) (list 'const (car action))) hyperspace-actions)))
-
- (defcustom hyperspace-max-region-size 256
- "Maximum size of a region to consider for a Hyperspace query.
-
- If the region is active when Hyperspace is invoked, it's used
- as the default query, unless it's more than this number of
- characters."
- :group 'hyperspace
- :type 'integer)
-
-
-
- (defun hyperspace--cleanup (text)
- "Clean TEXT so it can be used for a Hyperspace query."
- (save-match-data
- (string-trim
- (replace-regexp-in-string (rx (1+ (or blank "\n"))) " " text))))
-
- (defun hyperspace--initial-text ()
- "Return the initial text.
-
- This is whatever's in the active region, but cleaned up."
- (when (use-region-p)
- (let* ((start (region-beginning))
- (end (region-end))
- (size (- end start)))
- (when (<= size hyperspace-max-region-size)
- (hyperspace--cleanup
- (buffer-substring-no-properties start end))))))
-
- (defun hyperspace--initial (initial-text)
- "Turn INITIAL-TEXT into INITIAL-CONTENTS for reading."
- (when initial-text (cons (concat " " initial-text) 1)))
-
- (defun hyperspace--process-input (text)
- "Process TEXT into an actionable keyword and query."
- (let ((kw-text (s-split-up-to "\\s-+" text 1)))
- (if (assoc (car kw-text) hyperspace-actions)
- kw-text
- (list hyperspace-default-action text))))
-
- (defun hyperspace--query ()
- "Ask the user for the Hyperspace action and query.
-
- Returns (KEYWORD . QUERY).
-
- If the region isn't active, the user is prompted for the
- action and query.
-
- If the region is active, its text is used as the initial value
- for the query, and the user enters the action.
-
- If a prefix argument is specified and the region is active,
- `HYPERSPACE-DEFAULT-ACTION' is chosen without prompting."
-
- (let ((initial (hyperspace--initial-text)))
- (if (and initial current-prefix-arg)
- (list hyperspace-default-action initial)
- (hyperspace--process-input
- (read-from-minibuffer "HS: " (hyperspace--initial initial) nil nil
- 'hyperspace-history)))))
-
- (defun hyperspace--evalable-p (form)
- "Can FORM be evaluated?"
- (and (listp form)
- (or (functionp (car form))
- (subrp (car form)))))
-
- (defun hyperspace--dispatch (action &optional query)
- "Execute ACTION, with optional QUERY argument."
- (pcase action
- ((pred functionp) (funcall action query))
- ((pred hyperspace--evalable-p) (funcall (eval action) query))
- ((pred stringp) (hyperspace-action->browse-url-pattern action query))
- (_ (error "Unknown action"))))
-
- ;;;###autoload
- (defun hyperspace (keyword &optional query)
- "Execute action for keyword KEYWORD, with optional QUERY."
- (interactive (hyperspace--query))
- (let ((action (cdr (assoc keyword hyperspace-actions))))
- (hyperspace--dispatch (or action hyperspace-default-action) query)))
-
- ;;;###autoload
- (defun hyperspace-enter (&optional query)
- "Enter Hyperspace, sending QUERY to the default action.
-
- If the region is active, use that as the query for
- ‘hyperspace-default-action’. Otherwise, prompt the user."
- (interactive (list (hyperspace--initial-text)))
- (hyperspace
- hyperspace-default-action
- (or query
- (read-from-minibuffer
- (format "HS: %s " hyperspace-default-action) nil nil
- 'hyperspace-history))))
-
- ;; Minor mode
-
- (defvar hyperspace-minor-mode-map
- (let ((kmap (make-sparse-keymap)))
- (define-key kmap (kbd "H-SPC") #'hyperspace)
- (define-key kmap (kbd "<H-return>") #'hyperspace-enter)
- kmap))
-
- ;;;###autoload
- (define-minor-mode hyperspace-minor-mode
- "Global (universal) minor mode to jump from here to there."
- nil nil hyperspace-minor-mode-map
- :group 'hyperspace
- :global t)
-
- (provide 'hyperspace)
-
- ;;; hyperspace.el ends here
-
- (require 'which-key)
- (which-key-setup-minibuffer)
- (which-key-mode)
-
- (require 'fic-mode)
- (add-hook 'js-mode-hook 'fic-mode)
-
- (require 'company)
- (add-hook 'after-init-hook 'global-company-mode)
-
- (setq company-dabbrev-downcase nil)
- (setq company-idle-delay 0.1)
-
- (require 'diminish)
- (diminish 'auto-revert-mode)
- (eval-after-load "company" '(diminish 'company-mode))
- (eval-after-load "counsel" '(diminish 'counsel-mode))
- (eval-after-load "elpy" '(diminish 'elpy-mode))
- (eval-after-load "go-mode" '(diminish 'go-mode))
- (eval-after-load "go-playground" '(diminish 'go-playground-mode))
- (eval-after-load "gorepl-mode" '(diminish 'gorepl-mode))
- (eval-after-load "flycheck" '(diminish 'flycheck-mode))
- (eval-after-load "ivy" '(diminish 'ivy-mode))
- (eval-after-load "projectile" '(diminish 'projectile-mode))
- (eval-after-load "which-key" '(diminish 'which-key-mode))
-
- (defun dired-mode-setup ()
- "Will run as hook for `dired-mode'."
- (dired-hide-details-mode nil))
- (add-hook 'dired-mode-hook 'dired-mode-setup)
-
- (require 'ivy-hydra)
- (require 'ivy)
- (require 'swiper)
-
- (ivy-mode 1)
- (counsel-mode)
- (setq ivy-use-virtual-buffers t
- enable-recursive-minibuffers t
- ivy-height 25
- ivy-initial-inputs-alist nil
- ivy-extra-directories nil)
-
- (global-set-key (kbd "C-s") 'swiper)
- (global-set-key (kbd "C-c C-r") 'ivy-resume)
- (global-set-key (kbd "M-x") 'counsel-M-x)
- (global-set-key (kbd "C-x C-f") 'counsel-find-file)
- (global-set-key (kbd "C-c g") 'counsel-git)
- (global-set-key (kbd "C-c j") 'counsel-git-grep)
- (global-set-key (kbd "C-c k") 'counsel-ag)
- (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history)
-
- (defun ivy-open-current-typed-path ()
- (interactive)
- (when ivy--directory
- (let* ((dir ivy--directory)
- (text-typed ivy-text)
- (path (concat dir text-typed)))
- (delete-minibuffer-contents)
- (ivy--done path))))
-
- (define-key ivy-minibuffer-map (kbd "<return>") 'ivy-alt-done)
- (define-key ivy-minibuffer-map (kbd "C-f") 'ivy-open-current-typed-path)
-
- (require 'magit)
- (global-set-key (kbd "C-x g") 'magit-status)
- (global-set-key (kbd "C-c g") 'magit-status)
- (setq magit-completing-read-function 'ivy-completing-read)
-
- (add-to-list 'exec-path "/home/locust/.local/bin")
-
- (add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu/mu4e")
- (require 'mu4e)
-
- (setq mu4e-maildir "~/Mail"
- mu4e-mu-binary "/usr/local/bin/mu"
- mu4e-change-filenames-when-moving t ;; Rename files when moving (required by mbsync)
- mu4e-compose-in-new-frame t ;; New compose gets new frame
- mu4e-context-policy 'pick-first
- mu4e-get-mail-command "mbsync -a" ;; MBSYNC is the mail cmd
- mu4e-html2text-command "/usr/local/bin/w3m -T text/html" ;; HTML to text command
- mu4e-headers-include-related nil ;; Stop threading in INBOX
- mu4e-sent-messages-behavior 'delete ;; Delete sent messages
- mu4e-update-interval 300 ;; 5 mins
- mu4e-use-fancy-chars t ;; use 'fancy' chars
- mu4e-user-mail-address-list '("lolson@eaglecrk.com"
- "lolson@vlocity.com"
- "olson.levi@gmail.com")
- mu4e-view-show-images t ;; attempt to show images
- mu4e-view-image-max-width 400 ;; max image size
-
- message-citation-line-format "On %a %d %b %Y at %R, %f wrote:\n" ;; customize the reply-quote-string
- message-citation-line-function 'message-insert-formatted-citation-line ;; choose to use the formatted string
- message-kill-buffer-on-exit t ;; don't keep messages around
-
- send-mail-function 'smtpmail-send-it ;; Default email send function
- smtpmail-default-smtp-server "smtp.gmail.com"
- smtpmail-smtp-service 587
- )
-
- ;; (defun leo/convert-message-set-point ()
- ;; "Set the point to the start of the message body."
- ;; (interactive)
- ;; (beginning-of-buffer)
- ;; (search-forward "--text follows this line--")
- ;; (forward-char)
- ;; )
- ;; (defun leo/convert-message-from-markdown ()
- ;; "Convert a markdown flavored mail buffer to html w/mime support."
- ;; (interactive)
- ;; (if (y-or-n-p "Convert to HTML? ")
- ;; ((leo/convert-message-set-point)
- ;; (save-excursion
- ;; (message-goto-body)
- ;; (shell-command-on-region (point) (point-max) "~/.emacs.d/scripts/expand-mime.sh" nil t)))
- ;; (message "Aborting."))
- ;; )
-
- (setq mu4e-contexts
- `(
- ;; ,(make-mu4e-context
- ;; :name "Vlocity"
- ;; :enter-func (lambda () (mu4e-message "Entering Vlocity"))
- ;; :leave-func (lambda () (mu4e-message "Leaving Vlocity"))
- ;; ;; we match based on the contact-fields of the message
- ;; :match-func (lambda (msg)
- ;; (when msg
- ;; (string= (mu4e-message-field msg :maildir) "/Vlocity")))
- ;; :vars '( ( user-mail-address . "lolson@vlocity.com" )
- ;; ( smtpmail-mail-address . "lolson@vlocity.com" )
- ;; ( smtpmail-smtp-user . "lolson@vlocity.com" )
- ;; ( smtpmail-smtp-server . "smtp.gmail.com" )
- ;; ( user-full-name . "Levi Olson" )
- ;; ( mu4e-compose-signature .
- ;; (concat
- ;; "Levi Olson\n"
- ;; "Senior UI Developer"))
- ;; ( mu4e-sent-folder . "/Vlocity/[Gmail].Sent Mail" )
- ;; ( mu4e-drafts-folder . "/Vlocity/[Gmail].Drafts" )
- ;; ( mu4e-trash-folder . "/Vlocity/[Gmail].Trash" )
- ;; ( mu4e-maildir-shortcuts . (("/Vlocity/INBOX" . ?i)
- ;; ("/Vlocity/[Gmail].Sent Mail" . ?s)
- ;; ("/Vlocity/[Gmail].Trash" . ?t)
- ;; ("/Vlocity/[Gmail].All Mail" . ?a)))))
- ,(make-mu4e-context
- :name "EagleCreek"
- :enter-func (lambda () (mu4e-message "Entering EagleCreek"))
- :leave-func (lambda () (mu4e-message "Leaving EagleCreek"))
- ;; we match based on the contact-fields of the message
- :match-func (lambda (msg)
- (when msg
- (string= (mu4e-message-field msg :maildir) "/eaglecrk")))
- :vars '( ( user-mail-address . "lolson@eaglecrk.com" )
- ( smtpmail-mail-address . "lolson@eaglecrk.com" )
- ( smtpmail-smtp-user . "lolson@eaglecrk.com" )
- ( smtpmail-smtp-server . "smtp.office365.com" )
- ( user-full-name . "Levi Olson" )
- ;; ( mu4e-compose-signature .
- ;; (concat
- ;; "Levi Olson\n"
- ;; "Eagle Creek Software Services\n"
- ;; "Senior Application Developer Consultant\n"))
- ( mu4e-sent-folder . "/eaglecrk/Sent Items" )
- ( mu4e-drafts-folder . "/eaglecrk/Drafts" )
- ( mu4e-trash-folder . "/eaglecrk/Deleted Items" )
- ( mu4e-maildir-shortcuts . (("/eaglecrk/Inbox" . ?i)
- ("/eaglecrk/Sent Items" . ?s)
- ("/eaglecrk/Deleted Items" . ?t)
- ("/eaglecrk/Archive" . ?a)))))
- ;; ,(make-mu4e-context
- ;; :name "Gmail"
- ;; :enter-func (lambda () (mu4e-message "Entering Gmail"))
- ;; :leave-func (lambda () (mu4e-message "Leaving Gmail"))
- ;; ;; this matches maildir /Arkham and its sub-directories
- ;; :match-func (lambda (msg)
- ;; (when msg
- ;; (string= (mu4e-message-field msg :maildir) "/Gmail")))
- ;; :vars '( ( user-mail-address . "olson.levi@gmail.com" )
- ;; ( smtpmail-mail-address . "olson.levi@gmail.com" )
- ;; ( smtpmail-smtp-user . "olson.levi@gmail.com" )
- ;; ( smtpmail-smtp-server . "smtp.gmail.com" )
- ;; ( user-full-name . "Levi Olson" )
- ;; ( mu4e-compose-signature .
- ;; (concat
- ;; "Levi\n"))
- ;; ( mu4e-sent-folder . "/Gmail/[Gmail].Sent Mail" )
- ;; ( mu4e-drafts-folder . "/Gmail/[Gmail].Drafts" )
- ;; ( mu4e-trash-folder . "/Gmail/[Gmail].Trash" )
- ;; ( mu4e-maildir-shortcuts . (("/Gmail/INBOX" . ?i)
- ;; ("/Gmail/[Gmail].Sent Mail" . ?s)
- ;; ("/Gmail/[Gmail].Trash" . ?t)
- ;; ("/Gmail/[Gmail].All Mail" . ?a))
- ;; )))
- ))
-
- ;; Add option to view HTML in browser
- (add-to-list 'mu4e-headers-actions
- '("in browser" . mu4e-action-view-in-browser) t)
- (add-to-list 'mu4e-view-actions
- '("in browser" . mu4e-action-view-in-browser) t)
-
-
-
-
- (defun my-message-current-line-cited-p ()
- "Indicate whether the line at point is a cited line."
- (save-match-data
- (string-match (concat "^" message-cite-prefix-regexp)
- (buffer-substring (line-beginning-position) (line-end-position)))))
-
- (defun my-message-says-attachment-p ()
- "Return t if the message suggests there can be an attachment."
- (save-excursion
- (goto-char (point-min))
- (save-match-data
- (let (search-result)
- (while
- (and (setq search-result (re-search-forward "\\(attach\\|pdf\\|file\\)" nil t))
- (my-message-current-line-cited-p)))
- search-result))))
-
- (defun my-message-has-attachment-p ()
- "Return t if the message has an attachment."
- (save-excursion
- (goto-char (point-min))
- (save-match-data
- (re-search-forward "<#part" nil t))))
-
- (defun my-message-pre-send-check-attachment ()
- (when (and (my-message-says-attachment-p)
- (not (my-message-has-attachment-p)))
- (unless
- (y-or-n-p "No attachment. Send anyway?")
- (error "It seems that an attachment is needed, but none was found. Aborting sending."))))
-
- (add-hook 'message-send-hook 'my-message-pre-send-check-attachment)
-
- (require 'projectile)
- (require 'counsel-projectile)
-
- (projectile-mode)
- (setq projectile-mode-line '(:eval (format " %s" (projectile-project-name)))
- projectile-remember-window-configs t
- projectile-completion-system 'ivy)
- (counsel-projectile-mode)
-
- (autoload 'poporg-dwim "poporg" nil t)
- (global-set-key (kbd "C-c \"") 'poporg-dwim)
-
- ;;; notify.el --- notification front-end
-
- ;; Copyright (C) 2008 Mark A. Hershberger
-
- ;; Original Author: Mark A. Hershberger <mhersberger@intrahealth.org>
- ;; Modified by Andrey Kotlarski <m00naticus@gmail.com>
- ;; Modified by Andrew Gwozdziewycz <git@apgwoz.com>
- ;; Modified by Aidan Gauland <aidalgol@no8wireless.co.nz> October 2011
- ;; Modified by Olivier Sirven <the.slaa@gmail.com> November 2013
- ;; Keywords: extensions, convenience, lisp
-
- ;; This file is free software; you can redistribute it and/or modify
- ;; it under the terms of the GNU General Public License as published by
- ;; the Free Software Foundation; either version 2, or (at your option)
- ;; any later version.
-
- ;; This file is distributed in the hope that it will be useful,
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;; GNU General Public License for more details.
-
- ;; You should have received a copy of the GNU General Public License
- ;; along with GNU Emacs; see the file COPYING. If not, write to
- ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- ;; Boston, MA 02111-1307, USA.
-
- ;;; Commentary:
-
- ;; This provides a single function, `notify', that will produce a notify
- ;; pop-up via D-Bus, libnotify, simple message or growl.
- ;; To use, just put (autoload 'notify "notify" "Notify TITLE, BODY.")
- ;; in your init file. You may override default chosen notification
- ;; method by assigning `notify-method' to one of 'notify-via-dbus
- ;; 'notify-via-libnotify or 'notify-via-message
- ;;; Code:
-
- (defvar notify-defaults (list :app "Emacs" :icon "emacs" :timeout 5000
- :urgency "low"
- :category "emacs.message")
- "Notification settings' defaults.
- May be overridden with key-value additional arguments to `notify'.")
- (defvar notify-delay '(0 5 0)
- "Minimum time allowed between notifications in time format.")
- (defvar notify-last-notification '(0 0 0) "Time of last notification.")
- (defvar notify-method 'notify-via-growl "Notification method among
- 'notify-via-dbus, 'notify-via-libnotify, 'notify-via-message or
- 'notify-via-growl")
-
- ;; determine notification method unless already set
- ;; prefer growl > D-Bus > libnotify > message
- (cond
- ((null notify-method)
- (setq notify-method
- (cond
- ((executable-find "growlnotify") 'notify-via-growl)
- ((and (require 'dbus nil t)
- (dbus-ping :session "org.freedesktop.Notifications"))
- (defvar notify-id 0 "Current D-Bus notification id.")
- 'notify-via-dbus)
- ((executable-find "notify-send") 'notify-via-libnotify)
- (t 'notify-via-message))))
- ((eq notify-method 'notify-via-dbus) ;housekeeping for pre-chosen DBus
- (if (and (require 'dbus nil t)
- (dbus-ping :session "org.freedesktop.Notifications"))
- (defvar notify-id 0 "Current D-Bus notification id.")
- (setq notify-method (if (executable-find "notify-send")
- 'notify-via-libnotify
- 'notify-via-message))))
- ((and (eq notify-method 'notify-via-libnotify)
- (not (executable-find "notify-send"))) ;housekeeping for pre-chosen libnotify
- (setq notify-method
- (if (and (require 'dbus nil t)
- (dbus-ping :session "org.freedesktop.Notifications"))
- (progn
- (defvar notify-id 0 "Current D-Bus notification id.")
- 'notify-via-dbus)
- 'notify-via-message)))
- ((and (eq notify-method 'notify-via-growl)
- (not (executable-find "growlnotify")))
- (setq notify-method 'notify-via-message)))
-
- (defun notify-via-dbus (title body)
- "Send notification with TITLE, BODY `D-Bus'."
- (dbus-call-method :session "org.freedesktop.Notifications"
- "/org/freedesktop/Notifications"
- "org.freedesktop.Notifications" "Notify"
- (get 'notify-defaults :app)
- (setq notify-id (+ notify-id 1))
- (get 'notify-defaults :icon) title body '(:array)
- '(:array :signature "{sv}") ':int32
- (get 'notify-defaults :timeout)))
-
- (defun notify-via-libnotify (title body)
- "Notify with TITLE, BODY via `libnotify'."
- (call-process "notify-send" nil 0 nil
- title body "-t"
- (number-to-string (get 'notify-defaults :timeout))
- "-i" (get 'notify-defaults :icon)
- "-u" (get 'notify-defaults :urgency)
- "-c" (get 'notify-defaults :category)))
-
- (defun notify-via-message (title body)
- "Notify TITLE, BODY with a simple message."
- (message "%s: %s" title body))
-
- (defun notify-via-growl (title body)
- "Notify TITLE, BODY with a growl"
- (call-process "growlnotify" nil 0 nil
- "-a" (get 'notify-defaults :app)
- "-n" (get 'notify-defaults :category)
- "-t" (notify-via-growl-stringify title)
- "-m" (notify-via-growl-stringify body)))
-
- (defun notify-via-growl-stringify (thing)
- (cond ((null thing) "")
- ((stringp thing) thing)
- (t (format "%s" thing))))
-
- (defun keywords-to-properties (symbol args &optional defaults)
- "Add to SYMBOL's property list key-values from ARGS and DEFAULTS."
- (when (consp defaults)
- (keywords-to-properties symbol defaults))
- (while args
- (put symbol (car args) (cadr args))
- (setq args (cddr args))))
-
-
- ;;;###autoload
- (defun notify (title body &rest args)
- "Notify TITLE, BODY via `notify-method'.
- ARGS may be amongst :timeout, :icon, :urgency, :app and :category."
- (when (time-less-p notify-delay
- (time-since notify-last-notification))
- (or (eq notify-method 'notify-via-message)
- (keywords-to-properties 'notify-defaults args
- notify-defaults))
- (setq notify-last-notification (current-time))
- (funcall notify-method title body)))
-
- (provide 'notify)
-
- ;;; notify.el ends here
-
- (require 'jabber)
-
- (setq jabber-history-enabled t
- jabber-use-global-history nil
- jabber-backlog-number 40
- jabber-backlog-days 30
- jabber-alert-presence-message-function (lambda (_who _oldstatus _newstatus _statustext) nil)
- )
-
- (setq jabber-account-list '(
- ("olson.levi@gmail.com"
- (:network-server . "talk.google.com")
- (:connection-type . ssl))
- ;; ("lolson@vlocity.com"
- ;; (:network-server . "talk.google.com")
- ;; (:connection-type . ssl))
- ))
-
- (defvar my-chat-prompt "[%t] %n>\n" "Customized chat prompt")
- (when (featurep 'jabber)
- (setq
- jabber-chat-foreign-prompt-format my-chat-prompt
- jabber-chat-local-prompt-format my-chat-prompt
- jabber-groupchat-prompt-format my-chat-prompt
- jabber-muc-private-foreign-prompt-format "[%t] %g/%n>\n"
- )
- )
-
- (defun notify-jabber-notify (from buf text _proposed-alert)
- "(jabber.el hook) Notify of new Jabber chat messages via notify.el"
- (when (or jabber-message-alert-same-buffer
- (not (memq (selected-window) (get-buffer-window-list buf))))
- (if (jabber-muc-sender-p from)
- (notify (format "(PM) %s"
- (jabber-jid-displayname (jabber-jid-user from)))
- (format "%s: %s" (jabber-jid-resource from) text)))
- (notify (format "%s" (jabber-jid-displayname from))
- text)))
-
- ;; (add-hook 'jabber-alert-message-hooks 'notify-jabber-notify)
-
-
- ;; (require 'autosmiley)
- ;; (add-hook 'jabber-chat-mode-hook 'autosmiley-mode)
-
-
- (defun jabber ()
- (interactive)
- (jabber-connect-all)
- (switch-to-buffer "*-jabber-roster-*"))
-
- (defun hyperspace-action->mu4e (&optional query)
- "Search mu4e with QUERY.
-
- If QUERY is unspecified, use the first bookmark in variable
- ‘mu4e-bookmarks’ and update mail and index."
-
- (mu4e-headers-search (or query (caar mu4e-bookmarks)))
- (unless query
- (mu4e-update-mail-and-index nil)))
- (add-to-list 'hyperspace-actions '("m4" . hyperspace-action->mu4e))
-
- (defun hyperspace-action->elfeed (&optional query)
- "Load elfeed, optionally searching for QUERY."
- (elfeed)
- (if query
- (elfeed-search-set-filter query)
- (elfeed-search-fetch nil)))
- (add-to-list 'hyperspace-actions '("lf" . hyperspace-action->elfeed))
-
- (defun find-user-init-file ()
- "Edit the `~/.emacs.d/init.org' file."
- (interactive)
- (find-file "~/.emacs.d/init.org"))
-
- (defun find-todo-file ()
- "Edit the `~/todo.org' file."
- (interactive)
- (find-file "~/Dropbox/Org/todo.org"))
-
- (defun load-user-init-file ()
- "LO: Reload the `~/.emacs.d/init.elc' file."
- (interactive)
- (load-file "~/.emacs.d/init.elc"))
-
- (defun leo-swiper ()
- "LO: Custom swiper."
- (interactive)
- (let ((word (thing-at-point 'symbol)))
- (if word (swiper (format "%s" word)))
- (unless word (swiper (format ""))))
- )
-
- (defun jump-to-symbol-internal (&optional backwardp)
- "Jumps to the next symbol near the point if such a symbol exists. If BACKWARDP is non-nil it jumps backward."
- (let* ((point (point))
- (bounds (find-tag-default-bounds))
- (beg (car bounds)) (end (cdr bounds))
- (str (isearch-symbol-regexp (find-tag-default)))
- (search (if backwardp 'search-backward-regexp
- 'search-forward-regexp)))
- (goto-char (if backwardp beg end))
- (funcall search str nil t)
- (cond ((<= beg (point) end) (goto-char point))
- (backwardp (forward-char (- point beg)))
- (t (backward-char (- end point))))))
-
- (defun jump-to-previous-like-this ()
- "Jumps to the previous occurrence of the symbol at point."
- (interactive)
- (jump-to-symbol-internal t))
-
- (defun jump-to-next-like-this ()
- "Jumps to the next occurrence of the symbol at point."
- (interactive)
- (jump-to-symbol-internal))
-
- (defun match-paren (arg)
- "Go to the matching paren if on a paren; otherwise insert ARG (a literal % sign)."
- (interactive "p")
- (cond ((looking-at "\\s(") (forward-list 1))
- ((looking-back "\\s(" 2) (backward-char 1) (forward-list 1))
- ((looking-at "\\s)") (forward-char 1) (backward-list 1))
- ((looking-back "\\s)" 2) (backward-list 1))
- (t (self-insert-command (or arg 1)))))
-
- (defun kill-this-buffer-unless-scratch ()
- "Works like `kill-this-buffer' unless the current buffer is the *scratch* buffer. In which case the buffer content is deleted and the buffer is buried."
- (interactive)
- (if (not (string= (buffer-name) "*scratch*"))
- (kill-this-buffer)
- (delete-region (point-min) (point-max))
- (switch-to-buffer (other-buffer))
- (bury-buffer "*scratch*")))
-
- (defun delete-backward-sentence ()
- "LO: Delete to the beginning of the sentence/line."
- (interactive)
- (delete-region (point) (progn (backward-sentence) (point))))
-
- (defun delete-backward-to-boundary (arg)
- "LO: Delete backward to the previous word boundary. With ARG, do this many times."
- (interactive "p")
- (let ((a (point))
- (b (progn
- (backward-word arg)
- (forward-word)
- (point))))
- (if (< a b)
- (delete-region a (progn (backward-word arg) (point)))
- (if (= a b)
- (delete-region a (progn (backward-word arg) (point)))
- (delete-region a b)))))
-
- (defun comment-or-uncomment-region-or-line ()
- "Comments or uncomments the region or the current line if there's no active region."
- (interactive)
- (let (beg end)
- (if (region-active-p)
- (setq beg (region-beginning) end (region-end))
- (setq beg (line-beginning-position) end (line-end-position)))
- (comment-or-uncomment-region beg end)))
-
- (defun fold-toggle (column)
- "Code folding by COLUMN."
- (interactive "P")
- (set-selective-display
- (or column
- (unless selective-display
- (1+ (current-column))))))
-
- (defun new-line-below ()
- "LO: Create a new line below current line."
- (interactive)
- (move-end-of-line 1)
- (newline-and-indent))
-
- (defun new-line-above ()
- "LO: Create a new line above current line."
- (interactive)
- (move-beginning-of-line 1)
- (newline)
- (forward-line -1))
-
- (defun duplicate-thing (comment)
- "LO: Duplicates the current line, or the region if active. If an argument (COMMENT) is given, the duplicated region will be commented out."
- (interactive "P")
- (save-excursion
- (let ((start (if (region-active-p) (region-beginning) (point-at-bol)))
- (end (if (region-active-p) (region-end) (point-at-eol))))
- (goto-char end)
- (unless (region-active-p)
- (newline))
- (insert (buffer-substring start end))
- (when comment (comment-region start end)))))
-
- (defun tidy ()
- "LO: Ident, untabify and unwhitespacify current buffer, or region if active."
- (interactive)
- (let ((beg (if (region-active-p) (region-beginning) (point-min)))
- (end (if (region-active-p) (region-end) (point-max))))
- (let ((inhibit-message t))
- (indent-region beg end))
- (whitespace-cleanup)
- (untabify beg (if (< end (point-max)) end (point-max)))
- (if (region-active-p) (message "Indenting Region...Done") (message "Indenting File...Done"))))
-
- (defun phil-columns ()
- "LO: Good 'ol Phil-Columns."
- (interactive)
- (message "Good 'ol fill-columns")
- (with-output-to-temp-buffer "*PHIL-COLUMN*"
- (shell-command "mpv --no-video 'https://www.youtube.com/watch?v=YkADj0TPrJA&t=3m16s' > /dev/null 2>&1 & sleep 8; pkill mpv"))
- (other-window 1)
- (delete-window))
-
- (declare-function first "Goto FIRST shell.")
- (declare-function goto-non-shell-buffer "Goto something other than a shell buffer.")
- (declare-function switch-shell "Switch shell.")
-
- (let ((last-shell ""))
- (defun toggle-shell ()
- (interactive)
- (cond ((string-match-p "^\\*shell<[1-9][0-9]*>\\*$" (buffer-name))
- (goto-non-shell-buffer))
- ((get-buffer last-shell) (switch-to-buffer last-shell))
- (t (shell (setq last-shell "*shell<1>*")))))
-
- (defun switch-shell (n)
- (let ((buffer-name (format "*shell<%d>*" n)))
- (setq last-shell buffer-name)
- (cond ((get-buffer buffer-name)
- (switch-to-buffer buffer-name))
- (t (shell buffer-name)
- (rename-buffer buffer-name)))))
-
- (defun goto-non-shell-buffer ()
- (let* ((r "^\\*shell<[1-9][0-9]*>\\*$")
- (shell-buffer-p (lambda (b) (string-match-p r (buffer-name b))))
- (non-shells (cl-remove-if shell-buffer-p (buffer-list))))
- (when non-shells
- (switch-to-buffer (first non-shells))))))
-
-
- (defadvice shell (after kill-with-no-query nil activate)
- "."
- (set-process-query-on-exit-flag (get-buffer-process ad-return-value) nil))
-
- (declare-function comint-truncate-buffer ".")
- (defun clear-comint ()
- "Run `comint-truncate-buffer' with the `comint-buffer-maximum-size' set to zero."
- (interactive)
- (let ((comint-buffer-maximum-size 0))
- (comint-truncate-buffer)))
-
- (defun c-setup ()
- "Compile."
- (local-set-key (kbd "C-c C-c") 'compile))
-
- (require 'company)
- (add-hook 'comint-mode-hook (lambda () (local-set-key (kbd "c-l") 'clear-comint)))
- (add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
- (add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
- (add-hook 'c-mode-common-hook 'c-setup)
- (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
-
- (defvar company-active-map (make-keymap)
- "company mode keymap.")
- (defvar custom-bindings (make-keymap)
- "a keymap of custom bindings.")
-
- (define-key custom-bindings (kbd "M-p") 'jump-to-previous-like-this)
- (define-key custom-bindings (kbd "M-n") 'jump-to-next-like-this)
- (define-key custom-bindings (kbd "M-<tab>") 'switch-to-next-buffer)
- (define-key custom-bindings (kbd "M-<backspace>")'delete-backward-to-boundary)
- (define-key custom-bindings (kbd "C-<backspace>")'delete-backward-to-boundary)
- (define-key custom-bindings (kbd "C-}") 'mc/mark-next-like-this)
- (define-key custom-bindings (kbd "C-)") 'mc/unmark-next-like-this)
- (define-key custom-bindings (kbd "C-{") 'mc/mark-previous-like-this)
- (define-key custom-bindings (kbd "C-(") 'mc/unmark-previous-like-this)
- (define-key custom-bindings (kbd "C-'") 'mc-hide-unmatched-lines-mode)
- (define-key custom-bindings (kbd "C-c 1") 'mc/insert-numbers)
- (define-key custom-bindings (kbd "C-c s") 'mc/sort-regions)
- (define-key custom-bindings "%" 'match-paren)
- (define-key custom-bindings (kbd "C-x .") 'dash-at-point)
- (define-key custom-bindings (kbd "C-x ,") 'dash-at-point-with-docset)
- (define-key custom-bindings (kbd "C-s") 'leo-swiper)
- (define-key custom-bindings (kbd "C-x C-l m") 'mu4e)
- (define-key custom-bindings (kbd "C-x C-o t") 'find-todo-file)
- (define-key custom-bindings (kbd "C-x C-l j") 'jabber)
- (define-key custom-bindings (kbd "C-x C-l f") 'elfeed)
- (define-key custom-bindings (kbd "C-x C-l a") 'org-agenda)
- (define-key custom-bindings (kbd "C-x C-l c") 'calendar)
- (define-key custom-bindings (kbd "M-SPC") #'hyperspace)
- ;; (dolist (n (number-sequence 1 9))
- ;; (global-set-key (kbd (concat "M-" (int-to-string n)))
- ;; (lambda () (interactive) (switch-shell n))))
-
- (define-key company-active-map (kbd "C-d") 'company-show-doc-buffer)
- (define-key company-active-map (kbd "C-n") 'company-select-next)
- (define-key company-active-map (kbd "C-p") 'company-select-previous)
- (define-key company-active-map (kbd "<tab>") 'company-complete)
-
- (define-key custom-bindings (kbd "C-c p") 'counsel-projectile-switch-project)
- (define-key custom-bindings (kbd "C-c f") 'counsel-projectile-find-file)
- (define-key custom-bindings (kbd "C-c c") 'ivy-resume)
- (define-key custom-bindings (kbd "C-c m") 'magit-status)
- (define-key custom-bindings (kbd "C-c D") 'define-word-at-point)
- (define-key custom-bindings (kbd "C-@") 'er/expand-region)
- (define-key custom-bindings (kbd "C-#") 'er/contract-region)
- (define-key custom-bindings (kbd "C-S-c C-S-c") 'mc/edit-lines)
- (define-key custom-bindings (kbd "C-c b") 'ivy-switch-buffer)
- (define-key custom-bindings (kbd "C-c l") 'org-store-link)
- (define-key custom-bindings (kbd "C-c t") 'org-set-tags)
- (define-key custom-bindings (kbd "M-u") 'upcase-dwim)
- (define-key custom-bindings (kbd "M-c") 'capitalize-dwim)
- (define-key custom-bindings (kbd "M-l") 'downcase-dwim)
- (define-key custom-bindings (kbd "M-o") 'other-window)
- (define-key custom-bindings (kbd "C-c s") 'ispell-word)
- (define-key custom-bindings (kbd "C-c C-d") 'org-capture)
- (define-key custom-bindings (kbd "C-c <up>") 'windmove-up)
- (define-key custom-bindings (kbd "C-c <down>") 'windmove-down)
- (define-key custom-bindings (kbd "C-c <left>") 'windmove-left)
- (define-key custom-bindings (kbd "C-c <right>") 'windmove-right)
- (define-key custom-bindings (kbd "C-c a") (lambda () (interactive) (org-agenda nil "n")))
- (define-key custom-bindings (kbd "C-c e") 'find-user-init-file)
- (define-key custom-bindings (kbd "C-x f") 'phil-columns)
- (define-key custom-bindings (kbd "C-x k") 'kill-this-buffer-unless-scratch)
- (define-key custom-bindings (kbd "C-c d") 'duplicate-thing)
- (define-key custom-bindings (kbd "C-;") 'comment-or-uncomment-region-or-line)
- (define-key custom-bindings (kbd "C-o") 'new-line-below)
- (define-key custom-bindings (kbd "C-S-o") 'new-line-above)
- (define-key custom-bindings (kbd "<C-tab>") 'tidy)
- (define-key custom-bindings (kbd "M-q") 'kill-this-buffer)
- ;; (define-key custom-bindings (kbd "M-RET") '(lambda () (interactive) (term (getenv "SHELL"))))
-
-
- (define-minor-mode custom-bindings-mode
- "A mode that activates custom-bindings."
- t nil custom-bindings)
-
- (require 'rainbow-delimiters)
- (global-flycheck-mode)
-
- (add-hook 'before-save-hook 'delete-trailing-whitespace)
- (add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
-
- (setq-default indent-tabs-mode nil
- tab-width 4)
- (defvaralias 'c-basic-offset 'tab-width)
- (defvaralias 'cperl-indent-level 'tab-width)
-
- (electric-pair-mode 1)
- (show-paren-mode 1)
-
- (require 'dockerfile-mode)
- (add-to-list 'auto-mode-alist '("Dockerfile*\\'" . dockerfile-mode))
-
- (require 'gitignore-mode)
- (add-to-list 'auto-mode-alist '("gitignore\\'" . gitignore-mode))
-
- ;; Workaround to get Projectile to work again
- (setq projectile-git-submodule-command nil)
-
- (require 'json-mode)
- (add-to-list 'auto-mode-alist '("\\.json\\'" . json-mode))
-
- (require 'web-mode)
- (add-to-list 'auto-mode-alist '("\\.html\\'" . web-mode))
-
- (elpy-enable)
- (setq python-shell-interpreter "jupyter"
- python-shell-interpreter-args "console --simple-prompt")
-
- (when (require 'flycheck nil t)
- (setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
- (add-hook 'elpy-mode-hook 'flycheck-mode))
-
- (require 'py-autopep8)
- (setq py-autopep8-options '("--ignore=E501"))
- (add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save)
-
- (require 'go-mode)
- (require 'go-playground)
- (require 'gorepl-mode)
- (require 'company-go)
-
- (add-to-list 'auto-mode-alist '("\\.go\\'" . go-mode))
- (add-hook 'go-mode-hook (lambda ()
- (add-hook 'before-save-hook 'gofmt-before-save)
- (local-set-key (kbd "M-.") 'godef-jump)
- (local-set-key (kbd "M-,") 'pop-tag-mark)
- (local-set-key (kbd "C-c C-c") (lambda ()
- (interactive)
- (ansi-term)
- (comint-send-string "*ansi-term*" "make\n")))
- (set (make-local-variable 'company-backends) '(company-go))
- (setq company-tooltip-limit 20
- company-echo-delay 0
- company-begin-commands '(self-insert-command))
- (gorepl-mode)))
- (defun set-exec-path-from-shell-PATH ()
- (let ((path-from-shell (replace-regexp-in-string
- "[ \t\n]*$"
- ""
- (shell-command-to-string "$SHELL --login -i -c 'echo $PATH'"))))
- (setenv "PATH" path-from-shell)
- (setq eshell-path-env path-from-shell)
- (setq exec-path (split-string path-from-shell path-separator))))
-
- (when window-system (set-exec-path-from-shell-PATH))
-
- (setenv "GOPATH" "/home/locust/go")
- (add-to-list 'exec-path "/home/locust/go/bin")
-
- (add-to-list 'exec-path "/usr/local/bin")
-
- (defun setup-tide-mode ()
- "Tide setup function."
- (interactive)
- (tide-setup)
- (flycheck-mode +1)
- (setq flycheck-check-syntax-automatically '(save mode-enabled))
- (eldoc-mode +1)
- (tide-hl-identifier-mode +1)
- (company-mode +1))
-
- ;; aligns annotation to the right hand side
- (setq company-tooltip-align-annotations t)
-
- ;; formats the buffer before saving
- (add-hook 'before-save-hook 'tide-format-before-save)
-
- (add-hook 'typescript-mode-hook #'setup-tide-mode)
-
- (require 'typescript-mode)
- (require 'tide)
-
- (add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-mode))
- (add-hook 'typescript-mode-hook
- '(lambda ()
- (set (make-local-variable 'company-backends) '(company-tide))
- (setq company-tooltip-limit 20
- company-echo-delay 0
- company-begin-commands '(self-insert-command)
- tide-format-options '(:insertSpaceAfterFunctionKeywordForAnonymousFunctions t :placeOpenBraceOnNewLineForFunctions nil))
- (tide-setup)))
-
- (require 'web-mode)
- (add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode))
- (add-hook 'web-mode-hook
- (lambda ()
- (when (string-equal "tsx" (file-name-extension buffer-file-name))
- (setup-tide-mode))))
- ;; enable typescript-tslint checker
- (flycheck-add-mode 'typescript-tslint 'web-mode)
-
- (require 'web-mode)
- (add-to-list 'auto-mode-alist '("\\.jsx\\'" . web-mode))
- (add-hook 'web-mode-hook
- (lambda ()
- (when (string-equal "jsx" (file-name-extension buffer-file-name))
- (setup-tide-mode))))
- ;; configure jsx-tide checker to run after your default jsx checker
- (flycheck-add-mode 'javascript-eslint 'web-mode)
- (flycheck-add-next-checker 'javascript-eslint 'jsx-tide 'append)
-
- (org-babel-do-load-languages
- 'org-babel-load-languages
- '((js . t)
- (shell . t)
- (emacs-lisp . t)))
-
- (setq org-todo-keywords
- '((sequence "TODO(t)" "|" "DONE(d)")
- (sequence "BUG(b)" "|" "INPROGRESS(i)" "FIXED(f)")
- (sequence "TEST(T)" "NOTEST(N)" "|" "COMPLETE(C)")
- (sequence "|" "CANCELED(c)")
- (sequence "|" "NEEDCLARIFICATION(n)")
- (sequence "|" "PROVIDEUPDATE(p)")
- (sequence "|" "WAITING(w)")
- ))
-
- (setq org-agenda-files
- '("~/Dropbox/Org/todo.org"
- "~/Dropbox/Org/archive.org"))
- (setq org-refile-targets
- '((nil :maxlevel . 1)
- (org-agenda-files :maxlevel . 1)))
-
- ;; (add-hook 'focus-in-hook
- ;; (lambda () (progn
- ;; (setq org-tags-column (- 5 (frame-width)))) (org-align-all-tags)))
-
- ;; (add-hook 'focus-out-hook
- ;; (lambda () (progn
- ;; (setq org-tags-column (- 5 (frame-width)))) (org-align-all-tags)))
-
- (defvar org-src-tab-acts-natively)
- (setq org-src-tab-acts-natively t)
-
- (defvar org-confirm-babel-evaluate)
-
- (defun my-org-confirm-babel-evaluate (lang _body)
- "Execute certain languages without confirming.
- Takes LANG to allow and BODY to execute."
- (not (or (string= lang "js")
- (string= lang "restclient")
- (string= lang "emacs-lisp")
- (string= lang "shell"))))
- (setq org-confirm-babel-evaluate #'my-org-confirm-babel-evaluate)
- (add-to-list 'org-structure-template-alist
- (list "e" (concat "#+BEGIN_SRC emacs-lisp :results silent\n"
- "\n"
- "#+END_SRC")))
- (add-to-list 'org-structure-template-alist
- (list "j" (concat "#+BEGIN_SRC js :cmd \"/usr/local/bin/babel-node\" :results output code\n"
- "\n"
- "#+END_SRC")))
- (add-to-list 'org-structure-template-alist
- (list "r" (concat "#+BEGIN_SRC restclient :results raw\n"
- "\n"
- "#+END_SRC")))
-
- (defun my-org-config ()
- "Activate org and yas in 'org-mode' buffers."
- (yas-minor-mode)
- (lambda ()
- (local-set-key (kbd "M-RET") 'org-insert-todo-heading)
- (global-set-key (kbd "C-c c") nil)
- (local-set-key (kbd "C-c c i") 'org-clock-in)
- (local-set-key (kbd "C-c c o") 'org-clock-out)
- )
- )
- (add-hook 'org-mode-hook #'my-org-config)
-
- (require 'ox-reveal)
-
- (setq org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js"
- org-reveal-klipsify-src t)
-
- ;;store org-mode links to messages
- (require 'org-mu4e)
- ;;store link to message if in header view, not to header query
- (setq org-mu4e-link-query-in-headers-mode nil)
-
- (setq org-capture-templates
- '(("t" "todo" entry (file+headline "~/Dropbox/Org/todo.org" "Tasks")
- "* TODO [#A] %?\nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"+0d\"))\n%a\n")))
-
- (elfeed-org)
- (setq rmh-elfeed-org-files (list "~/Dropbox/Org/elfeed.org"))
-
- (defun leo/elfeed-search (arg)
- "Search for ARG in feed."
- (interactive)
- (elfeed-search-set-filter arg))
-
- (define-key elfeed-search-mode-map "a" (lambda () (interactive) (leo/elfeed-search "")))
- (define-key elfeed-search-mode-map "e" (lambda () (interactive) (leo/elfeed-search "+emacs")))
- (define-key elfeed-search-mode-map "d" (lambda () (interactive) (leo/elfeed-search "+daily")))
- (define-key elfeed-search-mode-map "x" (lambda () (interactive) (leo/elfeed-search "xkcd")))
-
- (cond ((member "PragmataPro Mono Liga" (font-family-list))
- (set-face-attribute 'default nil :font "PragmataPro Mono Liga-13")))
-
- (set-face-attribute 'org-level-1 nil :height 1.5)
- (set-face-attribute 'org-level-2 nil :height 1.2)
- (set-face-attribute 'org-level-3 nil :height 1.1)
- (set-face-attribute 'org-level-4 nil :height 1.1)
- (set-face-attribute 'org-scheduled-today nil :height 1.0)
- (set-face-attribute 'org-agenda-date-today nil :height 1.1)
- ;; (set-face-attribute 'org-table nil :foreground "#008787")
-
- ;;; rainbow-mode.el --- Colorize color names in buffers
-
- ;; Copyright (C) 2010-2018 Free Software Foundation, Inc
-
- ;; Author: Julien Danjou <julien@danjou.info>
- ;; Keywords: faces
- ;; Version: 1.0.1
-
- ;; This file is part of GNU Emacs.
-
- ;; GNU Emacs is free software: you can redistribute it and/or modify
- ;; it under the terms of the GNU General Public License as published by
- ;; the Free Software Foundation, either version 3 of the License, or
- ;; (at your option) any later version.
-
- ;; GNU Emacs is distributed in the hope that it will be useful,
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;; GNU General Public License for more details.
-
- ;; You should have received a copy of the GNU General Public License
- ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
-
- ;;; Commentary:
- ;;
- ;; This minor mode sets background color to strings that match color
- ;; names, e.g. #0000ff is displayed in white with a blue background.
- ;;
-
- ;;; Code:
-
- (eval-when-compile
- (require 'cl))
-
- (require 'regexp-opt)
- (require 'faces)
- (require 'color)
-
- (unless (require 'xterm-color nil t)
- (require 'ansi-color))
-
- (defgroup rainbow nil
- "Show color strings with a background color."
- :tag "Rainbow"
- :group 'help)
-
- ;;; Hexadecimal colors
-
- (defvar rainbow-hexadecimal-colors-font-lock-keywords
- '(("[^&]\\(#\\(?:[0-9a-fA-F]\\{3\\}\\)+\\{1,4\\}\\)"
- (1 (rainbow-colorize-itself 1)))
- ("^\\(#\\(?:[0-9a-fA-F]\\{3\\}\\)+\\{1,4\\}\\)"
- (0 (rainbow-colorize-itself)))
- ("[Rr][Gg][Bb]:[0-9a-fA-F]\\{1,4\\}/[0-9a-fA-F]\\{1,4\\}/[0-9a-fA-F]\\{1,4\\}"
- (0 (rainbow-colorize-itself)))
- ("[Rr][Gg][Bb][Ii]:[0-9.]+/[0-9.]+/[0-9.]+"
- (0 (rainbow-colorize-itself)))
- ("\\(?:[Cc][Ii][Ee]\\(?:[Xx][Yy][Zz]\\|[Uu][Vv][Yy]\\|[Xx][Yy][Yy]\\|[Ll][Aa][Bb]\\|[Ll][Uu][Vv]\\)\\|[Tt][Ee][Kk][Hh][Vv][Cc]\\):[+-]?[0-9.]+\\(?:[Ee][+-]?[0-9]+\\)?/[+-]?[0-9.]+\\(?:[Ee][+-]?[0-9]+\\)?/[+-]?[0-9.]+\\(?:[Ee][+-]?[0-9]+\\)?"
- (0 (rainbow-colorize-itself))))
- "Font-lock keywords to add for hexadecimal colors.")
-
- ;;; rgb() colors
-
- (defvar rainbow-html-rgb-colors-font-lock-keywords
- '(("rgb(\s*\\([0-9]\\{1,3\\}\\(?:\.[0-9]\\)?\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\\.[0-9]\\)?\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\\.[0-9]\\)?\\(?:\s*%\\)?\\)\s*)"
- (0 (rainbow-colorize-rgb)))
- ("rgba(\s*\\([0-9]\\{1,3\\}\\(?:\\.[0-9]\\)?\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\\.[0-9]\\)?\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\\.[0-9]\\)?\\(?:\s*%\\)?\\)\s*,\s*[0-9]*\.?[0-9]+\s*%?\s*)"
- (0 (rainbow-colorize-rgb)))
- ("hsl(\s*\\([0-9]\\{1,3\\}\\)\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*)"
- (0 (rainbow-colorize-hsl)))
- ("hsla(\s*\\([0-9]\\{1,3\\}\\)\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*[0-9]*\.?[0-9]+\s*%?\s*)"
- (0 (rainbow-colorize-hsl))))
- "Font-lock keywords to add for RGB colors.")
-
- ;;; HTML colors
-
- (defvar rainbow-html-colors-font-lock-keywords nil
- "Font-lock keywords to add for HTML colors.")
- (make-variable-buffer-local 'rainbow-html-colors-font-lock-keywords)
-
- (defcustom rainbow-html-colors-alist
- '(("AliceBlue" . "#F0F8FF")
- ("AntiqueWhite" . "#FAEBD7")
- ("Aqua" . "#00FFFF")
- ("Aquamarine" . "#7FFFD4")
- ("Azure" . "#F0FFFF")
- ("Beige" . "#F5F5DC")
- ("Bisque" . "#FFE4C4")
- ("Black" . "#000000")
- ("BlanchedAlmond" . "#FFEBCD")
- ("Blue" . "#0000FF")
- ("BlueViolet" . "#8A2BE2")
- ("Brown" . "#A52A2A")
- ("BurlyWood" . "#DEB887")
- ("CadetBlue" . "#5F9EA0")
- ("Chartreuse" . "#7FFF00")
- ("Chocolate" . "#D2691E")
- ("Coral" . "#FF7F50")
- ("CornflowerBlue" . "#6495ED")
- ("Cornsilk" . "#FFF8DC")
- ("Crimson" . "#DC143C")
- ("Cyan" . "#00FFFF")
- ("DarkBlue" . "#00008B")
- ("DarkCyan" . "#008B8B")
- ("DarkGoldenRod" . "#B8860B")
- ("DarkGray" . "#A9A9A9")
- ("DarkGrey" . "#A9A9A9")
- ("DarkGreen" . "#006400")
- ("DarkKhaki" . "#BDB76B")
- ("DarkMagenta" . "#8B008B")
- ("DarkOliveGreen" . "#556B2F")
- ("Darkorange" . "#FF8C00")
- ("DarkOrchid" . "#9932CC")
- ("DarkRed" . "#8B0000")
- ("DarkSalmon" . "#E9967A")
- ("DarkSeaGreen" . "#8FBC8F")
- ("DarkSlateBlue" . "#483D8B")
- ("DarkSlateGray" . "#2F4F4F")
- ("DarkSlateGrey" . "#2F4F4F")
- ("DarkTurquoise" . "#00CED1")
- ("DarkViolet" . "#9400D3")
- ("DeepPink" . "#FF1493")
- ("DeepSkyBlue" . "#00BFFF")
- ("DimGray" . "#696969")
- ("DimGrey" . "#696969")
- ("DodgerBlue" . "#1E90FF")
- ("FireBrick" . "#B22222")
- ("FloralWhite" . "#FFFAF0")
- ("ForestGreen" . "#228B22")
- ("Fuchsia" . "#FF00FF")
- ("Gainsboro" . "#DCDCDC")
- ("GhostWhite" . "#F8F8FF")
- ("Gold" . "#FFD700")
- ("GoldenRod" . "#DAA520")
- ("Gray" . "#808080")
- ("Grey" . "#808080")
- ("Green" . "#008000")
- ("GreenYellow" . "#ADFF2F")
- ("HoneyDew" . "#F0FFF0")
- ("HotPink" . "#FF69B4")
- ("IndianRed" . "#CD5C5C")
- ("Indigo" . "#4B0082")
- ("Ivory" . "#FFFFF0")
- ("Khaki" . "#F0E68C")
- ("Lavender" . "#E6E6FA")
- ("LavenderBlush" . "#FFF0F5")
- ("LawnGreen" . "#7CFC00")
- ("LemonChiffon" . "#FFFACD")
- ("LightBlue" . "#ADD8E6")
- ("LightCoral" . "#F08080")
- ("LightCyan" . "#E0FFFF")
- ("LightGoldenRodYellow" . "#FAFAD2")
- ("LightGray" . "#D3D3D3")
- ("LightGrey" . "#D3D3D3")
- ("LightGreen" . "#90EE90")
- ("LightPink" . "#FFB6C1")
- ("LightSalmon" . "#FFA07A")
- ("LightSeaGreen" . "#20B2AA")
- ("LightSkyBlue" . "#87CEFA")
- ("LightSlateGray" . "#778899")
- ("LightSlateGrey" . "#778899")
- ("LightSteelBlue" . "#B0C4DE")
- ("LightYellow" . "#FFFFE0")
- ("Lime" . "#00FF00")
- ("LimeGreen" . "#32CD32")
- ("Linen" . "#FAF0E6")
- ("Magenta" . "#FF00FF")
- ("Maroon" . "#800000")
- ("MediumAquaMarine" . "#66CDAA")
- ("MediumBlue" . "#0000CD")
- ("MediumOrchid" . "#BA55D3")
- ("MediumPurple" . "#9370D8")
- ("MediumSeaGreen" . "#3CB371")
- ("MediumSlateBlue" . "#7B68EE")
- ("MediumSpringGreen" . "#00FA9A")
- ("MediumTurquoise" . "#48D1CC")
- ("MediumVioletRed" . "#C71585")
- ("MidnightBlue" . "#191970")
- ("MintCream" . "#F5FFFA")
- ("MistyRose" . "#FFE4E1")
- ("Moccasin" . "#FFE4B5")
- ("NavajoWhite" . "#FFDEAD")
- ("Navy" . "#000080")
- ("OldLace" . "#FDF5E6")
- ("Olive" . "#808000")
- ("OliveDrab" . "#6B8E23")
- ("Orange" . "#FFA500")
- ("OrangeRed" . "#FF4500")
- ("Orchid" . "#DA70D6")
- ("PaleGoldenRod" . "#EEE8AA")
- ("PaleGreen" . "#98FB98")
- ("PaleTurquoise" . "#AFEEEE")
- ("PaleVioletRed" . "#D87093")
- ("PapayaWhip" . "#FFEFD5")
- ("PeachPuff" . "#FFDAB9")
- ("Peru" . "#CD853F")
- ("Pink" . "#FFC0CB")
- ("Plum" . "#DDA0DD")
- ("PowderBlue" . "#B0E0E6")
- ("Purple" . "#800080")
- ("Red" . "#FF0000")
- ("RosyBrown" . "#BC8F8F")
- ("RoyalBlue" . "#4169E1")
- ("SaddleBrown" . "#8B4513")
- ("Salmon" . "#FA8072")
- ("SandyBrown" . "#F4A460")
- ("SeaGreen" . "#2E8B57")
- ("SeaShell" . "#FFF5EE")
- ("Sienna" . "#A0522D")
- ("Silver" . "#C0C0C0")
- ("SkyBlue" . "#87CEEB")
- ("SlateBlue" . "#6A5ACD")
- ("SlateGray" . "#708090")
- ("SlateGrey" . "#708090")
- ("Snow" . "#FFFAFA")
- ("SpringGreen" . "#00FF7F")
- ("SteelBlue" . "#4682B4")
- ("Tan" . "#D2B48C")
- ("Teal" . "#008080")
- ("Thistle" . "#D8BFD8")
- ("Tomato" . "#FF6347")
- ("Turquoise" . "#40E0D0")
- ("Violet" . "#EE82EE")
- ("Wheat" . "#F5DEB3")
- ("White" . "#FFFFFF")
- ("WhiteSmoke" . "#F5F5F5")
- ("Yellow" . "#FFFF00")
- ("YellowGreen" . "#9ACD32"))
- "Alist of HTML colors.
- Each entry should have the form (COLOR-NAME . HEXADECIMAL-COLOR)."
- :type 'alist
- :group 'rainbow)
-
- (defcustom rainbow-html-colors-major-mode-list
- '(html-mode css-mode php-mode nxml-mode xml-mode)
- "List of major mode where HTML colors are enabled when
- `rainbow-html-colors' is set to auto."
- :type '(repeat (symbol :tag "Major-Mode"))
- :group 'rainbow)
-
- (defcustom rainbow-html-colors 'auto
- "When to enable HTML colors.
- If set to t, the HTML colors will be enabled. If set to nil, the
- HTML colors will not be enabled. If set to auto, the HTML colors
- will be enabled if a major mode has been detected from the
- `rainbow-html-colors-major-mode-list'."
- :type '(choice (symbol :tag "enable in certain modes" auto)
- (symbol :tag "enable globally" t)
- (symbol :tag "disable" nil))
- :group 'rainbow)
-
- ;;; X colors
-
- (defvar rainbow-x-colors-font-lock-keywords
- `((,(regexp-opt (x-defined-colors) 'words)
- (0 (rainbow-colorize-itself))))
- "Font-lock keywords to add for X colors.")
-
- (defcustom rainbow-x-colors-major-mode-list
- '(emacs-lisp-mode lisp-interaction-mode c-mode c++-mode java-mode)
- "List of major mode where X colors are enabled when
- `rainbow-x-colors' is set to auto."
- :type '(repeat (symbol :tag "Major-Mode"))
- :group 'rainbow)
-
- (defcustom rainbow-x-colors 'auto
- "When to enable X colors.
- If set to t, the X colors will be enabled. If set to nil, the
- X colors will not be enabled. If set to auto, the X colors
- will be enabled if a major mode has been detected from the
- `rainbow-x-colors-major-mode-list'."
- :type '(choice (symbol :tag "enable in certain modes" auto)
- (symbol :tag "enable globally" t)
- (symbol :tag "disable" nil))
- :group 'rainbow)
-
- ;;; LaTeX colors
-
- (defvar rainbow-latex-rgb-colors-font-lock-keywords
- '(("{rgb}{\\([0-9.]+\\),\s*\\([0-9.]+\\),\s*\\([0-9.]+\\)}"
- (0 (rainbow-colorize-rgb-float)))
- ("{RGB}{\\([0-9]\\{1,3\\}\\),\s*\\([0-9]\\{1,3\\}\\),\s*\\([0-9]\\{1,3\\}\\)}"
- (0 (rainbow-colorize-rgb)))
- ("{HTML}{\\([0-9A-Fa-f]\\{6\\}\\)}"
- (0 (rainbow-colorize-hexadecimal-without-sharp))))
- "Font-lock keywords to add for LaTeX colors.")
-
- (defcustom rainbow-latex-colors-major-mode-list
- '(latex-mode)
- "List of major mode where LaTeX colors are enabled when
- `rainbow-x-colors' is set to auto."
- :type '(repeat (symbol :tag "Major-Mode"))
- :group 'rainbow)
-
- (defcustom rainbow-latex-colors 'auto
- "When to enable LaTeX colors.
- If set to t, the LaTeX colors will be enabled. If set to nil, the
- LaTeX colors will not be enabled. If set to auto, the LaTeX colors
- will be enabled if a major mode has been detected from the
- `rainbow-latex-colors-major-mode-list'."
- :type '(choice (symbol :tag "enable in certain modes" auto)
- (symbol :tag "enable globally" t)
- (symbol :tag "disable" nil))
- :group 'rainbow)
-
- ;;; Shell colors
-
- (defvar rainbow-ansi-colors-font-lock-keywords
- '(("\\(\\\\[eE]\\|\\\\033\\|\\\\x1[bB]\\|\033\\)\\[\\([0-9;]*m\\)"
- (0 (rainbow-colorize-ansi))))
- "Font-lock keywords to add for ANSI colors.")
-
- (defcustom rainbow-ansi-colors-major-mode-list
- '(sh-mode c-mode c++-mode)
- "List of major mode where ANSI colors are enabled when
- `rainbow-ansi-colors' is set to auto."
- :type '(repeat (symbol :tag "Major-Mode"))
- :group 'rainbow)
-
- (defcustom rainbow-ansi-colors 'auto
- "When to enable ANSI colors.
- If set to t, the ANSI colors will be enabled. If set to nil, the
- ANSI colors will not be enabled. If set to auto, the ANSI colors
- will be enabled if a major mode has been detected from the
- `rainbow-ansi-colors-major-mode-list'."
- :type '(choice (symbol :tag "enable in certain modes" auto)
- (symbol :tag "enable globally" t)
- (symbol :tag "disable" nil))
- :group 'rainbow)
-
- ;;; R colors
-
- (defvar rainbow-r-colors-font-lock-keywords nil
- "Font-lock keywords to add for R colors.")
- (make-variable-buffer-local 'rainbow-r-colors-font-lock-keywords)
-
- ;; use the following code to generate the list in R
- ;; output_colors <- function(colors) {for(color in colors) {col <- col2rgb(color); cat(sprintf("(\"%s\" . \"#%02X%02X%02X\")\n",color,col[1],col[2],col[3]));}}
- ;; output_colors(colors())
- (defcustom rainbow-r-colors-alist
- '(("white" . "#FFFFFF")
- ("aliceblue" . "#F0F8FF")
- ("antiquewhite" . "#FAEBD7")
- ("antiquewhite1" . "#FFEFDB")
- ("antiquewhite2" . "#EEDFCC")
- ("antiquewhite3" . "#CDC0B0")
- ("antiquewhite4" . "#8B8378")
- ("aquamarine" . "#7FFFD4")
- ("aquamarine1" . "#7FFFD4")
- ("aquamarine2" . "#76EEC6")
- ("aquamarine3" . "#66CDAA")
- ("aquamarine4" . "#458B74")
- ("azure" . "#F0FFFF")
- ("azure1" . "#F0FFFF")
- ("azure2" . "#E0EEEE")
- ("azure3" . "#C1CDCD")
- ("azure4" . "#838B8B")
- ("beige" . "#F5F5DC")
- ("bisque" . "#FFE4C4")
- ("bisque1" . "#FFE4C4")
- ("bisque2" . "#EED5B7")
- ("bisque3" . "#CDB79E")
- ("bisque4" . "#8B7D6B")
- ("black" . "#000000")
- ("blanchedalmond" . "#FFEBCD")
- ("blue" . "#0000FF")
- ("blue1" . "#0000FF")
- ("blue2" . "#0000EE")
- ("blue3" . "#0000CD")
- ("blue4" . "#00008B")
- ("blueviolet" . "#8A2BE2")
- ("brown" . "#A52A2A")
- ("brown1" . "#FF4040")
- ("brown2" . "#EE3B3B")
- ("brown3" . "#CD3333")
- ("brown4" . "#8B2323")
- ("burlywood" . "#DEB887")
- ("burlywood1" . "#FFD39B")
- ("burlywood2" . "#EEC591")
- ("burlywood3" . "#CDAA7D")
- ("burlywood4" . "#8B7355")
- ("cadetblue" . "#5F9EA0")
- ("cadetblue1" . "#98F5FF")
- ("cadetblue2" . "#8EE5EE")
- ("cadetblue3" . "#7AC5CD")
- ("cadetblue4" . "#53868B")
- ("chartreuse" . "#7FFF00")
- ("chartreuse1" . "#7FFF00")
- ("chartreuse2" . "#76EE00")
- ("chartreuse3" . "#66CD00")
- ("chartreuse4" . "#458B00")
- ("chocolate" . "#D2691E")
- ("chocolate1" . "#FF7F24")
- ("chocolate2" . "#EE7621")
- ("chocolate3" . "#CD661D")
- ("chocolate4" . "#8B4513")
- ("coral" . "#FF7F50")
- ("coral1" . "#FF7256")
- ("coral2" . "#EE6A50")
- ("coral3" . "#CD5B45")
- ("coral4" . "#8B3E2F")
- ("cornflowerblue" . "#6495ED")
- ("cornsilk" . "#FFF8DC")
- ("cornsilk1" . "#FFF8DC")
- ("cornsilk2" . "#EEE8CD")
- ("cornsilk3" . "#CDC8B1")
- ("cornsilk4" . "#8B8878")
- ("cyan" . "#00FFFF")
- ("cyan1" . "#00FFFF")
- ("cyan2" . "#00EEEE")
- ("cyan3" . "#00CDCD")
- ("cyan4" . "#008B8B")
- ("darkblue" . "#00008B")
- ("darkcyan" . "#008B8B")
- ("darkgoldenrod" . "#B8860B")
- ("darkgoldenrod1" . "#FFB90F")
- ("darkgoldenrod2" . "#EEAD0E")
- ("darkgoldenrod3" . "#CD950C")
- ("darkgoldenrod4" . "#8B6508")
- ("darkgray" . "#A9A9A9")
- ("darkgreen" . "#006400")
- ("darkgrey" . "#A9A9A9")
- ("darkkhaki" . "#BDB76B")
- ("darkmagenta" . "#8B008B")
- ("darkolivegreen" . "#556B2F")
- ("darkolivegreen1" . "#CAFF70")
- ("darkolivegreen2" . "#BCEE68")
- ("darkolivegreen3" . "#A2CD5A")
- ("darkolivegreen4" . "#6E8B3D")
- ("darkorange" . "#FF8C00")
- ("darkorange1" . "#FF7F00")
- ("darkorange2" . "#EE7600")
- ("darkorange3" . "#CD6600")
- ("darkorange4" . "#8B4500")
- ("darkorchid" . "#9932CC")
- ("darkorchid1" . "#BF3EFF")
- ("darkorchid2" . "#B23AEE")
- ("darkorchid3" . "#9A32CD")
- ("darkorchid4" . "#68228B")
- ("darkred" . "#8B0000")
- ("darksalmon" . "#E9967A")
- ("darkseagreen" . "#8FBC8F")
- ("darkseagreen1" . "#C1FFC1")
- ("darkseagreen2" . "#B4EEB4")
- ("darkseagreen3" . "#9BCD9B")
- ("darkseagreen4" . "#698B69")
- ("darkslateblue" . "#483D8B")
- ("darkslategray" . "#2F4F4F")
- ("darkslategray1" . "#97FFFF")
- ("darkslategray2" . "#8DEEEE")
- ("darkslategray3" . "#79CDCD")
- ("darkslategray4" . "#528B8B")
- ("darkslategrey" . "#2F4F4F")
- ("darkturquoise" . "#00CED1")
- ("darkviolet" . "#9400D3")
- ("deeppink" . "#FF1493")
- ("deeppink1" . "#FF1493")
- ("deeppink2" . "#EE1289")
- ("deeppink3" . "#CD1076")
- ("deeppink4" . "#8B0A50")
- ("deepskyblue" . "#00BFFF")
- ("deepskyblue1" . "#00BFFF")
- ("deepskyblue2" . "#00B2EE")
- ("deepskyblue3" . "#009ACD")
- ("deepskyblue4" . "#00688B")
- ("dimgray" . "#696969")
- ("dimgrey" . "#696969")
- ("dodgerblue" . "#1E90FF")
- ("dodgerblue1" . "#1E90FF")
- ("dodgerblue2" . "#1C86EE")
- ("dodgerblue3" . "#1874CD")
- ("dodgerblue4" . "#104E8B")
- ("firebrick" . "#B22222")
- ("firebrick1" . "#FF3030")
- ("firebrick2" . "#EE2C2C")
- ("firebrick3" . "#CD2626")
- ("firebrick4" . "#8B1A1A")
- ("floralwhite" . "#FFFAF0")
- ("forestgreen" . "#228B22")
- ("gainsboro" . "#DCDCDC")
- ("ghostwhite" . "#F8F8FF")
- ("gold" . "#FFD700")
- ("gold1" . "#FFD700")
- ("gold2" . "#EEC900")
- ("gold3" . "#CDAD00")
- ("gold4" . "#8B7500")
- ("goldenrod" . "#DAA520")
- ("goldenrod1" . "#FFC125")
- ("goldenrod2" . "#EEB422")
- ("goldenrod3" . "#CD9B1D")
- ("goldenrod4" . "#8B6914")
- ("gray" . "#BEBEBE")
- ("gray0" . "#000000")
- ("gray1" . "#030303")
- ("gray2" . "#050505")
- ("gray3" . "#080808")
- ("gray4" . "#0A0A0A")
- ("gray5" . "#0D0D0D")
- ("gray6" . "#0F0F0F")
- ("gray7" . "#121212")
- ("gray8" . "#141414")
- ("gray9" . "#171717")
- ("gray10" . "#1A1A1A")
- ("gray11" . "#1C1C1C")
- ("gray12" . "#1F1F1F")
- ("gray13" . "#212121")
- ("gray14" . "#242424")
- ("gray15" . "#262626")
- ("gray16" . "#292929")
- ("gray17" . "#2B2B2B")
- ("gray18" . "#2E2E2E")
- ("gray19" . "#303030")
- ("gray20" . "#333333")
- ("gray21" . "#363636")
- ("gray22" . "#383838")
- ("gray23" . "#3B3B3B")
- ("gray24" . "#3D3D3D")
- ("gray25" . "#404040")
- ("gray26" . "#424242")
- ("gray27" . "#454545")
- ("gray28" . "#474747")
- ("gray29" . "#4A4A4A")
- ("gray30" . "#4D4D4D")
- ("gray31" . "#4F4F4F")
- ("gray32" . "#525252")
- ("gray33" . "#545454")
- ("gray34" . "#575757")
- ("gray35" . "#595959")
- ("gray36" . "#5C5C5C")
- ("gray37" . "#5E5E5E")
- ("gray38" . "#616161")
- ("gray39" . "#636363")
- ("gray40" . "#666666")
- ("gray41" . "#696969")
- ("gray42" . "#6B6B6B")
- ("gray43" . "#6E6E6E")
- ("gray44" . "#707070")
- ("gray45" . "#737373")
- ("gray46" . "#757575")
- ("gray47" . "#787878")
- ("gray48" . "#7A7A7A")
- ("gray49" . "#7D7D7D")
- ("gray50" . "#7F7F7F")
- ("gray51" . "#828282")
- ("gray52" . "#858585")
- ("gray53" . "#878787")
- ("gray54" . "#8A8A8A")
- ("gray55" . "#8C8C8C")
- ("gray56" . "#8F8F8F")
- ("gray57" . "#919191")
- ("gray58" . "#949494")
- ("gray59" . "#969696")
- ("gray60" . "#999999")
- ("gray61" . "#9C9C9C")
- ("gray62" . "#9E9E9E")
- ("gray63" . "#A1A1A1")
- ("gray64" . "#A3A3A3")
- ("gray65" . "#A6A6A6")
- ("gray66" . "#A8A8A8")
- ("gray67" . "#ABABAB")
- ("gray68" . "#ADADAD")
- ("gray69" . "#B0B0B0")
- ("gray70" . "#B3B3B3")
- ("gray71" . "#B5B5B5")
- ("gray72" . "#B8B8B8")
- ("gray73" . "#BABABA")
- ("gray74" . "#BDBDBD")
- ("gray75" . "#BFBFBF")
- ("gray76" . "#C2C2C2")
- ("gray77" . "#C4C4C4")
- ("gray78" . "#C7C7C7")
- ("gray79" . "#C9C9C9")
- ("gray80" . "#CCCCCC")
- ("gray81" . "#CFCFCF")
- ("gray82" . "#D1D1D1")
- ("gray83" . "#D4D4D4")
- ("gray84" . "#D6D6D6")
- ("gray85" . "#D9D9D9")
- ("gray86" . "#DBDBDB")
- ("gray87" . "#DEDEDE")
- ("gray88" . "#E0E0E0")
- ("gray89" . "#E3E3E3")
- ("gray90" . "#E5E5E5")
- ("gray91" . "#E8E8E8")
- ("gray92" . "#EBEBEB")
- ("gray93" . "#EDEDED")
- ("gray94" . "#F0F0F0")
- ("gray95" . "#F2F2F2")
- ("gray96" . "#F5F5F5")
- ("gray97" . "#F7F7F7")
- ("gray98" . "#FAFAFA")
- ("gray99" . "#FCFCFC")
- ("gray100" . "#FFFFFF")
- ("green" . "#00FF00")
- ("green1" . "#00FF00")
- ("green2" . "#00EE00")
- ("green3" . "#00CD00")
- ("green4" . "#008B00")
- ("greenyellow" . "#ADFF2F")
- ("grey" . "#BEBEBE")
- ("grey0" . "#000000")
- ("grey1" . "#030303")
- ("grey2" . "#050505")
- ("grey3" . "#080808")
- ("grey4" . "#0A0A0A")
- ("grey5" . "#0D0D0D")
- ("grey6" . "#0F0F0F")
- ("grey7" . "#121212")
- ("grey8" . "#141414")
- ("grey9" . "#171717")
- ("grey10" . "#1A1A1A")
- ("grey11" . "#1C1C1C")
- ("grey12" . "#1F1F1F")
- ("grey13" . "#212121")
- ("grey14" . "#242424")
- ("grey15" . "#262626")
- ("grey16" . "#292929")
- ("grey17" . "#2B2B2B")
- ("grey18" . "#2E2E2E")
- ("grey19" . "#303030")
- ("grey20" . "#333333")
- ("grey21" . "#363636")
- ("grey22" . "#383838")
- ("grey23" . "#3B3B3B")
- ("grey24" . "#3D3D3D")
- ("grey25" . "#404040")
- ("grey26" . "#424242")
- ("grey27" . "#454545")
- ("grey28" . "#474747")
- ("grey29" . "#4A4A4A")
- ("grey30" . "#4D4D4D")
- ("grey31" . "#4F4F4F")
- ("grey32" . "#525252")
- ("grey33" . "#545454")
- ("grey34" . "#575757")
- ("grey35" . "#595959")
- ("grey36" . "#5C5C5C")
- ("grey37" . "#5E5E5E")
- ("grey38" . "#616161")
- ("grey39" . "#636363")
- ("grey40" . "#666666")
- ("grey41" . "#696969")
- ("grey42" . "#6B6B6B")
- ("grey43" . "#6E6E6E")
- ("grey44" . "#707070")
- ("grey45" . "#737373")
- ("grey46" . "#757575")
- ("grey47" . "#787878")
- ("grey48" . "#7A7A7A")
- ("grey49" . "#7D7D7D")
- ("grey50" . "#7F7F7F")
- ("grey51" . "#828282")
- ("grey52" . "#858585")
- ("grey53" . "#878787")
- ("grey54" . "#8A8A8A")
- ("grey55" . "#8C8C8C")
- ("grey56" . "#8F8F8F")
- ("grey57" . "#919191")
- ("grey58" . "#949494")
- ("grey59" . "#969696")
- ("grey60" . "#999999")
- ("grey61" . "#9C9C9C")
- ("grey62" . "#9E9E9E")
- ("grey63" . "#A1A1A1")
- ("grey64" . "#A3A3A3")
- ("grey65" . "#A6A6A6")
- ("grey66" . "#A8A8A8")
- ("grey67" . "#ABABAB")
- ("grey68" . "#ADADAD")
- ("grey69" . "#B0B0B0")
- ("grey70" . "#B3B3B3")
- ("grey71" . "#B5B5B5")
- ("grey72" . "#B8B8B8")
- ("grey73" . "#BABABA")
- ("grey74" . "#BDBDBD")
- ("grey75" . "#BFBFBF")
- ("grey76" . "#C2C2C2")
- ("grey77" . "#C4C4C4")
- ("grey78" . "#C7C7C7")
- ("grey79" . "#C9C9C9")
- ("grey80" . "#CCCCCC")
- ("grey81" . "#CFCFCF")
- ("grey82" . "#D1D1D1")
- ("grey83" . "#D4D4D4")
- ("grey84" . "#D6D6D6")
- ("grey85" . "#D9D9D9")
- ("grey86" . "#DBDBDB")
- ("grey87" . "#DEDEDE")
- ("grey88" . "#E0E0E0")
- ("grey89" . "#E3E3E3")
- ("grey90" . "#E5E5E5")
- ("grey91" . "#E8E8E8")
- ("grey92" . "#EBEBEB")
- ("grey93" . "#EDEDED")
- ("grey94" . "#F0F0F0")
- ("grey95" . "#F2F2F2")
- ("grey96" . "#F5F5F5")
- ("grey97" . "#F7F7F7")
- ("grey98" . "#FAFAFA")
- ("grey99" . "#FCFCFC")
- ("grey100" . "#FFFFFF")
- ("honeydew" . "#F0FFF0")
- ("honeydew1" . "#F0FFF0")
- ("honeydew2" . "#E0EEE0")
- ("honeydew3" . "#C1CDC1")
- ("honeydew4" . "#838B83")
- ("hotpink" . "#FF69B4")
- ("hotpink1" . "#FF6EB4")
- ("hotpink2" . "#EE6AA7")
- ("hotpink3" . "#CD6090")
- ("hotpink4" . "#8B3A62")
- ("indianred" . "#CD5C5C")
- ("indianred1" . "#FF6A6A")
- ("indianred2" . "#EE6363")
- ("indianred3" . "#CD5555")
- ("indianred4" . "#8B3A3A")
- ("ivory" . "#FFFFF0")
- ("ivory1" . "#FFFFF0")
- ("ivory2" . "#EEEEE0")
- ("ivory3" . "#CDCDC1")
- ("ivory4" . "#8B8B83")
- ("khaki" . "#F0E68C")
- ("khaki1" . "#FFF68F")
- ("khaki2" . "#EEE685")
- ("khaki3" . "#CDC673")
- ("khaki4" . "#8B864E")
- ("lavender" . "#E6E6FA")
- ("lavenderblush" . "#FFF0F5")
- ("lavenderblush1" . "#FFF0F5")
- ("lavenderblush2" . "#EEE0E5")
- ("lavenderblush3" . "#CDC1C5")
- ("lavenderblush4" . "#8B8386")
- ("lawngreen" . "#7CFC00")
- ("lemonchiffon" . "#FFFACD")
- ("lemonchiffon1" . "#FFFACD")
- ("lemonchiffon2" . "#EEE9BF")
- ("lemonchiffon3" . "#CDC9A5")
- ("lemonchiffon4" . "#8B8970")
- ("lightblue" . "#ADD8E6")
- ("lightblue1" . "#BFEFFF")
- ("lightblue2" . "#B2DFEE")
- ("lightblue3" . "#9AC0CD")
- ("lightblue4" . "#68838B")
- ("lightcoral" . "#F08080")
- ("lightcyan" . "#E0FFFF")
- ("lightcyan1" . "#E0FFFF")
- ("lightcyan2" . "#D1EEEE")
- ("lightcyan3" . "#B4CDCD")
- ("lightcyan4" . "#7A8B8B")
- ("lightgoldenrod" . "#EEDD82")
- ("lightgoldenrod1" . "#FFEC8B")
- ("lightgoldenrod2" . "#EEDC82")
- ("lightgoldenrod3" . "#CDBE70")
- ("lightgoldenrod4" . "#8B814C")
- ("lightgoldenrodyellow" . "#FAFAD2")
- ("lightgray" . "#D3D3D3")
- ("lightgreen" . "#90EE90")
- ("lightgrey" . "#D3D3D3")
- ("lightpink" . "#FFB6C1")
- ("lightpink1" . "#FFAEB9")
- ("lightpink2" . "#EEA2AD")
- ("lightpink3" . "#CD8C95")
- ("lightpink4" . "#8B5F65")
- ("lightsalmon" . "#FFA07A")
- ("lightsalmon1" . "#FFA07A")
- ("lightsalmon2" . "#EE9572")
- ("lightsalmon3" . "#CD8162")
- ("lightsalmon4" . "#8B5742")
- ("lightseagreen" . "#20B2AA")
- ("lightskyblue" . "#87CEFA")
- ("lightskyblue1" . "#B0E2FF")
- ("lightskyblue2" . "#A4D3EE")
- ("lightskyblue3" . "#8DB6CD")
- ("lightskyblue4" . "#607B8B")
- ("lightslateblue" . "#8470FF")
- ("lightslategray" . "#778899")
- ("lightslategrey" . "#778899")
- ("lightsteelblue" . "#B0C4DE")
- ("lightsteelblue1" . "#CAE1FF")
- ("lightsteelblue2" . "#BCD2EE")
- ("lightsteelblue3" . "#A2B5CD")
- ("lightsteelblue4" . "#6E7B8B")
- ("lightyellow" . "#FFFFE0")
- ("lightyellow1" . "#FFFFE0")
- ("lightyellow2" . "#EEEED1")
- ("lightyellow3" . "#CDCDB4")
- ("lightyellow4" . "#8B8B7A")
- ("limegreen" . "#32CD32")
- ("linen" . "#FAF0E6")
- ("magenta" . "#FF00FF")
- ("magenta1" . "#FF00FF")
- ("magenta2" . "#EE00EE")
- ("magenta3" . "#CD00CD")
- ("magenta4" . "#8B008B")
- ("maroon" . "#B03060")
- ("maroon1" . "#FF34B3")
- ("maroon2" . "#EE30A7")
- ("maroon3" . "#CD2990")
- ("maroon4" . "#8B1C62")
- ("mediumaquamarine" . "#66CDAA")
- ("mediumblue" . "#0000CD")
- ("mediumorchid" . "#BA55D3")
- ("mediumorchid1" . "#E066FF")
- ("mediumorchid2" . "#D15FEE")
- ("mediumorchid3" . "#B452CD")
- ("mediumorchid4" . "#7A378B")
- ("mediumpurple" . "#9370DB")
- ("mediumpurple1" . "#AB82FF")
- ("mediumpurple2" . "#9F79EE")
- ("mediumpurple3" . "#8968CD")
- ("mediumpurple4" . "#5D478B")
- ("mediumseagreen" . "#3CB371")
- ("mediumslateblue" . "#7B68EE")
- ("mediumspringgreen" . "#00FA9A")
- ("mediumturquoise" . "#48D1CC")
- ("mediumvioletred" . "#C71585")
- ("midnightblue" . "#191970")
- ("mintcream" . "#F5FFFA")
- ("mistyrose" . "#FFE4E1")
- ("mistyrose1" . "#FFE4E1")
- ("mistyrose2" . "#EED5D2")
- ("mistyrose3" . "#CDB7B5")
- ("mistyrose4" . "#8B7D7B")
- ("moccasin" . "#FFE4B5")
- ("navajowhite" . "#FFDEAD")
- ("navajowhite1" . "#FFDEAD")
- ("navajowhite2" . "#EECFA1")
- ("navajowhite3" . "#CDB38B")
- ("navajowhite4" . "#8B795E")
- ("navy" . "#000080")
- ("navyblue" . "#000080")
- ("oldlace" . "#FDF5E6")
- ("olivedrab" . "#6B8E23")
- ("olivedrab1" . "#C0FF3E")
- ("olivedrab2" . "#B3EE3A")
- ("olivedrab3" . "#9ACD32")
- ("olivedrab4" . "#698B22")
- ("orange" . "#FFA500")
- ("orange1" . "#FFA500")
- ("orange2" . "#EE9A00")
- ("orange3" . "#CD8500")
- ("orange4" . "#8B5A00")
- ("orangered" . "#FF4500")
- ("orangered1" . "#FF4500")
- ("orangered2" . "#EE4000")
- ("orangered3" . "#CD3700")
- ("orangered4" . "#8B2500")
- ("orchid" . "#DA70D6")
- ("orchid1" . "#FF83FA")
- ("orchid2" . "#EE7AE9")
- ("orchid3" . "#CD69C9")
- ("orchid4" . "#8B4789")
- ("palegoldenrod" . "#EEE8AA")
- ("palegreen" . "#98FB98")
- ("palegreen1" . "#9AFF9A")
- ("palegreen2" . "#90EE90")
- ("palegreen3" . "#7CCD7C")
- ("palegreen4" . "#548B54")
- ("paleturquoise" . "#AFEEEE")
- ("paleturquoise1" . "#BBFFFF")
- ("paleturquoise2" . "#AEEEEE")
- ("paleturquoise3" . "#96CDCD")
- ("paleturquoise4" . "#668B8B")
- ("palevioletred" . "#DB7093")
- ("palevioletred1" . "#FF82AB")
- ("palevioletred2" . "#EE799F")
- ("palevioletred3" . "#CD6889")
- ("palevioletred4" . "#8B475D")
- ("papayawhip" . "#FFEFD5")
- ("peachpuff" . "#FFDAB9")
- ("peachpuff1" . "#FFDAB9")
- ("peachpuff2" . "#EECBAD")
- ("peachpuff3" . "#CDAF95")
- ("peachpuff4" . "#8B7765")
- ("peru" . "#CD853F")
- ("pink" . "#FFC0CB")
- ("pink1" . "#FFB5C5")
- ("pink2" . "#EEA9B8")
- ("pink3" . "#CD919E")
- ("pink4" . "#8B636C")
- ("plum" . "#DDA0DD")
- ("plum1" . "#FFBBFF")
- ("plum2" . "#EEAEEE")
- ("plum3" . "#CD96CD")
- ("plum4" . "#8B668B")
- ("powderblue" . "#B0E0E6")
- ("purple" . "#A020F0")
- ("purple1" . "#9B30FF")
- ("purple2" . "#912CEE")
- ("purple3" . "#7D26CD")
- ("purple4" . "#551A8B")
- ("red" . "#FF0000")
- ("red1" . "#FF0000")
- ("red2" . "#EE0000")
- ("red3" . "#CD0000")
- ("red4" . "#8B0000")
- ("rosybrown" . "#BC8F8F")
- ("rosybrown1" . "#FFC1C1")
- ("rosybrown2" . "#EEB4B4")
- ("rosybrown3" . "#CD9B9B")
- ("rosybrown4" . "#8B6969")
- ("royalblue" . "#4169E1")
- ("royalblue1" . "#4876FF")
- ("royalblue2" . "#436EEE")
- ("royalblue3" . "#3A5FCD")
- ("royalblue4" . "#27408B")
- ("saddlebrown" . "#8B4513")
- ("salmon" . "#FA8072")
- ("salmon1" . "#FF8C69")
- ("salmon2" . "#EE8262")
- ("salmon3" . "#CD7054")
- ("salmon4" . "#8B4C39")
- ("sandybrown" . "#F4A460")
- ("seagreen" . "#2E8B57")
- ("seagreen1" . "#54FF9F")
- ("seagreen2" . "#4EEE94")
- ("seagreen3" . "#43CD80")
- ("seagreen4" . "#2E8B57")
- ("seashell" . "#FFF5EE")
- ("seashell1" . "#FFF5EE")
- ("seashell2" . "#EEE5DE")
- ("seashell3" . "#CDC5BF")
- ("seashell4" . "#8B8682")
- ("sienna" . "#A0522D")
- ("sienna1" . "#FF8247")
- ("sienna2" . "#EE7942")
- ("sienna3" . "#CD6839")
- ("sienna4" . "#8B4726")
- ("skyblue" . "#87CEEB")
- ("skyblue1" . "#87CEFF")
- ("skyblue2" . "#7EC0EE")
- ("skyblue3" . "#6CA6CD")
- ("skyblue4" . "#4A708B")
- ("slateblue" . "#6A5ACD")
- ("slateblue1" . "#836FFF")
- ("slateblue2" . "#7A67EE")
- ("slateblue3" . "#6959CD")
- ("slateblue4" . "#473C8B")
- ("slategray" . "#708090")
- ("slategray1" . "#C6E2FF")
- ("slategray2" . "#B9D3EE")
- ("slategray3" . "#9FB6CD")
- ("slategray4" . "#6C7B8B")
- ("slategrey" . "#708090")
- ("snow" . "#FFFAFA")
- ("snow1" . "#FFFAFA")
- ("snow2" . "#EEE9E9")
- ("snow3" . "#CDC9C9")
- ("snow4" . "#8B8989")
- ("springgreen" . "#00FF7F")
- ("springgreen1" . "#00FF7F")
- ("springgreen2" . "#00EE76")
- ("springgreen3" . "#00CD66")
- ("springgreen4" . "#008B45")
- ("steelblue" . "#4682B4")
- ("steelblue1" . "#63B8FF")
- ("steelblue2" . "#5CACEE")
- ("steelblue3" . "#4F94CD")
- ("steelblue4" . "#36648B")
- ("tan" . "#D2B48C")
- ("tan1" . "#FFA54F")
- ("tan2" . "#EE9A49")
- ("tan3" . "#CD853F")
- ("tan4" . "#8B5A2B")
- ("thistle" . "#D8BFD8")
- ("thistle1" . "#FFE1FF")
- ("thistle2" . "#EED2EE")
- ("thistle3" . "#CDB5CD")
- ("thistle4" . "#8B7B8B")
- ("tomato" . "#FF6347")
- ("tomato1" . "#FF6347")
- ("tomato2" . "#EE5C42")
- ("tomato3" . "#CD4F39")
- ("tomato4" . "#8B3626")
- ("turquoise" . "#40E0D0")
- ("turquoise1" . "#00F5FF")
- ("turquoise2" . "#00E5EE")
- ("turquoise3" . "#00C5CD")
- ("turquoise4" . "#00868B")
- ("violet" . "#EE82EE")
- ("violetred" . "#D02090")
- ("violetred1" . "#FF3E96")
- ("violetred2" . "#EE3A8C")
- ("violetred3" . "#CD3278")
- ("violetred4" . "#8B2252")
- ("wheat" . "#F5DEB3")
- ("wheat1" . "#FFE7BA")
- ("wheat2" . "#EED8AE")
- ("wheat3" . "#CDBA96")
- ("wheat4" . "#8B7E66")
- ("whitesmoke" . "#F5F5F5")
- ("yellow" . "#FFFF00")
- ("yellow1" . "#FFFF00")
- ("yellow2" . "#EEEE00")
- ("yellow3" . "#CDCD00")
- ("yellow4" . "#8B8B00")
- ("yellowgreen" . "#9ACD32"))
- "Alist of R colors.
- Each entry should have the form (COLOR-NAME . HEXADECIMAL-COLOR)."
- :type 'alist
- :group 'rainbow)
-
- (defcustom rainbow-r-colors-major-mode-list
- '(ess-mode)
- "List of major mode where R colors are enabled when
- `rainbow-r-colors' is set to auto."
- :type '(repeat (symbol :tag "Major-Mode"))
- :group 'rainbow)
-
- (defcustom rainbow-r-colors 'auto
- "When to enable R colors.
- If set to t, the R colors will be enabled. If set to nil, the
- R colors will not be enabled. If set to auto, the R colors
- will be enabled if a major mode has been detected from the
- `rainbow-r-colors-major-mode-list'."
- :type '(choice (symbol :tag "enable in certain modes" auto)
- (symbol :tag "enable globally" t)
- (symbol :tag "disable" nil))
- :group 'rainbow)
-
- ;;; Functions
-
- (defun rainbow-colorize-match (color &optional match)
- "Return a matched string propertized with a face whose
- background is COLOR. The foreground is computed using
- `rainbow-color-luminance', and is either white or black."
- (let ((match (or match 0)))
- (put-text-property
- (match-beginning match) (match-end match)
- 'face `((:foreground ,(if (> 0.5 (rainbow-x-color-luminance color))
- "white" "black"))
- (:background ,color)))))
-
- (defun rainbow-colorize-itself (&optional match)
- "Colorize a match with itself."
- (rainbow-colorize-match (match-string-no-properties (or match 0)) match))
-
- (defun rainbow-colorize-hexadecimal-without-sharp ()
- "Colorize an hexadecimal colors and prepend # to it."
- (rainbow-colorize-match (concat "#" (match-string-no-properties 1))))
-
- (defun rainbow-colorize-by-assoc (assoc-list)
- "Colorize a match with its association from ASSOC-LIST."
- (rainbow-colorize-match (cdr (assoc-string (match-string-no-properties 0)
- assoc-list t))))
-
- (defun rainbow-rgb-relative-to-absolute (number)
- "Convert a relative NUMBER to absolute. If NUMBER is absolute, return NUMBER.
- This will convert \"80 %\" to 204, \"100 %\" to 255 but \"123\" to \"123\".
- If the percentage value is above 100, it's converted to 100."
- (let ((string-length (- (length number) 1)))
- ;; Is this a number with %?
- (if (eq (elt number string-length) ?%)
- (/ (* (min (string-to-number (substring number 0 string-length)) 100) 255) 100)
- (string-to-number number))))
-
- (defun rainbow-colorize-hsl ()
- "Colorize a match with itself."
- (let ((h (/ (string-to-number (match-string-no-properties 1)) 360.0))
- (s (/ (string-to-number (match-string-no-properties 2)) 100.0))
- (l (/ (string-to-number (match-string-no-properties 3)) 100.0)))
- (rainbow-colorize-match
- (multiple-value-bind (r g b)
- (color-hsl-to-rgb h s l)
- (format "#%02X%02X%02X" (* r 255) (* g 255) (* b 255))))))
-
- (defun rainbow-colorize-rgb ()
- "Colorize a match with itself."
- (let ((r (rainbow-rgb-relative-to-absolute (match-string-no-properties 1)))
- (g (rainbow-rgb-relative-to-absolute (match-string-no-properties 2)))
- (b (rainbow-rgb-relative-to-absolute (match-string-no-properties 3))))
- (rainbow-colorize-match (format "#%02X%02X%02X" r g b))))
-
- (defun rainbow-colorize-rgb-float ()
- "Colorize a match with itself, with relative value."
- (let ((r (* (string-to-number (match-string-no-properties 1)) 255.0))
- (g (* (string-to-number (match-string-no-properties 2)) 255.0))
- (b (* (string-to-number (match-string-no-properties 3)) 255.0)))
- (rainbow-colorize-match (format "#%02X%02X%02X" r g b))))
-
- (defvar ansi-color-context)
- (defvar xterm-color-current)
-
- (defun rainbow-colorize-ansi ()
- "Return a matched string propertized with ansi color face."
- (let ((xterm-color? (featurep 'xterm-color))
- (string (match-string-no-properties 0))
- color)
- (save-match-data
- (let* ((replaced (concat
- (replace-regexp-in-string
- "^\\(\\\\[eE]\\|\\\\033\\|\\\\x1[bB]\\)"
- "\033" string) "x"))
- xterm-color-current
- ansi-color-context
- (applied (funcall (if xterm-color?
- 'xterm-color-filter
- 'ansi-color-apply)
- replaced))
- (face-property (get-text-property
- 0
- (if xterm-color? 'face 'font-lock-face)
- applied)))
- (unless (listp (or (car-safe face-property) face-property))
- (setq face-property (list face-property)))
- (setq color (funcall (if xterm-color? 'cadr 'cdr)
- (or (assq (if xterm-color?
- :foreground
- 'foreground-color)
- face-property)
- (assq (if xterm-color?
- :background
- 'background-color)
- face-property))))))
- (when color
- (rainbow-colorize-match color))))
-
- (defun rainbow-color-luminance (red green blue)
- "Calculate the luminance of color composed of RED, GREEN and BLUE.
- Return a value between 0 and 1."
- (/ (+ (* .2126 red) (* .7152 green) (* .0722 blue)) 256))
-
- (defun rainbow-x-color-luminance (color)
- "Calculate the luminance of a color string (e.g. \"#ffaa00\", \"blue\").
- Return a value between 0 and 1."
- (let* ((values (x-color-values color))
- (r (/ (car values) 256.0))
- (g (/ (cadr values) 256.0))
- (b (/ (caddr values) 256.0)))
- (rainbow-color-luminance r g b)))
-
- ;;; Mode
-
- (defun rainbow-turn-on ()
- "Turn on raibow-mode."
- (font-lock-add-keywords nil
- rainbow-hexadecimal-colors-font-lock-keywords
- t)
- ;; Activate X colors?
- (when (or (eq rainbow-x-colors t)
- (and (eq rainbow-x-colors 'auto)
- (memq major-mode rainbow-x-colors-major-mode-list)))
- (font-lock-add-keywords nil
- rainbow-x-colors-font-lock-keywords
- t))
- ;; Activate LaTeX colors?
- (when (or (eq rainbow-latex-colors t)
- (and (eq rainbow-latex-colors 'auto)
- (memq major-mode rainbow-latex-colors-major-mode-list)))
- (font-lock-add-keywords nil
- rainbow-latex-rgb-colors-font-lock-keywords
- t))
- ;; Activate ANSI colors?
- (when (or (eq rainbow-ansi-colors t)
- (and (eq rainbow-ansi-colors 'auto)
- (memq major-mode rainbow-ansi-colors-major-mode-list)))
- (font-lock-add-keywords nil
- rainbow-ansi-colors-font-lock-keywords
- t))
- ;; Activate HTML colors?
- (when (or (eq rainbow-html-colors t)
- (and (eq rainbow-html-colors 'auto)
- (memq major-mode rainbow-html-colors-major-mode-list)))
- (setq rainbow-html-colors-font-lock-keywords
- `((,(regexp-opt (mapcar 'car rainbow-html-colors-alist) 'words)
- (0 (rainbow-colorize-by-assoc rainbow-html-colors-alist)))))
- (font-lock-add-keywords nil
- `(,@rainbow-html-colors-font-lock-keywords
- ,@rainbow-html-rgb-colors-font-lock-keywords)
- t))
- ;; Activate R colors?
- (when (or (eq rainbow-r-colors t)
- (and (eq rainbow-r-colors 'auto)
- (memq major-mode rainbow-r-colors-major-mode-list)))
- (setq rainbow-r-colors-font-lock-keywords
- `((,(regexp-opt (mapcar 'car rainbow-r-colors-alist) 'words)
- (0 (rainbow-colorize-by-assoc rainbow-r-colors-alist)))))
- (font-lock-add-keywords nil
- rainbow-r-colors-font-lock-keywords
- t)))
-
- (defun rainbow-turn-off ()
- "Turn off rainbow-mode."
- (font-lock-remove-keywords
- nil
- `(,@rainbow-hexadecimal-colors-font-lock-keywords
- ,@rainbow-x-colors-font-lock-keywords
- ,@rainbow-latex-rgb-colors-font-lock-keywords
- ,@rainbow-r-colors-font-lock-keywords
- ,@rainbow-html-colors-font-lock-keywords
- ,@rainbow-html-rgb-colors-font-lock-keywords)))
-
- ;;;###autoload
- (define-minor-mode rainbow-mode
- "Colorize strings that represent colors.
- This will fontify with colors the string like \"#aabbcc\" or \"blue\"."
- :lighter " Rbow"
- (progn
- (if rainbow-mode
- (rainbow-turn-on)
- (rainbow-turn-off))
- ;; Call font-lock-mode to refresh the buffer when used e.g. interactively
- (font-lock-mode 1)))
-
- ;;;; ChangeLog:
-
- ;; 2018-05-21 Julien Danjou <julien@danjou.info>
- ;;
- ;; * rainbow-mode/rainbow-mode.el: do not fail if face-property is a symbol
- ;;
- ;; It turns out there are cases when `face-property' can be just a symbol
- ;; and we need to protect our selves from that, i.e. `car' should not fail.
- ;; Hence,
- ;; `car-safe' is there and if it's `nil', then fall back to `face-property'
- ;; as is.
- ;;
- ;; See https://github.com/tarsius/hl-todo/issues/17
- ;;
- ;; 2018-03-26 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: release 1.0
- ;;
- ;; 2018-03-26 Jonas Bernoulli <jonas@bernoul.li>
- ;;
- ;; Allow outline-minor-mode to find section headings
- ;;
- ;; 2018-03-26 Jonas Bernoulli <jonas@bernoul.li>
- ;;
- ;; Set type of customizable options
- ;;
- ;; 2018-03-26 Jonas Bernoulli <jonas@bernoul.li>
- ;;
- ;; Enforce use of spaces for indentation
- ;;
- ;; Also untabify some code added by a contributor who, unlike you, has not
- ;; globally set `indent-tabs-mode' to nil.
- ;;
- ;; 2017-05-29 Julien Danjou <julien@danjou.info>
- ;;
- ;; Fix `rainbow-color-luminance' docstring
- ;;
- ;; 2015-10-12 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow: add font-lock at the end
- ;;
- ;; See https://github.com/fxbois/web-mode/issues/612
- ;;
- ;; 2015-03-06 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow: fix font-lock-mode refresh
- ;;
- ;; 2014-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
- ;;
- ;; * packages/rainbow-mode/rainbow-mode.el (ansi-color-context)
- ;; (xterm-color-current): Declare.
- ;;
- ;; 2014-09-07 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: support float in CSS and limit to 100%
- ;;
- ;; 2013-08-05 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: 0.9, allow spaces in LaTeX colors
- ;;
- ;; 2013-05-03 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: add support for R, bump version to 0.8
- ;;
- ;; Signed-off-by: Julien Danjou <julien@danjou.info>
- ;;
- ;; 2013-02-26 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: version 0.7
- ;;
- ;; * rainbow-mode.el: don't activate font-lock-mode
- ;;
- ;; 2012-12-11 Julien Danjou <julien@danjou.info>
- ;;
- ;; * rainbow-mode: update to 0.6, add support for ANSI coloring
- ;;
- ;; 2012-11-26 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: fix some LaTex docstrings
- ;;
- ;; 2012-11-14 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: version 0.5
- ;;
- ;; * rainbow-mode.el: fix syntax error on
- ;; `rainbow-hexadecimal-colors-font-lock-keywords'.
- ;;
- ;; 2012-11-09 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode: version 0.4
- ;;
- ;; * rainbow-mode.el: Use functions from color package to colorize HSL
- ;; rather
- ;; than our own copy.
- ;;
- ;; 2012-11-09 Julien Danjou <julien@danjou.info>
- ;;
- ;; rainbow-mode 0.3
- ;;
- ;; * rainbow-mode.el: avoid colorizing HTML entities
- ;;
- ;; 2011-09-23 Julien Danjou <julien@danjou.info>
- ;;
- ;; Update rainbow-mode to version 0.2
- ;;
- ;; 2011-07-01 Chong Yidong <cyd@stupidchicken.com>
- ;;
- ;; Give every package its own directory in packages/ including single-file
- ;; packages.
- ;;
-
-
- (provide 'rainbow-mode)
-
- ;; Local Variables:
- ;; indent-tabs-mode: nil
- ;; End:
- ;;; rainbow-mode.el ends here
-
- (require 'doom-modeline)
- (doom-modeline-mode 1)
-
-
- ;; How tall the mode-line should be (only respected in GUI Emacs).
- (setq doom-modeline-height 30)
-
- ;; How wide the mode-line bar should be (only respected in GUI Emacs).
- (setq doom-modeline-bar-width 4)
-
- ;; Determines the style used by `doom-modeline-buffer-file-name'.
- ;;
- ;; Given ~/Projects/FOSS/emacs/lisp/comint.el
- ;; truncate-upto-project => ~/P/F/emacs/lisp/comint.el
- ;; truncate-from-project => ~/Projects/FOSS/emacs/l/comint.el
- ;; truncate-with-project => emacs/l/comint.el
- ;; truncate-except-project => ~/P/F/emacs/l/comint.el
- ;; truncate-upto-root => ~/P/F/e/lisp/comint.el
- ;; truncate-all => ~/P/F/e/l/comint.el
- ;; relative-from-project => emacs/lisp/comint.el
- ;; relative-to-project => lisp/comint.el
- ;; file-name => comint.el
- ;; buffer-name => comint.el<2> (uniquify buffer name)
- ;;
- ;; If you are expereicing the laggy issue, especially while editing remote files
- ;; with tramp, please try `file-name' style.
- ;; Please refer to https://github.com/bbatsov/projectile/issues/657.
- (setq doom-modeline-buffer-file-name-style 'truncate-upto-project)
-
- ;; What executable of Python will be used (if nil nothing will be showed).
- (setq doom-modeline-python-executable "python")
-
- ;; Whether show `all-the-icons' or not (if nil nothing will be showed).
- (setq doom-modeline-icon t)
-
- ;; Whether show the icon for major mode. It respects `doom-modeline-icon'.
- (setq doom-modeline-major-mode-icon t)
-
- ;; Display color icons for `major-mode'. It respects `all-the-icons-color-icons'.
- (setq doom-modeline-major-mode-color-icon nil)
-
- ;; Whether display minor modes or not. Non-nil to display in mode-line.
- (setq doom-modeline-minor-modes nil)
-
- ;; If non-nil, a word count will be added to the selection-info modeline segment.
- (setq doom-modeline-enable-word-count nil)
-
- ;; If non-nil, only display one number for checker information if applicable.
- (setq doom-modeline-checker-simple-format t)
-
- ;; Whether display perspective name or not. Non-nil to display in mode-line.
- (setq doom-modeline-persp-name t)
-
- ;; Whether display `lsp' state or not. Non-nil to display in mode-line.
- (setq doom-modeline-lsp t)
-
- ;; Whether display github notifications or not. Requires `ghub` package.
- (setq doom-modeline-github nil)
-
- ;; The interval of checking github.
- (setq doom-modeline-github-interval (* 30 60))
-
- ;; Whether display environment version or not.
- (setq doom-modeline-env-version t)
-
- ;; Whether display mu4e notifications or not. Requires `mu4e-alert' package.
- (setq doom-modeline-mu4e t)
|