(serverConnection: Connection)
| 25 | } from 'vscode-languageserver/lib/node/main.js'; |
| 26 | |
| 27 | function startLanguageServer(serverConnection: Connection) { |
| 28 | const documents = new TextDocuments<AlphaTexTextDocument>(TextDocument); |
| 29 | |
| 30 | serverConnection.onInitialize((params: InitializeParams) => { |
| 31 | const capabilities = params.capabilities; |
| 32 | |
| 33 | const hasWorkspaceFolderCapability = !!(capabilities.workspace && !!capabilities.workspace.workspaceFolders); |
| 34 | |
| 35 | const result: InitializeResult = { |
| 36 | capabilities: { |
| 37 | textDocumentSync: TextDocumentSyncKind.Incremental, |
| 38 | positionEncoding: PositionEncodingKind.UTF16, |
| 39 | completionProvider: { |
| 40 | resolveProvider: true |
| 41 | }, |
| 42 | signatureHelpProvider: { |
| 43 | triggerCharacters: ['('] |
| 44 | }, |
| 45 | diagnosticProvider: { |
| 46 | interFileDependencies: false, |
| 47 | workspaceDiagnostics: false |
| 48 | }, |
| 49 | hoverProvider: {} |
| 50 | } |
| 51 | }; |
| 52 | if (hasWorkspaceFolderCapability) { |
| 53 | result.capabilities.workspace = { |
| 54 | workspaceFolders: { |
| 55 | supported: true |
| 56 | } |
| 57 | }; |
| 58 | } |
| 59 | return result; |
| 60 | }); |
| 61 | |
| 62 | setupDiagnostics(serverConnection, documents); |
| 63 | setupCompletion(serverConnection, documents); |
| 64 | setupHover(serverConnection, documents); |
| 65 | setupSignatureHelp(serverConnection, documents); |
| 66 | |
| 67 | documents.listen(serverConnection); |
| 68 | serverConnection.listen(); |
| 69 | } |
| 70 | |
| 71 | |
| 72 | type Port = ConstructorParameters<typeof BrowserMessageReader>[0]; |
no test coverage detected