-
Notifications
You must be signed in to change notification settings - Fork 52
LSP Internals
Patrick Förster edited this page Apr 16, 2023
·
3 revisions
We extend the Language Server Protocol with custom messages to provide better LaTeX integration. These messages are optional and it is up to the client to support them.
The build request is sent from the client to the server to build a given LaTeX document.
Request:
- method: 'textDocument/build'
- params:
BuildTextDocumentParams
defined as follows:
interface BuildTextDocumentParams {
/**
* The text document to build.
*/
textDocument: TextDocumentIdentifier;
/**
* The position of the cursor for use in forward search (optional).
*/
position?: Position;
}
Response:
- result:
BuildResult
defined as follows:
interface BuildResult {
/**
* The status of the build process.
*/
status: BuildStatus;
}
enum BuildStatus {
/**
* The build process terminated without any errors.
*/
Success = 0,
/**
* The build process terminated with errors.
*/
Error = 1,
/**
* The build process failed to start or crashed.
*/
Failure = 2,
/**
* The build process was cancelled.
*/
Cancelled = 3,
}
The forward search request is sent from the client to the server when the user requests a forward search via SyncTeX.
Request:
- method: 'textDocument/forwardSearch'
- params:
TextDocumentPositionParams
Response:
- result:
ForwardSearchResult
defined as follows:
interface ForwardSearchResult {
/**
* The status of the previewer process.
*/
status: ForwardSearchStatus;
}
enum ForwardSearchStatus {
/**
* The previewer process executed the command without any errors.
*/
Success = 0,
/**
* The previewer process executed the command with errors.
*/
Error = 1,
/**
* The previewer process failed to start or crashed.
*/
Failure = 2,
/**
* The previewer command is not configured.
*/
Unconfigured = 3,
}
The following table describes the mapping of LaTeX and BibTeX structures
to their CompletionItemKind
and SymbolKind
.
LaTeX / BibTeX structure | CompletionItemKind | SymbolKind |
---|---|---|
Command |
Function (3) |
Function (12) |
Command Argument |
Value (12) |
Number (16) |
Snippet |
Snippet (15) |
|
Environment |
Enum (13) |
Enum (10) |
Section |
Module (9) |
Module (2) |
Float |
Method (2) |
Method (6) |
Theorem |
Variable (6) |
Variable (13) |
Equation |
Constant (21) |
Constant (14) |
Enumeration Item |
EnumMember (20) |
EnumMember (22) |
Label |
Constructor (4) |
Constructor (9) |
Folder |
Folder (19) |
Namespace (3) |
File |
File (17) |
File (1) |
PGF Library |
Property (10) |
Property (7) |
TikZ Library |
Property (10) |
Property (7) |
Color |
Color (16) |
|
Color Model |
Color (16) |
|
Package |
Class (7) |
Class (5) |
Class |
Class (7) |
Class (5) |
BibTeX Entry (Misc) |
Interface (8) |
Interface (11) |
BibTeX Entry (Article) |
Event (23) |
Event (24) |
BibTeX Entry (Book) |
Struct (22) |
Struct (23) |
BibTeX Entry (Collection) |
TypeParameter (25) |
TypeParameter (26) |
BibTeX Entry (Part) |
Operator (24) |
Operator (25) |
BibTeX Entry (Thesis) |
Unit (11) |
Object (19) |
BibTeX String |
Text (1) |
String (15) |
BibTeX Field |
Field (5) |
Field (8) |