Rewrote indentation detection
More robust and easier to customize.
This commit is contained in:
parent
088480047c
commit
35e5a47e9f
5 changed files with 31 additions and 17 deletions
|
@ -16,6 +16,10 @@ modes are active and the buffer is read-only.")
|
||||||
indentation settings or not. This should be set by editorconfig if it
|
indentation settings or not. This should be set by editorconfig if it
|
||||||
successfully sets indent_style/indent_size.")
|
successfully sets indent_style/indent_size.")
|
||||||
|
|
||||||
|
(defvar doom-detect-indentation-excluded-modes '(fundamental-mode)
|
||||||
|
"A list of major modes in which indentation should be automatically
|
||||||
|
detected.")
|
||||||
|
|
||||||
(setq-default
|
(setq-default
|
||||||
large-file-warning-threshold 30000000
|
large-file-warning-threshold 30000000
|
||||||
vc-follow-symlinks t
|
vc-follow-symlinks t
|
||||||
|
@ -185,6 +189,23 @@ savehist file."
|
||||||
|
|
||||||
(smartparens-global-mode +1))
|
(smartparens-global-mode +1))
|
||||||
|
|
||||||
|
;; Automatic detection of indent settings
|
||||||
|
(def-package! dtrt-indent
|
||||||
|
:unless noninteractive
|
||||||
|
:defer t
|
||||||
|
:init
|
||||||
|
(defun doom|detect-indentation ()
|
||||||
|
(unless (or (not after-init-time)
|
||||||
|
doom-inhibit-indent-detection
|
||||||
|
(member (substring (buffer-name) 0 1) '(" " "*"))
|
||||||
|
(memq major-mode doom-detect-indentation-excluded-modes))
|
||||||
|
(dtrt-indent-mode +1)))
|
||||||
|
(add-hook! '(change-major-mode-after-body-hook read-only-mode-hook)
|
||||||
|
#'doom|detect-indentation)
|
||||||
|
:config
|
||||||
|
(setq dtrt-indent-verbosity (if doom-debug-mode 2 0))
|
||||||
|
(add-to-list 'dtrt-indent-hook-generic-mapping-list '(t tab-width)))
|
||||||
|
|
||||||
;; Branching undo
|
;; Branching undo
|
||||||
(def-package! undo-tree
|
(def-package! undo-tree
|
||||||
:after-call (doom-exit-buffer-hook after-find-file)
|
:after-call (doom-exit-buffer-hook after-find-file)
|
||||||
|
@ -206,22 +227,6 @@ savehist file."
|
||||||
(setq command-log-mode-auto-show t
|
(setq command-log-mode-auto-show t
|
||||||
command-log-mode-open-log-turns-on-mode t)
|
command-log-mode-open-log-turns-on-mode t)
|
||||||
|
|
||||||
(def-package! dtrt-indent
|
|
||||||
:unless noninteractive
|
|
||||||
:defer t
|
|
||||||
:init
|
|
||||||
(defun doom|detect-indentation ()
|
|
||||||
(unless (or doom-inhibit-indent-detection
|
|
||||||
buffer-read-only
|
|
||||||
(memq major-mode '(fundamental-mode org-mode))
|
|
||||||
(not (derived-mode-p 'prog-mode 'text-mode 'conf-mode)))
|
|
||||||
(require 'dtrt-indent)
|
|
||||||
(dtrt-indent-mode +1)))
|
|
||||||
(add-hook 'after-change-major-mode-hook #'doom|detect-indentation)
|
|
||||||
:config
|
|
||||||
(setq dtrt-indent-verbosity (if doom-debug-mode 2 0))
|
|
||||||
(add-to-list 'dtrt-indent-hook-generic-mapping-list '(t tab-width)))
|
|
||||||
|
|
||||||
(def-package! expand-region
|
(def-package! expand-region
|
||||||
:commands (er/contract-region er/mark-symbol er/mark-word)
|
:commands (er/contract-region er/mark-symbol er/mark-word)
|
||||||
:config
|
:config
|
||||||
|
|
|
@ -71,6 +71,8 @@ You should use `det-eshell-alias!' to change this.")
|
||||||
eshell-glob-case-insensitive t
|
eshell-glob-case-insensitive t
|
||||||
eshell-error-if-no-glob t)
|
eshell-error-if-no-glob t)
|
||||||
|
|
||||||
|
(add-to-list 'doom-detect-indentation-excluded-modes 'eshell-mode nil #'eq)
|
||||||
|
|
||||||
;; Consider eshell buffers real
|
;; Consider eshell buffers real
|
||||||
(add-hook 'eshell-mode-hook #'doom|mark-buffer-as-real)
|
(add-hook 'eshell-mode-hook #'doom|mark-buffer-as-real)
|
||||||
|
|
||||||
|
|
|
@ -8,4 +8,5 @@
|
||||||
(after! term
|
(after! term
|
||||||
(set-env! "SHELL")
|
(set-env! "SHELL")
|
||||||
|
|
||||||
(add-hook 'term-mode-hook #'doom|mark-buffer-as-real))
|
(add-hook 'term-mode-hook #'doom|mark-buffer-as-real)
|
||||||
|
(add-to-list 'doom-detect-indentation-excluded-modes 'term-mode nil #'eq))
|
||||||
|
|
|
@ -41,6 +41,9 @@
|
||||||
("add-hook" "remove-hook")
|
("add-hook" "remove-hook")
|
||||||
("add-hook!" "remove-hook!")))
|
("add-hook!" "remove-hook!")))
|
||||||
|
|
||||||
|
;; variable-width indentation is superior in elisp
|
||||||
|
(add-to-list 'doom-detect-indentation-excluded-modes 'emacs-lisp-mode nil #'eq)
|
||||||
|
|
||||||
(add-hook! 'emacs-lisp-mode-hook
|
(add-hook! 'emacs-lisp-mode-hook
|
||||||
#'(;; 3rd-party functionality
|
#'(;; 3rd-party functionality
|
||||||
auto-compile-on-save-mode doom|enable-delete-trailing-whitespace
|
auto-compile-on-save-mode doom|enable-delete-trailing-whitespace
|
||||||
|
|
|
@ -191,6 +191,9 @@ unfold to point on startup."
|
||||||
org-preview-latex-image-directory (concat doom-cache-dir "org-latex/")
|
org-preview-latex-image-directory (concat doom-cache-dir "org-latex/")
|
||||||
org-format-latex-options (plist-put org-format-latex-options :scale 1.5))
|
org-format-latex-options (plist-put org-format-latex-options :scale 1.5))
|
||||||
|
|
||||||
|
;; Don't do automatic indent detection in org files
|
||||||
|
(add-to-list 'doom-detect-indentation-excluded-modes 'org-mode nil #'eq)
|
||||||
|
|
||||||
;; Previews are usually rendered with light backgrounds, so ensure their
|
;; Previews are usually rendered with light backgrounds, so ensure their
|
||||||
;; background (and foreground) match the current theme.
|
;; background (and foreground) match the current theme.
|
||||||
(defun +org|update-latex-preview-background-color ()
|
(defun +org|update-latex-preview-background-color ()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue