@vue/language-service 3.1.7 → 3.2.0

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.
@@ -79,7 +79,7 @@
79
79
  "name": "v-text",
80
80
  "description": {
81
81
  "kind": "markdown",
82
- "value": "Met à jour le contenu texte d'un élément.\n\n- **Attendu :** `string`\n\n- **Détails**\n\n `v-text` fonctionne en définissant la propriété [textContent](https://developer.mozilla.org/fr/docs/Web/API/Node/textContent) de l'élément, de sorte qu'elle écrasera tout contenu existant dans l'élément. Si vous devez mettre à jour `textContent`, vous devez utiliser les [interpolations moustaches](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) à la place.\n\n- **Exemple**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- same as -->\n <span>{{msg}}</span>\n ```\n\n- **Voir aussi** [Syntaxe de template - Interpolation de texte](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)"
82
+ "value": "Met à jour le contenu texte d'un élément.\n\n- **Attendu :** `string`\n\n- **Détails**\n\n `v-text` fonctionne en définissant la propriété [textContent](https://developer.mozilla.org/fr/docs/Web/API/Node/textContent) de l'élément, ce qui écrase tout contenu existant à l'intérieur de l'élément. Si vous devez mettre à jour uniquement une partie du `textContent`, vous devez plutôt utiliser les [interpolations de texte](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) (c'est-à-dire <span v-pre>`<span>Conserver ceci mais mettre à jour {{dynamicPortion}}</span>`</span>).\n\n- **Exemple**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- same as -->\n <span>{{msg}}</span>\n ```\n\n- **Voir aussi** [Syntaxe de template - Interpolation de texte](https://fr.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)"
83
83
  },
84
84
  "references": "api/built-in-directives.html#v-text"
85
85
  },
package/index.js CHANGED
@@ -35,7 +35,6 @@ const vue_document_drop_1 = require("./lib/plugins/vue-document-drop");
35
35
  const vue_document_highlights_1 = require("./lib/plugins/vue-document-highlights");
36
36
  const vue_extract_file_1 = require("./lib/plugins/vue-extract-file");
37
37
  const vue_format_per_block_1 = require("./lib/plugins/vue-format-per-block");
38
- const vue_global_types_error_1 = require("./lib/plugins/vue-global-types-error");
39
38
  const vue_inlayhints_1 = require("./lib/plugins/vue-inlayhints");
40
39
  const vue_missing_props_hints_1 = require("./lib/plugins/vue-missing-props-hints");
41
40
  const vue_scoped_class_links_1 = require("./lib/plugins/vue-scoped-class-links");
@@ -57,7 +56,6 @@ function createVueLanguageServicePlugins(ts, client = new Proxy({}, {
57
56
  (0, vue_autoinsert_space_1.create)(),
58
57
  (0, vue_compiler_dom_errors_1.create)(),
59
58
  (0, vue_directive_comments_1.create)(),
60
- (0, vue_global_types_error_1.create)(),
61
59
  (0, vue_scoped_class_links_1.create)(),
62
60
  (0, vue_sfc_1.create)(),
63
61
  (0, vue_template_ref_links_1.create)(),
package/lib/data.js CHANGED
@@ -38,23 +38,6 @@ function loadTemplateData(lang) {
38
38
  data = require('../data/template/en.json');
39
39
  }
40
40
  resolveReferences(data);
41
- for (const attr of [...data.globalAttributes ?? []]) {
42
- if (!attr.name.startsWith('v-')) {
43
- data.globalAttributes?.push({ ...attr, name: `:${attr.name}` }, { ...attr, name: `v-bind:${attr.name}` });
44
- }
45
- }
46
- const vOn = data.globalAttributes?.find(d => d.name === 'v-on');
47
- const vSlot = data.globalAttributes?.find(d => d.name === 'v-slot');
48
- const vBind = data.globalAttributes?.find(d => d.name === 'v-bind');
49
- if (vOn) {
50
- data.globalAttributes?.push({ ...vOn, name: '@' });
51
- }
52
- if (vSlot) {
53
- data.globalAttributes?.push({ ...vSlot, name: '#' });
54
- }
55
- if (vBind) {
56
- data.globalAttributes?.push({ ...vBind, name: ':' });
57
- }
58
41
  return data;
59
42
  }
60
43
  function loadLanguageBlocks(lang) {
@@ -4,6 +4,6 @@ import type * as ts from 'typescript';
4
4
  export declare function create(ts: typeof import('typescript'), { collectExtractProps }: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;
5
5
  export declare function getLastImportNode(ts: typeof import('typescript'), sourceFile: ts.SourceFile): ts.Node | undefined;
6
6
  export declare function createAddComponentToOptionEdit(ts: typeof import('typescript'), sfc: Sfc, ast: ts.SourceFile, componentName: string): {
7
- range: import("@vue/language-core").TextRange;
7
+ range: import("@vue/language-core").TextRange<ts.ObjectLiteralExpression>;
8
8
  newText: string;
9
9
  } | undefined;
@@ -238,18 +238,17 @@ function getLastImportNode(ts, sourceFile) {
238
238
  return lastImportNode;
239
239
  }
240
240
  function createAddComponentToOptionEdit(ts, sfc, ast, componentName) {
241
- const scriptRanges = language_core_1.tsCodegen.get(sfc)?.getScriptRanges();
242
- if (!scriptRanges?.componentOptions) {
241
+ const componentOptions = language_core_1.tsCodegen.get(sfc)?.getScriptRanges()?.exportDefault?.options;
242
+ if (!componentOptions) {
243
243
  return;
244
244
  }
245
- const { componentOptions } = scriptRanges;
246
245
  // https://github.com/microsoft/TypeScript/issues/36174
247
246
  const printer = ts.createPrinter();
248
- if (componentOptions.components && componentOptions.componentsNode) {
247
+ if (componentOptions.components) {
249
248
  const newNode = {
250
- ...componentOptions.componentsNode,
249
+ ...componentOptions.components.node,
251
250
  properties: [
252
- ...componentOptions.componentsNode.properties,
251
+ ...componentOptions.components.node.properties,
253
252
  ts.factory.createShorthandPropertyAssignment(componentName),
254
253
  ],
255
254
  };
@@ -261,9 +260,9 @@ function createAddComponentToOptionEdit(ts, sfc, ast, componentName) {
261
260
  }
262
261
  else {
263
262
  const newNode = {
264
- ...componentOptions.argsNode,
263
+ ...componentOptions.args.node,
265
264
  properties: [
266
- ...componentOptions.argsNode.properties,
265
+ ...componentOptions.args.node.properties,
267
266
  ts.factory.createShorthandPropertyAssignment(`components: { ${componentName} }`),
268
267
  ],
269
268
  };
@@ -1,2 +1,2 @@
1
1
  import type { LanguageServicePlugin } from '@volar/language-service';
2
- export declare function create({ getComponentNames, getElementNames, getComponentProps }: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;
2
+ export declare function create({ getComponentNames, getElementNames, getComponentMeta }: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;
@@ -1,11 +1,44 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.create = create;
4
37
  const language_core_1 = require("@vue/language-core");
5
- const html = require("vscode-html-languageservice");
38
+ const html = __importStar(require("vscode-html-languageservice"));
6
39
  const nameCasing_1 = require("../nameCasing");
7
40
  const utils_1 = require("../utils");
8
- function create({ getComponentNames, getElementNames, getComponentProps }) {
41
+ function create({ getComponentNames, getElementNames, getComponentMeta }) {
9
42
  return {
10
43
  name: 'vue-missing-props-hints',
11
44
  capabilities: {
@@ -54,9 +87,8 @@ function create({ getComponentNames, getElementNames, getComponentProps }) {
54
87
  if (cancellationToken.isCancellationRequested) {
55
88
  break;
56
89
  }
57
- componentProps.set(checkTag, (await getComponentProps(info.root.fileName, checkTag) ?? [])
58
- .filter(prop => prop.required)
59
- .map(prop => prop.name));
90
+ componentProps.set(checkTag, ((await getComponentMeta(info.root.fileName, checkTag))?.props ?? [])
91
+ .filter(prop => prop.required));
60
92
  }
61
93
  current = {
62
94
  unburnedRequiredProps: [...componentProps.get(checkTag)],
@@ -93,9 +125,9 @@ function create({ getComponentNames, getElementNames, getComponentProps }) {
93
125
  else if (attrText.startsWith('@')) {
94
126
  attrText = 'on-' + (0, language_core_1.hyphenateAttr)(attrText.slice('@'.length));
95
127
  }
96
- current.unburnedRequiredProps = current.unburnedRequiredProps.filter(propName => {
97
- return attrText !== propName
98
- && attrText !== (0, language_core_1.hyphenateAttr)(propName);
128
+ current.unburnedRequiredProps = current.unburnedRequiredProps.filter(prop => {
129
+ return attrText !== prop.name
130
+ && attrText !== (0, language_core_1.hyphenateAttr)(prop.name);
99
131
  });
100
132
  }
101
133
  }
@@ -104,7 +136,7 @@ function create({ getComponentNames, getElementNames, getComponentProps }) {
104
136
  if (current) {
105
137
  for (const requiredProp of current.unburnedRequiredProps) {
106
138
  result.push({
107
- label: `${requiredProp}!`,
139
+ label: requiredProp.name,
108
140
  paddingLeft: true,
109
141
  position: document.positionAt(current.labelOffset),
110
142
  kind: 2,
@@ -113,7 +145,7 @@ function create({ getComponentNames, getElementNames, getComponentProps }) {
113
145
  start: document.positionAt(current.labelOffset),
114
146
  end: document.positionAt(current.labelOffset),
115
147
  },
116
- newText: ` :${attrNameCasing === 0 /* AttrNameCasing.Kebab */ ? (0, language_core_1.hyphenateAttr)(requiredProp) : requiredProp}=`,
148
+ newText: ` :${attrNameCasing === 0 /* AttrNameCasing.Kebab */ ? (0, language_core_1.hyphenateAttr)(requiredProp.name) : requiredProp.name}=`,
117
149
  }],
118
150
  });
119
151
  }
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.create = create;
4
37
  const language_core_1 = require("@vue/language-core");
5
38
  const volar_service_html_1 = require("volar-service-html");
6
- const html = require("vscode-html-languageservice");
39
+ const html = __importStar(require("vscode-html-languageservice"));
7
40
  const data_1 = require("../data");
8
41
  const utils_1 = require("../utils");
9
42
  let sfcDataProvider;
@@ -1,2 +1,2 @@
1
1
  import { type LanguageServicePlugin } from '@volar/language-service';
2
- export declare function create(ts: typeof import('typescript'), languageId: 'html' | 'jade', { getComponentNames, getComponentProps, getComponentEvents, getComponentDirectives, getComponentSlots, getElementAttrs, resolveModuleName, getAutoImportSuggestions, resolveAutoImportCompletionEntry, }: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;
2
+ export declare function create(ts: typeof import('typescript'), languageId: 'html' | 'jade', tsserver: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;