private onInitialize()

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,
    };
  }