@vue/language-service 3.1.4 → 3.1.5
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.
- package/data/template/ru.json +1 -1
- package/index.js +1 -1
- package/lib/plugins/css.d.ts +1 -1
- package/lib/plugins/css.js +14 -7
- package/lib/plugins/vue-template.d.ts +1 -1
- package/lib/plugins/vue-template.js +22 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +15 -0
- package/package.json +4 -4
package/data/template/ru.json
CHANGED
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"name": "v-text",
|
|
80
80
|
"description": {
|
|
81
81
|
"kind": "markdown",
|
|
82
|
-
"value": "Обновление текстового содержимого элемента.\n\n- **Ожидает:** `string`\n\n- **Подробности**\n\n `v-text` работает путём установки свойства [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) элемента, поэтому он будет перезаписывать всё существующее содержимое внутри элемента. Если необходимо обновить часть `textContent`, то вместо этого следует использовать [текстовые интерполяции](https://ru.vuejs.org/guide/essentials/template-syntax.html#text-interpolation).\n\n- **Пример**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- тоже самое -->\n <span>{{msg}}</span>\n ```\n\n- **См. также** [Синтаксис шаблонов - Текстовые интерполяции](https://ru.vuejs.org/guide/essentials/template-syntax.html#text-interpolation)"
|
|
82
|
+
"value": "Обновление текстового содержимого элемента.\n\n- **Ожидает:** `string`\n\n- **Подробности**\n\n `v-text` работает путём установки свойства [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) элемента, поэтому он будет перезаписывать всё существующее содержимое внутри элемента. Если необходимо обновить только часть `textContent`, то вместо этого следует использовать [текстовые интерполяции](https://ru.vuejs.org/guide/essentials/template-syntax.html#text-interpolation) (то есть <span v-pre>`<span>Оставьте это, но обновите {{dynamicPortion}}</span>`</span>).\n\n- **Пример**\n\n ```html\n <span v-text=\"msg\"></span>\n <!-- тоже самое -->\n <span>{{msg}}</span>\n ```\n\n- **См. также** [Синтаксис шаблонов - Текстовые интерполяции](https://ru.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
|
@@ -50,7 +50,6 @@ function createVueLanguageServicePlugins(ts, client = new Proxy({}, {
|
|
|
50
50
|
},
|
|
51
51
|
})) {
|
|
52
52
|
return [
|
|
53
|
-
(0, css_1.create)(),
|
|
54
53
|
(0, volar_service_json_1.create)(),
|
|
55
54
|
(0, volar_service_pug_beautify_1.create)(),
|
|
56
55
|
(0, vue_autoinsert_space_1.create)(),
|
|
@@ -72,6 +71,7 @@ function createVueLanguageServicePlugins(ts, client = new Proxy({}, {
|
|
|
72
71
|
(0, syntactic_1.create)(ts),
|
|
73
72
|
(0, vue_inlayhints_1.create)(ts),
|
|
74
73
|
// type aware plugins
|
|
74
|
+
(0, css_1.create)(client),
|
|
75
75
|
(0, typescript_semantic_tokens_1.create)(client),
|
|
76
76
|
(0, vue_autoinsert_dotvalue_1.create)(ts, client),
|
|
77
77
|
(0, vue_component_semantic_tokens_1.create)(client),
|
package/lib/plugins/css.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { LanguageServicePlugin } from '@volar/language-service';
|
|
2
|
-
export declare function create(): LanguageServicePlugin;
|
|
2
|
+
export declare function create({ resolveModuleName }: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;
|
package/lib/plugins/css.js
CHANGED
|
@@ -4,17 +4,24 @@ exports.create = create;
|
|
|
4
4
|
const language_core_1 = require("@vue/language-core");
|
|
5
5
|
const volar_service_css_1 = require("volar-service-css");
|
|
6
6
|
const utils_1 = require("../utils");
|
|
7
|
-
function create() {
|
|
8
|
-
const
|
|
7
|
+
function create({ resolveModuleName }) {
|
|
8
|
+
const baseService = (0, volar_service_css_1.create)({
|
|
9
|
+
getDocumentContext(context) {
|
|
10
|
+
return {
|
|
11
|
+
resolveReference: (0, utils_1.createReferenceResolver)(context, volar_service_css_1.resolveReference, resolveModuleName),
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
scssDocumentSelector: ['scss', 'postcss'],
|
|
15
|
+
});
|
|
9
16
|
return {
|
|
10
|
-
...
|
|
17
|
+
...baseService,
|
|
11
18
|
create(context) {
|
|
12
|
-
const
|
|
13
|
-
const { 'css/languageService': getCssLs, 'css/stylesheet': getStylesheet, } =
|
|
19
|
+
const baseServiceInstance = baseService.create(context);
|
|
20
|
+
const { 'css/languageService': getCssLs, 'css/stylesheet': getStylesheet, } = baseServiceInstance.provide;
|
|
14
21
|
return {
|
|
15
|
-
...
|
|
22
|
+
...baseServiceInstance,
|
|
16
23
|
async provideDiagnostics(document, token) {
|
|
17
|
-
let diagnostics = await
|
|
24
|
+
let diagnostics = await baseServiceInstance.provideDiagnostics?.(document, token) ?? [];
|
|
18
25
|
if (document.languageId === 'postcss') {
|
|
19
26
|
diagnostics = diagnostics.filter(diag => diag.code !== 'css-semicolonexpected'
|
|
20
27
|
&& diag.code !== 'css-ruleorselectorexpected'
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { LanguageServicePlugin } from '@volar/language-service';
|
|
2
|
-
export declare function create(languageId: 'html' | 'jade', { getComponentNames,
|
|
2
|
+
export declare function create(languageId: 'html' | 'jade', { getComponentNames, getComponentProps, getComponentEvents, getComponentDirectives, getComponentSlots, getElementAttrs, resolveModuleName, }: import('@vue/typescript-plugin/lib/requests').Requests): LanguageServicePlugin;
|
|
@@ -25,7 +25,7 @@ const specialProps = new Set([
|
|
|
25
25
|
]);
|
|
26
26
|
let builtInData;
|
|
27
27
|
let modelData;
|
|
28
|
-
function create(languageId, { getComponentNames,
|
|
28
|
+
function create(languageId, { getComponentNames, getComponentProps, getComponentEvents, getComponentDirectives, getComponentSlots, getElementAttrs, resolveModuleName, }) {
|
|
29
29
|
let customData = [];
|
|
30
30
|
let extraCustomData = [];
|
|
31
31
|
const onDidChangeCustomDataListeners = new Set();
|
|
@@ -51,6 +51,11 @@ function create(languageId, { getComponentNames, getElementAttrs, getComponentPr
|
|
|
51
51
|
: (0, volar_service_html_1.create)({
|
|
52
52
|
documentSelector: ['html', 'markdown'],
|
|
53
53
|
useDefaultDataProvider: false,
|
|
54
|
+
getDocumentContext(context) {
|
|
55
|
+
return {
|
|
56
|
+
resolveReference: (0, utils_1.createReferenceResolver)(context, volar_service_html_1.resolveReference, resolveModuleName),
|
|
57
|
+
};
|
|
58
|
+
},
|
|
54
59
|
getCustomData() {
|
|
55
60
|
return [
|
|
56
61
|
...customData,
|
|
@@ -287,6 +292,22 @@ function create(languageId, { getComponentNames, getElementAttrs, getComponentPr
|
|
|
287
292
|
}
|
|
288
293
|
return baseServiceInstance.provideHover?.(document, position, token);
|
|
289
294
|
},
|
|
295
|
+
async provideDocumentLinks(document, token) {
|
|
296
|
+
if (document.languageId !== languageId) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
const info = (0, utils_1.resolveEmbeddedCode)(context, document.uri);
|
|
300
|
+
if (info?.code.id !== 'template') {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
const documentLinks = await baseServiceInstance.provideDocumentLinks?.(document, token) ?? [];
|
|
304
|
+
for (const link of documentLinks) {
|
|
305
|
+
if (link.target && (0, shared_1.isPromise)(link.target)) {
|
|
306
|
+
link.target = await link.target;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return documentLinks;
|
|
310
|
+
},
|
|
290
311
|
};
|
|
291
312
|
async function runWithVueData(sourceDocumentUri, root, fn) {
|
|
292
313
|
// #4298: Precompute HTMLDocument before provideHtmlData to avoid parseHTMLDocument requesting component names from tsserver
|
package/lib/utils.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare function resolveEmbeddedCode(context: LanguageServiceContext, uri
|
|
|
6
6
|
code: import("@volar/language-service").VirtualCode;
|
|
7
7
|
root: VueVirtualCode;
|
|
8
8
|
} | undefined;
|
|
9
|
+
export declare function createReferenceResolver(context: LanguageServiceContext, resolveReference: typeof import('volar-service-html').resolveReference, resolveModuleName: import('@vue/typescript-plugin/lib/requests').Requests['resolveModuleName']): (ref: string, base: string) => Promise<string>;
|
package/lib/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveEmbeddedCode = resolveEmbeddedCode;
|
|
4
|
+
exports.createReferenceResolver = createReferenceResolver;
|
|
4
5
|
const vscode_uri_1 = require("vscode-uri");
|
|
5
6
|
function resolveEmbeddedCode(context, uriStr) {
|
|
6
7
|
const uri = vscode_uri_1.URI.parse(uriStr);
|
|
@@ -16,4 +17,18 @@ function resolveEmbeddedCode(context, uriStr) {
|
|
|
16
17
|
root: sourceScript.generated.root,
|
|
17
18
|
};
|
|
18
19
|
}
|
|
20
|
+
function createReferenceResolver(context, resolveReference, resolveModuleName) {
|
|
21
|
+
return async (ref, base) => {
|
|
22
|
+
let uri = vscode_uri_1.URI.parse(base);
|
|
23
|
+
const decoded = context.decodeEmbeddedDocumentUri(uri);
|
|
24
|
+
if (decoded) {
|
|
25
|
+
uri = decoded[0];
|
|
26
|
+
}
|
|
27
|
+
let moduleName;
|
|
28
|
+
if (!ref.startsWith('./') && !ref.startsWith('../')) {
|
|
29
|
+
moduleName = await resolveModuleName(uri.fsPath, ref);
|
|
30
|
+
}
|
|
31
|
+
return moduleName ?? resolveReference(ref, uri, context.env.workspaceFolders);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
19
34
|
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue/language-service",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"data",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@volar/language-service": "2.4.23",
|
|
21
|
-
"@vue/language-core": "3.1.
|
|
21
|
+
"@vue/language-core": "3.1.5",
|
|
22
22
|
"@vue/shared": "^3.5.0",
|
|
23
23
|
"path-browserify": "^1.0.1",
|
|
24
24
|
"volar-service-css": "0.0.67",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"@volar/kit": "2.4.23",
|
|
38
38
|
"@volar/typescript": "2.4.23",
|
|
39
39
|
"@vue/compiler-dom": "^3.5.0",
|
|
40
|
-
"@vue/typescript-plugin": "3.1.
|
|
40
|
+
"@vue/typescript-plugin": "3.1.5",
|
|
41
41
|
"vscode-css-languageservice": "^6.3.1"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "d124a88fbf169e793c39ae4248da2092098de92d"
|
|
44
44
|
}
|