mirror of
https://github.com/withastro/astro.git
synced 2024-12-30 22:03:56 -05:00
Fix running the extension (#181)
I'm not sure how my setup was different but I was unable to get the extension to run locally without adding a binary. This mirrors what Svelte does so I'm assuming it's the way it's supposed to be loaded.
This commit is contained in:
parent
b4c072d1a1
commit
60e482aa80
5 changed files with 37 additions and 11 deletions
15
.vscode/launch.json
vendored
15
.vscode/launch.json
vendored
|
@ -3,16 +3,12 @@
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"type": "pwa-extensionHost",
|
|
||||||
"request": "launch",
|
|
||||||
"name": "Launch Client",
|
"name": "Launch Client",
|
||||||
|
"type": "extensionHost",
|
||||||
|
"request": "launch",
|
||||||
"runtimeExecutable": "${execPath}",
|
"runtimeExecutable": "${execPath}",
|
||||||
"args": ["--extensionDevelopmentPath=${workspaceRoot}"],
|
"args": ["--extensionDevelopmentPath=${workspaceRoot}/tools/astro-vscode"],
|
||||||
"outFiles": ["${workspaceRoot}/tools/astro-vscode/dist/**/*.js"],
|
"outFiles": ["${workspaceRoot}/tools/astro-vscode/dist/**/*.js"]
|
||||||
"preLaunchTask": {
|
|
||||||
"type": "npm",
|
|
||||||
"script": "build:vscode"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "node",
|
"type": "node",
|
||||||
|
@ -20,7 +16,8 @@
|
||||||
"name": "Attach to Server",
|
"name": "Attach to Server",
|
||||||
"port": 6040,
|
"port": 6040,
|
||||||
"restart": true,
|
"restart": true,
|
||||||
"outFiles": ["${workspaceRoot}/tools/astro-languageserver/dist/**/*.js"]
|
"outFiles": ["${workspaceRoot}/tools/astro-languageserver/dist/**/*.js"],
|
||||||
|
"skipFiles": ["<node_internals>/**"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compounds": [
|
"compounds": [
|
||||||
|
|
6
tools/astro-languageserver/bin/server.js
Normal file
6
tools/astro-languageserver/bin/server.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#! /usr/bin/env node
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
|
const { startServer } = require('../dist/index');
|
||||||
|
|
||||||
|
startServer();
|
|
@ -2,7 +2,8 @@
|
||||||
"extends": "../../tsconfig.base.json",
|
"extends": "../../tsconfig.base.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"rootDir": "src"
|
"rootDir": "src",
|
||||||
|
"target": "ES2020"
|
||||||
},
|
},
|
||||||
"include": ["src"],
|
"include": ["src"],
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
|
|
20
tools/astro-vscode/contributing.md
Normal file
20
tools/astro-vscode/contributing.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
## Development workflow
|
||||||
|
|
||||||
|
In the monorepo first install and build Astro:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yarn install
|
||||||
|
yarn build
|
||||||
|
```
|
||||||
|
|
||||||
|
To start the development server run:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yarn dev:vscode
|
||||||
|
```
|
||||||
|
|
||||||
|
Then in the __Debug__ panel select __Launch Extension__ from the dropdown and click the run button.
|
||||||
|
|
||||||
|
<img width="558" alt="Screen Shot 2021-05-07 at 8 51 37 AM" src="https://user-images.githubusercontent.com/361671/117452223-807e5580-af11-11eb-8404-dd615784408a.png">
|
|
@ -17,7 +17,7 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||||
/** */
|
/** */
|
||||||
function createLanguageService(context: vscode.ExtensionContext, mode: 'doc', id: string, name: string, port: number) {
|
function createLanguageService(context: vscode.ExtensionContext, mode: 'doc', id: string, name: string, port: number) {
|
||||||
const { workspace } = vscode;
|
const { workspace } = vscode;
|
||||||
const serverModule = context.asAbsolutePath(require.resolve('astro-languageserver'));
|
const serverModule = require.resolve('astro-languageserver/bin/server.js');
|
||||||
const debugOptions = { execArgv: ['--nolazy', '--inspect=' + port] };
|
const debugOptions = { execArgv: ['--nolazy', '--inspect=' + port] };
|
||||||
const serverOptions: lsp.ServerOptions = {
|
const serverOptions: lsp.ServerOptions = {
|
||||||
run: { module: 'astro-languageserver', transport: lsp.TransportKind.ipc },
|
run: { module: 'astro-languageserver', transport: lsp.TransportKind.ipc },
|
||||||
|
@ -60,6 +60,8 @@ function createLanguageService(context: vscode.ExtensionContext, mode: 'doc', id
|
||||||
};
|
};
|
||||||
const disposable = activateTagClosing(tagRequestor, { astro: true }, 'html.autoClosingTags');
|
const disposable = activateTagClosing(tagRequestor, { astro: true }, 'html.autoClosingTags');
|
||||||
context.subscriptions.push(disposable);
|
context.subscriptions.push(disposable);
|
||||||
|
}).catch(err => {
|
||||||
|
console.error('Astro, unable to load language server.', err);
|
||||||
});
|
});
|
||||||
|
|
||||||
return client;
|
return client;
|
||||||
|
|
Loading…
Reference in a new issue