@@ -378,6 +378,23 @@ IS-RANGE-PROVIDER is non-nil when server supports range requests."
378
378
(lsp-warn " No face has been associated to the %s '%s': consider adding a corresponding definition to %s"
379
379
category id varname)) maybe-face)) identifiers)))
380
380
381
+ (defun lsp-semantic-tokens--replace-alist-values (a b )
382
+ " Replace alist A values with B ones where available."
383
+ (-map
384
+ (-lambda ((ak . av))
385
+ (cons ak (alist-get ak b av nil #'string= )))
386
+ a))
387
+
388
+ (defun lsp-semantic-tokens--type-faces-for (client )
389
+ " Return the semantic token type faces for CLIENT."
390
+ (lsp-semantic-tokens--replace-alist-values lsp-semantic-token-faces
391
+ (plist-get (lsp--client-semantic-tokens-faces-overrides client) :types )))
392
+
393
+ (defun lsp-semantic-tokens--modifier-faces-for (client )
394
+ " Return the semantic token type faces for CLIENT."
395
+ (lsp-semantic-tokens--replace-alist-values lsp-semantic-token-modifier-faces
396
+ (plist-get (lsp--client-semantic-tokens-faces-overrides client) :modifiers )))
397
+
381
398
;;;### autoload
382
399
(defun lsp--semantic-tokens-initialize-workspace (workspace )
383
400
" Initialize semantic tokens for WORKSPACE."
@@ -389,15 +406,16 @@ IS-RANGE-PROVIDER is non-nil when server supports range requests."
389
406
(lsp--registered-capability-options))
390
407
(lsp:server-capabilities-semantic-tokens-provider?
391
408
(lsp--workspace-server-capabilities workspace)))))
392
- (-let* (((&SemanticTokensOptions :legend ) token-capabilities))
409
+ (-let* (((&SemanticTokensOptions :legend ) token-capabilities)
410
+ (client (lsp--workspace-client workspace)))
393
411
(setf (lsp--workspace-semantic-tokens-faces workspace)
394
412
(lsp--semantic-tokens-build-face-map (lsp:semantic-tokens-legend-token-types legend)
395
- lsp-semantic-token- faces
413
+ ( lsp-semantic-tokens--type- faces-for client)
396
414
" semantic token"
397
415
" lsp-semantic-token-faces" ))
398
416
(setf (lsp--workspace-semantic-tokens-modifier-faces workspace)
399
417
(lsp--semantic-tokens-build-face-map (lsp:semantic-tokens-legend-token-modifiers legend)
400
- lsp-semantic-token- modifier-faces
418
+ ( lsp-semantic-tokens-- modifier-faces-for client)
401
419
" semantic token modifier"
402
420
" lsp-semantic-token-modifier-faces" )))))
403
421
0 commit comments