mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-01 14:21:16 +00:00
Make it easier to build a local package
Prioritize the debug or unprefixed lsp binaries in the search and update the README.
This commit is contained in:
parent
5e8b738b70
commit
9da837f5a0
3 changed files with 30 additions and 13 deletions
|
@ -7,6 +7,7 @@ Extension for VSCode which include syntax coloration and a way to start the LSP
|
||||||
- Syntax highlighting
|
- Syntax highlighting
|
||||||
- Diagnostics from .60 files
|
- Diagnostics from .60 files
|
||||||
- Live Preview of a .60 file
|
- Live Preview of a .60 file
|
||||||
|
- Completion of properties
|
||||||
- Jump to definition (currently, only definition of Component)
|
- Jump to definition (currently, only definition of Component)
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
@ -24,7 +25,7 @@ cd vscode_extension
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to run the LSP
|
## How to debug the LSP
|
||||||
|
|
||||||
At the moment you need to load this directory in VS code and then start debugging (Run -> Start Debugging).
|
At the moment you need to load this directory in VS code and then start debugging (Run -> Start Debugging).
|
||||||
That will "debug" the vs code extension and create a new VS code window. The LSP server binary will be started if previously built
|
That will "debug" the vs code extension and create a new VS code window. The LSP server binary will be started if previously built
|
||||||
|
@ -32,10 +33,21 @@ You can see the output in the output pane "SixtyFPS LSP" (that's the drop-down t
|
||||||
|
|
||||||
## How to build the extension package
|
## How to build the extension package
|
||||||
|
|
||||||
To create a `.vsix` package:
|
To create a `.vsix` package for local installation:
|
||||||
|
|
||||||
1. Install `vsce` (via npm for example).
|
1. Follow the setup steps above to build the lsp binary and install npm dependencies.
|
||||||
2. Change to the `vscode_extension` sub-directory.
|
|
||||||
3. Install the dependencies: `npm install`.
|
2. Create a `.vsix` package (needs `vsce` installed)
|
||||||
4. Build the lsp binaries: `npm compile-lsp`.
|
|
||||||
5. Run `vsce package` to create the extension package.
|
```sh
|
||||||
|
npm run local-package
|
||||||
|
```
|
||||||
|
3. Install the `.vsix` file with
|
||||||
|
|
||||||
|
```sh
|
||||||
|
code --install-extension sixtyfps-vscode-*.vsix
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Reload your VS code windows
|
||||||
|
|
||||||
|
Note that the resulting `.vsix` package contains your locally built debug LSP server. It is not suitable for distribution.
|
||||||
|
|
|
@ -70,7 +70,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"vscode:prepublish": "npm run compile",
|
"vscode:prepublish": "npm run compile",
|
||||||
"compile": "tsc -p ./",
|
"compile": "tsc -p ./",
|
||||||
"compile-lsp": "./build_lsp.sh",
|
"local-package": "mkdir -p bin && cp ../target/debug/sixtyfps-lsp bin/ && npx vsce package",
|
||||||
"watch": "tsc -watch -p ./",
|
"watch": "tsc -watch -p ./",
|
||||||
"pretest": "npm run compile && npm run lint",
|
"pretest": "npm run compile && npm run lint",
|
||||||
"lint": "eslint src --ext ts",
|
"lint": "eslint src --ext ts",
|
||||||
|
|
|
@ -53,12 +53,17 @@ export function activate(context: vscode.ExtensionContext) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let serverModule = path.join(context.extensionPath, "bin", "sixtyfps-lsp-" + lsp_platform + program_extension);
|
// Try a local ../target build first, then try the plain bundled binary and finally the architecture specific one.
|
||||||
|
// A debug session will find the first one, a local package build the second and the distributed vsix the last.
|
||||||
|
const lspSearchPaths = [
|
||||||
|
context.asAbsolutePath(path.join('..', 'target', 'debug', 'sixtyfps-lsp' + program_extension)),
|
||||||
|
path.join(context.extensionPath, "bin", "sixtyfps-lsp" + program_extension),
|
||||||
|
path.join(context.extensionPath, "bin", "sixtyfps-lsp-" + lsp_platform + program_extension),
|
||||||
|
];
|
||||||
|
|
||||||
if (!existsSync(serverModule)) {
|
let serverModule = lspSearchPaths.find(path => existsSync(path));
|
||||||
serverModule = context.asAbsolutePath(path.join('..', 'target', 'debug', 'sixtyfps-lsp' + program_extension));
|
|
||||||
}
|
if (serverModule == undefined) {
|
||||||
if (!existsSync(serverModule)) {
|
|
||||||
console.warn("Could not locate sixtyfps-server server binary, neither in bundled bin/ directory nor relative in ../target");
|
console.warn("Could not locate sixtyfps-server server binary, neither in bundled bin/ directory nor relative in ../target");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue