microsoft / vscode-languageserver-node

Language server protocol implementation for VSCode. This allows implementing language services in JS/TS running on node.js
MIT License
1.41k stars 320 forks source link

VSCode Language Server - Node

This repository contains the code for the following npm modules:

All npm modules are built using one Azure Pipeline. Its status is:

Build Status

Click here for a detailed document on how to use these npm modules to implement language servers for VSCode.

Contributing

After cloning the repository, run npm install to install dependencies and npm run symlink to point packages in this repository to each other.

History

Next (10.0.0-next. Client and 10.0.0-next. Server)

3.17.5 Protocol, 9.0.1 Client and 9.0.1 Server

3.17.4 Protocol, 8.2.0 JSON-RPC 9.0.0 Client and 9.0.0 Server

3.17.4-next.0 Protocol, 8.2.0-next.0 JSON-RPC, 8.2.0-next.0 Client and 8.2.0-next.0 Server.

3.17.3 Protocol, 8.1.0 JSON-RPC, 8.1.0 Client and 8.1.0 Server.

3.17.2 Protocol, 8.0.2 JSON-RPC, 8.0.2 Client and 8.0.2 Server.

3.17.0 Protocol, 8.0.0 JSON-RPC, 8.0.0 Client and 8.0.0 Server.

Library specific changes are:

3.16.0 Protocol, 6.0.0 JSON-RPC, 7.0.0 Client and 7.0.0 Server.

For a detailed list of changes made in the 3.16.0 version of the protocol see the change log of the 3.16 specification.

Library specific changes are:

3.15.3 Protocol, 6.1.x client and 6.1.x server

3.15.2 Protocol, 6.1.x client and 6.1.x server

3.15.0 Protocol, 6.0.0 Client & 6.0.0 Server

import { TextDocuments } from 'vscode-languageserver';
import { TextDocument } from 'vscode-languageserver-textdocument';
const documents = new TextDocuments(TextDocument);
const server = require("vscode-languageserver");
const textDocument = require("vscode-languageserver-textdocument");
const documents = new server.TextDocuments(textDocument.TextDocument);

5.1.1 Client

5.1.0 Client & 5.1.0 Server

3.13.0 Protocol

5.0.0 Client & 5.0.0 Server

4.4.0 Client & 4.4.0 Server & 3.10.0 Protocol

4.3.0 Client & 4.3.0 Server & 3.9.0 Protocol

4.2.0 Client & 4.2.0 Server & 3.8.0 Protocol

4.1.4 Client & 4.1.3 Server

4.1.1 Client

4.1.0 Client & Server

4.0.1 Client

4.0.0 Server and Client

6.0.0 Server and Client

3.15.0 Types and Protocol

3.6.1 Types

3.5.0 Server and Client

3.4.0 Server and Client

3.3.0 Server and Client

3.2.1 Server and Client

3.2.0 Server and Client

3.1.0 Server and Client

3.0.5 Server and 3.0.4 Client

3.0.3: Client, Server and JSON-RPC

New Features

Breaking changes:

let client = new LanguageClient(...);
client.onReady().then(() => {
  client.onNotification(...);
  client.sendRequest(...);
);
// Old
import { Protocol2Code, ... } from 'vscode-languageclient';
Protocol2Code.asTextEdits(edits);
// New
let client = new LanguageClient(...);
client.protocol2CodeConverter.asTextEdits(edits);
// Old
export namespace MyRequest {
  export const type: RequestType<MyParams, MyResult, void> = { get method() { return 'myRequest'; } };
}
export namespace MyNotification {
  export const type: NotificationType<MyParams> = { get method() { return 'myNotification'; } };
}
// New
export namespace MyRequest {
  export const type = new RequestType<MyParams, MyResult, void, void>('myRequest');
}
export namespace MyNotification {
  export const type = new NotificationType<MyParams, void>('myNotification');
}

2.6.0: Client and server

2.5.0: Client and Server

2.4.0 Client and Server

2.3.0: Client only

2.0: A detailed description of the 2.0 version can be found here. A summary of the changes:

1.1.x: Provides all language service feature available in the extension host via the language client / server protocol. Features added:

1.0.x: Version which provides support for the following features:

0.10.x: Initial versions to build a good API for the client and server side

License

MIT