feat(editor): replace highlight-symbol with symbol-overlay

symbol-overlay claims to be much faster at highlighting symbols across
large files, and also has better interactive symbol manipulation
features.
This commit is contained in:
2022-08-15 23:56:17 +01:00
parent f0c303da3c
commit c7d1f1d749
4 changed files with 64 additions and 3 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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")

View File

@@ -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))