Skip to content
This repository has been archived by the owner on Aug 16, 2024. It is now read-only.

Commit

Permalink
Add additional missing params (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
hinshun authored and keegancsmith committed Jan 17, 2020
1 parent 67c44a0 commit b19bb38
Showing 1 changed file with 124 additions and 12 deletions.
136 changes: 124 additions & 12 deletions service.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ type InitializeParams struct {
RootPath string `json:"rootPath,omitempty"`

RootURI DocumentURI `json:"rootUri,omitempty"`
ClientInfo ClientInfo `json:"clientInfo,omitempty"`
Trace Trace `json:"trace,omitempty"`
InitializationOptions interface{} `json:"initializationOptions,omitempty"`
Capabilities ClientCapabilities `json:"capabilities"`

WorkDoneToken string `json:"workDoneToken,omitempty"`
}

// Root returns the RootURI if set, or otherwise the RootPath with 'file://' prepended.
Expand All @@ -35,11 +38,17 @@ func (p *InitializeParams) Root() DocumentURI {

type DocumentURI string

type ClientInfo struct {
Name string `json:"name,omitempty"`
Version string `json:"version,omitempty"`
}

type Trace string

type ClientCapabilities struct {
Workspace WorkspaceClientCapabilities `json:"workspace,omitempty"`
TextDocument TextDocumentClientCapabilities `json:"textDocument,omitempty"`
Window WindowClientCapabilities `json:"window,omitempty"`
Experimental interface{} `json:"experimental,omitempty"`

// Below are Sourcegraph extensions. They do not live in lspext since
Expand All @@ -63,38 +72,141 @@ type WorkspaceClientCapabilities struct {
DocumentChanges bool `json:"documentChanges,omitempty"`
ResourceOperations []string `json:"resourceOperations,omitempty"`
} `json:"workspaceEdit,omitempty"`

ApplyEdit bool `json:"applyEdit,omitempty"`

Symbol struct {
SymbolKind struct {
ValueSet []int `json:"valueSet,omitempty"`
} `json:"symbolKind,omitEmpty"`
} `json:"symbol,omitempty"`

ExecuteCommand *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"executeCommand,omitempty"`

DidChangeWatchedFiles *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"didChangeWatchedFiles,omitempty"`

WorkspaceFolders bool `json:"workspaceFolders,omitempty"`

Configuration bool `json:"configuration,omitempty"`
}

type TextDocumentClientCapabilities struct {
Completion struct {
CompletionItemKind struct {
ValueSet []CompletionItemKind `json:"valueSet,omitempty"`
} `json:"completionItemKind,omitempty"`
CompletionItem struct {
DocumentationFormat []DocumentationFormat `json:"documentationFormat,omitempty"`
SnippetSupport bool `json:"snippetSupport,omitempty"`
} `json:"completionItem,omitempty"`
} `json:"completion,omitempty"`
Declaration *struct {
LinkSupport bool `json:"linkSupport,omitempty"`
} `json:"declaration,omitempty"`

Definition *struct {
LinkSupport bool `json:"linkSupport,omitempty"`
} `json:"definition,omitempty"`

Implementation *struct {
LinkSupport bool `json:"linkSupport,omitempty"`

DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"implementation,omitempty"`

TypeDefinition *struct {
LinkSupport bool `json:"linkSupport,omitempty"`
} `json:"typeDefinition,omitempty"`

Synchronization *struct {
WillSave bool `json:"willSave,omitempty"`
DidSave bool `json:"didSave,omitempty"`
WillSaveWaitUntil bool `json:"willSaveWaitUntil,omitempty"`
} `json:"synchronization,omitempty"`

DocumentSymbol struct {
SymbolKind struct {
ValueSet []int `json:"valueSet,omitempty"`
} `json:"symbolKind,omitEmpty"`

HierarchicalDocumentSymbolSupport bool `json:"hierarchicalDocumentSymbolSupport,omitempty"`
} `json:"documentSymbol,omitempty"`

Formatting *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"formatting,omitempty"`

RangeFormatting *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"rangeFormatting,omitempty"`

Rename *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`

PrepareSupport bool `json:"prepareSupport,omitempty"`
} `json:"rename,omitempty"`

SemanticHighlightingCapabilities *struct {
SemanticHighlighting bool `json:"semanticHighlighting,omitempty"`
} `json:"semanticHighlightingCapabilities,omitempty"`

CodeAction struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`

IsPreferredSupport bool `json:"isPreferredSupport,omitempty"`

CodeActionLiteralSupport struct {
CodeActionKind struct {
ValueSet []CodeActionKind `json:"valueSet,omitempty"`
} `json:"codeActionKind,omitempty"`
} `json:"codeActionLiteralSupport,omitempty"`
} `json:"codeAction,omitempty"`

Completion struct {
CompletionItem struct {
DocumentationFormat []DocumentationFormat `json:"documentationFormat,omitempty"`
SnippetSupport bool `json:"snippetSupport,omitempty"`
} `json:"completionItem,omitempty"`

CompletionItemKind struct {
ValueSet []CompletionItemKind `json:"valueSet,omitempty"`
} `json:"completionItemKind,omitempty"`

ContextSupport bool `json:"contextSupport,omitempty"`
} `json:"completion,omitempty"`

SignatureHelp *struct {
SignatureInformation struct {
ParameterInformation struct {
LabelOffsetSupport bool `json:"labelOffsetSupport,omitempty"`
} `json:"parameterInformation,omitempty"`
} `json:"signatureInformation,omitempty"`
} `json:"signatureHelp,omitempty"`

DocumentLink *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`

TooltipSupport bool `json:"tooltipSupport,omitempty"`
} `json:"documentLink,omitempty"`

Hover *struct {
ContentFormat []string `json:"contentFormat,omitempty"`
} `json:"hover,omitempty"`

FoldingRange *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`

RangeLimit interface{} `json:"rangeLimit,omitempty"`

LineFoldingOnly bool `json:"lineFoldingOnly,omitempty"`
} `json:"foldingRange,omitempty"`

CallHierarchy *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"callHierarchy,omitempty"`

ColorProvider *struct {
DynamicRegistration bool `json:"dynamicRegistration,omitempty"`
} `json:"colorProvider,omitempty"`
}

SemanticHighlightingCapabilities *struct {
SemanticHighlighting bool `json:"semanticHighlighting,omitempty"`
} `json:"semanticHighlightingCapabilities,omitempty"`
type WindowClientCapabilities struct {
WorkDoneProgress bool `json:"workDoneProgress,omitempty"`
}

type InitializeResult struct {
Expand Down

0 comments on commit b19bb38

Please sign in to comment.