From 987655ccd4f21359fede75907f49efccfa238ff5 Mon Sep 17 00:00:00 2001 From: XiNiHa Date: Sun, 17 Dec 2023 01:47:43 +0900 Subject: [PATCH] feat: add astro support for vscode extension --- .changeset/grumpy-moles-grin.md | 7 +++++++ packages/vscode-graphql/.vscodeignore | 12 ++++++++++++ packages/vscode-graphql/esbuild.js | 5 ++++- packages/vscode-graphql/src/apis/statusBar.ts | 1 + packages/vscode-graphql/src/extension.ts | 3 ++- 5 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 .changeset/grumpy-moles-grin.md diff --git a/.changeset/grumpy-moles-grin.md b/.changeset/grumpy-moles-grin.md new file mode 100644 index 00000000000..7b698b4ef25 --- /dev/null +++ b/.changeset/grumpy-moles-grin.md @@ -0,0 +1,7 @@ +--- +'graphql-language-service-server': minor +'vscode-graphql': minor +'vscode-graphql-syntax': minor +--- + +Add Astro file support diff --git a/packages/vscode-graphql/.vscodeignore b/packages/vscode-graphql/.vscodeignore index f218b098e0f..f5ac9dc8a97 100644 --- a/packages/vscode-graphql/.vscodeignore +++ b/packages/vscode-graphql/.vscodeignore @@ -11,3 +11,15 @@ renovate.json *.tsbuildinfo esbuild.js dist/** + +# exclude all node_modules by default +../../node_modules/** + +# @astrojs/compiler relies on the filesystem structure, therefore can't be bundled +!../../node_modules/@astrojs/compiler +# astrojs-compiler-sync relies on the filesystem structure, therefore can't be bundled +!../../node_modules/astrojs-compiler-sync +# synckit is the dependency of astrojs-compiler-sync +!../../node_modules/synckit +# @pkgr/core is the dependency of synckit +!../../node_modules/@pkgr/core diff --git a/packages/vscode-graphql/esbuild.js b/packages/vscode-graphql/esbuild.js index eb9f2bb39d8..07ee8725715 100644 --- a/packages/vscode-graphql/esbuild.js +++ b/packages/vscode-graphql/esbuild.js @@ -13,8 +13,11 @@ build({ outdir: 'out/', format: 'cjs', sourcemap: true, - // Avoid bundling @vue/compiler-sfc's dynamic dependencies external: [ + // Avoid bundling @astrojs/compiler since esbuild can't handle WASM correctly + '@astrojs/compiler', + 'astrojs-compiler-sync', + // Avoid bundling @vue/compiler-sfc's dynamic dependencies 'squirrelly', 'teacup', 'coffee-script', diff --git a/packages/vscode-graphql/src/apis/statusBar.ts b/packages/vscode-graphql/src/apis/statusBar.ts index 4153d3cd309..1a49c97e1b1 100644 --- a/packages/vscode-graphql/src/apis/statusBar.ts +++ b/packages/vscode-graphql/src/apis/statusBar.ts @@ -62,6 +62,7 @@ const statusBarActivationLanguageIds = [ 'typescriptreact', 'vue', 'svelte', + 'astro', ]; export const createStatusBar = () => { diff --git a/packages/vscode-graphql/src/extension.ts b/packages/vscode-graphql/src/extension.ts index 5f6a65ad8b9..56a244b0eb2 100644 --- a/packages/vscode-graphql/src/extension.ts +++ b/packages/vscode-graphql/src/extension.ts @@ -60,6 +60,7 @@ export async function activate(context: ExtensionContext) { { scheme: 'file', language: 'vue' }, { scheme: 'file', language: 'vue-html' }, { scheme: 'file', language: 'svelte' }, + { scheme: 'file', language: 'astro' }, ], synchronize: { // TODO: This should include any referenced graphql files inside the graphql-config @@ -77,7 +78,7 @@ export async function activate(context: ExtensionContext) { // TODO: load ignore // These ignore node_modules and .git by default workspace.createFileSystemWatcher( - '**/{*.graphql,*.graphqls,*.gql,*.js,*.mjs,*.cjs,*.esm,*.es,*.es6,*.jsx,*.ts,*.tsx,*.vue,*.svelte,*.cts,*.mts,*.json}', + '**/{*.graphql,*.graphqls,*.gql,*.js,*.mjs,*.cjs,*.esm,*.es,*.es6,*.jsx,*.ts,*.tsx,*.vue,*.svelte,*.cts,*.mts,*.json,*.astro}', ), ], },