[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/eglot-inactive-regions 6ad3ce4337 47/66: experimental supp
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/eglot-inactive-regions 6ad3ce4337 47/66: experimental support for ccls skippedRanges |
Date: |
Fri, 6 Dec 2024 06:59:56 -0500 (EST) |
branch: elpa/eglot-inactive-regions
commit 6ad3ce4337e818500c7aca2fb190b6af747dcb74
Author: Filippo Argiolas <filippo.argiolas@gmail.com>
Commit: Filippo Argiolas <filippo.argiolas@gmail.com>
experimental support for ccls skippedRanges
---
clangd-inactive-regions.el | 41 +++++++++++++++++++++++++----------------
1 file changed, 25 insertions(+), 16 deletions(-)
diff --git a/clangd-inactive-regions.el b/clangd-inactive-regions.el
index b2763b3ac9..42972afc12 100644
--- a/clangd-inactive-regions.el
+++ b/clangd-inactive-regions.el
@@ -279,31 +279,40 @@ Useful to update colors after a face or theme change."
(cl-defmethod eglot-client-capabilities :around (server)
(let ((base (cl-call-next-method)))
- (when (cl-find "clangd" (process-command (jsonrpc--process server))
- :test #'string-match)
+ (when (cl-some (lambda (s) (cl-find s (process-command (jsonrpc--process
server))
+ :test #'string-match))
+ '("clangd" "ccls"))
(setf (cl-getf (cl-getf base :textDocument)
:inactiveRegionsCapabilities)
'(:inactiveRegions t)))
base))
+(defun clangd-inactive-regions--handle-notification (uri regions)
+ (if-let* ((path (expand-file-name (eglot-uri-to-path uri)))
+ (buffer (find-buffer-visiting path)))
+ (with-current-buffer buffer
+ (when clangd-inactive-regions-mode
+ (unless clangd-inactive-regions--active
+ (setq clangd-inactive-regions--active t))
+ (setq clangd-inactive-regions--ranges '())
+ (cl-loop
+ for r across regions
+ for (beg . end) = (eglot-range-region r)
+ do
+ (push (cons beg end) clangd-inactive-regions--ranges))
+ (clangd-inactive-regions-refresh)))))
+
+(cl-defmethod eglot-handle-notification
+ (_server (_method (eql $ccls/publishSkippedRanges))
+ &key uri skippedRanges)
+ (clangd-inactive-regions--handle-notification uri skippedRanges))
+
(cl-defmethod eglot-handle-notification
(_server (_method (eql textDocument/inactiveRegions))
&key regions textDocument &allow-other-keys)
"Update inactive regions when clangd reports them."
- (if-let* ((path (expand-file-name (eglot-uri-to-path
- (cl-getf textDocument :uri))))
- (buffer (find-buffer-visiting path)))
- (with-current-buffer buffer
- (when clangd-inactive-regions-mode
- (unless clangd-inactive-regions--active
- (setq clangd-inactive-regions--active t))
- (setq clangd-inactive-regions--ranges '())
- (cl-loop
- for r across regions
- for (beg . end) = (eglot-range-region r)
- do
- (push (cons beg end) clangd-inactive-regions--ranges))
- (clangd-inactive-regions-refresh)))))
+ (if-let ((uri (cl-getf textDocument :uri)))
+ (clangd-inactive-regions--handle-notification uri regions)))
(provide 'clangd-inactive-regions)
- [nongnu] elpa/eglot-inactive-regions 2736b46310 10/66: Update dependencies and some minor changes, (continued)
- [nongnu] elpa/eglot-inactive-regions 2736b46310 10/66: Update dependencies and some minor changes, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 15d6db2d6d 13/66: Add some helper methods to set UI options, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions ae67afac14 12/66: Use overlays instead of changing text properties, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 343abb100c 26/66: Update README.md, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions e25016ddb8 22/66: Do not flush all inactive regions, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions d021d96fef 25/66: Update screenshots, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 52d2f80ccb 28/66: Tentatively limit global fontification hook to classic c modes, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 4ae3491ae3 39/66: doc and function names cleanup, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 21c26bc4e2 40/66: use built-in color to hex converter, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 4b698aaeb8 42/66: always enable inactiveRegions caps, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 6ad3ce4337 47/66: experimental support for ccls skippedRanges,
ELPA Syncer <=
- [nongnu] elpa/eglot-inactive-regions bdf568d9ff 63/66: suppress warnings for obsolete eglot functions, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 20cacf2b2d 16/66: Warn if shading method is unknown, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 879c5cf032 20/66: Advice default fontify region function instead of local one, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions a17388e4b4 30/66: Update docs and comments, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 8f341e9ad7 32/66: Minor cosmetics, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 9f439654dc 27/66: Only run our fontification hook if our mode is enabled, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 42f37d0970 33/66: update README.md, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 5d1580f32b 38/66: fix docs and bump version, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions cd53f3244a 56/66: rename darken-foreground dimmed faces, ELPA Syncer, 2024/12/06
- [nongnu] elpa/eglot-inactive-regions 437d09e552 53/66: revert to deprecated eglot functions, ELPA Syncer, 2024/12/06