From 11a5e15e4ed0762a0c944ae3454eaa9ddac970f5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 19 Feb 2017 18:11:28 -0500 Subject: [PATCH] Refactor core config --- core/autoload/set.el | 2 +- core/core-editor.el | 92 +++++++++++++++++++++---------------------- core/core-lib.el | 7 +++- core/core-projects.el | 6 +-- core/core-ui.el | 83 +++++++++++++++++++------------------- core/core.el | 46 ++++++++++++---------- 6 files changed, 122 insertions(+), 114 deletions(-) diff --git a/core/autoload/set.el b/core/autoload/set.el index 2c39de120..e215bdf8c 100644 --- a/core/autoload/set.el +++ b/core/autoload/set.el @@ -30,7 +30,7 @@ executed when called with `@set'. FORMS are not evaluated until `@set' calls it. (if (functionp fn) (apply fn (eval `(list ,@values))) (when doom-debug-mode - (warn "No setting found for %s" keyword))))) + (message "No setting found for %s" keyword))))) ;; (defun describe-setting () diff --git a/core/core-editor.el b/core/core-editor.el index c822626e8..d0eb854eb 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -1,42 +1,38 @@ ;;; core-editor.el --- filling the editor shaped hole in the Emacs OS -(setq shift-select-mode t ; activate mark on shift-click - ;; Save clipboard contents into kill-ring before replacing them - save-interprogram-paste-before-kill t - ;; Bookmarks - bookmark-default-file (concat doom-cache-dir "/bookmarks") - bookmark-save-flag t - ;; Formatting - delete-trailing-lines nil - fill-column 80 - sentence-end-double-space nil - ;; Scrolling - hscroll-margin 1 - hscroll-step 1 - scroll-conservatively 1001 - scroll-margin 0 - scroll-preserve-screen-position t - ;; Whitespace (see `editorconfig') - indent-tabs-mode nil - require-final-newline t - tab-always-indent t - tab-width 4 - tabify-regexp "^\t* [ \t]+" ; for :retab - whitespace-line-column fill-column - whitespace-style - '(face tabs tab-mark trailing lines-tail) - whitespace-display-mappings - '((tab-mark ?\t [?› ?\t]) (newline-mark 10 [36 10])) - ;; Wrapping - truncate-lines t - truncate-partial-width-windows 50 - visual-fill-column-center-text nil - word-wrap t - ;; clipboard - x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING) - ;; Use a shared clipboard - select-enable-clipboard t - select-enable-primary t) +(setq-default + shift-select-mode t ; activate mark on shift-click + ;; Save clipboard contents into kill-ring before replacing them + save-interprogram-paste-before-kill t + ;; Bookmarks + bookmark-default-file (concat doom-cache-dir "/bookmarks") + bookmark-save-flag t + ;; Formatting + delete-trailing-lines nil + fill-column 80 + sentence-end-double-space nil + ;; Scrolling + hscroll-margin 1 + hscroll-step 1 + scroll-conservatively 1001 + scroll-margin 0 + scroll-preserve-screen-position t + ;; Whitespace (see `editorconfig') + indent-tabs-mode nil + require-final-newline t + tab-always-indent t + tab-width 4 + tabify-regexp "^\t* [ \t]+" ; for :retab + whitespace-line-column fill-column + whitespace-style + '(face tabs tab-mark trailing lines-tail) + whitespace-display-mappings + '((tab-mark ?\t [?› ?\t]) (newline-mark 10 [36 10])) + ;; Wrapping + truncate-lines t + truncate-partial-width-windows 50 + visual-fill-column-center-text nil + word-wrap t) ;; Save point across sessions (require 'saveplace) @@ -71,7 +67,6 @@ "^/var/folders/.+$" "^/tmp/.+") recentf-max-menu-items 0 recentf-max-saved-items 250 - recentf-auto-cleanup 600 recentf-filename-handlers '(abbreviate-file-name)) (@quiet (recentf-mode 1)) @@ -136,18 +131,21 @@ ;; Autoloaded Plugins ;; -(@def-package ace-link :commands (ace-link-help ace-link-org)) +(@def-package ace-link + :commands (ace-link-help ace-link-org)) (@def-package ace-window :commands ace-window - :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) - aw-scope 'frame - aw-background t)) + :config + (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) + aw-scope 'frame + aw-background t)) (@def-package avy :commands (avy-goto-char-2 avy-goto-line) - :config (setq avy-all-windows nil - avy-background t)) + :config + (setq avy-all-windows nil + avy-background t)) (@def-package command-log-mode :commands (command-log-mode global-command-log-mode) @@ -161,7 +159,8 @@ :config (emr-initialize) (define-key popup-menu-keymap [escape] 'keyboard-quit)) -(@def-package expand-region :commands (er/expand-region er/contract-region er/mark-symbol er/mark-word)) +(@def-package expand-region + :commands (er/expand-region er/contract-region er/mark-symbol er/mark-word)) (@def-package goto-last-change :commands goto-last-change) @@ -178,7 +177,8 @@ (@def-package rotate-text :commands (rotate-text rotate-text-backward) - :config (push '("true" "false") rotate-text-words)) + :config + (push '("true" "false") rotate-text-words)) (@def-package smart-forward :commands (smart-up smart-down smart-backward smart-forward)) diff --git a/core/core-lib.el b/core/core-lib.el index 950f52788..2b44d1ea1 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -58,7 +58,8 @@ compilation." ((symbol-function 'write-region) (lambda (start end filename &optional append visit lockname mustbenew) (unless visit (setq visit 'no-message)) - (doom--old-write-region-fn start end filename append visit lockname mustbenew))) + (doom--old-write-region-fn + start end filename append visit lockname mustbenew))) (inhibit-message t) (save-silently t)) ,@forms))) @@ -109,7 +110,9 @@ Examples: (files (plist-get plist :files)) (pred (plist-get plist :when))) (cond ((or files in pred) - (when (and files (not (or (listp files) (stringp files)))) + (when (and files + (not (or (listp files) + (stringp files)))) (user-error "@associate :files expects a string or list of strings")) (let ((hook-name (intern (format "doom--init-mode-%s" mode)))) (macroexp-progn diff --git a/core/core-projects.el b/core/core-projects.el index 73b060a78..5f78c02cf 100644 --- a/core/core-projects.el +++ b/core/core-projects.el @@ -1,8 +1,8 @@ ;;; core-projects.el --- tools for getting around your project -;; I want Emacs to be nominally aware of the projects. `projectile' provides -;; tools for digging through project files and exposing an API I can use to make -;; other plugins/features project-aware. +;; I want Emacs to be aware of the projects. `projectile' provides tools for +;; digging through project files and exposing an API I can use to make other +;; plugins/features project-aware. (@def-package projectile :demand t :init diff --git a/core/core-ui.el b/core/core-ui.el index f7e400bfe..e2e656434 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -2,40 +2,39 @@ (defvar doom-ui-fringe-size '3 "Default fringe width") -(defvar doom-ui-default-background "#333333" - "The default frame background color.") - -(defvar doom-ui-default-foreground "#CCCCCC" - "The default frame foreground color.") - -(setq bidi-display-reordering nil ; disable bidirectional text for tiny performance boost - blink-matching-paren nil ; don't blink--too distracting - cursor-in-non-selected-windows nil ; hide cursors in other windows - frame-inhibit-implied-resize t - ;; remove continuation arrow on right fringe - fringe-indicator-alist (delq (assq 'continuation fringe-indicator-alist) - fringe-indicator-alist) - highlight-nonselected-window nil - image-animate-loop t - indicate-buffer-boundaries nil - indicate-empty-lines nil - max-mini-window-height 0.3 - mode-line-default-help-echo nil ; disable mode-line mouseovers - resize-mini-windows 'grow-only ; Minibuffer resizing - show-help-function nil ; hide :help-echo text - show-paren-delay 0.075 - show-paren-highlight-openparen t - show-paren-when-point-inside-paren t - split-width-threshold nil ; favor horizontal splits - uniquify-buffer-name-style nil - use-dialog-box nil ; always avoid GUI - visible-cursor nil - x-stretch-cursor t - ;; no beeping or blinking please - ring-bell-function 'ignore - visible-bell nil - ;; Ask for confirmation on quit only if real buffers exist - confirm-kill-emacs (lambda (_) (if (doom-real-buffers-list) (y-or-n-p "››› Quit?") t))) +(setq-default + bidi-display-reordering nil ; disable bidirectional text for tiny performance boost + blink-matching-paren nil ; don't blink--too distracting + cursor-in-non-selected-windows nil ; hide cursors in other windows + frame-inhibit-implied-resize t + ;; remove continuation arrow on right fringe + fringe-indicator-alist (delq (assq 'continuation fringe-indicator-alist) + fringe-indicator-alist) + highlight-nonselected-window nil + image-animate-loop t + indicate-buffer-boundaries nil + indicate-empty-lines nil + jit-lock-defer-time nil + jit-lock-stealth-nice 0.1 + jit-lock-stealth-time 0.2 + jit-lock-stealth-verbose nil + max-mini-window-height 0.3 + mode-line-default-help-echo nil ; disable mode-line mouseovers + resize-mini-windows 'grow-only ; Minibuffer resizing + show-help-function nil ; hide :help-echo text + show-paren-delay 0.075 + show-paren-highlight-openparen t + show-paren-when-point-inside-paren t + split-width-threshold nil ; favor horizontal splits + uniquify-buffer-name-style nil + use-dialog-box nil ; always avoid GUI + visible-cursor nil + x-stretch-cursor t + ;; no beeping or blinking please + ring-bell-function 'ignore + visible-bell nil + ;; Ask for confirmation on quit only if real buffers exist + confirm-kill-emacs (lambda (_) (if (doom-real-buffers-list) (y-or-n-p "››› Quit?") t))) (fset 'yes-or-no-p 'y-or-n-p) ; y/n instead of yes/no @@ -66,7 +65,7 @@ disabled.") doom--mode-line nil)) (force-mode-line-update)) ;; Ensure major-mode or theme changes don't overwrite these variables -(put 'doom--old-modeline 'permanent-local t) +(put 'doom--old-modeline-format 'permanent-local t) (put 'doom-hide-modeline-mode 'permanent-local t) @@ -80,14 +79,12 @@ disabled.") (scroll-bar-mode -1) (tool-bar-mode -1) ;; buffer name in frame title - (setq-default frame-title-format '("%b")) + (setq-default frame-title-format '("DOOM Emacs")) ;; standardize fringe width (fringe-mode doom-ui-fringe-size) (setq default-frame-alist (append `((left-fringe . ,doom-ui-fringe-size) - (right-fringe . ,doom-ui-fringe-size) - (background-color . ,doom-ui-default-background) - (foreground-color . ,doom-ui-default-foreground)) + (right-fringe . ,doom-ui-fringe-size)) default-frame-alist)) ;; no fringe in the minibuffer (@add-hook (emacs-startup minibuffer-setup) @@ -160,12 +157,12 @@ file." (remove-hook 'after-save-hook 'doom|adjust-indent-guides t) (delete-trailing-whitespace)))) -;; Some modes don't adequately highlight numbers, therefore... +;; For modes that don't adequately highlight numbers (@def-package highlight-numbers :commands highlight-numbers-mode) ;; Line highlighting (@def-package hl-line ; built-in - :init + :config ;; stickiness doesn't play nice with emacs 25+ (setq hl-line-sticky-flag nil global-hl-line-sticky-flag nil)) @@ -174,7 +171,9 @@ file." ;; plugin than the built-in `linum'. (@def-package nlinum :commands nlinum-mode - :preface (defvar nlinum-format "%4d ") + :preface + (defvar linum-format "%3d ") + (defvar nlinum-format "%4d ") :init (@add-hook (markdown-mode prog-mode scss-mode web-mode conf-mode groovy-mode diff --git a/core/core.el b/core/core.el index 36ed68a1d..b28ad540f 100644 --- a/core/core.el +++ b/core/core.el @@ -69,30 +69,36 @@ and `doom-initialize-autoloads'.") (setq-default buffer-file-coding-system 'utf-8) ; with sugar on top ;; Configuration -(setq ad-redefinition-accept 'accept ; silence advised function warnings - apropos-do-all t ; make `apropos' more useful - compilation-always-kill t ; kill compilation process before starting another - compilation-ask-about-save nil ; save all buffers on `compile' - compilation-scroll-output t - confirm-nonexistent-file-or-buffer t - enable-recursive-minibuffers nil - debug-on-error (and (not noninteractive) doom-debug-mode) - idle-update-delay 1 ; update ui less often - ;; keep the point out of the minibuffer - minibuffer-prompt-properties '(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt) - ;; History & backup settings - auto-save-default nil - auto-save-list-file-name (concat doom-cache-dir "/autosave") - backup-directory-alist (list (cons ".*" (concat doom-cache-dir "/backup/"))) - create-lockfiles nil - history-length 1000 - make-backup-files nil - vc-make-backup-files nil) +(setq-default + ad-redefinition-action 'accept ; silence advised function warnings + apropos-do-all t ; make `apropos' more useful + compilation-always-kill t ; kill compilation process before starting another + compilation-ask-about-save nil ; save all buffers on `compile' + compilation-scroll-output t + confirm-nonexistent-file-or-buffer t + custom-file (concat doom-cache-dir "custom.el") + enable-recursive-minibuffers nil + debug-on-error (and (not noninteractive) doom-debug-mode) + idle-update-delay 1 ; update ui less often + ;; keep the point out of the minibuffer + minibuffer-prompt-properties '(read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt) + ;; History & backup settings + auto-save-default nil + auto-save-list-file-name (concat doom-cache-dir "/autosave") + backup-directory-alist (list (cons ".*" (concat doom-cache-dir "/backup/"))) + create-lockfiles nil + history-length 1000 + make-backup-files nil + vc-make-backup-files nil + ;; in case of `persistent-soft' + pcache-directory (concat doom-cache-dir "pcache/")) ;; be quiet at startup (advice-add 'display-startup-echo-area-message :override 'ignore) (setq inhibit-startup-message t - inhibit-startup-echo-area-message user-login-name) + inhibit-startup-echo-area-message user-login-name + initial-major-mode 'fundamental-mode + initial-scratch-message nil) ;;;