| // Copyright 2018 The Go Authors. | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| package protocol | |
| import ( | |
| "fmt" | |
| ) | |
| var ( | |
| namesTextDocumentSyncKind [int(Incremental) + 1]string | |
| namesInitializeError [int(UnknownProtocolVersion) + 1]string | |
| namesMessageType [int(Log) + 1]string | |
| namesFileChangeType [int(Deleted) + 1]string | |
| namesWatchKind [int(WatchDelete) + 1]string | |
| namesCompletionTriggerKind [int(TriggerForIncompleteCompletions) + 1]string | |
| namesDiagnosticSeverity [int(SeverityHint) + 1]string | |
| namesDiagnosticTag [int(Unnecessary) + 1]string | |
| namesCompletionItemKind [int(TypeParameterCompletion) + 1]string | |
| namesInsertTextFormat [int(SnippetTextFormat) + 1]string | |
| namesDocumentHighlightKind [int(Write) + 1]string | |
| namesSymbolKind [int(TypeParameter) + 1]string | |
| namesTextDocumentSaveReason [int(FocusOut) + 1]string | |
| ) | |
| func init() { | |
| namesTextDocumentSyncKind[int(None)] = "None" | |
| namesTextDocumentSyncKind[int(Full)] = "Full" | |
| namesTextDocumentSyncKind[int(Incremental)] = "Incremental" | |
| namesInitializeError[int(UnknownProtocolVersion)] = "UnknownProtocolVersion" | |
| namesMessageType[int(Error)] = "Error" | |
| namesMessageType[int(Warning)] = "Warning" | |
| namesMessageType[int(Info)] = "Info" | |
| namesMessageType[int(Log)] = "Log" | |
| namesFileChangeType[int(Created)] = "Created" | |
| namesFileChangeType[int(Changed)] = "Changed" | |
| namesFileChangeType[int(Deleted)] = "Deleted" | |
| namesWatchKind[int(WatchCreate)] = "WatchCreate" | |
| namesWatchKind[int(WatchChange)] = "WatchChange" | |
| namesWatchKind[int(WatchDelete)] = "WatchDelete" | |
| namesCompletionTriggerKind[int(Invoked)] = "Invoked" | |
| namesCompletionTriggerKind[int(TriggerCharacter)] = "TriggerCharacter" | |
| namesCompletionTriggerKind[int(TriggerForIncompleteCompletions)] = "TriggerForIncompleteCompletions" | |
| namesDiagnosticSeverity[int(SeverityError)] = "Error" | |
| namesDiagnosticSeverity[int(SeverityWarning)] = "Warning" | |
| namesDiagnosticSeverity[int(SeverityInformation)] = "Information" | |
| namesDiagnosticSeverity[int(SeverityHint)] = "Hint" | |
| namesDiagnosticTag[int(Unnecessary)] = "Unnecessary" | |
| namesCompletionItemKind[int(TextCompletion)] = "text" | |
| namesCompletionItemKind[int(MethodCompletion)] = "method" | |
| namesCompletionItemKind[int(FunctionCompletion)] = "func" | |
| namesCompletionItemKind[int(ConstructorCompletion)] = "constructor" | |
| namesCompletionItemKind[int(FieldCompletion)] = "field" | |
| namesCompletionItemKind[int(VariableCompletion)] = "var" | |
| namesCompletionItemKind[int(ClassCompletion)] = "type" | |
| namesCompletionItemKind[int(InterfaceCompletion)] = "interface" | |
| namesCompletionItemKind[int(ModuleCompletion)] = "package" | |
| namesCompletionItemKind[int(PropertyCompletion)] = "property" | |
| namesCompletionItemKind[int(UnitCompletion)] = "unit" | |
| namesCompletionItemKind[int(ValueCompletion)] = "value" | |
| namesCompletionItemKind[int(EnumCompletion)] = "enum" | |
| namesCompletionItemKind[int(KeywordCompletion)] = "keyword" | |
| namesCompletionItemKind[int(SnippetCompletion)] = "snippet" | |
| namesCompletionItemKind[int(ColorCompletion)] = "color" | |
| namesCompletionItemKind[int(FileCompletion)] = "file" | |
| namesCompletionItemKind[int(ReferenceCompletion)] = "reference" | |
| namesCompletionItemKind[int(FolderCompletion)] = "folder" | |
| namesCompletionItemKind[int(EnumMemberCompletion)] = "enumMember" | |
| namesCompletionItemKind[int(ConstantCompletion)] = "const" | |
| namesCompletionItemKind[int(StructCompletion)] = "struct" | |
| namesCompletionItemKind[int(EventCompletion)] = "event" | |
| namesCompletionItemKind[int(OperatorCompletion)] = "operator" | |
| namesCompletionItemKind[int(TypeParameterCompletion)] = "typeParam" | |
| namesInsertTextFormat[int(PlainTextTextFormat)] = "PlainText" | |
| namesInsertTextFormat[int(SnippetTextFormat)] = "Snippet" | |
| namesDocumentHighlightKind[int(Text)] = "Text" | |
| namesDocumentHighlightKind[int(Read)] = "Read" | |
| namesDocumentHighlightKind[int(Write)] = "Write" | |
| namesSymbolKind[int(File)] = "File" | |
| namesSymbolKind[int(Module)] = "Module" | |
| namesSymbolKind[int(Namespace)] = "Namespace" | |
| namesSymbolKind[int(Package)] = "Package" | |
| namesSymbolKind[int(Class)] = "Class" | |
| namesSymbolKind[int(Method)] = "Method" | |
| namesSymbolKind[int(Property)] = "Property" | |
| namesSymbolKind[int(Field)] = "Field" | |
| namesSymbolKind[int(Constructor)] = "Constructor" | |
| namesSymbolKind[int(Enum)] = "Enum" | |
| namesSymbolKind[int(Interface)] = "Interface" | |
| namesSymbolKind[int(Function)] = "Function" | |
| namesSymbolKind[int(Variable)] = "Variable" | |
| namesSymbolKind[int(Constant)] = "Constant" | |
| namesSymbolKind[int(String)] = "String" | |
| namesSymbolKind[int(Number)] = "Number" | |
| namesSymbolKind[int(Boolean)] = "Boolean" | |
| namesSymbolKind[int(Array)] = "Array" | |
| namesSymbolKind[int(Object)] = "Object" | |
| namesSymbolKind[int(Key)] = "Key" | |
| namesSymbolKind[int(Null)] = "Null" | |
| namesSymbolKind[int(EnumMember)] = "EnumMember" | |
| namesSymbolKind[int(Struct)] = "Struct" | |
| namesSymbolKind[int(Event)] = "Event" | |
| namesSymbolKind[int(Operator)] = "Operator" | |
| namesSymbolKind[int(TypeParameter)] = "TypeParameter" | |
| namesTextDocumentSaveReason[int(Manual)] = "Manual" | |
| namesTextDocumentSaveReason[int(AfterDelay)] = "AfterDelay" | |
| namesTextDocumentSaveReason[int(FocusOut)] = "FocusOut" | |
| } | |
| func formatEnum(f fmt.State, c rune, i int, names []string, unknown string) { | |
| s := "" | |
| if i >= 0 && i < len(names) { | |
| s = names[i] | |
| } | |
| if s != "" { | |
| fmt.Fprint(f, s) | |
| } else { | |
| fmt.Fprintf(f, "%s(%d)", unknown, i) | |
| } | |
| } | |
| func parseEnum(s string, names []string) int { | |
| for i, name := range names { | |
| if s == name { | |
| return i | |
| } | |
| } | |
| return 0 | |
| } | |
| func (e TextDocumentSyncKind) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesTextDocumentSyncKind[:], "TextDocumentSyncKind") | |
| } | |
| func ParseTextDocumentSyncKind(s string) TextDocumentSyncKind { | |
| return TextDocumentSyncKind(parseEnum(s, namesTextDocumentSyncKind[:])) | |
| } | |
| func (e InitializeError) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesInitializeError[:], "InitializeError") | |
| } | |
| func ParseInitializeError(s string) InitializeError { | |
| return InitializeError(parseEnum(s, namesInitializeError[:])) | |
| } | |
| func (e MessageType) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesMessageType[:], "MessageType") | |
| } | |
| func ParseMessageType(s string) MessageType { | |
| return MessageType(parseEnum(s, namesMessageType[:])) | |
| } | |
| func (e FileChangeType) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesFileChangeType[:], "FileChangeType") | |
| } | |
| func ParseFileChangeType(s string) FileChangeType { | |
| return FileChangeType(parseEnum(s, namesFileChangeType[:])) | |
| } | |
| func (e WatchKind) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesWatchKind[:], "WatchKind") | |
| } | |
| func ParseWatchKind(s string) WatchKind { | |
| return WatchKind(parseEnum(s, namesWatchKind[:])) | |
| } | |
| func (e CompletionTriggerKind) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesCompletionTriggerKind[:], "CompletionTriggerKind") | |
| } | |
| func ParseCompletionTriggerKind(s string) CompletionTriggerKind { | |
| return CompletionTriggerKind(parseEnum(s, namesCompletionTriggerKind[:])) | |
| } | |
| func (e DiagnosticSeverity) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesDiagnosticSeverity[:], "DiagnosticSeverity") | |
| } | |
| func ParseDiagnosticSeverity(s string) DiagnosticSeverity { | |
| return DiagnosticSeverity(parseEnum(s, namesDiagnosticSeverity[:])) | |
| } | |
| func (e DiagnosticTag) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesDiagnosticTag[:], "DiagnosticTag") | |
| } | |
| func ParseDiagnosticTag(s string) DiagnosticTag { | |
| return DiagnosticTag(parseEnum(s, namesDiagnosticTag[:])) | |
| } | |
| func (e CompletionItemKind) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesCompletionItemKind[:], "CompletionItemKind") | |
| } | |
| func ParseCompletionItemKind(s string) CompletionItemKind { | |
| return CompletionItemKind(parseEnum(s, namesCompletionItemKind[:])) | |
| } | |
| func (e InsertTextFormat) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesInsertTextFormat[:], "InsertTextFormat") | |
| } | |
| func ParseInsertTextFormat(s string) InsertTextFormat { | |
| return InsertTextFormat(parseEnum(s, namesInsertTextFormat[:])) | |
| } | |
| func (e DocumentHighlightKind) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesDocumentHighlightKind[:], "DocumentHighlightKind") | |
| } | |
| func ParseDocumentHighlightKind(s string) DocumentHighlightKind { | |
| return DocumentHighlightKind(parseEnum(s, namesDocumentHighlightKind[:])) | |
| } | |
| func (e SymbolKind) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesSymbolKind[:], "SymbolKind") | |
| } | |
| func ParseSymbolKind(s string) SymbolKind { | |
| return SymbolKind(parseEnum(s, namesSymbolKind[:])) | |
| } | |
| func (e TextDocumentSaveReason) Format(f fmt.State, c rune) { | |
| formatEnum(f, c, int(e), namesTextDocumentSaveReason[:], "TextDocumentSaveReason") | |
| } | |
| func ParseTextDocumentSaveReason(s string) TextDocumentSaveReason { | |
| return TextDocumentSaveReason(parseEnum(s, namesTextDocumentSaveReason[:])) | |
| } |