volar-service-css 0.0.52 → 0.0.53
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/index.d.ts +2 -0
- package/index.js +27 -13
- package/package.json +2 -2
package/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { Disposable, DocumentSelector, FormattingOptions, ProviderResult, LanguageServiceContext, LanguageServicePlugin } from '@volar/language-service';
|
|
2
2
|
import * as css from 'vscode-css-languageservice';
|
|
3
3
|
import { TextDocument } from 'vscode-languageserver-textdocument';
|
|
4
|
+
import { URI } from 'vscode-uri';
|
|
4
5
|
export interface Provide {
|
|
5
6
|
'css/stylesheet': (document: TextDocument, ls: css.LanguageService) => css.Stylesheet;
|
|
6
7
|
'css/languageService': (document: TextDocument) => css.LanguageService | undefined;
|
|
7
8
|
}
|
|
9
|
+
export declare function resolveReference(ref: string, baseUri: URI, workspaceFolders: URI[]): string;
|
|
8
10
|
export declare function create({ cssDocumentSelector, scssDocumentSelector, lessDocumentSelector, useDefaultDataProvider, getDocumentContext, isFormattingEnabled, getFormattingOptions, getLanguageSettings, getCustomData, onDidChangeCustomData, }?: {
|
|
9
11
|
cssDocumentSelector?: DocumentSelector;
|
|
10
12
|
scssDocumentSelector?: DocumentSelector;
|
package/index.js
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveReference = resolveReference;
|
|
3
4
|
exports.create = create;
|
|
4
5
|
const css = require("vscode-css-languageservice");
|
|
5
6
|
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
|
6
7
|
const vscode_uri_1 = require("vscode-uri");
|
|
8
|
+
function resolveReference(ref, baseUri, workspaceFolders) {
|
|
9
|
+
if (ref.match(/^\w[\w\d+.-]*:/)) {
|
|
10
|
+
// starts with a schema
|
|
11
|
+
return ref;
|
|
12
|
+
}
|
|
13
|
+
if (ref[0] === '/') { // resolve absolute path against the current workspace folder
|
|
14
|
+
const folderUri = getRootFolder();
|
|
15
|
+
if (folderUri) {
|
|
16
|
+
return folderUri + ref.substr(1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const baseUriDir = baseUri.path.endsWith('/') ? baseUri : vscode_uri_1.Utils.dirname(baseUri);
|
|
20
|
+
return vscode_uri_1.Utils.resolvePath(baseUriDir, ref).toString(true);
|
|
21
|
+
function getRootFolder() {
|
|
22
|
+
for (const folder of workspaceFolders) {
|
|
23
|
+
let folderURI = folder.toString();
|
|
24
|
+
if (!folderURI.endsWith('/')) {
|
|
25
|
+
folderURI = folderURI + '/';
|
|
26
|
+
}
|
|
27
|
+
if (baseUri.toString().startsWith(folderURI)) {
|
|
28
|
+
return folderURI;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
7
33
|
function create({ cssDocumentSelector = ['css'], scssDocumentSelector = ['scss'], lessDocumentSelector = ['less'], useDefaultDataProvider = true, getDocumentContext = context => {
|
|
8
34
|
return {
|
|
9
35
|
resolveReference(ref, base) {
|
|
@@ -12,19 +38,7 @@ function create({ cssDocumentSelector = ['css'], scssDocumentSelector = ['scss']
|
|
|
12
38
|
if (decoded) {
|
|
13
39
|
baseUri = decoded[0];
|
|
14
40
|
}
|
|
15
|
-
|
|
16
|
-
// starts with a schema
|
|
17
|
-
return ref;
|
|
18
|
-
}
|
|
19
|
-
if (ref[0] === '/' && context.env.workspaceFolders.length) { // resolve absolute path against the current workspace folder
|
|
20
|
-
let folderUri = context.env.workspaceFolders[0].toString();
|
|
21
|
-
if (!folderUri.endsWith('/')) {
|
|
22
|
-
folderUri += '/';
|
|
23
|
-
}
|
|
24
|
-
return folderUri + ref.substring(1);
|
|
25
|
-
}
|
|
26
|
-
const baseUriDir = baseUri.path.endsWith('/') ? baseUri : vscode_uri_1.Utils.dirname(baseUri);
|
|
27
|
-
return vscode_uri_1.Utils.resolvePath(baseUriDir, ref).toString(true);
|
|
41
|
+
return resolveReference(ref, baseUri, context.env.workspaceFolders);
|
|
28
42
|
},
|
|
29
43
|
};
|
|
30
44
|
}, isFormattingEnabled = async (document, context) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "volar-service-css",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.53",
|
|
4
4
|
"description": "Integrate vscode-css-languageservice into Volar",
|
|
5
5
|
"homepage": "https://github.com/volarjs/services/tree/master/packages/css",
|
|
6
6
|
"bugs": "https://github.com/volarjs/services/issues",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"optional": true
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "8c61d6a8acc354e68c726727f72be7d318c583da"
|
|
43
43
|
}
|