From 464757740ee92d1b98dd5e76d5f7e5182f0540dc Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 26 Jan 2020 22:50:07 +0000 Subject: [PATCH] feat(editor): Support Emacs 27's native fill-column-indicator --- modules/editor/siren-display-fill-column.el | 26 +++++++++++++++++---- themes/siren-theme-doom-nord-light.el | 5 +++- themes/siren-theme-doom-nord.el | 5 +++- themes/siren-theme-doom-one.el | 5 +++- themes/siren-theme-doom-opera-light.el | 5 +++- themes/siren-theme-doom-vibrant.el | 5 +++- 6 files changed, 42 insertions(+), 9 deletions(-) diff --git a/modules/editor/siren-display-fill-column.el b/modules/editor/siren-display-fill-column.el index ab5ce8e..0a95e16 100644 --- a/modules/editor/siren-display-fill-column.el +++ b/modules/editor/siren-display-fill-column.el @@ -6,12 +6,30 @@ ;;; Code: -(require 'siren-fci) +;; Emacs 27.x and later: Use native display-fill-column-indicator +(when (not (version< emacs-version "27.0")) + (use-package display-fill-column-indicator + :ensure nil ;; loaded from emacs built-ins -(defun siren-display-fill-column (&optional arg) - "Activate or deactivate visual fill column. + :hook + (prog-mode . display-fill-column-indicator-mode) + + :custom + (display-fill-column-indicator-character ?\u2502)) + + (defun siren-display-fill-column (&optional arg) + "Activate or deactivate visual fill column. Optional ARG is passed directly to mode toggle function." - (fci-mode (or arg t))) + (display-fill-column-indicator-mode arg))) + +;; Emacs 26.x: Use fill-column-indicator package +(when (version< emacs-version "27.0") + (require 'siren-fci) + + (defun siren-display-fill-column (&optional arg) + "Activate or deactivate visual fill column. +Optional ARG is passed directly to mode toggle function." + (fci-mode (or arg t)))) (provide 'siren-display-fill-column) ;;; siren-display-fill-column.el ends here diff --git a/themes/siren-theme-doom-nord-light.el b/themes/siren-theme-doom-nord-light.el index 513409c..acd6c90 100644 --- a/themes/siren-theme-doom-nord-light.el +++ b/themes/siren-theme-doom-nord-light.el @@ -44,7 +44,10 @@ (set-face-attribute 'font-lock-variable-name-face nil :foreground (doom-lighten (doom-color 'blue) 0.25)) (set-face-attribute 'vertical-border nil - :foreground (doom-darken (doom-color 'vertical-bar) 0.1))) + :foreground (doom-darken (doom-color 'vertical-bar) 0.1)) + (when (not (version< emacs-version "27.0")) + (set-face-attribute 'fill-column-indicator nil + :foreground (doom-lighten (doom-color 'base3) 0.10)))) (provide 'siren-theme-doom-nord-light) ;;; siren-theme-doom-nord-light.el ends here diff --git a/themes/siren-theme-doom-nord.el b/themes/siren-theme-doom-nord.el index b4ce00d..11a7a73 100644 --- a/themes/siren-theme-doom-nord.el +++ b/themes/siren-theme-doom-nord.el @@ -44,7 +44,10 @@ (set-face-attribute 'font-lock-variable-name-face nil :foreground (doom-lighten (doom-color 'blue) 0.25)) (set-face-attribute 'vertical-border nil - :foreground (doom-darken (doom-color 'vertical-bar) 0.1))) + :foreground (doom-darken (doom-color 'vertical-bar) 0.1)) + (when (not (version< emacs-version "27.0")) + (set-face-attribute 'fill-column-indicator nil + :foreground (doom-lighten (doom-color 'base3) 0.10)))) (provide 'siren-theme-doom-nord) ;;; siren-theme-doom-nord.el ends here diff --git a/themes/siren-theme-doom-one.el b/themes/siren-theme-doom-one.el index 2fc1d98..34f3426 100644 --- a/themes/siren-theme-doom-one.el +++ b/themes/siren-theme-doom-one.el @@ -43,7 +43,10 @@ (set-face-attribute 'font-lock-variable-name-face nil :foreground (doom-lighten (doom-color 'blue) 0.25)) (set-face-attribute 'vertical-border nil - :foreground (doom-darken (doom-color 'vertical-bar) 0.1))) + :foreground (doom-darken (doom-color 'vertical-bar) 0.1)) + (when (not (version< emacs-version "27.0")) + (set-face-attribute 'fill-column-indicator nil + :foreground (doom-lighten (doom-color 'base3) 0.10)))) (provide 'siren-theme-doom-one) ;;; siren-theme-doom-one.el ends here diff --git a/themes/siren-theme-doom-opera-light.el b/themes/siren-theme-doom-opera-light.el index 7678479..c0daae8 100644 --- a/themes/siren-theme-doom-opera-light.el +++ b/themes/siren-theme-doom-opera-light.el @@ -44,7 +44,10 @@ (set-face-attribute 'font-lock-variable-name-face nil :foreground (doom-lighten (doom-color 'blue) 0.25)) (set-face-attribute 'vertical-border nil - :foreground (doom-darken (doom-color 'vertical-bar) 0.1))) + :foreground (doom-darken (doom-color 'vertical-bar) 0.1)) + (when (not (version< emacs-version "27.0")) + (set-face-attribute 'fill-column-indicator nil + :foreground (doom-lighten (doom-color 'base3) 0.10)))) (provide 'siren-theme-doom-opera-light) ;;; siren-theme-doom-opera-light.el ends here diff --git a/themes/siren-theme-doom-vibrant.el b/themes/siren-theme-doom-vibrant.el index a347ed0..16bffa2 100644 --- a/themes/siren-theme-doom-vibrant.el +++ b/themes/siren-theme-doom-vibrant.el @@ -43,7 +43,10 @@ (set-face-attribute 'font-lock-variable-name-face nil :foreground (doom-lighten (doom-color 'blue) 0.25)) (set-face-attribute 'vertical-border nil - :foreground (doom-darken (doom-color 'vertical-bar) 0.1))) + :foreground (doom-darken (doom-color 'vertical-bar) 0.1)) + (when (not (version< emacs-version "27.0")) + (set-face-attribute 'fill-column-indicator nil + :foreground (doom-lighten (doom-color 'base3) 0.10)))) (provide 'siren-theme-doom-vibrant) ;;; siren-theme-doom-vibrant.el ends here