@@ -86,9 +86,6 @@ request is triggered.
8686 triggerCharacter:: Union{String, Nothing} = nothing
8787end
8888
89- """
90- Request method: textDocument/completion
91- """
9289@interface CompletionParams @extends TextDocumentPositionParams, WorkDoneProgressParams, PartialResultParams begin
9390 """
9491 The completion context. This is only available if the client specifies
@@ -98,6 +95,11 @@ Request method: textDocument/completion
9895 context:: Union{CompletionContext, Nothing} = nothing
9996end
10097
98+ @interface CompletionRequest @extends RequestMessage begin
99+ method:: String = " textDocument/completion"
100+ params:: CompletionParams
101+ end
102+
101103"""
102104Defines whether the insert text in a completion item should be interpreted as
103105plain text or a snippet.
274276 detail:: Union{String, Nothing} = nothing
275277
276278 " A human-readable string that represents a doc-comment."
277- # documentation::Union{Union{MarkupContent, String}, Nothing} = nothing
278- documentation:: Union{String, Nothing} = nothing
279+ documentation:: Union{MarkupContent, String, Nothing} = nothing
279280
280281 """
281282 Indicates if this item is deprecated.
@@ -499,3 +500,159 @@ presented in the editor.
499500 """
500501 items:: Vector{CompletionItem}
501502end
503+
504+ @interface CompletionClientCapabilities begin
505+ """
506+ Whether completion supports dynamic registration.
507+ """
508+ dynamicRegistration:: Union{Nothing, Bool} = nothing
509+
510+ """
511+ The client supports the following `CompletionItem` specific
512+ capabilities.
513+ """
514+ completionItem:: Union {Nothing, @interface begin
515+ """
516+ Client supports snippets as insert text.
517+
518+ A snippet can define tab stops and placeholders with `\$ 1`, `\$ 2`
519+ and `\$ {3:foo}`. `\$ 0` defines the final tab stop, it defaults to
520+ the end of the snippet. Placeholders with equal identifiers are
521+ linked, that is typing in one will update others too.
522+ """
523+ snippetSupport:: Union{Nothing, Bool} = nothing
524+
525+ """
526+ Client supports commit characters on a completion item.
527+ """
528+ commitCharactersSupport:: Union{Nothing, Bool} = nothing
529+
530+ """
531+ Client supports the follow content formats for the documentation
532+ property. The order describes the preferred format of the client.
533+ """
534+ documentationFormat:: Union{Nothing, Vector{MarkupKind.Ty}} = nothing
535+
536+ """
537+ Client supports the deprecated property on a completion item.
538+ """
539+ deprecatedSupport:: Union{Nothing, Bool} = nothing
540+
541+ """
542+ Client supports the preselect property on a completion item.
543+ """
544+ preselectSupport:: Union{Nothing, Bool} = nothing
545+
546+ """
547+ Client supports the tag property on a completion item. Clients
548+ supporting tags have to handle unknown tags gracefully. Clients
549+ especially need to preserve unknown tags when sending a completion
550+ item back to the server in a resolve call.
551+
552+ # Tags
553+ - since - 3.15.0
554+ """
555+ tagSupport:: Union {Nothing, @interface begin
556+ """
557+ The tags supported by the client.
558+ """
559+ valueSet:: Vector{CompletionItemTag.Ty}
560+ end } = nothing
561+
562+ """
563+ Client supports insert replace edit to control different behavior if
564+ a completion item is inserted in the text or should replace text.
565+
566+ # Tags
567+ - since - 3.16.0
568+ """
569+ insertReplaceSupport:: Union{Nothing, Bool} = nothing
570+
571+ """
572+ Indicates which properties a client can resolve lazily on a
573+ completion item. Before version 3.16.0 only the predefined properties
574+ `documentation` and `detail` could be resolved lazily.
575+
576+ # Tags
577+ - since - 3.16.0
578+ """
579+ resolveSupport:: Union {Nothing, @interface begin
580+ """
581+ The properties that a client can resolve lazily.
582+ """
583+ properties:: Vector{String}
584+ end } = nothing
585+
586+ """
587+ The client supports the `insertTextMode` property on
588+ a completion item to override the whitespace handling mode
589+ as defined by the client (see `insertTextMode`).
590+
591+ # Tags
592+ - since - 3.16.0
593+ """
594+ insertTextModeSupport:: Union {Nothing, @interface begin
595+ valueSet:: Vector{InsertTextMode.Ty}
596+ end } = nothing
597+
598+ """
599+ The client has support for completion item label
600+ details (see also `CompletionItemLabelDetails`).
601+
602+ # Tags
603+ - since - 3.17.0
604+ """
605+ labelDetailsSupport:: Union{Nothing, Bool} = nothing
606+ end } = nothing
607+
608+ completionItemKind:: Union {Nothing, @interface begin
609+ """
610+ The completion item kind values the client supports. When this
611+ property exists the client also guarantees that it will
612+ handle values outside its set gracefully and falls back
613+ to a default value when unknown.
614+
615+ If this property is not present the client only supports
616+ the completion items kinds from `Text` to `Reference` as defined in
617+ the initial version of the protocol.
618+ """
619+ valueSet:: Union{Nothing, Vector{CompletionItemKind.Ty}} = nothing
620+ end } = nothing
621+
622+ """
623+ The client supports to send additional context information for a
624+ `textDocument/completion` request.
625+ """
626+ contextSupport:: Union{Nothing, Bool} = nothing
627+
628+ """
629+ The client's default when the completion item doesn't provide a
630+ `insertTextMode` property.
631+
632+ # Tags
633+ - since - 3.17.0
634+ """
635+ insertTextMode:: Union{Nothing, InsertTextMode.Ty} = nothing
636+
637+ """
638+ The client supports the following `CompletionList` specific
639+ capabilities.
640+
641+ # Tags
642+ - since - 3.17.0
643+ """
644+ completionList:: Union {Nothing, @interface begin
645+ """
646+ The client supports the following itemDefaults on
647+ a completion list.
648+
649+ The value lists the supported property names of the
650+ `CompletionList.itemDefaults` object. If omitted
651+ no properties are supported.
652+
653+ # Tags
654+ - since - 3.17.0
655+ """
656+ itemDefaults:: Union{Nothing, Vector{String}} = nothing
657+ end } = nothing
658+ end
0 commit comments