in server/src/session.ts [609:645]
private onInitialize(params: lsp.InitializeParams): lsp.InitializeResult {
this.snippetSupport =
params.capabilities.textDocument?.completion?.completionItem?.snippetSupport;
const serverOptions: ServerOptions = {
logFile: this.logger.getLogFileName(),
};
this.clientCapabilities = params.capabilities;
return {
capabilities: {
codeLensProvider: this.ivy ? {resolveProvider: true} : undefined,
textDocumentSync: lsp.TextDocumentSyncKind.Incremental,
completionProvider: {
// Only the Ivy LS provides support for additional completion resolution.
resolveProvider: this.ivy,
triggerCharacters: ['<', '.', '*', '[', '(', '$', '|']
},
definitionProvider: true,
typeDefinitionProvider: this.ivy,
referencesProvider: this.ivy,
renameProvider: this.ivy ? {
// Renames should be checked and tested before being executed.
prepareProvider: true,
} :
false,
hoverProvider: true,
signatureHelpProvider: this.ivy ? {
triggerCharacters: ['(', ','],
retriggerCharacters: [','],
} :
undefined,
workspace: {
workspaceFolders: {supported: true},
},
},
serverOptions,
};
}