You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
265 lines
8.6 KiB
JSON
265 lines
8.6 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"client-config-schema": {
|
|
"description": "a JSON schema to configure the Language Server or extension behavior from the client",
|
|
"title": "Client Configuration Schema",
|
|
"type": "object"
|
|
},
|
|
"current-version": {
|
|
"description": "which version of the spec this implements",
|
|
"enum": [2],
|
|
"title": "Spec Schema Version",
|
|
"type": "number"
|
|
},
|
|
"env-var": {
|
|
"title": "an environment variable. may contain python `string.Template` evaluated against the existing environment, e.g ${HOME}",
|
|
"type": "string"
|
|
},
|
|
"install-bundle": {
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/install-help"
|
|
},
|
|
"description": "a list of installation approaches keyed by package manager, e.g. pip, npm, yarn, apt",
|
|
"patternProperties": {
|
|
".+": {
|
|
"$ref": "#/definitions/install-help"
|
|
}
|
|
},
|
|
"title": "Installation",
|
|
"type": "object"
|
|
},
|
|
"install-help": {
|
|
"description": "the install commands or description for installing the language server",
|
|
"type": "string"
|
|
},
|
|
"language-list": {
|
|
"description": "languages supported by this Language Server",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"uniqueItems": true
|
|
},
|
|
"language-server-extension": {
|
|
"description": "an extension which can extend the functionality of the language server and client",
|
|
"properties": {
|
|
"config_schema": {
|
|
"$ref": "#/definitions/client-config-schema"
|
|
},
|
|
"display_name": {
|
|
"type": "string"
|
|
},
|
|
"install": {
|
|
"$ref": "#/definitions/install-bundle"
|
|
}
|
|
},
|
|
"title": "Language Server Extension",
|
|
"type": "object"
|
|
},
|
|
"language-server-spec": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/partial-language-server-spec"
|
|
},
|
|
{
|
|
"required": ["argv", "languages", "version"]
|
|
}
|
|
],
|
|
"description": "a description of a language server that could be started",
|
|
"title": "Language Server Spec"
|
|
},
|
|
"nullable-date-time": {
|
|
"description": "a date/time that might not have been recorded",
|
|
"oneOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"partial-language-server-spec": {
|
|
"description": "all properties that might be required to start and/or describe a Language Server",
|
|
"properties": {
|
|
"argv": {
|
|
"$ref": "#/definitions/shell-args",
|
|
"description": "the arguments to start the language server normally",
|
|
"title": "Launch Arguments"
|
|
},
|
|
"config_schema": {
|
|
"$ref": "#/definitions/client-config-schema",
|
|
"description": "a JSON schema to configure the Language Server behavior from the client",
|
|
"title": "Client Configuration Schema"
|
|
},
|
|
"debug_argv": {
|
|
"$ref": "#/definitions/shell-args",
|
|
"description": "the arguments to start the language server with more verbose output",
|
|
"title": "Debug Arguments"
|
|
},
|
|
"display_name": {
|
|
"description": "name shown in the UI",
|
|
"title": "Display Name",
|
|
"type": "string"
|
|
},
|
|
"env": {
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/env-var"
|
|
},
|
|
"description": "additional environment variables to set when starting the language server",
|
|
"patternProperties": {
|
|
"[^ ]+": {
|
|
"$ref": "#/definitions/env-var"
|
|
}
|
|
},
|
|
"title": "Environment Variables",
|
|
"type": "object"
|
|
},
|
|
"extend": {
|
|
"description": "known extensions that can contribute to the Language Server's features",
|
|
"items": {
|
|
"$ref": "#/definitions/language-server-extension"
|
|
},
|
|
"title": "Extensions",
|
|
"type": "array"
|
|
},
|
|
"requires_documents_on_disk": {
|
|
"default": true,
|
|
"description": "Whether to write un-saved documents to disk in a transient `.virtual_documents` directory. Well-behaved language servers that work against in-memory files should set this to `false`, which will become the default in the future.",
|
|
"type": "boolean"
|
|
},
|
|
"install": {
|
|
"$ref": "#/definitions/install-bundle",
|
|
"description": "a list of installation approaches keyed by package manager, e.g. pip, npm, yarn, apt",
|
|
"title": "Installation"
|
|
},
|
|
"languages": {
|
|
"$ref": "#/definitions/language-list"
|
|
},
|
|
"mime_types": {
|
|
"$ref": "#/definitions/language-list",
|
|
"description": "list of MIME types supported by the language server",
|
|
"title": "MIME Types"
|
|
},
|
|
"troubleshoot": {
|
|
"type": "string",
|
|
"description": "information on troubleshooting the installation or auto-detection of the language server",
|
|
"title": "Troubleshooting"
|
|
},
|
|
"urls": {
|
|
"additionalProperties": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
},
|
|
"description": "a collection of urls keyed by type, e.g. home, issues",
|
|
"patternProperties": {
|
|
".+": {
|
|
"format": "uri",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "URLs",
|
|
"type": "object"
|
|
},
|
|
"version": {
|
|
"$ref": "#/definitions/current-version"
|
|
},
|
|
"workspace_configuration": {
|
|
"description": "default values to include in the client `workspace/configuration` reply (also known as `serverSettings`). User may override these defaults. The keys should be fully qualified (dotted) names of settings (nested specification is not supported).",
|
|
"title": "Workspace configuration",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "Server Spec Properties"
|
|
},
|
|
"servers-response": {
|
|
"properties": {
|
|
"sessions": {
|
|
"$ref": "#/definitions/sessions"
|
|
},
|
|
"specs": {
|
|
"$ref": "#/definitions/language-server-specs-implementation-map"
|
|
},
|
|
"version": {
|
|
"$ref": "#/definitions/current-version"
|
|
}
|
|
},
|
|
"required": ["sessions", "version"],
|
|
"type": "object"
|
|
},
|
|
"sessions": {
|
|
"description": "named server sessions that are, could be, or were running",
|
|
"patternProperties": {
|
|
".*": {
|
|
"$ref": "#/definitions/session"
|
|
}
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/session"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"session": {
|
|
"additionalProperties": false,
|
|
"description": "a language server session",
|
|
"properties": {
|
|
"handler_count": {
|
|
"description": "the count of currently-connected WebSocket handlers",
|
|
"minValue": 0,
|
|
"title": "handler count",
|
|
"type": "integer"
|
|
},
|
|
"last_handler_message_at": {
|
|
"$ref": "#/definitions/nullable-date-time",
|
|
"description": "date-time of last seen message from a WebSocket handler"
|
|
},
|
|
"last_server_message_at": {
|
|
"$ref": "#/definitions/nullable-date-time",
|
|
"description": "date-time of last seen message from the language server"
|
|
},
|
|
"spec": {
|
|
"$ref": "#/definitions/partial-language-server-spec"
|
|
},
|
|
"status": {
|
|
"description": "a string describing the current state of the server",
|
|
"enum": ["not_started", "starting", "started", "stopping", "stopped"],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"handler_count",
|
|
"status",
|
|
"last_server_message_at",
|
|
"last_handler_message_at",
|
|
"spec"
|
|
],
|
|
"title": "Language Server Session"
|
|
},
|
|
"shell-args": {
|
|
"description": "a list of tokens for running a command",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"language-server-specs-implementation-map": {
|
|
"title": "Language Server Specs Map",
|
|
"description": "a set of language servers keyed by their implementation name",
|
|
"patternProperties": {
|
|
".*": {
|
|
"$ref": "#/definitions/language-server-spec"
|
|
}
|
|
},
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/language-server-spec"
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"description": "describes the current state of (potentially) running language servers",
|
|
"title": "jupyter_lsp server status response"
|
|
}
|