|
80 | 80 | :opt-un [::additional-text-edits ::filter-text ::detail ::text-edit |
81 | 81 | :completion-item/kind ::documentation ::data |
82 | 82 | ::insert-text :completion-item/insert-text-format])) |
| 83 | +(s/def ::completion-item-or-error |
| 84 | + (s/and (s/or :error ::response-error |
| 85 | + :completion-item ::completion-item) |
| 86 | + (s/conformer second))) |
83 | 87 |
|
84 | 88 | (s/def ::completion-items (s/coll-of ::completion-item)) |
| 89 | +(s/def ::completion-items-or-error |
| 90 | + (s/and (s/or :error ::response-error |
| 91 | + :completion-items ::completion-items) |
| 92 | + (s/conformer second))) |
85 | 93 |
|
86 | 94 | (s/def :input.completion-item/kind |
87 | 95 | (s/and integer? |
|
101 | 109 | (s/def ::uri string?) |
102 | 110 |
|
103 | 111 | (s/def ::edits (s/coll-of ::text-edit)) |
| 112 | +(s/def ::edits-or-error |
| 113 | + (s/and (s/or :error ::response-error |
| 114 | + :edits ::edits) |
| 115 | + (s/conformer second))) |
| 116 | + |
104 | 117 | (s/def ::text-document (s/keys :req-un [::version ::uri])) |
105 | 118 | (s/def ::text-document-edit (s/keys :req-un [::text-document ::edits])) |
106 | 119 | (s/def ::changes (s/coll-of (s/tuple string? ::edits) :kind map?)) |
|
129 | 142 |
|
130 | 143 | (s/def ::workspace-edit-or-error |
131 | 144 | (s/and (s/or :error ::response-error |
| 145 | + ;; Why do we have two names for the same right-hand side? |
| 146 | + ;; Wouldn't `:changes` always match first, meaning we'd never see `:document-changes`? |
| 147 | + ;; And isn't the left-hand side essentially unused? |
132 | 148 | :changes ::workspace-edit |
133 | 149 | :document-changes ::workspace-edit) |
134 | 150 | (s/conformer second))) |
|
139 | 155 | (s/keys :req-un [:workspace-edit-params/edit])) |
140 | 156 |
|
141 | 157 | (s/def ::location (s/keys :req-un [::uri ::range])) |
| 158 | +(s/def ::location-or-error |
| 159 | + (s/and (s/or :error ::response-error |
| 160 | + :location ::location) |
| 161 | + (s/conformer second))) |
142 | 162 | (s/def ::locations (s/coll-of ::location)) |
| 163 | +(s/def ::locations-or-error |
| 164 | + (s/and (s/or :error ::response-error |
| 165 | + :locations ::locations) |
| 166 | + (s/conformer second))) |
143 | 167 |
|
144 | 168 | (s/def :signature-help/documentation ::documentation) |
145 | 169 |
|
|
158 | 182 | (s/def ::signature-help (s/keys :req-un [:signature-help/signatures] |
159 | 183 | :opt-un [:signature-help/active-signature |
160 | 184 | :signature-help/active-parameter])) |
| 185 | +(s/def ::signature-help-or-error |
| 186 | + (s/and (s/or :error ::response-error |
| 187 | + :signature-help ::signature-help) |
| 188 | + (s/conformer second))) |
161 | 189 |
|
162 | 190 | (def symbol-kind-enum |
163 | 191 | {:file 1 :module 2 :namespace 3 :package 4 :class 5 :method 6 :property 7 :field 8 :constructor 9 |
|
182 | 210 | (s/def :document-symbol/children (s/coll-of ::document-symbol)) |
183 | 211 |
|
184 | 212 | (s/def ::document-symbols (s/coll-of ::document-symbol)) |
| 213 | +(s/def ::document-symbols-or-error |
| 214 | + (s/and (s/or :error ::response-error |
| 215 | + :document-symbols ::document-symbols) |
| 216 | + (s/conformer second))) |
185 | 217 |
|
186 | 218 | (s/def ::document-highlight (s/keys :req-un [::range])) |
187 | 219 |
|
188 | 220 | (s/def ::document-highlights (s/coll-of ::document-highlight)) |
| 221 | +(s/def ::document-highlights-or-error |
| 222 | + (s/and (s/or :error ::response-error |
| 223 | + :document-highlights ::document-highlights) |
| 224 | + (s/conformer second))) |
189 | 225 |
|
190 | | -(s/def ::symbol-information (s/keys :req-un [::name :symbol/kind ::location])) |
| 226 | +(s/def ::workspace-symbol (s/keys :req-un [::name :symbol/kind ::location])) |
| 227 | +(s/def ::workspace-symbol-or-error |
| 228 | + (s/and (s/or :error ::response-error |
| 229 | + :workspace-symbol ::workspace-symbol) |
| 230 | + (s/conformer second))) |
191 | 231 |
|
192 | | -(s/def ::workspace-symbols (s/coll-of ::symbol-information)) |
| 232 | +(s/def ::workspace-symbols (s/coll-of ::workspace-symbol)) |
| 233 | +(s/def ::workspace-symbols-or-error |
| 234 | + (s/and (s/or :error ::response-error |
| 235 | + :workspace-symbols ::workspace-symbols) |
| 236 | + (s/conformer second))) |
193 | 237 |
|
194 | 238 | (s/def ::severity integer?) |
195 | 239 |
|
|
214 | 258 |
|
215 | 259 | (s/def ::hover (s/keys :req-un [::contents] |
216 | 260 | :opt-un [::range])) |
| 261 | +(s/def ::hover-or-error |
| 262 | + (s/and (s/or :error ::response-error |
| 263 | + :hover ::hover) |
| 264 | + (s/conformer second))) |
217 | 265 |
|
218 | 266 | (s/def :command/title string?) |
219 | 267 | (s/def :command/command string?) |
|
286 | 334 | ::command |
287 | 335 | :code-action/preferred |
288 | 336 | ::data])) |
| 337 | +(s/def ::code-action-or-error |
| 338 | + (s/and (s/or :error ::response-error |
| 339 | + :code-action ::code-action) |
| 340 | + (s/conformer second))) |
289 | 341 |
|
290 | 342 | (s/def ::code-actions (s/coll-of ::code-action)) |
| 343 | +(s/def ::code-actions-or-error |
| 344 | + (s/and (s/or :error ::response-error |
| 345 | + :code-actions ::code-actions) |
| 346 | + (s/conformer second))) |
291 | 347 |
|
292 | 348 | (s/def ::code-lens (s/keys :req-un [::range] |
293 | 349 | :opt-un [::command ::data])) |
| 350 | +(s/def ::code-lens-or-error |
| 351 | + (s/and (s/or :error ::response-error |
| 352 | + :code-lens ::code-lens) |
| 353 | + (s/conformer second))) |
294 | 354 |
|
295 | 355 | (s/def ::code-lenses (s/coll-of ::code-lens)) |
| 356 | +(s/def ::code-lenses-or-error |
| 357 | + (s/and (s/or :error ::response-error |
| 358 | + :code-lenses ::code-lenses) |
| 359 | + (s/conformer second))) |
296 | 360 |
|
297 | 361 | (s/def ::semantic-tokens (s/keys :req-un [::data] |
298 | 362 | :opt-un [::result-id])) |
| 363 | +(s/def ::semantic-tokens-or-error |
| 364 | + (s/and (s/or :error ::response-error |
| 365 | + :semantic-tokens ::semantic-tokens) |
| 366 | + (s/conformer second))) |
299 | 367 |
|
300 | 368 | (s/def ::call-hierarchy-item (s/keys :req-un [::name |
301 | 369 | :symbol/kind |
|
305 | 373 | :opt-un [::tags ::detail ::data])) |
306 | 374 |
|
307 | 375 | (s/def ::call-hierarchy-items (s/coll-of ::call-hierarchy-item)) |
| 376 | +(s/def ::call-hierarchy-items-or-error |
| 377 | + (s/and (s/or :error ::response-error |
| 378 | + :call-hierarchy-items ::call-hierarchy-items) |
| 379 | + (s/conformer second))) |
308 | 380 |
|
309 | 381 | (s/def :call-hierarchy/from-ranges (s/coll-of ::range)) |
310 | 382 | (s/def :call-hierarchy/from ::call-hierarchy-item) |
|
315 | 387 | (s/def ::call-hierarchy-outgoing-call (s/keys :req-un [:call-hierarchy/to :call-hierarchy/from-ranges])) |
316 | 388 |
|
317 | 389 | (s/def ::call-hierarchy-incoming-calls (s/coll-of ::call-hierarchy-incoming-call)) |
| 390 | +(s/def ::call-hierarchy-incoming-calls-or-error |
| 391 | + (s/and (s/or :error ::response-error |
| 392 | + :call-hierarchy-incoming-calls ::call-hierarchy-incoming-calls) |
| 393 | + (s/conformer second))) |
318 | 394 | (s/def ::call-hierarchy-outgoing-calls (s/coll-of ::call-hierarchy-outgoing-call)) |
| 395 | +(s/def ::call-hierarchy-outgoing-calls-or-error |
| 396 | + (s/and (s/or :error ::response-error |
| 397 | + :call-hierarchy-outgoing-calls ::call-hierarchy-outgoing-calls) |
| 398 | + (s/conformer second))) |
319 | 399 |
|
320 | 400 | (s/def :linked-editing-range/ranges (s/coll-of ::range)) |
321 | 401 |
|
|
0 commit comments