diff --git a/.changeset/proud-chicken-sin.md b/.changeset/proud-chicken-sin.md
new file mode 100644
index 0000000000..1dfe4322c0
--- /dev/null
+++ b/.changeset/proud-chicken-sin.md
@@ -0,0 +1,13 @@
+---
+'astro': patch
+---
+
+Adds the `astro check` command
+
+This adds a new command, `astro check` which runs diagnostics on a project. The same diagnostics run within the Astro VSCode plugin! Just run:
+
+```shell
+astro check
+```
+
+Which works a lot like `tsc` and will give you error messages, if any were found. We recommend adding this to your CI setup to prevent errors from being merged.
\ No newline at end of file
diff --git a/docs/src/pages/reference/cli-reference.md b/docs/src/pages/reference/cli-reference.md
index 3c66b2368b..26b165f489 100644
--- a/docs/src/pages/reference/cli-reference.md
+++ b/docs/src/pages/reference/cli-reference.md
@@ -25,6 +25,12 @@ Start a local static file server to serve your built `dist/` directory. Useful f
 
 This command is meant for local testing only, and is not designed to be run in production. For help with production hosting, check out our guide on [Deploying an Astro Website](/guides/deploy).
 
+### `astro check`
+
+Runs diagnostics (such as type-checking) against your project and reports errors to the console. If any errors are found the process will exit with a code of __1__.
+
+This command is intended to be used in CI workflows.
+
 ## Global Flags
 
 ### `--config path`
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 73ee7c7cf6..8aba975f6c 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -44,6 +44,7 @@
     "test": "uvu test -i fixtures -i benchmark -i test-utils.js"
   },
   "dependencies": {
+    "@astrojs/language-server": "^0.7.16",
     "@astrojs/markdown-support": "0.3.1",
     "@astrojs/parser": "0.20.2",
     "@astrojs/prism": "0.2.2",
diff --git a/packages/astro/src/check.ts b/packages/astro/src/check.ts
new file mode 100644
index 0000000000..22bccd4f91
--- /dev/null
+++ b/packages/astro/src/check.ts
@@ -0,0 +1,116 @@
+/* eslint-disable no-console */
+import { AstroCheck, DiagnosticSeverity } from '@astrojs/language-server';
+import type { AstroConfig } from './@types/astro';
+import { bold, blue, black, bgWhite, red, cyan, yellow } from 'kleur/colors';
+import glob from 'fast-glob';
+import * as path from 'path';
+import { pathToFileURL } from 'url';
+import * as fs from 'fs';
+
+async function openAllDocuments(
+  workspaceUri: URL,
+  filePathsToIgnore: string[],
+  checker: AstroCheck
+) {
+  const files = await glob('**/*.astro', {
+      cwd: workspaceUri.pathname,
+      ignore: ['node_modules/**'].concat(filePathsToIgnore.map((ignore) => `${ignore}/**`))
+  });
+  const absFilePaths = files.map((f) => path.resolve(workspaceUri.pathname, f));
+
+  for (const absFilePath of absFilePaths) {
+      const text = fs.readFileSync(absFilePath, 'utf-8');
+      checker.upsertDocument(
+          {
+              uri: pathToFileURL(absFilePath).toString(),
+              text
+          }
+      );
+  }
+}
+
+interface Result {
+  errors: number;
+  warnings: number;
+}
+
+function offsetAt({ line, character }: { line: number, character: number; }, text: string) {
+  let i = 0;
+  let l = 0;
+  let c = 0;
+  while(i < text.length) {
+    if(l === line && c === character) {
+      break;
+    }
+
+    let char = text[i];
+    switch(char) {
+      case '\n': {
+        l++;
+        c = 0;
+        break;
+      }
+      default: {
+        c++;
+        break;
+      }
+    }
+
+    i++;
+  }
+
+  return i;
+}
+
+function pad(str: string, len: number) {
+  return Array.from({ length: len }, () => str).join('');
+}
+
+export async function run() {
+
+}
+
+export async function check(astroConfig: AstroConfig) {
+  const root = astroConfig.projectRoot;
+  let checker = new AstroCheck(root.toString());
+  await openAllDocuments(root, [], checker);
+
+  let diagnostics = await checker.getDiagnostics();
+
+  let result: Result = {
+    errors: 0,
+    warnings: 0
+  };
+
+  diagnostics.forEach(diag => {
+    diag.diagnostics.forEach(d => {
+      switch(d.severity) {
+        case DiagnosticSeverity.Error: {
+          console.error(`${bold(cyan(path.relative(root.pathname, diag.filePath)))}:${bold(yellow(d.range.start.line))}:${bold(yellow(d.range.start.character))} - ${d.message}`);
+          let startOffset = offsetAt({ line: d.range.start.line, character: 0 }, diag.text);
+          let endOffset = offsetAt({ line: d.range.start.line + 1, character: 0 }, diag.text);
+          let str = diag.text.substring(startOffset, endOffset - 1);
+          const lineNumStr = (d.range.start.line).toString();
+          const lineNumLen = lineNumStr.length;
+          console.error(`${bgWhite(black(lineNumStr))}  ${str}`);
+          let tildes = pad('~', d.range.end.character - d.range.start.character);
+          let spaces = pad(' ', d.range.start.character + lineNumLen - 1);
+          console.error(`   ${spaces}${bold(red(tildes))}\n`);
+          result.errors++;
+          break;
+        }
+        case DiagnosticSeverity.Warning: {
+          result.warnings++;
+          break;
+        }
+      }
+    });
+  });
+
+  if(result.errors) {
+    console.error(`Found ${result.errors} errors.`)
+  }
+
+  const exitCode = result.errors ? 1 : 0;
+  return exitCode;
+}
\ No newline at end of file
diff --git a/packages/astro/src/cli.ts b/packages/astro/src/cli.ts
index 348828a264..d49381520e 100644
--- a/packages/astro/src/cli.ts
+++ b/packages/astro/src/cli.ts
@@ -9,6 +9,7 @@ import { formatConfigError, loadConfig } from './config.js';
 import devServer from './dev.js';
 import { preview } from './preview.js';
 import { reload } from './reload.js';
+import { check } from './check.js';
 
 const { readFile } = fsPromises;
 const buildAndExit = async (astroConfig: AstroConfig) => {
@@ -19,9 +20,13 @@ const reloadAndExit = async () => {
   const ret = await reload();
   process.exit(ret);
 };
+const checkAndExit = async (astroConfig: AstroConfig) => {
+  const ret = await check(astroConfig);
+  process.exit(ret);
+};
 
 type Arguments = yargs.Arguments;
-type cliCommand = 'help' | 'version' | 'dev' | 'build' | 'preview' | 'reload';
+type cliCommand = 'help' | 'version' | 'dev' | 'build' | 'preview' | 'reload' | 'check';
 interface CLIState {
   cmd: cliCommand;
   options: {
@@ -59,6 +64,8 @@ function resolveArgs(flags: Arguments): CLIState {
       return { cmd: 'build', options };
     case 'preview':
       return { cmd: 'preview', options };
+    case 'check':
+      return { cmd: 'check', options };
     default:
       if (flags.reload) {
         return { cmd: 'reload', options };
@@ -76,6 +83,7 @@ function printHelp() {
   astro dev             Run Astro in development mode.
   astro build           Build a pre-compiled production version of your site.
   astro preview         Preview your build locally before deploying.
+  astro check           Check your project for errors.
 
   ${colors.bold('Flags:')}
   --config <path>       Specify the path to the Astro config file.
@@ -111,11 +119,11 @@ async function runCommand(rawRoot: string, cmd: (a: AstroConfig, opts: any) => P
     mergeCLIFlags(astroConfig, options);
 
     return cmd(astroConfig, options);
-  } catch (err) {
+  } catch (err: any) {
     if (err instanceof z.ZodError) {
       console.log(formatConfigError(err));
     } else {
-      console.error(colors.red(err.toString() || err));
+      console.error(colors.red(err.toString()));
     }
     process.exit(1);
   }
@@ -126,6 +134,7 @@ const cmdMap = new Map<string, (a: AstroConfig, opts?: any) => Promise<any>>([
   ['dev', devServer],
   ['preview', preview],
   ['reload', reloadAndExit],
+  ['check', checkAndExit]
 ]);
 
 /** The primary CLI action */
@@ -149,7 +158,8 @@ export async function cli(args: string[]) {
     }
     case 'build':
     case 'preview':
-    case 'dev': {
+    case 'dev':
+    case 'check': {
       if (flags.reload) {
         await reload();
       }
diff --git a/yarn.lock b/yarn.lock
index 8101a8d97a..e73c8e58aa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -106,6 +106,22 @@
     "@algolia/logger-common" "4.10.5"
     "@algolia/requester-common" "4.10.5"
 
+"@astrojs/language-server@^0.7.16":
+  version "0.7.16"
+  resolved "https://registry.yarnpkg.com/@astrojs/language-server/-/language-server-0.7.16.tgz#54ac89c70ec7a6ab2712d4f15357017e795db34a"
+  integrity sha512-LjWk9Ia8TrKGf4homDCFpL6r9gfB3cPqrEx1COuy5ukzy/cvGGersobwodtwsbOKqOWk7NwJbYbf51IIub7prQ==
+  dependencies:
+    lodash "^4.17.21"
+    source-map "^0.7.3"
+    ts-morph "^12.0.0"
+    typescript "^4.3.1-rc"
+    vscode-css-languageservice "^5.1.1"
+    vscode-emmet-helper "2.1.2"
+    vscode-html-languageservice "^3.0.3"
+    vscode-languageserver "6.1.1"
+    vscode-languageserver-protocol "^3.16.0"
+    vscode-languageserver-textdocument "^1.0.1"
+
 "@babel/code-frame@7.12.11":
   version "7.12.11"
   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@@ -548,6 +564,25 @@
     "@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28"
     algoliasearch "^4.0.0"
 
+"@emmetio/abbreviation@^2.2.2":
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/@emmetio/abbreviation/-/abbreviation-2.2.2.tgz#746762fd9e7a8c2ea604f580c62e3cfe250e6989"
+  integrity sha512-TtE/dBnkTCct8+LntkqVrwqQao6EnPAs1YN3cUgxOxTaBlesBCY37ROUAVZrRlG64GNnVShdl/b70RfAI3w5lw==
+  dependencies:
+    "@emmetio/scanner" "^1.0.0"
+
+"@emmetio/css-abbreviation@^2.1.4":
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz#90362e8a1122ce3b76f6c3157907d30182f53f54"
+  integrity sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==
+  dependencies:
+    "@emmetio/scanner" "^1.0.0"
+
+"@emmetio/scanner@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
+  integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
+
 "@eslint/eslintrc@^0.4.3":
   version "0.4.3"
   resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
@@ -1809,6 +1844,16 @@
   resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
   integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
 
+"@ts-morph/common@~0.11.0":
+  version "0.11.0"
+  resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.0.tgz#df94af35f42d01d9d389bfdefc8bcc3f6a59a192"
+  integrity sha512-Ti2tpROSVHlBoNiJKVUYPNk/yCPb1Bcly4RsSwC2F9a8PMMYfEYovRcghTu6N5o66Jq0yvPXN3uNaO4a3zskTA==
+  dependencies:
+    fast-glob "^3.2.7"
+    minimatch "^3.0.4"
+    mkdirp "^1.0.4"
+    path-browserify "^1.0.1"
+
 "@types/acorn@^4.0.0":
   version "4.0.6"
   resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22"
@@ -3248,6 +3293,11 @@ co@^4.6.0:
   resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
   integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
 
+code-block-writer@^10.1.1:
+  version "10.1.1"
+  resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f"
+  integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==
+
 code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@@ -3999,6 +4049,14 @@ electron-to-chromium@^1.3.811:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz#32ed024fa8316e5d469c96eecbea7d2463d80085"
   integrity sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q==
 
+emmet@^2.1.5:
+  version "2.3.4"
+  resolved "https://registry.yarnpkg.com/emmet/-/emmet-2.3.4.tgz#5ba0d7a5569a68c7697dfa890c772e4f3179d123"
+  integrity sha512-3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==
+  dependencies:
+    "@emmetio/abbreviation" "^2.2.2"
+    "@emmetio/css-abbreviation" "^2.1.4"
+
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -6054,6 +6112,11 @@ json5@^2.1.2, json5@^2.2.0:
   dependencies:
     minimist "^1.2.5"
 
+jsonc-parser@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342"
+  integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==
+
 jsonfile@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -8142,6 +8205,11 @@ pascal-case@^3.1.2:
     no-case "^3.0.4"
     tslib "^2.0.3"
 
+path-browserify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
+  integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
 path-exists@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -10248,6 +10316,14 @@ tryer@^1.0.0:
   resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
   integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
 
+ts-morph@^12.0.0:
+  version "12.0.0"
+  resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.0.0.tgz#a601c3538703755cbfa2d42b62c52df73e9dbbd7"
+  integrity sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==
+  dependencies:
+    "@ts-morph/common" "~0.11.0"
+    code-block-writer "^10.1.1"
+
 tslib@^1.8.1, tslib@^1.9.0:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
@@ -10366,6 +10442,11 @@ typescript@^4.2.4:
   resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
   integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
 
+typescript@^4.3.1-rc:
+  version "4.4.3"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"
+  integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==
+
 uglify-js@^3.1.4:
   version "3.14.1"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06"
@@ -10762,11 +10843,93 @@ vm2@^3.9.2:
   resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.3.tgz#29917f6cc081cc43a3f580c26c5b553fd3c91f40"
   integrity sha512-smLS+18RjXYMl9joyJxMNI9l4w7biW8ilSDaVRvFBDwOH8P0BK1ognFQTpg0wyQ6wIKLTblHJvROW692L/E53Q==
 
+vscode-css-languageservice@^5.1.1:
+  version "5.1.5"
+  resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-5.1.5.tgz#400b2f63a4f73c60f5b0afc48c478c1b326b27c6"
+  integrity sha512-c1hhsbnZ7bBvj10vMDLmkOk/n9r0rXQYDj4kbBi59bZaaEZ3e81zURx76/618NZM5NytlZmGfvmxQtB7mb03Ow==
+  dependencies:
+    vscode-languageserver-textdocument "^1.0.1"
+    vscode-languageserver-types "^3.16.0"
+    vscode-nls "^5.0.0"
+    vscode-uri "^3.0.2"
+
+vscode-emmet-helper@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-2.1.2.tgz#2978060ebb736a7e0f6e6f1d649bd026880528c3"
+  integrity sha512-Fy6UNawSgxE3Kuqi54vSXohf03iOIrp1A74ReAgzvGP9Yt7fUAvkqF6No2WAc34/w0oWAHAeqoBNqmKKWh6U5w==
+  dependencies:
+    emmet "^2.1.5"
+    jsonc-parser "^2.3.0"
+    vscode-languageserver-textdocument "^1.0.1"
+    vscode-languageserver-types "^3.15.1"
+    vscode-nls "^5.0.0"
+    vscode-uri "^2.1.2"
+
+vscode-html-languageservice@^3.0.3:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz#e92269a04097d87bd23431e3a4e491a27b5447b9"
+  integrity sha512-aLWIoWkvb5HYTVE0kI9/u3P0ZAJGrYOSAAE6L0wqB9radKRtbJNrF9+BjSUFyCgBdNBE/GFExo35LoknQDJrfw==
+  dependencies:
+    vscode-languageserver-textdocument "^1.0.1"
+    vscode-languageserver-types "3.16.0-next.2"
+    vscode-nls "^5.0.0"
+    vscode-uri "^2.1.2"
+
+vscode-jsonrpc@6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e"
+  integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==
+
+vscode-languageserver-protocol@^3.15.3, vscode-languageserver-protocol@^3.16.0:
+  version "3.16.0"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821"
+  integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==
+  dependencies:
+    vscode-jsonrpc "6.0.0"
+    vscode-languageserver-types "3.16.0"
+
+vscode-languageserver-textdocument@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
+  integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
+
+vscode-languageserver-types@3.16.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.16.0:
+  version "3.16.0"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
+  integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
+
+vscode-languageserver-types@3.16.0-next.2:
+  version "3.16.0-next.2"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
+  integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
+
+vscode-languageserver@6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz#d76afc68172c27d4327ee74332b468fbc740d762"
+  integrity sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ==
+  dependencies:
+    vscode-languageserver-protocol "^3.15.3"
+
+vscode-nls@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
+  integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
+
 vscode-textmate@5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e"
   integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==
 
+vscode-uri@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
+  integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
+
+vscode-uri@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0"
+  integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==
+
 vue@^3.2.0:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.6.tgz#c71445078751f458648fd8fb3a2da975507d03d2"