|
25 | 25 |
|
26 | 26 | ;;; Code:
|
27 | 27 |
|
28 |
| -(require `lsp-mode) |
| 28 | +(require 'lsp-mode) |
29 | 29 |
|
30 | 30 | (defgroup lsp-magik nil
|
31 | 31 | "LSP support for Magik."
|
|
34 | 34 | :tag "Lsp Magik"
|
35 | 35 | :package-version '(lsp-mode . "9.0.0"))
|
36 | 36 |
|
37 |
| -(defcustom lsp-magik-version "0.10.1" |
| 37 | +(defcustom lsp-magik-version "0.11.0" |
38 | 38 | "Version of LSP server."
|
39 |
| - :type `string |
40 |
| - :group `lsp-magik |
| 39 | + :type 'string |
| 40 | + :group 'lsp-magik |
41 | 41 | :package-version '(lsp-mode . "9.0.0"))
|
42 | 42 |
|
43 | 43 | (defcustom lsp-magik-download-url-lsp (format "https://github.com/StevenLooman/magik-tools/releases/download/%s/magik-language-server-%s.jar" lsp-magik-version lsp-magik-version)
|
44 | 44 | "URL of LSP server to download."
|
45 |
| - :type `string |
46 |
| - :group `lsp-magik |
| 45 | + :type 'string |
| 46 | + :group 'lsp-magik |
47 | 47 | :package-version '(lsp-mode . "9.0.0"))
|
48 | 48 |
|
49 | 49 | (lsp-dependency
|
50 | 50 | 'magik-ls
|
51 |
| - `(:download :url lsp-magik-download-url-lsp |
| 51 | + '(:download :url lsp-magik-download-url-lsp |
52 | 52 | :store-path ,(f-join lsp-server-install-dir "magik-ls" (format "magik-language-server-%s.jar" lsp-magik-version))))
|
53 | 53 |
|
54 | 54 | (defcustom lsp-magik-ls-path
|
55 | 55 | (f-join lsp-server-install-dir (format "magik-ls/magik-language-server-%s.jar" lsp-magik-version))
|
56 | 56 | "Path of the language server."
|
57 | 57 | :type 'string
|
58 |
| - :group `lsp-magik |
| 58 | + :group 'lsp-magik |
59 | 59 | :package-version '(lsp-mode . "9.0.0"))
|
60 | 60 |
|
61 | 61 | (lsp-defcustom lsp-magik-product-dirs []
|
62 | 62 | "Paths to (compiled, containing a libs/ directory) products."
|
63 |
| - :type `lsp-string-vector |
64 |
| - :group `lsp-magik |
| 63 | + :type 'lsp-string-vector |
| 64 | + :group 'lsp-magik |
65 | 65 | :package-version '(lsp-mode . "9.0.1")
|
66 | 66 | :lsp-path "magik.productDirs")
|
67 | 67 |
|
68 | 68 | (lsp-defcustom lsp-magik-lint-override-config-file nil
|
69 | 69 | "Override path to magiklintrc.properties."
|
70 | 70 | :type 'string
|
71 |
| - :group `lsp-magik |
| 71 | + :group 'lsp-magik |
72 | 72 | :package-version '(lsp-mode . "9.0.0")
|
73 | 73 | :lsp-path "magik.lint.overrideConfigFile")
|
74 | 74 |
|
75 | 75 | (lsp-defcustom lsp-magik-typing-type-database-paths []
|
76 | 76 | "Paths to type databases."
|
77 |
| - :type `lsp-string-vector |
78 |
| - :group `lsp-magik |
| 77 | + :type 'lsp-string-vector |
| 78 | + :group 'lsp-magik |
79 | 79 | :package-version '(lsp-mode . "9.0.0")
|
80 | 80 | :lsp-path "magik.typing.typeDatabasePaths")
|
81 | 81 |
|
82 | 82 | (lsp-defcustom lsp-magik-typing-show-typing-inlay-hints nil
|
83 | 83 | "Show typing inlay hints."
|
84 |
| - :type `boolean |
85 |
| - :group `lsp-magik |
| 84 | + :type 'boolean |
| 85 | + :group 'lsp-magik |
86 | 86 | :package-version '(lsp-mode . "9.0.1")
|
87 | 87 | :lsp-path "magik.typing.showTypingInlayHints")
|
88 | 88 |
|
89 | 89 | (lsp-defcustom lsp-magik-typing-show-argument-inlay-hints nil
|
90 | 90 | "Show (certain) argument name inlay hints."
|
91 |
| - :type `boolean |
92 |
| - :group `lsp-magik |
| 91 | + :type 'boolean |
| 92 | + :group 'lsp-magik |
93 | 93 | :package-version '(lsp-mode . "9.0.1")
|
94 | 94 | :lsp-path "magik.typing.showArgumentInlayHints")
|
95 | 95 |
|
96 | 96 | (lsp-defcustom lsp-magik-typing-enable-checks nil
|
97 | 97 | "Enable typing checks."
|
98 |
| - :type `boolean |
99 |
| - :group `lsp-magik |
| 98 | + :type 'boolean |
| 99 | + :group 'lsp-magik |
100 | 100 | :package-version '(lsp-mode . "9.0.0")
|
101 | 101 | :lsp-path "magik.typing.enableChecks")
|
102 | 102 |
|
103 | 103 | (lsp-defcustom lsp-magik-typing-index-global-usages t
|
104 | 104 | "Enable indexing of usages of globals by methods."
|
105 |
| - :type `boolean |
106 |
| - :group `lsp-magik |
| 105 | + :type 'boolean |
| 106 | + :group 'lsp-magik |
107 | 107 | :package-version '(lsp-mode . "9.0.1")
|
108 | 108 | :lsp-path "magik.typing.indexGlobalUsages")
|
109 | 109 |
|
110 | 110 | (lsp-defcustom lsp-magik-typing-index-method-usages nil
|
111 | 111 | "Enable indexing of usages of methods by methods."
|
112 |
| - :type `boolean |
113 |
| - :group `lsp-magik |
| 112 | + :type 'boolean |
| 113 | + :group 'lsp-magik |
114 | 114 | :package-version '(lsp-mode . "9.0.1")
|
115 | 115 | :lsp-path "magik.typing.indexMethodUsages")
|
116 | 116 |
|
117 | 117 | (lsp-defcustom lsp-magik-typing-index-slot-usages t
|
118 | 118 | "Enable indexing of usages of slots by methods."
|
119 |
| - :type `boolean |
120 |
| - :group `lsp-magik |
| 119 | + :type 'boolean |
| 120 | + :group 'lsp-magik |
121 | 121 | :package-version '(lsp-mode . "9.0.1")
|
122 | 122 | :lsp-path "magik.typing.indexSlotUsages")
|
123 | 123 |
|
124 | 124 | (lsp-defcustom lsp-magik-typing-index-condition-usages t
|
125 | 125 | "Enable indexing of usages of conditions by methods."
|
126 |
| - :type `boolean |
127 |
| - :group `lsp-magik |
| 126 | + :type 'boolean |
| 127 | + :group 'lsp-magik |
128 | 128 | :package-version '(lsp-mode . "9.0.1")
|
129 | 129 | :lsp-path "magik.typing.indexConditionUsages")
|
130 | 130 |
|
131 | 131 | (lsp-defcustom lsp-magik-typing-cache-indexed-definitions-method-usages t
|
132 | 132 | "Store and load the indexed definitions in the workspace folders."
|
133 |
| - :type `boolean |
134 |
| - :group `lsp-magik |
| 133 | + :type 'boolean |
| 134 | + :group 'lsp-magik |
135 | 135 | :package-version '(lsp-mode . "9.0.1")
|
136 | 136 | :lsp-path "magik.typing.cacheIndexedDefinitions")
|
137 | 137 |
|
| 138 | +(lsp-defcustom lsp-magik-formatting-indent-char "tab" |
| 139 | + "Indent character, \"tab\" or \"space\"." |
| 140 | + :type '(choice (const "tab") |
| 141 | + (const "space")) |
| 142 | + :group 'lsp-magik |
| 143 | + :package-version '(lsp-mode . "9.0.1") |
| 144 | + :lsp-path "magik.formatting.indentChar") |
| 145 | + |
| 146 | +(lsp-defcustom lsp-magik-formatting-indent-width 8 |
| 147 | + "Indent width (tab size or number of spaces)." |
| 148 | + :type 'integer |
| 149 | + :group 'lsp-magik |
| 150 | + :package-version '(lsp-mode . "9.0.1") |
| 151 | + :lsp-path "magik.formatting.indentWidth") |
| 152 | + |
| 153 | +(lsp-defcustom lsp-magik-formatting-insert-final-newline t |
| 154 | + "Insert final newline." |
| 155 | + :type 'boolean |
| 156 | + :group 'lsp-magik |
| 157 | + :package-version '(lsp-mode . "9.0.1") |
| 158 | + :lsp-path "magik.formatting.insertFinalNewline") |
| 159 | + |
| 160 | +(lsp-defcustom lsp-magik-formatting-trim-trailing-whitespace t |
| 161 | + "Trim trailing whitespace." |
| 162 | + :type 'boolean |
| 163 | + :group 'lsp-magik |
| 164 | + :package-version '(lsp-mode . "9.0.1") |
| 165 | + :lsp-path "magik.formatting.trimTrailingWhitespace") |
| 166 | + |
| 167 | +(lsp-defcustom lsp-magik-formatting-trim-final-newlines t |
| 168 | + "Trim final newlines." |
| 169 | + :type 'boolean |
| 170 | + :group 'lsp-magik |
| 171 | + :package-version '(lsp-mode . "9.0.1") |
| 172 | + :lsp-path "magik.formatting.trimFinalNewlines") |
| 173 | + |
| 174 | +(lsp-defcustom lsp-magik-formatting-indent-strategy "null" |
| 175 | + "The strategy used for indentation, \"null\" or \"relative\"." |
| 176 | + :type '(choice (const "null") |
| 177 | + (const "relative")) |
| 178 | + :group 'lsp-magik |
| 179 | + :package-version '(lsp-mode . "9.0.1") |
| 180 | + :lsp-path "magik.formatting.indentStrategy") |
| 181 | + |
138 | 182 | (defcustom lsp-magik-java-path (lambda ()
|
139 | 183 | (cond ((eq system-type 'windows-nt)
|
140 | 184 | (or (lsp-resolve-value (executable-find (expand-file-name "bin/java" (getenv "JAVA_HOME"))))
|
141 | 185 | (lsp-resolve-value (executable-find "java"))))
|
142 | 186 | (t "java")))
|
143 | 187 | "Path to Java Runtime, Java 11 minimum."
|
144 | 188 | :type 'string
|
145 |
| - :group `lsp-magik |
| 189 | + :group 'lsp-magik |
146 | 190 | :package-version '(lsp-mode . "9.0.1"))
|
147 | 191 |
|
148 | 192 | (lsp-register-client
|
|
0 commit comments