Manpage logo

quick-lint-js-lsp - LSP protocol for *quick-lint-js*(1)

NAME  DESCRIPTION  SUPPORTED LSP FEATURES  DOCUMENT LANGUAGEID  CONFIGURATION  SEE ALSO 

NAME

quick-lint-js-lsp − LSP protocol for *quick−lint−js*(1)

DESCRIPTION

quick−lint−js supports the Language Server Protocol. This allows code editors to ask quick−lint−js for diagnostics which can be displayed inline.

To start the quick−lint−js LSP server, run the quick−lint−js(1) program with the −−lsp−server option. The server accepts JSON−RPC+LSP messages from the editor via standard input, and sends JSON−RPC messages to the editor via standard output.

SUPPORTED LSP FEATURES

quick−lint−js can receive and handle the following LSP requests and notifications:

• Basic lifecycle

• exit

• initialize

• initialized

• shutdown

• Document sync

• textDocument/didClose

• textDocument/didOpen

• textDocument/didChange

quick−lint−js sends the following LSP requests and notifications:

• textDocument/publishDiagnostics

• window/showMessage

• workspace/configuration

DOCUMENT LANGUAGEID

quick−lint−js uses languageId from a textDocument/didOpen notification to determine the language of that LSP document according to the following table:

quick−lint−js’s interpretation of languageId

If the languageId is equal to typescript, then quick−lint−js inspects the base name of that document’s URI to determine the language of that document:

• If the base name contains ".d.", then quick−lint−js interprets the document as if languageId was instead typescriptdefinition.

• Otherwise, if the base name ends with ".tsx", then quick−lint−js interprets the document as if languageId was instead typescriptreact.

• Otherwise, quick−lint−js interprets the document as if languageId was instead typescriptsource.

quick−lint−js interprets documents with a base name of quick−lint−js.config as a JSON config file. The document’s language ID is ignored. See quick−lint−js.config(5) for more details.

CONFIGURATION

The quick−lint−js LSP server accepts the following configuration settings, communicated through workspace/configuration:

quick−lint−js.tracing−directory

Log raw LSP messages between the editor and quick−lint−js. A timestamped subdirectory is created inside the tracing directory containing binary log files. If null or an empty string, tracing is disabled.

It is also possible to configure quick−lint−js using the initialize request. To do so, set initializationOptions to an object containing a configuration object containing the settings. For example, the following initialize request sets quick−lint−js.tracing−directory:

{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"processId": null,
"rootUri": null,
"capabilities": {},
"initializationOptions": {
"configuration": {
"quick−lint−js.tracing−directory": "/tmp/quick−lint−js−logs"
}
}
}
}

SEE ALSO

quick−lint−js(1)


Updated 2026-06-01 - jenkler.se | uex.se