Skip to content

Commit

Permalink
line-nums: don't default to text/prog-mode if disabled by user
Browse files Browse the repository at this point in the history
When :enabled-for-modes is nil we default it to '(prog-mode text-mode), but if
any of them is in :disabled-for-modes then it shouldn't be enabled by default.
This commit fixes the second part.
  • Loading branch information
bmag committed Jun 27, 2018
1 parent d473121 commit b54ea8e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
20 changes: 12 additions & 8 deletions layers/+spacemacs/spacemacs-defaults/funcs.el
Original file line number Diff line number Diff line change
Expand Up @@ -1346,14 +1346,18 @@ Decision is based on `dotspacemacs-line-numbers'."
;; for the different possible cases
(defun spacemacs//linum-enabled-for-current-major-mode ()
"Return non-nil if line number is enabled for current major-mode."
;; default `enabled-for-modes' to '(prog-mode text-mode), because it is a more
;; sensible default than enabling in all buffers - including Magit buffers,
;; terminal buffers, etc.
(let* ((user-enabled-for-modes (spacemacs/mplist-get-values dotspacemacs-line-numbers
:enabled-for-modes))
(enabled-for-modes (or user-enabled-for-modes '(prog-mode text-mode)))
(disabled-for-modes (spacemacs/mplist-get-values dotspacemacs-line-numbers
:disabled-for-modes))
(let* ((disabled-for-modes (spacemacs/mplist-get-values dotspacemacs-line-numbers
:disabled-for-modes))
(user-enabled-for-modes (spacemacs/mplist-get-values dotspacemacs-line-numbers
:enabled-for-modes))
;; default `enabled-for-modes' to '(prog-mode text-mode), because it is
;; a more sensible default than enabling in all buffers - including
;; Magit buffers, terminal buffers, etc. But don't include prog-mode or
;; text-mode if they're explicitly disabled by user
(enabled-for-modes (or user-enabled-for-modes
(seq-difference '(prog-mode text-mode)
disabled-for-modes
#'eq)))
(enabled-for-parent (or (and (equal enabled-for-modes '(all)) 'all)
(apply #'derived-mode-p enabled-for-modes)))
(disabled-for-parent (apply #'derived-mode-p disabled-for-modes)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,8 @@
:disabled-for-modes linum-test-parent1)))
(should-not (test--enable-linum-for-mode 'linum-test-mode1))
(should (test--enable-linum-for-mode 'linum-test-mode2))))

(ert-deftest test-enable-linum-for-mode--9 ()
(let ((dotspacemacs-line-numbers '(:disabled-for-modes text-mode)))
(should-not (test--enable-linum-for-mode 'text-mode))
(should (test--enable-linum-for-mode 'prog-mode))))

0 comments on commit b54ea8e

Please sign in to comment.