x4-script-language-server
v0.9.2
Published
Language Server Protocol server for X4: Foundations scripts (AI scripts and Mission Director scripts).
Maintainers
Readme
x4-script-language-server
Language Server Protocol server for X4: Foundations scripts (AI scripts and Mission Director scripts), built on x4-script-core. The X4CodeSense VS Code extension bundles it; any other LSP client can start it with npx x4-script-language-server --stdio, or with --node-ipc when it forks the server as a Node.js process.
Settings are read from the x4CodeSense configuration section with workspace/configuration, which the client must support: settings sent in initializationOptions or in the settings of workspace/didChangeConfiguration are not read, the notification only makes the server ask again. The game files come from unpackedFileLocation (the extracted files) or, when it is empty, from gameFolder (an installed game, read from its catalogs in place). A file of an installed game's catalogs has no file on disk, so every place the server sends in one has the read-only scheme x4codesense-game with the file's path in the game folder, x4codesense-game:/md/setup.xml; the client asks for its text with the x4codesense/gameFile request, and such a document opened is analysed as that file. Documents with the language id lua only get a hover between the parentheses of ReadText(page, id), with the text it reads. Documents with the schemes x4codesense-patch and x4codesense-patched are the two sides of a patch comparison, the file a patch changes before and after it, with the patch document's uri in the patch parameter of the query: they are analysed as that file, and only the side after the patch gets diagnostics, those the side before it does not have.
Part of X4CodeSense. Apache License 2.0.
