From 7ed3e92dbb5fcbf93c231a2be2769203614043b9 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 16 Aug 2020 11:34:01 +0100 Subject: [PATCH] feat(core): use buffer local hl-line-mode instead of global-hl-line-mode This allows specific major-modes to disable hl-line-mode, which is desired some terminal/shell modes like vterm where the hl-line flickers constantly while typing. --- core/siren-core-editor.el | 3 --- core/siren-core-modules.el | 8 +++++-- modules/major-modes/siren-fundamental-mode.el | 21 +++++++++++++++++++ .../siren-prog-mode.el | 1 + modules/major-modes/siren-special-mode.el | 21 +++++++++++++++++++ .../siren-text-mode.el | 1 + 6 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 modules/major-modes/siren-fundamental-mode.el rename modules/{languages => major-modes}/siren-prog-mode.el (96%) create mode 100644 modules/major-modes/siren-special-mode.el rename modules/{languages => major-modes}/siren-text-mode.el (95%) diff --git a/core/siren-core-editor.el b/core/siren-core-editor.el index 58f82c5..c910495 100644 --- a/core/siren-core-editor.el +++ b/core/siren-core-editor.el @@ -21,9 +21,6 @@ ;; Show matching parentheses (show-paren-mode t) -;; Highlight current line globally -(global-hl-line-mode t) - ;; Delete the selection with a keypress (delete-selection-mode t) diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index 3dc28aa..10a6509 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -131,8 +131,13 @@ ;; XWidgets (require 'siren-xwidget-plus) -;; Languages +;; Major modes +(require 'siren-fundamental-mode) (require 'siren-prog-mode) +(require 'siren-special-mode) +(require 'siren-text-mode) + +;; Languages (require 'siren-applescript) (require 'siren-caddyfile) (require 'siren-coffee) @@ -169,7 +174,6 @@ (require 'siren-slim) (require 'siren-sql) (require 'siren-terraform) -(require 'siren-text-mode) (require 'siren-thrift) (require 'siren-toml) (require 'siren-typescript) diff --git a/modules/major-modes/siren-fundamental-mode.el b/modules/major-modes/siren-fundamental-mode.el new file mode 100644 index 0000000..56fad9f --- /dev/null +++ b/modules/major-modes/siren-fundamental-mode.el @@ -0,0 +1,21 @@ +;;; siren-fundamental-mode.el --- jimeh's Emacs Siren: fundamental-mode configuration. + +;;; Commentary: + +;; Basic configuration for fundamental-mode. + +;;; Code: + +(use-package fundamental-mode + :straight (:type built-in) + :defer t + + :hook + (fundamental-mode . siren-fundamental-mode-setup) + + :init + (defun siren-fundamental-mode-setup () + (hl-line-mode t))) + +(provide 'siren-fundamental-mode) +;;; siren-fundamental-mode.el ends here diff --git a/modules/languages/siren-prog-mode.el b/modules/major-modes/siren-prog-mode.el similarity index 96% rename from modules/languages/siren-prog-mode.el rename to modules/major-modes/siren-prog-mode.el index c345dee..8b2abbb 100644 --- a/modules/languages/siren-prog-mode.el +++ b/modules/major-modes/siren-prog-mode.el @@ -20,6 +20,7 @@ whitespace-action '(auto-cleanup)) (siren-display-indentation 1) + (hl-line-mode t) (visual-line-mode t) (whitespace-mode t))) diff --git a/modules/major-modes/siren-special-mode.el b/modules/major-modes/siren-special-mode.el new file mode 100644 index 0000000..07161e1 --- /dev/null +++ b/modules/major-modes/siren-special-mode.el @@ -0,0 +1,21 @@ +;;; siren-special-mode.el --- jimeh's Emacs Siren: special-mode configuration. + +;;; Commentary: + +;; Basic configuration for special-mode. + +;;; Code: + +(use-package special-mode + :straight (:type built-in) + :defer t + + :hook + (special-mode . siren-special-mode-setup) + + :init + (defun siren-special-mode-setup () + (hl-line-mode t))) + +(provide 'siren-special-mode) +;;; siren-special-mode.el ends here diff --git a/modules/languages/siren-text-mode.el b/modules/major-modes/siren-text-mode.el similarity index 95% rename from modules/languages/siren-text-mode.el rename to modules/major-modes/siren-text-mode.el index 2df9df7..60cebcb 100644 --- a/modules/languages/siren-text-mode.el +++ b/modules/major-modes/siren-text-mode.el @@ -14,6 +14,7 @@ (defun siren-text-mode-setup () (setq fill-column 80) + (hl-line-mode t) (visual-line-mode t))) (provide 'siren-text-mode)