Skip to content

Commit f5e54a0

Browse files
committed
all: support lsp 3.15.3
1 parent be98efe commit f5e54a0

40 files changed

+7383
-571
lines changed

basic.go

Lines changed: 116 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ type Diagnostic struct {
9595
// Message is the diagnostic's message.
9696
Message string `json:"message"`
9797

98+
// Tags is the additional metadata about the diagnostic.
99+
//
100+
// @since 3.15.0.
101+
Tags []DiagnosticTag `json:"tags,omitempty"`
102+
98103
// RelatedInformation an array of related diagnostic information, e.g. when symbol-names within
99104
// a scope collide all definitions can be marked via this property.
100105
RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`
@@ -133,6 +138,37 @@ func (d DiagnosticSeverity) String() string {
133138
}
134139
}
135140

141+
// DiagnosticTag is the diagnostic tags.
142+
//
143+
// @since 3.15.0.
144+
type DiagnosticTag float64
145+
146+
// list of DiagnosticTag.
147+
const (
148+
// DiagnosticUnnecessary unused or unnecessary code.
149+
//
150+
// Clients are allowed to render diagnostics with this tag faded out instead of having
151+
// an error squiggle.
152+
DiagnosticUnnecessary DiagnosticTag = 1
153+
154+
// DiagnosticDeprecated deprecated or obsolete code.
155+
//
156+
// Clients are allowed to rendered diagnostics with this tag strike through.
157+
DiagnosticDeprecated DiagnosticTag = 2
158+
)
159+
160+
// String implements fmt.Stringer.
161+
func (d DiagnosticTag) String() string {
162+
switch d {
163+
case DiagnosticUnnecessary:
164+
return "Unnecessary"
165+
case DiagnosticDeprecated:
166+
return "Deprecated"
167+
default:
168+
return strconv.FormatFloat(float64(d), 'f', -10, 64)
169+
}
170+
}
171+
136172
// DiagnosticRelatedInformation represents a related message and source code location for a diagnostic.
137173
//
138174
// This should be used to point to code locations that cause or related to a diagnostics, e.g when duplicating
@@ -312,6 +348,9 @@ type TextDocumentItem struct {
312348
type LanguageIdentifier string
313349

314350
const (
351+
// ABAPLanguage ABAP Language.
352+
ABAPLanguage LanguageIdentifier = "abap"
353+
315354
// BatLanguage Windows Bat Language.
316355
BatLanguage LanguageIdentifier = "bat"
317356

@@ -321,8 +360,8 @@ const (
321360
// ClojureLanguage Clojure Language.
322361
ClojureLanguage LanguageIdentifier = "clojure"
323362

324-
// CoffeescriptLanguage Coffeescript Language.
325-
CoffeescriptLanguage LanguageIdentifier = "coffeescript"
363+
// CoffeescriptLanguage CoffeeScript Language.
364+
CoffeeScriptLanguage LanguageIdentifier = "coffeescript"
326365

327366
// CLanguage C Language.
328367
CLanguage LanguageIdentifier = "c"
@@ -345,6 +384,12 @@ const (
345384
// DockerfileLanguage Dockerfile Language.
346385
DockerfileLanguage LanguageIdentifier = "dockerfile"
347386

387+
// ElixirLanguage Elixir Language.
388+
ElixirLanguage LanguageIdentifier = "elixir"
389+
390+
// ErlangLanguage Erlang Language.
391+
ErlangLanguage LanguageIdentifier = "erlang"
392+
348393
// FsharpLanguage F# Language.
349394
FsharpLanguage LanguageIdentifier = "fsharp"
350395

@@ -375,6 +420,9 @@ const (
375420
// JavaScriptLanguage JavaScript Language.
376421
JavaScriptLanguage LanguageIdentifier = "javascript"
377422

423+
// JavaScriptReactLanguage JavaScript React Language.
424+
JavaScriptReactLanguage LanguageIdentifier = "javascriptreact"
425+
378426
// JSONLanguage JSON Language.
379427
JSONLanguage LanguageIdentifier = "json"
380428

@@ -429,11 +477,11 @@ const (
429477
// RustLanguage Rust Language.
430478
RustLanguage LanguageIdentifier = "rust"
431479

432-
// ScssLanguage Sass Language.
433-
ScssLanguage LanguageIdentifier = "scss"
480+
// SCSSLanguage SCSS Languages syntax using curly brackets.
481+
SCSSLanguage LanguageIdentifier = "scss"
434482

435-
// SassLanguage Sass Language.
436-
SassLanguage LanguageIdentifier = "sass"
483+
// SASSLanguage SCSS Languages indented syntax.
484+
SASSLanguage LanguageIdentifier = "sass"
437485

438486
// ScalaLanguage Scala Language.
439487
ScalaLanguage LanguageIdentifier = "scala"
@@ -453,8 +501,11 @@ const (
453501
// TypeScriptLanguage TypeScript Language.
454502
TypeScriptLanguage LanguageIdentifier = "typescript"
455503

456-
// TexLanguage TeX Language.
457-
TexLanguage LanguageIdentifier = "tex"
504+
// TypeScriptReactLanguage TypeScript React Language.
505+
TypeScriptReactLanguage LanguageIdentifier = "typescriptreact"
506+
507+
// TeXLanguage TeX Language.
508+
TeXLanguage LanguageIdentifier = "tex"
458509

459510
// VBLanguage Visual Basic Language.
460511
VBLanguage LanguageIdentifier = "vb"
@@ -471,58 +522,63 @@ const (
471522

472523
// languageIdentifierMap map of LanguageIdentifiers.
473524
var languageIdentifierMap = map[string]LanguageIdentifier{
474-
"bat": BatLanguage,
475-
"bibtex": BibtexLanguage,
476-
"clojure": ClojureLanguage,
477-
"coffeescript": CoffeescriptLanguage,
478-
"c": CLanguage,
479-
"cpp": CppLanguage,
480-
"csharp": CsharpLanguage,
481-
"css": CSSLanguage,
482-
"diff": DiffLanguage,
483-
"dart": DartLanguage,
484-
"dockerfile": DockerfileLanguage,
485-
"fsharp": FsharpLanguage,
486-
"git-commit": GitCommitLanguage,
487-
"git-rebase": GitRebaseLanguage,
488-
"go": GoLanguage,
489-
"groovy": GroovyLanguage,
490-
"handlebars": HandlebarsLanguage,
491-
"html": HTMLLanguage,
492-
"ini": IniLanguage,
493-
"java": JavaLanguage,
494-
"javascript": JavaScriptLanguage,
495-
"json": JSONLanguage,
496-
"latex": LatexLanguage,
497-
"less": LessLanguage,
498-
"lua": LuaLanguage,
499-
"makefile": MakefileLanguage,
500-
"markdown": MarkdownLanguage,
501-
"objective-c": ObjectiveCLanguage,
502-
"objective-cpp": ObjectiveCppLanguage,
503-
"perl": PerlLanguage,
504-
"perl6": Perl6Language,
505-
"php": PHPLanguage,
506-
"powershell": PowershellLanguage,
507-
"jade": JadeLanguage,
508-
"python": PythonLanguage,
509-
"r": RLanguage,
510-
"razor": RazorLanguage,
511-
"ruby": RubyLanguage,
512-
"rust": RustLanguage,
513-
"scss": ScssLanguage,
514-
"sass": SassLanguage,
515-
"scala": ScalaLanguage,
516-
"shaderlab": ShaderlabLanguage,
517-
"shellscript": ShellscriptLanguage,
518-
"sql": SQLLanguage,
519-
"swift": SwiftLanguage,
520-
"typescript": TypeScriptLanguage,
521-
"tex": TexLanguage,
522-
"vb": VBLanguage,
523-
"xml": XMLLanguage,
524-
"xsl": XslLanguage,
525-
"yaml": YamlLanguage,
525+
"abap": ABAPLanguage,
526+
"bat": BatLanguage,
527+
"bibtex": BibtexLanguage,
528+
"clojure": ClojureLanguage,
529+
"coffeescript": CoffeeScriptLanguage,
530+
"c": CLanguage,
531+
"cpp": CppLanguage,
532+
"csharp": CsharpLanguage,
533+
"css": CSSLanguage,
534+
"diff": DiffLanguage,
535+
"dart": DartLanguage,
536+
"dockerfile": DockerfileLanguage,
537+
"elixir": ElixirLanguage,
538+
"erlang": ErlangLanguage,
539+
"fsharp": FsharpLanguage,
540+
"git-commit": GitCommitLanguage,
541+
"git-rebase": GitRebaseLanguage,
542+
"go": GoLanguage,
543+
"groovy": GroovyLanguage,
544+
"handlebars": HandlebarsLanguage,
545+
"html": HTMLLanguage,
546+
"ini": IniLanguage,
547+
"java": JavaLanguage,
548+
"javascript": JavaScriptLanguage,
549+
"javascriptreact": JavaScriptReactLanguage,
550+
"json": JSONLanguage,
551+
"latex": LatexLanguage,
552+
"less": LessLanguage,
553+
"lua": LuaLanguage,
554+
"makefile": MakefileLanguage,
555+
"markdown": MarkdownLanguage,
556+
"objective-c": ObjectiveCLanguage,
557+
"objective-cpp": ObjectiveCppLanguage,
558+
"perl": PerlLanguage,
559+
"perl6": Perl6Language,
560+
"php": PHPLanguage,
561+
"powershell": PowershellLanguage,
562+
"jade": JadeLanguage,
563+
"python": PythonLanguage,
564+
"r": RLanguage,
565+
"razor": RazorLanguage,
566+
"ruby": RubyLanguage,
567+
"rust": RustLanguage,
568+
"scss": SCSSLanguage,
569+
"sass": SASSLanguage,
570+
"scala": ScalaLanguage,
571+
"shaderlab": ShaderlabLanguage,
572+
"shellscript": ShellscriptLanguage,
573+
"sql": SQLLanguage,
574+
"swift": SwiftLanguage,
575+
"typescript": TypeScriptLanguage,
576+
"typescriptreact": TypeScriptReactLanguage,
577+
"tex": TeXLanguage,
578+
"vb": VBLanguage,
579+
"xml": XMLLanguage,
580+
"xsl": XslLanguage,
581+
"yaml": YamlLanguage,
526582
}
527583

528584
// ToLanguageIdentifier converts ft to LanguageIdentifier.

basic_gojay.go

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,35 @@ var (
4141
_ gojay.UnmarshalerJSONObject = (*Position)(nil)
4242
)
4343

44+
// Positions represents a slice of Position.
45+
type Positions []Position
46+
47+
// MarshalJSONArray implements gojay.MarshalerJSONArray.
48+
func (v Positions) MarshalJSONArray(enc *gojay.Encoder) {
49+
for i := range v {
50+
enc.Object(&v[i])
51+
}
52+
}
53+
54+
// IsNil implements gojay.MarshalerJSONArray.
55+
func (v Positions) IsNil() bool { return len(v) == 0 }
56+
57+
// UnmarshalJSONArray implements gojay.UnmarshalerJSONArray.
58+
func (v *Positions) UnmarshalJSONArray(dec *gojay.Decoder) error {
59+
value := Position{}
60+
if err := dec.Object(&value); err != nil {
61+
return err
62+
}
63+
*v = append(*v, value)
64+
return nil
65+
}
66+
67+
// compile time check whether the Positions implements a gojay.MarshalerJSONArray and gojay.UnmarshalerJSONArray interfaces.
68+
var (
69+
_ gojay.MarshalerJSONArray = (*Positions)(nil)
70+
_ gojay.UnmarshalerJSONArray = (*Positions)(nil)
71+
)
72+
4473
// MarshalJSONObject implements gojay.MarshalerJSONObject.
4574
func (v *Range) MarshalJSONObject(enc *gojay.Encoder) {
4675
enc.ObjectKey(keyStart, &v.Start)
@@ -144,6 +173,7 @@ func (v *Diagnostic) MarshalJSONObject(enc *gojay.Encoder) {
144173
enc.AddInterfaceKeyOmitEmpty(keyCode, v.Code)
145174
enc.StringKeyOmitEmpty(keySource, v.Source)
146175
enc.StringKey(keyMessage, v.Message)
176+
enc.ArrayKeyOmitEmpty(keyTags, DiagnosticTags(v.Tags))
147177
enc.ArrayKeyOmitEmpty(keyRelatedInformation, DiagnosticRelatedInformations(v.RelatedInformation))
148178
}
149179

@@ -163,6 +193,8 @@ func (v *Diagnostic) UnmarshalJSONObject(dec *gojay.Decoder, k string) error {
163193
return dec.String(&v.Source)
164194
case keyMessage:
165195
return dec.String(&v.Message)
196+
case keyTags:
197+
return dec.Array((*DiagnosticTags)(&v.Tags))
166198
case keyRelatedInformation:
167199
values := DiagnosticRelatedInformations{}
168200
err := dec.Array(&values)
@@ -175,14 +207,43 @@ func (v *Diagnostic) UnmarshalJSONObject(dec *gojay.Decoder, k string) error {
175207
}
176208

177209
// NKeys returns the number of keys to unmarshal.
178-
func (v *Diagnostic) NKeys() int { return 6 }
210+
func (v *Diagnostic) NKeys() int { return 7 }
179211

180212
// compile time check whether the Diagnostic implements a gojay.MarshalerJSONObject and gojay.UnmarshalerJSONObject interfaces.
181213
var (
182214
_ gojay.MarshalerJSONObject = (*Diagnostic)(nil)
183215
_ gojay.UnmarshalerJSONObject = (*Diagnostic)(nil)
184216
)
185217

218+
// DiagnosticTags represents a slice of DiagnosticTag.
219+
type DiagnosticTags []DiagnosticTag
220+
221+
// MarshalJSONArray implements gojay.MarshalerJSONArray.
222+
func (v DiagnosticTags) MarshalJSONArray(enc *gojay.Encoder) {
223+
for i := range v {
224+
enc.Float64(float64(v[i]))
225+
}
226+
}
227+
228+
// IsNil implements gojay.MarshalerJSONArray.
229+
func (v DiagnosticTags) IsNil() bool { return len(v) == 0 }
230+
231+
// UnmarshalJSONArray implements gojay.UnmarshalerJSONArray.
232+
func (v *DiagnosticTags) UnmarshalJSONArray(dec *gojay.Decoder) error {
233+
var value DiagnosticTag
234+
if err := dec.Float64((*float64)(&value)); err != nil {
235+
return err
236+
}
237+
*v = append(*v, value)
238+
return nil
239+
}
240+
241+
// compile time check whether the CodeActionKinds implements a gojay.MarshalerJSONArray and gojay.UnmarshalerJSONArray interfaces.
242+
var (
243+
_ gojay.MarshalerJSONArray = (*DiagnosticTags)(nil)
244+
_ gojay.UnmarshalerJSONArray = (*DiagnosticTags)(nil)
245+
)
246+
186247
// MarshalJSONObject implements gojay.MarshalerJSONObject.
187248
func (v *DiagnosticRelatedInformation) MarshalJSONObject(enc *gojay.Encoder) {
188249
enc.ObjectKey(keyLocation, &v.Location)
@@ -718,7 +779,7 @@ var (
718779
func (v *VersionedTextDocumentIdentifier) MarshalJSONObject(enc *gojay.Encoder) {
719780
enc.StringKey(keyURI, string(v.URI))
720781
if v.Version == nil {
721-
v.Version = Uint64Ptr(0)
782+
v.Version = NewVersion(0)
722783
}
723784
enc.Uint64KeyNullEmpty(keyVersion, *v.Version)
724785
}

0 commit comments

Comments
 (0)