diff options
author | Tom Willemse | 2023-05-25 00:17:29 -0700 |
---|---|---|
committer | Tom Willemse | 2023-05-25 00:17:29 -0700 |
commit | 4a8c54f922a241ab298e8ef688ea10ebf9988b5f (patch) | |
tree | 7438e5b3d60120ca32397a79cff0b41c2c8af5bb | |
parent | 7e5e8c1ce4ad874e42170e90f95dd1a420c376ce (diff) | |
download | emacs-config-4a8c54f922a241ab298e8ef688ea10ebf9988b5f.tar.gz emacs-config-4a8c54f922a241ab298e8ef688ea10ebf9988b5f.zip |
[oni-csharp] Use text properties instead of overlays
Use text properties instead of overlays and add some extra information.
-rw-r--r-- | oni-csharp/oni-csharp.el | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/oni-csharp/oni-csharp.el b/oni-csharp/oni-csharp.el index 02b1cd7..1eb20a4 100644 --- a/oni-csharp/oni-csharp.el +++ b/oni-csharp/oni-csharp.el @@ -186,24 +186,34 @@ _cs_: Solution (interactive) (save-excursion (goto-char (point-min)) - (remove-overlays (point-min) (point-max) 'oni-csharp--overlayp t) (while (re-search-forward (rx bol (zero-or-more whitespace) - "{" - (group (minimal-match (one-or-more (or alphanumeric "-")))) - "} = {" - (group (minimal-match (one-or-more (or alphanumeric "-")))) - "}" + (group + "{" + (group (minimal-match (one-or-more (or alphanumeric "-")))) + "}") + " = " + (group + "{" + (group (minimal-match (one-or-more (or alphanumeric "-")))) + "}") eol) nil :noerror) - (let ((current-overlay (make-overlay (line-beginning-position) (line-end-position)))) - (overlay-put current-overlay 'after-string - (propertize (format " => %s" (gethash (match-string 1) oni-csharp--projects)) - 'face '(:foreground "#808080"))) - (overlay-put current-overlay 'oni-csharp--overlayp t) - (overlay-put current-overlay 'evaporate t))))) + (add-text-properties + (match-beginning 1) (match-end 1) + (list 'display (gethash (match-string 2) oni-csharp--projects) + 'face 'font-lock-variable-name-face + 'help-echo (buffer-substring-no-properties + (match-beginning 1) (match-end 1)) + 'intangile nil)) + (add-text-properties + (match-beginning 3) (match-end 3) + (list 'display (gethash (match-string 4) oni-csharp--projects) + 'face 'font-lock-variable-name-face + 'help-echo (buffer-substring-no-properties + (match-beginning 3) (match-end 3))))))) (define-derived-mode csharp-solution-mode prog-mode "Sln" "A major mode for viewing and editing C# ‘.sln’ files." |