|
25 | 25 | ;;; Code:
|
26 | 26 |
|
27 | 27 | (require 'lsp-mode)
|
| 28 | +(require 'lsp-semantic-tokens) |
28 | 29 |
|
29 | 30 | (defgroup lsp-ada nil
|
30 | 31 | "Settings for Ada Language Server."
|
|
68 | 69 | :group 'lsp-ada
|
69 | 70 | :package-version '(lsp-mode "8.0.1"))
|
70 | 71 |
|
| 72 | +(defcustom lsp-ada-semantic-token-face-overrides |
| 73 | + '(("namespace" . default) |
| 74 | + ("modifier" . lsp-face-semhl-keyword)) |
| 75 | + "Semantic token face overrides to be applied." |
| 76 | + :type '(alist :key-type string |
| 77 | + :value-type (choice (face :tag "Face") |
| 78 | + (const :tag "No Face" nil))) |
| 79 | + :group 'lsp-ada |
| 80 | + :package-version '(lsp-mode "8.0.1")) |
| 81 | + |
| 82 | +(defcustom lsp-ada-semantic-token-modifier-face-overrides |
| 83 | + '(("declaration") |
| 84 | + ("definition") |
| 85 | + ("implementation") |
| 86 | + ("static") |
| 87 | + ("modification") |
| 88 | + ("documentation") |
| 89 | + ("defaultLibrary")) |
| 90 | + "Semantic token modifier face overrides to be applied." |
| 91 | + :type '(alist :key-type string |
| 92 | + :value-type (choice (face :tag "Face") |
| 93 | + (const :tag "No Face" nil))) |
| 94 | + :group 'lsp-ada |
| 95 | + :package-version '(lsp-mode "8.0.1")) |
| 96 | + |
71 | 97 | (defun lsp-ada--environment ()
|
72 | 98 | "Add environmental variables if needed."
|
73 | 99 | (let ((project-root (lsp-workspace-root)))
|
|
96 | 122 | (with-lsp-workspace workspace
|
97 | 123 | (lsp--set-configuration
|
98 | 124 | (lsp-configuration-section "ada"))))
|
| 125 | + :semantic-tokens-faces-overrides `( :types ,lsp-ada-semantic-token-face-overrides |
| 126 | + :modifiers ,lsp-ada-semantic-token-modifier-face-overrides) |
99 | 127 | :server-id 'ada-ls
|
100 | 128 | :synchronize-sections '("ada")
|
101 | 129 | :environment-fn 'lsp-ada--environment))
|
|
0 commit comments