diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index 3c23488..005acb9 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -36,13 +36,13 @@ (require 'siren-display-indentation) (require 'siren-display-line-numbers) (require 'siren-embark) -(require 'siren-highlight-symbol) (require 'siren-marginalia) (require 'siren-minions) (require 'siren-mwim) (require 'siren-rainbow) (require 'siren-recentf) (require 'siren-savehist) +(require 'siren-symbol-overlay) (require 'siren-undo-fu) (require 'siren-undo-fu-session) (require 'siren-uniquify) diff --git a/modules/editor/siren-symbol-overlay.el b/modules/editor/siren-symbol-overlay.el new file mode 100644 index 0000000..8ab8c01 --- /dev/null +++ b/modules/editor/siren-symbol-overlay.el @@ -0,0 +1,41 @@ +;;; siren-symbol-overlay.el --- jimeh's Emacs Siren: symbol-overlay configuration. + +;;; Commentary: + +;; Basic configuration for symbol-overlay. + +;;; Code: + +(use-package symbol-overlay + :diminish symbol-overlay-mode + + :general + ("C-c i" 'symbol-overlay-put) + ("C-c C-p" 'symbol-overlay-jump-prev) + ("C-c C-n" 'symbol-overlay-jump-next) + + :hook + (prog-mode . symbol-overlay-mode) + + :custom + (symbol-overlay-idle-time 0.5) + + :preface + (defvar ruby-block-beg-keywords) + (defvar ruby-modifier-beg-keywords) + (defvar ruby-block-mid-keywords) + (defvar ruby-block-op-keywords) + (defun siren-symbol-overlay-ignore-function-ruby (symbol) + "Determine whether SYMBOL should be ignored (Ruby)." + (or (symbol-overlay-match-keyword-list symbol '("end")) + (symbol-overlay-match-keyword-list symbol ruby-block-beg-keywords) + (symbol-overlay-match-keyword-list symbol ruby-modifier-beg-keywords) + (symbol-overlay-match-keyword-list symbol ruby-block-mid-keywords) + (symbol-overlay-match-keyword-list symbol ruby-block-op-keywords))) + + :config + (add-to-list 'symbol-overlay-ignore-functions + '(ruby-mode . siren-symbol-overlay-ignore-function-ruby))) + +(provide 'siren-symbol-overlay) +;;; siren-symbol-overlay.el ends here diff --git a/straight/versions/default.el b/straight/versions/default.el index 1f660e9..8559d09 100644 --- a/straight/versions/default.el +++ b/straight/versions/default.el @@ -117,7 +117,6 @@ ("helm-xref" . "ea0e4ed8a9baf236e4085cbc7178241f109a53fa") ("helpful" . "94a07d49a80f66f8ebc54a49a4b4f6899a65fbe3") ("highlight-indent-guides" . "cf352c85cd15dd18aa096ba9d9ab9b7ab493e8f6") - ("highlight-symbol.el" . "7a789c779648c55b16e43278e51be5898c121b3a") ("ht.el" . "c4c1be487d6ecb353d07881526db05d7fc90ea87") ("httprepl.el" . "cfa3693267a8ed1c96a86a126823f37dbfe077d8") ("hydra" . "9e9e00cb240ea1903ffd36a54956b3902c379d29") @@ -208,6 +207,7 @@ ("straight.el" . "fed215348076ba9182f634e0770a175220474b5a") ("string-edit.el" . "d7c4b9db6c4987b5c022a9858e6302a4c53aff5f") ("string-inflection" . "fd7926ac17293e9124b31f706a4e8f38f6a9b855") + ("symbol-overlay" . "c439b73a5f9713bb3dce98986b589bb901e22130") ("tablist" . "faab7a035ef2258cc4ea2182f67e3aedab7e2af9") ("terraform-doc" . "16179e57ce290190c222b27961900657a1981330") ("terraform-mode" . "e560caaa9d9a11b0868adf6d9dcae5ebb5055730") diff --git a/themes/siren-doom-themes-overrides-theme.el b/themes/siren-doom-themes-overrides-theme.el index cdfc92a..9c4e32f 100644 --- a/themes/siren-doom-themes-overrides-theme.el +++ b/themes/siren-doom-themes-overrides-theme.el @@ -86,7 +86,6 @@ '(git-gutter-fr:modified :foreground (doom-blend vc-modified bg 0.7) :background (doom-blend vc-modified bg 0.0)) - ;; tree-sitter '(tree-sitter-hl-face:property :inherit font-lock-constant-face) ;; disable italic '(tree-sitter-hl-face:method.call :foreground (doom-blend functions keywords 0.6)) @@ -123,6 +122,27 @@ '(ahs-warning-face :foreground (doom-color red) :background 'unspecified) + ;; symbol-overlay + '(symbol-overlay-default-face + (&dark :background (doom-lighten region 0.1) :distant-foreground fg-alt) + (&light :background (doom-darken region 0.1) :distant-foreground fg-alt)) + '(symbol-overlay-face-1 :background (doom-blend blue bg 0.4) + :distant-foreground fg-alt) + '(symbol-overlay-face-2 :background (doom-blend violet bg 0.4) + :distant-foreground fg-alt) + '(symbol-overlay-face-3 :background (doom-blend yellow bg 0.3) + :distant-foreground fg-alt) + '(symbol-overlay-face-4 :background (doom-blend orange bg 0.3) + :distant-foreground fg-alt) + '(symbol-overlay-face-5 :background (doom-blend red bg 0.3) + :distant-foreground fg-alt) + '(symbol-overlay-face-6 :background (doom-blend magenta bg 0.3) + :distant-foreground fg-alt) + '(symbol-overlay-face-7 :background (doom-blend green bg 0.4) + :distant-foreground fg-alt) + '(symbol-overlay-face-8 :background (doom-blend cyan bg 0.2) + :distant-foreground fg-alt) + ;; dired+ '(diredp-dir-heading :foreground (doom-color magenta)) '(diredp-dir-name :foreground (doom-lighten magenta 0.25))