|
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