@vue/language-server 1.7.8 → 1.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ const vue2 = require("@vue/language-core");
6
6
  const nameCasing = require("@vue/language-service");
7
7
  const protocol_1 = require("./protocol");
8
8
  const componentMeta = require("vue-component-meta");
9
+ const typescript_1 = require("@volar/typescript");
9
10
  function createServerPlugin(connection) {
10
11
  const plugin = (initOptions, modules) => {
11
12
  if (!modules.typescript) {
@@ -23,24 +24,30 @@ function createServerPlugin(connection) {
23
24
  return {
24
25
  extraFileExtensions: vueFileExtensions.map(ext => ({ extension: ext, isMixedContent: true, scriptKind: ts.ScriptKind.Deferred })),
25
26
  watchFileExtensions: ['js', 'cjs', 'mjs', 'ts', 'cts', 'mts', 'jsx', 'tsx', 'json', ...vueFileExtensions],
26
- resolveConfig(config, ctx) {
27
- const vueOptions = getVueCompilerOptions();
27
+ async resolveConfig(config, ctx) {
28
+ const vueOptions = await getVueCompilerOptions();
28
29
  const vueLanguageServiceSettings = getVueLanguageServiceSettings();
29
30
  if (ctx) {
30
31
  hostToVueOptions.set(ctx.host, vueOptions);
31
32
  }
32
33
  return vue.resolveConfig(config, ctx?.host.getCompilationSettings() ?? {}, vueOptions, ts, vueLanguageServiceSettings, initOptions.codegenStack);
33
- function getVueCompilerOptions() {
34
+ async function getVueCompilerOptions() {
34
35
  const ts = modules.typescript;
35
- let vueOptions;
36
- if (typeof ctx?.project.tsConfig === 'string' && ts) {
37
- vueOptions = vue2.createParsedCommandLine(ts, ctx.sys, ctx.project.tsConfig).vueOptions;
38
- }
39
- else if (typeof ctx?.project.tsConfig === 'object' && ts) {
40
- vueOptions = vue2.createParsedCommandLineByJson(ts, ctx.sys, ctx.host.getCurrentDirectory(), ctx.project.tsConfig).vueOptions;
41
- }
42
- else {
43
- vueOptions = {};
36
+ let vueOptions = {};
37
+ if (ts && ctx) {
38
+ const sys = (0, typescript_1.createSys)(undefined, ts, ctx.env);
39
+ let sysVersion;
40
+ let newSysVersion = await sys.sync();
41
+ while (sysVersion !== newSysVersion) {
42
+ sysVersion = newSysVersion;
43
+ if (typeof ctx?.project.tsConfig === 'string' && ts) {
44
+ vueOptions = vue2.createParsedCommandLine(ts, sys, ctx.project.tsConfig).vueOptions;
45
+ }
46
+ else if (typeof ctx?.project.tsConfig === 'object' && ts) {
47
+ vueOptions = vue2.createParsedCommandLineByJson(ts, sys, ctx.host.getCurrentDirectory(), ctx.project.tsConfig).vueOptions;
48
+ }
49
+ newSysVersion = await sys.sync();
50
+ }
44
51
  }
45
52
  vueOptions.extensions = [
46
53
  ...vueOptions.extensions ?? ['.vue'],
@@ -70,19 +77,19 @@ function createServerPlugin(connection) {
70
77
  });
71
78
  connection.onRequest(protocol_1.DetectNameCasingRequest.type, async (params) => {
72
79
  const languageService = await getService(params.textDocument.uri);
73
- if (languageService?.context.typescript) {
80
+ if (languageService) {
74
81
  return nameCasing.detect(ts, languageService.context, params.textDocument.uri);
75
82
  }
76
83
  });
77
84
  connection.onRequest(protocol_1.GetConvertTagCasingEditsRequest.type, async (params) => {
78
85
  const languageService = await getService(params.textDocument.uri);
79
- if (languageService?.context.typescript) {
86
+ if (languageService) {
80
87
  return nameCasing.convertTagName(ts, languageService.context, params.textDocument.uri, params.casing);
81
88
  }
82
89
  });
83
90
  connection.onRequest(protocol_1.GetConvertAttrCasingEditsRequest.type, async (params) => {
84
91
  const languageService = await getService(params.textDocument.uri);
85
- if (languageService?.context.typescript) {
92
+ if (languageService) {
86
93
  const vueOptions = hostToVueOptions.get(languageService.context.host);
87
94
  if (vueOptions) {
88
95
  return nameCasing.convertAttrName(ts, languageService.context, params.textDocument.uri, params.casing);
@@ -92,12 +99,13 @@ function createServerPlugin(connection) {
92
99
  const checkers = new WeakMap();
93
100
  connection.onRequest(protocol_1.GetComponentMeta.type, async (params) => {
94
101
  const languageService = await getService(params.uri);
95
- if (!languageService?.context.typescript)
102
+ if (!languageService)
96
103
  return;
97
- let checker = checkers.get(languageService.context.host);
104
+ const host = languageService.context.rawHost;
105
+ let checker = checkers.get(host);
98
106
  if (!checker) {
99
- checker = componentMeta.baseCreate(languageService.context.host, hostToVueOptions.get(languageService.context.host), {}, languageService.context.host.getCurrentDirectory() + '/tsconfig.json.global.vue', ts);
100
- checkers.set(languageService.context.host, checker);
107
+ checker = componentMeta.baseCreate(host, hostToVueOptions.get(host), {}, host.getCurrentDirectory() + '/tsconfig.json.global.vue', ts);
108
+ checkers.set(host, checker);
101
109
  }
102
110
  return checker.getComponentMeta(env.uriToFileName(params.uri));
103
111
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/language-server",
3
- "version": "1.7.8",
3
+ "version": "1.7.10",
4
4
  "main": "out/index.js",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -16,12 +16,13 @@
16
16
  "directory": "packages/vue-language-server"
17
17
  },
18
18
  "dependencies": {
19
- "@volar/language-core": "1.6.9",
20
- "@volar/language-server": "1.6.9",
21
- "@vue/language-core": "1.7.8",
22
- "@vue/language-service": "1.7.8",
19
+ "@volar/language-core": "1.7.3",
20
+ "@volar/language-server": "1.7.3",
21
+ "@volar/typescript": "1.7.3",
22
+ "@vue/language-core": "1.7.10",
23
+ "@vue/language-service": "1.7.10",
23
24
  "vscode-languageserver-protocol": "^3.17.3",
24
- "vue-component-meta": "1.7.8"
25
+ "vue-component-meta": "1.7.10"
25
26
  },
26
- "gitHead": "9841dc5c7b19c2b1d24fcc95a808f29af39710b8"
27
+ "gitHead": "e395a70b33b2f09a58211eb55a1869db72c4fc19"
27
28
  }