diff --git a/.gitignore b/.gitignore index f248738..f6f0090 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ recentf network-security.data *.elc themes/*.elc -*.*~ \ No newline at end of file +*.*~ +custom.el diff --git a/README.md b/README.md deleted file mode 100644 index 85a7e35..0000000 --- a/README.md +++ /dev/null @@ -1,12 +0,0 @@ -## Dependencies -- `git` -- Emacs v. 25 or higher - -## Installation -1. Install dependencies. -2. Clone repo into `$HOME/.emacs.d`. -3. Copy contents of `fonts` directory into `$HOME/.fonts`. -4. Run `fc-cache`. -5. Run `emacs`. -6. `M-x all-the-icons-install-fonts`. -7. Restart Emacs. You can now run Emacs in regular mode or as a daemon. diff --git a/fonts/iosevka-term-ss05-bold.ttf b/fonts/iosevka-term-ss05-bold.ttf deleted file mode 100644 index 2cd8f44..0000000 Binary files a/fonts/iosevka-term-ss05-bold.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-bolditalic.ttf b/fonts/iosevka-term-ss05-bolditalic.ttf deleted file mode 100644 index edcd0e3..0000000 Binary files a/fonts/iosevka-term-ss05-bolditalic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-boldoblique.ttf b/fonts/iosevka-term-ss05-boldoblique.ttf deleted file mode 100644 index 3269a03..0000000 Binary files a/fonts/iosevka-term-ss05-boldoblique.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-extralight.ttf b/fonts/iosevka-term-ss05-extralight.ttf deleted file mode 100644 index 5894ab9..0000000 Binary files a/fonts/iosevka-term-ss05-extralight.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-extralightitalic.ttf b/fonts/iosevka-term-ss05-extralightitalic.ttf deleted file mode 100644 index 17602b8..0000000 Binary files a/fonts/iosevka-term-ss05-extralightitalic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-extralightoblique.ttf b/fonts/iosevka-term-ss05-extralightoblique.ttf deleted file mode 100644 index f95f97c..0000000 Binary files a/fonts/iosevka-term-ss05-extralightoblique.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-heavy.ttf b/fonts/iosevka-term-ss05-heavy.ttf deleted file mode 100644 index bed1f38..0000000 Binary files a/fonts/iosevka-term-ss05-heavy.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-heavyitalic.ttf b/fonts/iosevka-term-ss05-heavyitalic.ttf deleted file mode 100644 index 8ca3b99..0000000 Binary files a/fonts/iosevka-term-ss05-heavyitalic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-heavyoblique.ttf b/fonts/iosevka-term-ss05-heavyoblique.ttf deleted file mode 100644 index d268e23..0000000 Binary files a/fonts/iosevka-term-ss05-heavyoblique.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-italic.ttf b/fonts/iosevka-term-ss05-italic.ttf deleted file mode 100644 index 7aa4d7f..0000000 Binary files a/fonts/iosevka-term-ss05-italic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-light.ttf b/fonts/iosevka-term-ss05-light.ttf deleted file mode 100644 index c2a5f35..0000000 Binary files a/fonts/iosevka-term-ss05-light.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-lightitalic.ttf b/fonts/iosevka-term-ss05-lightitalic.ttf deleted file mode 100644 index f1421f2..0000000 Binary files a/fonts/iosevka-term-ss05-lightitalic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-lightoblique.ttf b/fonts/iosevka-term-ss05-lightoblique.ttf deleted file mode 100644 index 88c9837..0000000 Binary files a/fonts/iosevka-term-ss05-lightoblique.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-medium.ttf b/fonts/iosevka-term-ss05-medium.ttf deleted file mode 100644 index d7af6b1..0000000 Binary files a/fonts/iosevka-term-ss05-medium.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-mediumitalic.ttf b/fonts/iosevka-term-ss05-mediumitalic.ttf deleted file mode 100644 index 3c36965..0000000 Binary files a/fonts/iosevka-term-ss05-mediumitalic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-mediumoblique.ttf b/fonts/iosevka-term-ss05-mediumoblique.ttf deleted file mode 100644 index e87b674..0000000 Binary files a/fonts/iosevka-term-ss05-mediumoblique.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-oblique.ttf b/fonts/iosevka-term-ss05-oblique.ttf deleted file mode 100644 index 3680c55..0000000 Binary files a/fonts/iosevka-term-ss05-oblique.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-regular.ttf b/fonts/iosevka-term-ss05-regular.ttf deleted file mode 100644 index 07f278a..0000000 Binary files a/fonts/iosevka-term-ss05-regular.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-thin.ttf b/fonts/iosevka-term-ss05-thin.ttf deleted file mode 100644 index 60ccde4..0000000 Binary files a/fonts/iosevka-term-ss05-thin.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-thinitalic.ttf b/fonts/iosevka-term-ss05-thinitalic.ttf deleted file mode 100644 index 1062b4b..0000000 Binary files a/fonts/iosevka-term-ss05-thinitalic.ttf and /dev/null differ diff --git a/fonts/iosevka-term-ss05-thinoblique.ttf b/fonts/iosevka-term-ss05-thinoblique.ttf deleted file mode 100644 index f047009..0000000 Binary files a/fonts/iosevka-term-ss05-thinoblique.ttf and /dev/null differ diff --git a/init.el b/init.el index 73ec92e..a6aff7b 100644 --- a/init.el +++ b/init.el @@ -1,37 +1,255 @@ (package-initialize) -(defun byte-compile-init-dir () - "Byte-compile all your dotfiles." - (interactive) - (byte-recompile-directory user-emacs-directory 0)) +(require 'package) +(add-to-list 'package-archives + '("melpa" . "http://melpa.milkbox.net/packages/") t) +(add-to-list 'package-archives + '("marmalade" . "https://marmalade-repo.org/packages/") t) +(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") t +(add-to-list 'load-path "~/.emacs.d/lisp/" t) -(load "~/.emacs.d/my-packages.el") -(byte-compile-init-dir) -(load "~/.emacs.d/my-loadpackages.elc") -(add-hook 'after-init-hook - '(lambda () - (load "~/.emacs.d/my-noexternals.elc") - (load "~/.emacs.d/my-setkeys.elc") - (load "~/.emacs.d/my-modeline.elc") - (load "~/.emacs.d/my-linum.elc") - (load "~/.emacs.d/my-themes.elc") - (load "~/.emacs.d/lisp/plsql.elc") - (load "~/.emacs.d/lisp/dockerfile-mode.elc") - (load "~/.emacs.d/my-gnus.elc"))) -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(custom-safe-themes - (quote - ("16dd114a84d0aeccc5ad6fd64752a11ea2e841e3853234f19dc02a7b91f5d661" "f2dd097452b79276ce522df2f8aeb37f6d90f504529616aa46122d549910e46d" "21c6b494da74b10ff573fa96b6850651e321282daa17fc9d6c8fbbee96ade005" default))) - '(package-selected-packages - (quote - (jdee web-mode use-package-chords use-package projectile pkg-info less-css-mode ghc fill-column-indicator evil-magit evil epl diminish dash counsel bind-chord base16-theme async all-the-icons)))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) +(unless package-archive-contents (package-refresh-contents)) + +(defvar prelude-packages + '(async counsel dracula-theme evil evil-magit fill-column-indicator ghc + git-commit go-mode goto-chg haskell-mode ivy less-css-mode magit + magit-popup pkg-info s swiper undo-tree use-package use-package-chords + web-mode with-editor) + "A list of packages to ensure are installed at launch.") + +(dolist (pkg prelude-packages) + (unless (package-installed-p pkg) (package-install pkg))) + +(when (fboundp 'menu-bar-mode) (menu-bar-mode -1)) +(when (fboundp 'tool-bar-mode) (tool-bar-mode -1)) +(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) +(when (fboundp 'windmove-default-keybindings) (windmove-default-keybindings)) + +(add-to-list 'default-frame-alist '(font . "Iosevka Term 10")) +(set-frame-font "Iosevka Term 10") + +(setq frame-title-format + '(buffer-file-name "%f" (dired-directory dired-directory "%b")) + custom-file "~/.emacs.d/custom.el" + auth-source-save-behavior nil + enable-local-variables nil + inhibit-startup-screen t + vc-follow-symlinks t + inhibit-compacting-font-caches 1 + mouse-wheel-scroll-amount '(1 ((shift) . 1)) + mouse-wheel-progressive-speed nil + mouse-wheel-follow-mouse 't + scroll-step 1 + scroll-conservatively 10000 + backup-by-copying t + backup-directory-alist '(("." . "~/.saves")) + undo-tree-history-directory-alist '(("." . "~/.undo-tree")) + delete-old-versions t + kept-new-versions 6 + kept-old-versions 2 + version-control t + backup-directory-alist `((".*" . ,temporary-file-directory)) + auto-save-file-name-transforms `((".*" ,temporary-file-directory t)) + undo-tree-auto-save-history t + vc-mode 1) + +(global-auto-revert-mode 1) +(electric-pair-mode 1) +(show-paren-mode t) +(fringe-mode '(0 . 0)) +(global-hl-line-mode 1) +(blink-cursor-mode 0) +(display-time-mode 1) + +(load "~/.emacs.d/lisp/plsql.el") +(load "~/.emacs.d/lisp/dockerfile-mode.el") +(add-to-list 'auto-mode-alist + '("\\.\\(p\\(?:k[bg]\\|ls\\)\\|sql\\)\\'" . plsql-mode)) +;;(add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode)) + +(setq-default indent-tabs-mode t) +(setq-default tab-width 8) + +(defun c-lineup-arglist-tabs-only (ignored) + "Line up argument lists by tabs, not spaces" + (let* ((anchor (c-langelem-pos c-syntactic-element)) + (column (c-langelem-2nd-pos c-syntactic-element)) + (offset (- (1+ column) anchor)) + (steps (floor offset c-basic-offset))) + (* (max steps 1) + c-basic-offset))) + +(add-hook 'c-mode-common-hook + (lambda () + (c-add-style "libvirt" + '((indent-tabs-mode . nil) + (c-basic-offset . 4) + (c-indent-level . 4) + (c-offsets-alist + (label . 1)))) + ;; Add kernel style + (c-add-style "linux-tabs-only" + '("linux" + (c-offsets-alist + (arglist-cont-nonempty + c-lineup-gcc-asm-reg + c-lineup-arglist-tabs-only)))))) + +(defun my-c-mode-hooks () + (let ((bname (buffer-file-name))) + (cond + ((string-match "libvirt/" bname) (c-set-style "libvirt")) + ((string-match "datastructures/" bname) (c-set-style "linux")) + ((string-match "linux/" bname) (c-set-style "linux-tabs-only")) + ((string-match ".*" bname) (c-set-style "linux")) + ))) + +(add-hook 'sh-mode-hook + (lambda () (setq indent-tabs-mode nil))) + +(defun remove-elc-on-save () + "If you're saving an elisp file, likely the .elc is no longer valid." + (add-hook 'after-save-hook + (lambda () + (if (file-exists-p (concat buffer-file-name "c")) + (delete-file (concat buffer-file-name "c")))) + nil + t)) + +(add-hook 'emacs-lisp-mode-hook 'remove-elc-on-save) +(add-hook 'c-mode-hook 'my-c-mode-hooks) +(add-hook 'before-save-hook 'delete-trailing-whitespace) + +(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit) +(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit) +(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit) +(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit) +(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit) + +(defun gcm-scroll-down () + (interactive) + (scroll-up 1)) + +(defun gcm-scroll-up () + (interactive) + (scroll-down 1)) + +(global-set-key [(control down)] 'gcm-scroll-down) +(global-set-key [(control up)] 'gcm-scroll-up) + +(global-set-key [(control next)] 'gcm-scroll-down) +(global-set-key [(control prior)] 'gcm-scroll-up) + +(require 'use-package) + +(use-package ivy + :init + (setq ivy-use-virtual-buffers t + ivy-count-format "" + ivy-display-style nil) + :config + (ivy-mode 1)) + +(use-package swiper + :bind (("C-s" . swiper))) + +(use-package counsel + :bind (("M-x" . counsel-M-x) + ("C-x C-f" . counsel-find-file))) + +;;(use-package projectile) + +;;(use-package cl) + +(use-package evil + :init + (setq evil-want-fine-undo t) + ;; (add-to-list 'evil-insert-state-modes 'lisp-interaction-mode) + :config + (evil-mode 1)) + +;;(use-package magit) +(use-package evil-magit + :init + (setq evil-magit-state 'normal)) + +(use-package fill-column-indicator + :init + (setq fci-rule-column 80)) + +(use-package haskell-mode + :mode ("\\.hs\\'" . haskell-mode) + :interpreter ("haskell" . haskell-mode)) + +(use-package go-mode + :mode ("\\.go\\'" . go-mode)) + +(use-package web-mode + :mode ("\\.html\\'" . web-mode) + :mode ("\\.css\\'" . web-mode) + :mode ("\\.tpl\\.php\\'" . web-mode) + :mode ("\\.[agj]sp\\'" . web-mode) + :mode ("\\.as[cp]x\\'" . web-mode) + :mode ("\\.erb\\'" . web-mode) + :mode ("\\.mustache\\'" . web-mode) + :mode ("\\.djhtml\\'" . web-mode) + :mode ("\\.html?\\'" . web-mode) + :init + (setq web-mode-markup-indent-offset 2 + web-mode-code-indent-offset 2 + web-mode-css-indent-offset 2)) + +(use-package less-css-mode + :mode ("\\.less\\'" . less-css-mode)) + +(use-package yaml-mode + :mode ("\\.yml\\'" . yaml-mode) + :mode ("\\.yaml\\'" . yaml-mode)) + +(use-package python + :mode ("\\.py\\'" . python-mode) + :interpreter ("python" . python-mode)) + +;;(use-package sql) + +(defvar linum-current-line 1 "Current line number.") +(defvar linum-format-fmt "" " ") +(defvar linum-format "" " ") + +(defface linum-current-line + `((t :inherit linum + :foreground "chocolate" + ;; :weight bold + )) + "Face for displaying the current line number." + :group 'linum) + +(defadvice linum-update (before advice-linum-update activate) + "Set the current line." + (setq linum-current-line (line-number-at-pos))) + +(unless window-system + (add-hook 'linum-before-numbering-hook + (lambda () + (setq-local linum-format-fmt + (let ((w (length (number-to-string + (count-lines + (point-min) + (point-max)))))) + (concat " %" (number-to-string w) "d ")))))) + + +(defun linum-format-func (line) + (let ((face + (if (= line linum-current-line) + 'linum-current-line + 'linum))) + (propertize (format linum-format-fmt line) 'face face))) + +(unless window-system + (setq linum-format 'linum-format-func)) + +(add-hook 'find-file-hook (lambda () + (linum-mode 1))) +(add-hook 'eshell-mode-hook (lambda () + (linum-mode -1))) diff --git a/lisp/dockerfile-mode.el b/lisp/dockerfile-mode.el index 5c5ac84..ca2d198 100644 --- a/lisp/dockerfile-mode.el +++ b/lisp/dockerfile-mode.el @@ -55,13 +55,27 @@ Each element of the list will be passed as a separate :type '(repeat string) :group 'dockerfile) +(defface dockerfile-image-name + '((t (:inherit (font-lock-type-face bold)))) + "Face to highlight the base image name after FROM instruction.") + +(defface dockerfile-image-alias + '((t (:inherit (font-lock-constant-face bold)))) + "Face to highlight the base image alias inf FROM ... AS construct.") + +(defconst dockerfile--from-regex + (rx "from " (group (+? nonl)) (or " " eol) (? "as " (group (1+ nonl))))) + (defvar dockerfile-font-lock-keywords `(,(cons (rx (or line-start "onbuild ") - (group (or "from" "maintainer" "run" "cmd" "expose" "env" "arg" - "add" "copy" "entrypoint" "volume" "user" "workdir" "onbuild" - "label" "stopsignal" "shell" "healthcheck")) - word-boundary) - font-lock-keyword-face) + (group (or "from" "maintainer" "run" "cmd" "expose" "env" "arg" + "add" "copy" "entrypoint" "volume" "user" "workdir" "onbuild" + "label" "stopsignal" "shell" "healthcheck")) + word-boundary) + font-lock-keyword-face) + (,dockerfile--from-regex + (1 'dockerfile-image-name) + (2 'dockerfile-image-alias nil t)) ,@(sh-font-lock-keywords) ,@(sh-font-lock-keywords-2) ,@(sh-font-lock-keywords-1)) @@ -69,7 +83,7 @@ Each element of the list will be passed as a separate (defvar dockerfile-mode-map (let ((map (make-sparse-keymap)) - (menu-map (make-sparse-keymap))) + (menu-map (make-sparse-keymap))) (define-key map "\C-c\C-b" 'dockerfile-build-buffer) (define-key map "\C-c\M-b" 'dockerfile-build-no-cache-buffer) (define-key map "\C-c\C-z" 'dockerfile-test-function) @@ -77,13 +91,13 @@ Each element of the list will be passed as a separate (define-key map [menu-bar dockerfile-mode] (cons "Dockerfile" menu-map)) (define-key menu-map [dfc] '(menu-item "Comment Region" comment-region - :help "Comment Region")) + :help "Comment Region")) (define-key menu-map [dfb] '(menu-item "Build" dockerfile-build-buffer - :help "Send the Dockerfile to docker build")) + :help "Send the Dockerfile to docker build")) (define-key menu-map [dfb] '(menu-item "Build without cache" dockerfile-build-no-cache-buffer - :help "Send the Dockerfile to docker build without cache")) + :help "Send the Dockerfile to docker build without cache")) map)) (defvar dockerfile-mode-syntax-table @@ -101,10 +115,25 @@ Each element of the list will be passed as a separate (unless dockerfile-mode-abbrev-table (define-abbrev-table 'dockerfile-mode-abbrev-table ())) +(defun dockerfile-indent-line-function () + "Indent lines in a Dockerfile. + +Lines beginning with a keyword are ignored, and any others are +indented by one `tab-width'." + (unless (eq (get-text-property (point-at-bol) 'face) + 'font-lock-keyword-face) + (save-excursion + (beginning-of-line) + (skip-chars-forward "[ \t]" (point-at-eol)) + (unless (equal (point) (point-at-eol)) ; Ignore empty lines. + ;; Delete existing whitespace. + (delete-char (- (point-at-bol) (point))) + (indent-to tab-width))))) + (defun dockerfile-build-arg-string () "Create a --build-arg string for each element in `dockerfile-build-args'." (mapconcat (lambda (arg) (concat "--build-arg " (shell-quote-argument arg))) - dockerfile-build-args " ")) + dockerfile-build-args " ")) (defun dockerfile-standard-filename (file) "Convert the FILE name to OS standard. @@ -136,13 +165,13 @@ If prefix arg NO-CACHE is set, don't cache the image." (if (stringp image-name) (compilation-start (format - "%sdocker build %s -t %s %s -f %s %s" - (if dockerfile-use-sudo "sudo " "") - (if no-cache "--no-cache" "") - (shell-quote-argument image-name) - (dockerfile-build-arg-string) - (shell-quote-argument (dockerfile-standard-filename (buffer-file-name))) - (shell-quote-argument (dockerfile-standard-filename default-directory))) + "%sdocker build %s -t %s %s -f %s %s" + (if dockerfile-use-sudo "sudo " "") + (if no-cache "--no-cache" "") + (shell-quote-argument image-name) + (dockerfile-build-arg-string) + (shell-quote-argument (dockerfile-standard-filename (buffer-file-name))) + (shell-quote-argument (dockerfile-standard-filename default-directory))) nil (lambda (_) (format "*docker-build-output: %s *" image-name))) (print "dockerfile-image-name must be a string, consider surrounding it with double quotes"))) @@ -153,12 +182,28 @@ If prefix arg NO-CACHE is set, don't cache the image." (interactive (list (dockerfile-read-image-name))) (dockerfile-build-buffer image-name t)) +(defun dockerfile--imenu-function () + "Find the previous headline from point. + +Search for a FROM instruction. If an alias is used this is +returned, otherwise the base image name is used." + (when (re-search-backward dockerfile--from-regex nil t) + (let ((data (match-data))) + (when (match-string 2) + ;; we drop the first match group because + ;; imenu-generic-expression can only use one offset, so we + ;; normalize to `1'. + (set-match-data (list (nth 0 data) (nth 1 data) (nth 4 data) (nth 5 data)))) + t))) + ;;;###autoload (define-derived-mode dockerfile-mode prog-mode "Dockerfile" "A major mode to edit Dockerfiles. \\{dockerfile-mode-map} " (set-syntax-table dockerfile-mode-syntax-table) + (set (make-local-variable 'imenu-generic-expression) + `(("Stage" dockerfile--imenu-function 1))) (set (make-local-variable 'require-final-newline) mode-require-final-newline) (set (make-local-variable 'comment-start) "#") (set (make-local-variable 'comment-end) "") @@ -166,7 +211,8 @@ If prefix arg NO-CACHE is set, don't cache the image." (set (make-local-variable 'parse-sexp-ignore-comments) t) (set (make-local-variable 'font-lock-defaults) '(dockerfile-font-lock-keywords nil t)) - (setq local-abbrev-table dockerfile-mode-abbrev-table)) + (setq local-abbrev-table dockerfile-mode-abbrev-table) + (setq indent-line-function #'dockerfile-indent-line-function)) ;;;###autoload (add-to-list 'auto-mode-alist '("Dockerfile\\(?:\\..*\\)?\\'" . dockerfile-mode)) diff --git a/my-gnus.el b/my-gnus.el deleted file mode 100644 index f4ff09b..0000000 --- a/my-gnus.el +++ /dev/null @@ -1,12 +0,0 @@ -(setq user-mail-address "inaki694@gmail.com" - user-full-name "Iñaki Domínguez") - -(setq gnus-select-method - '(nnimap "gmail" - (nnimap-address "imap.gmail.com") ; it could also be imap.googlemail.com if that's your server. - (nnimap-server-port "imaps") - (nnimap-stream ssl))) - -(setq smtpmail-smtp-server "smtp.gmail.com" - smtpmail-smtp-service 587 - gnus-ignored-newsgroups "^to\\.\\|^[0-9. ]+\\( \\|$\\)\\|^[\"]\"[#'()]") diff --git a/my-linum.el b/my-linum.el deleted file mode 100644 index 9a414d0..0000000 --- a/my-linum.el +++ /dev/null @@ -1,41 +0,0 @@ -(defvar linum-current-line 1 "Current line number.") -(defvar linum-format-fmt "" " ") -(defvar linum-format "" " ") - -(defface linum-current-line - `((t :inherit linum - :foreground "chocolate" - ;; :weight bold - )) - "Face for displaying the current line number." - :group 'linum) - -(defadvice linum-update (before advice-linum-update activate) - "Set the current line." - (setq linum-current-line (line-number-at-pos))) - -(unless window-system - (add-hook 'linum-before-numbering-hook - (lambda () - (setq-local linum-format-fmt - (let ((w (length (number-to-string - (count-lines - (point-min) - (point-max)))))) - (concat " %" (number-to-string w) "d ")))))) - - -(defun linum-format-func (line) - (let ((face - (if (= line linum-current-line) - 'linum-current-line - 'linum))) - (propertize (format linum-format-fmt line) 'face face))) - -(unless window-system - (setq linum-format 'linum-format-func)) - -(add-hook 'find-file-hook (lambda () - (linum-mode 1))) -(add-hook 'eshell-mode-hook (lambda () - (linum-mode -1))) diff --git a/my-loadpackages.el b/my-loadpackages.el deleted file mode 100644 index 854d131..0000000 --- a/my-loadpackages.el +++ /dev/null @@ -1,36 +0,0 @@ -(require 'use-package) - -(use-package ivy - :config - (setq ivy-use-virtual-buffers t - ivy-count-format "" - ivy-display-style nil) - (ivy-mode 1)) -(use-package projectile) -(use-package cl) -(use-package evil - :config - (setq evil-normal-state-tag "N" - evil-insert-state-tag "I" - evil-visual-state-tag "V" - evil-emacs-state-tag "E" - evil-operator-state-tag "O" - evil-motion-state-tag "M" - evil-replace-state-tag "R" - evil-want-fine-undo t ) - ;; (add-to-list 'evil-insert-state-modes 'lisp-interaction-mode) - (evil-mode 1)) -(use-package magit) -(use-package evil-magit - :config - (setq evil-magit-state 'normal)) -(use-package fill-column-indicator - :config - (setq fci-rule-column 80)) -(use-package all-the-icons) -(use-package haskell-mode) -(use-package go-mode) -(use-package web-mode) -(use-package less-css-mode) - -(use-package sql) diff --git a/my-modeline.el b/my-modeline.el deleted file mode 100644 index 2316a47..0000000 --- a/my-modeline.el +++ /dev/null @@ -1,177 +0,0 @@ -(require 'evil) -(require 'magit) -(require 'all-the-icons) - - -(defvar powerline-current-window nil) -(defun update-current-window (windows) - (when (not (minibuffer-window-active-p (frame-selected-window))) - (setq powerline-current-window (selected-window)))) -(add-function :before pre-redisplay-function 'update-current-window) - - -(defun evil-tag-color () - (if (eq (get-buffer-window) powerline-current-window) - (cond ((evil-normal-state-p) "#5c3f56") - ((evil-visual-state-p) "#446963") - ((evil-insert-state-p) "#ac4142") - ((evil-emacs-state-p) "SeaGreen") - ((evil-operator-state-p) "SeaGreen") - ((evil-motion-state-p) "SeaGreen") - ((evil-replace-state-p) "maroon")) - (face-background 'mode-line-inactive))) - -(defun branch-tag-bg-color () - (if (eq (get-buffer-window) powerline-current-window) - "gainsboro" - (face-background 'mode-line-inactive))) - -(defun branch-tag-fg-color () - (if (eq (get-buffer-window) powerline-current-window) - "#181818" - (face-foreground 'mode-line-inactive))) - -(defun time-tag-bg-color () - (if (eq (get-buffer-window) powerline-current-window) - "ivory" - (face-background 'mode-line-inactive))) - -(defun time-tag-fg-color () - (if (eq (get-buffer-window) powerline-current-window) - "#181818" - (face-foreground 'mode-line-inactive))) - -(defun fancy-mode-line-render (left center right &optional lpad rpad) - "Return a string the width of the current window with -LEFT, CENTER, and RIGHT spaced out accordingly, LPAD and RPAD, -can be used to add a number of spaces to the front and back of the string." - (condition-case err - (let* ((left (if lpad (concat (make-string lpad ?\s) left) left)) - (right (if rpad (concat right (make-string rpad ?\s)) right)) - (width (apply '+ (window-width) - (let ((m (window-margins))) - (list (or (car m) 0) (or (cdr m) 0))))) - (total-length (+ (length left) (length center) (length right) 0))) - (when (> total-length width) (setq left "" right "")) - (let* ((left-space (/ (- width (length center)) 2)) - (right-space (- width left-space (length center))) - (lspaces (max (- left-space (length left)) 1)) - (rspaces (max (- right-space (length right)) 0))) - (concat left (make-string lspaces ?\s) - center - (make-string rspaces ?\s) - right))) - (error (format "[%s]: (%s) (%s) (%s)" err left center right)))) - -(defun evil-mode-state () - (let ((str (cond ((evil-normal-state-p) (format " NORMAL " )) - ((evil-visual-state-p) (format " VISUAL " )) - ((evil-insert-state-p) (format " INSERT " )) - ((evil-emacs-state-p) (format " EMACS " )) - ((evil-operator-state-p) (format " OPERATOR " )) - ((evil-motion-state-p) (format " MOTION " )) - ((evil-replace-state-p) (format " REPLACE " ))))) - (propertize - str - 'face `(:height 1.0 :background ,(evil-tag-color) :weight bold)))) - -(defun vc-mode-branch-state () - (let ((bufname (buffer-file-name (current-buffer)))) - (when bufname - (when (magit-get-current-branch) - (propertize - (format "  %s " (magit-get-current-branch)) - 'face `(:weight bold - :foreground ,(branch-tag-fg-color) - :background ,(branch-tag-bg-color))))))) - -(defun powerline-modified () - (let* ((config-alist - '(("*" all-the-icons-faicon-family - all-the-icons-faicon "chain-broken" :height 1.2 :v-adjust -0.0) - ("-" all-the-icons-faicon-family - all-the-icons-faicon "link" :height 1.2 :v-adjust -0.0) - ("%" all-the-icons-octicon-family - all-the-icons-octicon "lock" :height 1.2 :v-adjust 0.1))) - (result (cdr (assoc (format-mode-line "%*") config-alist)))) - (let ((res - (propertize - (apply (cadr result) (cddr result)) - 'face - `(:background ,(evil-tag-color) :family ,(funcall (car result)))))) - (propertize - (format " %s" res) - 'face - `(:background ,(evil-tag-color) :family ,(funcall (car result))))))) - -(defun custom-modeline-mode-icon () - (let ((icon (all-the-icons-icon-for-buffer))) - (if (not (symbolp icon)) ;; This implies it's the major mode - (format " %s" - (propertize - (all-the-icons-icon-for-buffer) - 'face - `(:family ,(all-the-icons-icon-family-for-buffer)) - 'display '(raise 0.0))) - (format " %s" - (propertize - "" - 'face - `(:family ,(all-the-icons-faicon-family)) - 'display '(raise 0.0)))))) - -(defun line-count-line () - (let* ((bg (time-tag-bg-color)) - (fg (time-tag-fg-color))) - (concat - (propertize - (format " %%l/%d " - (count-lines (point-min) (point-max))) - 'face `(:background ,bg :foreground ,fg))))) - -(defun powerline-time () - (let* ((hour (string-to-number (format-time-string "%I"))) - (bg (time-tag-bg-color)) - (fg (time-tag-fg-color))) - (concat - (propertize - (format-time-string " %H:%M ") - 'face - `(:height 1.0 :background ,bg :foreground ,fg)) - (propertize - "·" - 'face `(:height 1.0 :background ,bg :foreground ,fg))))) - -(defvar separator-left "") -(defvar separator-right "") -;; (defvar separator-left -;; (propertize -;; "" -;; 'face `(:height 1.1 :foreground "#86261c") 'display '(raise -0.0))) - -;; (defvar separator-right -;; (propertize -;; " " -;; 'face `(:height 1.1 :foreground "#86261c") 'display '(raise -0.0))) - -(setq-default mode-line-format - (list - '((:eval (fancy-mode-line-render - ;; left - (format-mode-line - (concat - (powerline-modified) - (evil-mode-state) - (vc-mode-branch-state) - (custom-modeline-mode-icon) ;; %m - " %b ")) - ;;center - "" - ;; right - (format-mode-line - (concat - separator-left - ;; (format-time-string "%H:%M ⁃ ") - (powerline-time) - (line-count-line))) -0 0))))) diff --git a/my-noexternals.el b/my-noexternals.el deleted file mode 100644 index 03ae562..0000000 --- a/my-noexternals.el +++ /dev/null @@ -1,137 +0,0 @@ -(when (fboundp 'menu-bar-mode) (menu-bar-mode -1)) -(when (fboundp 'tool-bar-mode) (tool-bar-mode -1)) -(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) -(when (fboundp 'windmove-default-keybindings) - (windmove-default-keybindings)) - -(add-to-list - 'default-frame-alist - '(font . "Iosevka Term 10")) -(set-frame-font - "Iosevka Term 10") - -(setq frame-title-format - '(buffer-file-name "%f" (dired-directory dired-directory "%b")) - ;; (setq debug-on-error t) - auth-source-save-behavior nil - send-mail-function (quote smtpmail-send-it) - enable-local-variables nil - inhibit-startup-screen t - vc-follow-symlinks t - inhibit-compacting-font-caches 1 - mouse-wheel-scroll-amount '(1 ((shift) . 1)) ;; one line at a time - mouse-wheel-progressive-speed nil ;; don't accelerate scrolling - mouse-wheel-follow-mouse 't ;; scroll window under mouse - scroll-step 1 - scroll-conservatively 10000 ;; keyboard scroll one line at a time - backup-by-copying t ; don't clobber symlinks - backup-directory-alist '(("." . "~/.saves")) ; don't litter my fs tree - undo-tree-history-directory-alist '(("." . "~/.undo-tree")) - delete-old-versions t - kept-new-versions 6 - kept-old-versions 2 - version-control t ; use versioned backups - backup-directory-alist `((".*" . ,temporary-file-directory)) - auto-save-file-name-transforms `((".*" ,temporary-file-directory t)) - undo-tree-auto-save-history t - vc-mode 1 - jdee-server-dir "/Users/you/.emacs.d/jdee-server") - -(global-auto-revert-mode 1) -(electric-pair-mode 1) -(show-paren-mode t) -(fringe-mode '(0 . 0)) -(global-hl-line-mode 1) -(blink-cursor-mode 0) -(display-time-mode 1) - -(add-to-list 'auto-mode-alist '("\\.h\\'" . c-mode)) -(add-to-list 'auto-mode-alist '("\\.zsh\\'" . sh-mode)) -(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode)) -(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) -(add-to-list 'auto-mode-alist - '("\\.\\(p\\(?:k[bg]\\|ls\\)\\|sql\\)\\'" . plsql-mode)) -(add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode)) - -(defun my-web-mode-hook () - "Hooks for Web mode." - (setq web-mode-markup-indent-offset 2 - web-mode-code-indent-offset 2 - web-mode-css-indent-offset 2)) - -(setq-default indent-tabs-mode t) -(setq-default tab-width 8) -(defun c-lineup-arglist-tabs-only (ignored) - "Line up argument lists by tabs, not spaces" - (let* ((anchor (c-langelem-pos c-syntactic-element)) - (column (c-langelem-2nd-pos c-syntactic-element)) - (offset (- (1+ column) anchor)) - (steps (floor offset c-basic-offset))) - (* (max steps 1) - c-basic-offset))) - -(add-hook 'c-mode-common-hook - (lambda () - (c-add-style "libvirt" - '((indent-tabs-mode . nil) - (c-basic-offset . 4) - (c-indent-level . 4) - (c-offsets-alist - (label . 1)))) - ;; Add kernel style - (c-add-style "linux-tabs-only" - '("linux" - (c-offsets-alist - (arglist-cont-nonempty - c-lineup-gcc-asm-reg - c-lineup-arglist-tabs-only)))))) - -(defun my-c-mode-hooks () - (let ((bname (buffer-file-name))) - (cond - ((string-match "libvirt/" bname) (c-set-style "libvirt")) - ((string-match "datastructures/" bname) (c-set-style "linux")) - ((string-match "linux/" bname) (c-set-style "linux-tabs-only")) - ((string-match ".*" bname) (c-set-style "linux")) - ))) - -(add-hook 'sh-mode-hook - (lambda () (setq indent-tabs-mode nil))) - -(defun remove-elc-on-save () - "If you're saving an elisp file, likely the .elc is no longer valid." - (add-hook 'after-save-hook - (lambda () - (if (file-exists-p (concat buffer-file-name "c")) - (delete-file (concat buffer-file-name "c")))) - nil - t)) - -(add-hook 'emacs-lisp-mode-hook 'remove-elc-on-save) -(add-hook 'c-mode-hook 'my-c-mode-hooks) -(add-hook 'web-mode-hook 'my-web-mode-hook) -(add-hook 'before-save-hook 'delete-trailing-whitespace) -(require 'yaml-mode) -(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode)) - -(add-hook 'eshell-mode-hook (lambda () - (setq-local global-hl-line-mode nil))) - -(add-hook 'term-mode-hook (lambda () - (setq-local global-hl-line-mode nil))) - -(defadvice term-handle-exit - (after term-kill-buffer-on-exit activate) - (kill-buffer)) - -(defun my-term-paste (&optional string) - (interactive) - (process-send-string - (get-buffer-process (current-buffer)) - (if string string (current-kill 0)))) diff --git a/my-packages.el b/my-packages.el deleted file mode 100644 index 87c97ba..0000000 --- a/my-packages.el +++ /dev/null @@ -1,21 +0,0 @@ -(require 'package) -(add-to-list 'package-archives - '("melpa" . "http://melpa.milkbox.net/packages/") t) -(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/") t) -(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") t -(add-to-list 'load-path "~/.emacs.d/lisp/" t) - -(unless package-archive-contents - (package-refresh-contents)) - -(defvar prelude-packages - '(all-the-icons async base16-theme bind-chord bind-key counsel dash diminish - epl evil evil-magit fill-column-indicator ghc git-commit go-mode - goto-chg haskell-mode ivy jdee key-chord less-css-mode magit magit-popup - pkg-info projectile swiper undo-tree use-package use-package-chords - web-mode with-editor) - "A list of packages to ensure are installed at launch.") - -(dolist (pkg prelude-packages) - (unless (package-installed-p pkg) - (package-install pkg))) diff --git a/my-setkeys.el b/my-setkeys.el deleted file mode 100644 index 68d49e0..0000000 --- a/my-setkeys.el +++ /dev/null @@ -1,29 +0,0 @@ -(global-set-key "\C-s" 'swiper) -(global-set-key (kbd "C-c C-r") 'ivy-resume) -(global-set-key (kbd "") '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 " f") 'counsel-describe-function) -(global-set-key (kbd " v") 'counsel-describe-variable) -(global-set-key (kbd " l") 'counsel-load-library) -(global-set-key (kbd " i") 'counsel-info-lookup-symbol) -(global-set-key (kbd " u") 'counsel-unicode-char) -(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit) -(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit) -(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit) -(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit) -(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit) -(global-set-key [f8] 'neotree-toggle) -(defun gcm-scroll-down () - (interactive) - (scroll-up 1)) - -(defun gcm-scroll-up () - (interactive) - (scroll-down 1)) - -(global-set-key [(control down)] 'gcm-scroll-down) -(global-set-key [(control up)] 'gcm-scroll-up) - -(global-set-key [(control next)] 'gcm-scroll-down) -(global-set-key [(control prior)] 'gcm-scroll-up) diff --git a/my-themes.el b/my-themes.el deleted file mode 100644 index ac1d11f..0000000 --- a/my-themes.el +++ /dev/null @@ -1,56 +0,0 @@ -(defvar my:theme 'base16-onedark) -(defvar my:theme-window-loaded nil) -(defvar my:theme-terminal-loaded nil) - -(defun setcolors () - (load-theme my:theme t) - (custom-theme-set-faces - my:theme - '(default ((t (:background "#161718" :foreground "#d0d0d0")))) - '(hl-line ((t (:background "#282A2C")))) - '(highlight ((t (:background "#282A2C")))) - '(linum ((t (:underline nil :background "#232832" :foreground "#a2a3b4" - :weight bold)))) - '(mode-line ((t (:background "#181819" :foreground "#b8b8b8" :box nil - :family "Iosevka Term" :height 100)))) - '(mode-line-buffer-id ((t (:foreground "#a1b56c" :family "Iosevka Term" - :height 100)))) - '(mode-line-highlight ((t (:foreground "#ba8baf" :box nil :weight bold - :family "Iosevka Term" - :height 100)))) - '(mode-line-inactive ((t (:background "#282c34" :foreground "#585858" - :box nil :underline nil - :family "Iosevka Term" :height 100)))) - ) - ) - -(if (daemonp) - (add-hook - 'after-make-frame-functions - (lambda (frame) - (select-frame frame) - (when (window-system frame) - (set-frame-parameter - (selected-frame) 'internal-border-width 0) - (unless my:theme-window-loaded - (if my:theme-terminal-loaded - (enable-theme my:theme) - (setcolors)) - (setq my:theme-window-loaded t)) - (unless my:theme-terminal-loaded - (if my:theme-window-loaded - (enable-theme my:theme) - (setcolors)) - (setq my:theme-terminal-loaded t))))) - (progn - (setcolors) - (if (display-graphic-p) - (setq my:theme-window-loaded t) - (setq my:theme-terminal-loaded t))) - (set-frame-parameter (selected-frame) 'internal-border-width 0)) - - -(add-hook 'before-make-frame-hook - #'(lambda () - (add-to-list 'default-frame-alist '(height . 42)) - (add-to-list 'default-frame-alist '(width . 100)))) diff --git a/themes/nothing-rhymes-with-orange-theme.el b/themes/nothing-rhymes-with-orange-theme.el deleted file mode 100644 index fbe1228..0000000 --- a/themes/nothing-rhymes-with-orange-theme.el +++ /dev/null @@ -1,200 +0,0 @@ -(eval-when-compile - (require 'cl-lib)) - -(unless (>= emacs-major-version 24) - (error "Requires Emacs 24 or later")) - -(defcustom nrwo-contrast 'medium - "Contrast level for the theme background." - :options '(soft medium hard)) - -(deftheme nothing-rhymes-with-orange "Test") -(let* ((nrwo-dark0_hard (if (display-graphic-p) "#181818" "color-234")) - (nrwo-dark0 (if (display-graphic-p) "#282828" "color-235")) - (nrwo-dark0_soft (if (display-graphic-p) "#32302f" "color-236")) - (nrwo-dark1 (if (display-graphic-p) "#3c3836" "color-237")) - (nrwo-dark2 (if (display-graphic-p) "#504945" "color-239")) - (nrwo-dark3 (if (display-graphic-p) "#665c54" "color-241")) - (nrwo-dark4 (if (display-graphic-p) "#7c6f64" "color-243")) - - (nrwo-medium (if (display-graphic-p) "#928374" "color-245")) ;; or 244 - - (nrwo-light0_hard (if (display-graphic-p) "#ffffc8" "color-230")) - (nrwo-light0 (if (display-graphic-p) "#ede4b1" "color-229")) - (nrwo-light0_soft (if (display-graphic-p) "#f4e8ba" "color-228")) - (nrwo-light1 (if (display-graphic-p) "#ebdbb2" "color-223")) - (nrwo-light2 (if (display-graphic-p) "#d5c4a1" "color-250")) - (nrwo-light3 (if (display-graphic-p) "#bdae93" "color-248")) - (nrwo-light4 (if (display-graphic-p) "#a89984" "color-246")) - - (nrwo-color0 (if (display-graphic-p) "#262322" "color-0")) - (nrwo-color1 (if (display-graphic-p) "#665752" "color-1")) - (nrwo-color2 (if (display-graphic-p) "#75645e" "color-2")) - (nrwo-color3 (if (display-graphic-p) "#85716a" "color-3")) - (nrwo-color4 (if (display-graphic-p) "#947e76" "color-4")) - (nrwo-color5 (if (display-graphic-p) "#a38b83" "color-5")) - (nrwo-color6 (if (display-graphic-p) "#b89c93" "color-6")) - (nrwo-color7 (if (display-graphic-p) "#ede4b1" "color-7")) - (nrwo-color8 (if (display-graphic-p) "#524b49" "color-8")) - (nrwo-color9 (if (display-graphic-p) "#ff6633" "color-9")) - (nrwo-color10 (if (display-graphic-p) "#bf4c26" "color-10")) - (nrwo-color11 (if (display-graphic-p) "#803319" "color-11")) - (nrwo-color12 (if (display-graphic-p) "#80ecff" "color-12")) - (nrwo-color13 (if (display-graphic-p) "#60b4bf" "color-13")) - (nrwo-color14 (if (display-graphic-p) "#406d80" "color-14")) - (nrwo-color15 (if (display-graphic-p) "#e8d7d1" "color-15")) - - (nrwo-delimiter-one (if (display-graphic-p) "#458588" "color-30")) - (nrwo-delimiter-two (if (display-graphic-p) "#b16286" "color-168")) - (nrwo-delimiter-three (if (display-graphic-p) "#8ec07c" "color-108")) - (nrwo-delimiter-four (if (display-graphic-p) "#d65d0e" "color-166")) - (nrwo-white (if (display-graphic-p) "#FFFFFF" "white")) - (nrwo-black (if (display-graphic-p) "#000000" "black")) - (nrwo-sienna (if (display-graphic-p) "#DD6F48" "sienna")) - (nrwo-darkslategray4 (if (display-graphic-p) "#528B8B" "DarkSlateGray4")) - (nrwo-lightblue4 (if (display-graphic-p) "#66999D" "LightBlue4")) - (nrwo-burlywood4 (if (display-graphic-p) "#BBAA97" "burlywood4")) - (nrwo-aquamarine4 (if (display-graphic-p) "#83A598" "aquamarine4")) - (nrwo-turquoise4 (if (display-graphic-p) "#61ACBB" "turquoise4")) - - (nrwo-bg nrwo-dark0_hard)) - - (custom-theme-set-faces - 'nothing-rhymes-with-orange - - ;; UI - `(default ((t (:background ,nrwo-bg :foreground ,nrwo-light0)))) - `(cursor ((t (:background ,nrwo-light0)))) - `(mode-line ((t (:box nil :background ,nrwo-dark0 :foreground "ivory" :font "Iosevka Term-10")))) - `(mode-line-inactive ((t (:box nil :background ,nrwo-dark1 :foreground ,nrwo-light4 :font "Iosevka Term-10")))) - `(fringe ((t (:background ,nrwo-bg)))) - `(linum ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(hl-line ((t (:background ,nrwo-color0)))) - `(region ((t (:background ,nrwo-dark2)))) ;;selection - `(secondary-selection ((t (:background ,nrwo-dark1)))) - `(minibuffer-prompt ((t (:background ,nrwo-bg :foreground ,nrwo-color4 t)))) - `(vertical-border ((t (:foreground ,nrwo-dark2)))) - `(link ((t (:foreground ,nrwo-color7 :underline t)))) - `(shadow ((t (:foreground ,nrwo-dark4)))) - - ;; Built-in syntax - `(font-lock-builtin-face ((t (:foreground ,nrwo-color9 t)))) - `(font-lock-constant-face ((t (:foreground ,nrwo-color10 t)))) - `(font-lock-comment-face ((t (:foreground ,nrwo-dark4)))) - `(font-lock-function-name-face ((t (:foreground ,nrwo-color15 )))) - `(font-lock-keyword-face ((t (:foreground ,nrwo-color10)))) - `(font-lock-string-face ((t (:foreground ,nrwo-color5)))) - `(font-lock-variable-name-face ((t (:foreground ,nrwo-color9)))) - `(font-lock-type-face ((t (:foreground ,nrwo-color12)))) - `(font-lock-warning-face ((t (:foreground ,nrwo-color15 t)))) - - `(neo-dir-link-face ((t (:foreground ,nrwo-color10)))) - `(neo-root-dir-face ((t (:foreground ,nrwo-dark4)))) - - ;; whitespace-mode - `(whitespace-space ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(whitespace-hspace ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(whitespace-tab ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(whitespace-newline ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(whitespace-trailing ((t (:background ,nrwo-dark1 :foreground ,nrwo-color3)))) - `(whitespace-line ((t (:background ,nrwo-dark1 :foreground ,nrwo-color3)))) - `(whitespace-space-before-tab ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(whitespace-indentation ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - `(whitespace-empty ((t (:background nil :foreground nil)))) - `(whitespace-space-after-tab ((t (:background ,nrwo-bg :foreground ,nrwo-dark4)))) - - ;; RainbowDelimiters - `(rainbow-delimiters-depth-1-face ((t (:foreground ,nrwo-delimiter-one)))) - `(rainbow-delimiters-depth-2-face ((t (:foreground ,nrwo-delimiter-two)))) - `(rainbow-delimiters-depth-3-face ((t (:foreground ,nrwo-delimiter-three)))) - `(rainbow-delimiters-depth-4-face ((t (:foreground ,nrwo-delimiter-four)))) - `(rainbow-delimiters-depth-5-face ((t (:foreground ,nrwo-delimiter-one)))) - `(rainbow-delimiters-depth-6-face ((t (:foreground ,nrwo-delimiter-two)))) - `(rainbow-delimiters-depth-7-face ((t (:foreground ,nrwo-delimiter-three)))) - `(rainbow-delimiters-depth-8-face ((t (:foreground ,nrwo-delimiter-four)))) - `(rainbow-delimiters-depth-9-face ((t (:foreground ,nrwo-delimiter-one)))) - `(rainbow-delimiters-depth-10-face ((t (:foreground ,nrwo-delimiter-two)))) - `(rainbow-delimiters-depth-11-face ((t (:foreground ,nrwo-delimiter-three)))) - `(rainbow-delimiters-depth-12-face ((t (:foreground ,nrwo-delimiter-four)))) - `(rainbow-delimiters-unmatched-face ((t (:background nil :foreground ,nrwo-light0)))) - - ;; linum-relative - `(linum-relative-current-face ((t (:background ,nrwo-dark1 :foreground ,nrwo-light4)))) - - ;; Highlight indentation mode - `(highlight-indentation-current-column-face ((t (:background ,nrwo-dark2 )))) - `(highlight-indentation-face ((t (:background ,nrwo-dark1 )))) - - ;; Smartparens - `(sp-pair-overlay-face ((t (:background ,nrwo-dark2)))) - ;`(sp-wrap-overlay-face ((t (:inherit sp-wrap-overlay-face)))) - ;`(sp-wrap-tag-overlay-face ((t (:inherit sp-wrap-overlay-face)))) - `(sp-show-pair-match-face ((t (:background ,nrwo-dark2)))) ;; Pair tags highlight - `(sp-show-pair-mismatch-face ((t (:background ,nrwo-color15)))) ;; Highlight for bracket without pair - - ;; elscreen - `(elscreen-tab-background-face ((t (:box nil :background ,nrwo-bg)))) ;; Tab bar, not the tabs - `(elscreen-tab-control-face ((t (:box nil :background ,nrwo-dark2 :foreground ,nrwo-color15 :underline nil)))) ;; The controls - `(elscreen-tab-current-screen-face ((t (:box nil :background ,nrwo-dark4 :foreground ,nrwo-dark0)))) ;; Current tab - `(elscreen-tab-other-screen-face ((t (:box nil :background ,nrwo-dark2 :foreground ,nrwo-light4 :underline nil)))) ;; Inactive tab - - ;; ag (The Silver Searcher) - `(ag-hit-face ((t (:foreground ,nrwo-color14)))) - `(ag-match-face ((t (:foreground ,nrwo-color15)))) - - ;; Diffs - `(diff-changed ((t (:background ,nrwo-color0 :foreground ,nrwo-light1)))) - `(diff-added ((t (:background nil :foreground ,nrwo-color12)))) - `(diff-removed ((t (:background nil :foreground ,nrwo-color9)))) - `(diff-indicator-changed ((t (:inherit diff-changed)))) - `(diff-indicator-added ((t (:inherit diff-added)))) - `(diff-indicator-removed ((t (:inherit diff-removed)))) - - `(js2-warning ((t (:underline (:color ,nrwo-color9 :style wave))))) - `(js2-error ((t (:underline (:color ,nrwo-color15 :style wave))))) - `(js2-external-variable ((t (:underline (:color ,nrwo-color10 :style wave))))) - `(js2-jsdoc-tag ((t (:background nil :foreground ,nrwo-medium )))) - `(js2-jsdoc-type ((t (:background nil :foreground ,nrwo-light4 )))) - `(js2-jsdoc-value ((t (:background nil :foreground ,nrwo-light3 )))) - `(js2-function-param ((t (:background nil :foreground ,nrwo-color12 )))) - `(js2-function-call ((t (:background nil :foreground ,nrwo-color10 )))) - `(js2-instance-member ((t (:background nil :foreground ,nrwo-color9 )))) - `(js2-private-member ((t (:background nil :foreground ,nrwo-color11 )))) - `(js2-private-function-call ((t (:background nil :foreground ,nrwo-color14 )))) - `(js2-jsdoc-html-tag-name ((t (:background nil :foreground ,nrwo-light4 )))) - `(js2-jsdoc-html-tag-delimiter ((t (:background nil :foreground ,nrwo-light3 )))) - - ;; popup - `(popup-face ((t (:foreground ,nrwo-light1 :background ,nrwo-dark1)))) - `(popup-menu-mouse-face ((t (:foreground ,nrwo-light0 :background ,nrwo-color2)))) - `(popup-menu-selection-face ((t (:foreground ,nrwo-light0 :background ,nrwo-color2)))) - `(popup-tip-face ((t (:foreground ,nrwo-light2 :background ,nrwo-dark2)))) - - ;; message-mode - `(message-header-to ((t (:inherit font-lock-variable-name-face)))) - `(message-header-cc ((t (:inherit font-lock-variable-name-face)))) - `(message-header-subject ((t (:foreground ,nrwo-color10 )))) - `(message-header-newsgroups ((t (:foreground ,nrwo-color9 )))) - `(message-header-other ((t (:inherit font-lock-variable-name-face)))) - `(message-header-name ((t (:inherit font-lock-keyword-face)))) - `(message-header-xheader ((t (:foreground ,nrwo-color12)))) - `(message-separator ((t (:inherit font-lock-comment-face)))) - `(message-cited-text ((t (:inherit font-lock-comment-face)))) - `(message-mml ((t (:foreground ,nrwo-color1 )))) - ) - ) - -;;;###autoload -(and load-file-name - (boundp 'custom-theme-load-path) - (add-to-list 'custom-theme-load-path - (file-name-as-directory - (file-name-directory load-file-name)))) - -(provide-theme 'nothing-rhymes-with-orange) - -;; Local Variables: -;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1)) -;; End: - -;;; nrwo-theme.el ends here