Skip to content

Commit

Permalink
Merge branch 'master' into web-import-ts-from-cdn
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed Oct 27, 2023
2 parents a0ce252 + a70e8f4 commit 927c2fe
Show file tree
Hide file tree
Showing 14 changed files with 111 additions and 52 deletions.
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
"packages": [
"packages/*"
],
"version": "1.10.6"
"version": "1.10.7"
}
4 changes: 2 additions & 2 deletions packages/cdn/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/cdn",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -13,6 +13,6 @@
"directory": "packages/cdn"
},
"dependencies": {
"@volar/language-service": "1.10.6"
"@volar/language-service": "1.10.7"
}
}
4 changes: 2 additions & 2 deletions packages/kit/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/kit",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -13,7 +13,7 @@
"directory": "packages/kit"
},
"dependencies": {
"@volar/language-service": "1.10.6",
"@volar/language-service": "1.10.7",
"typesafe-path": "^0.2.2",
"vscode-languageserver-textdocument": "^1.0.11",
"vscode-uri": "^3.0.8"
Expand Down
8 changes: 4 additions & 4 deletions packages/labs/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"private": true,
"name": "volarjs-labs",
"version": "1.10.6",
"version": "1.10.7",
"repository": {
"type": "git",
"url": "https://github.com/volarjs/volar.js.git",
Expand Down Expand Up @@ -83,9 +83,9 @@
"devDependencies": {
"@types/node": "latest",
"@types/vscode": "^1.82.0",
"@volar/language-server": "1.10.6",
"@volar/source-map": "1.10.6",
"@volar/vscode": "1.10.6",
"@volar/language-server": "1.10.7",
"@volar/source-map": "1.10.7",
"@volar/vscode": "1.10.7",
"esbuild": "0.15.18",
"esbuild-plugin-copy": "latest",
"esbuild-visualizer": "^0.4.1",
Expand Down
4 changes: 2 additions & 2 deletions packages/language-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/language-core",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -13,6 +13,6 @@
"directory": "packages/language-core"
},
"dependencies": {
"@volar/source-map": "1.10.6"
"@volar/source-map": "1.10.7"
}
}
10 changes: 5 additions & 5 deletions packages/language-server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/language-server",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -15,9 +15,9 @@
"directory": "packages/language-server"
},
"dependencies": {
"@volar/language-core": "1.10.6",
"@volar/language-service": "1.10.6",
"@volar/typescript": "1.10.6",
"@volar/language-core": "1.10.7",
"@volar/language-service": "1.10.7",
"@volar/typescript": "1.10.7",
"@vscode/l10n": "^0.0.16",
"request-light": "^0.7.0",
"typesafe-path": "^0.2.2",
Expand All @@ -27,6 +27,6 @@
"vscode-uri": "^3.0.8"
},
"devDependencies": {
"@volar/source-map": "1.10.6"
"@volar/source-map": "1.10.7"
}
}
6 changes: 3 additions & 3 deletions packages/language-service/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/language-service",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -13,8 +13,8 @@
"directory": "packages/language-service"
},
"dependencies": {
"@volar/language-core": "1.10.6",
"@volar/source-map": "1.10.6",
"@volar/language-core": "1.10.7",
"@volar/source-map": "1.10.7",
"vscode-languageserver-protocol": "^3.17.5",
"vscode-languageserver-textdocument": "^1.0.11",
"vscode-uri": "^3.0.8"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ import type * as vscode from 'vscode-languageserver-protocol';
import type { ServiceContext } from '../types';
import { DocumentLinkData } from './documentLinks';
import { NoneCancellationToken } from '../utils/cancellation';
import { URI } from 'vscode-uri';

export function register(context: ServiceContext) {

return async (item: vscode.CodeLens, token = NoneCancellationToken) => {
return async (item: vscode.DocumentLink, token = NoneCancellationToken) => {

const data: DocumentLinkData | undefined = item.data;
if (data) {
Expand All @@ -15,8 +16,59 @@ export function register(context: ServiceContext) {

Object.assign(item, data.original);
item = await service.resolveDocumentLink(item, token);

if (item.target) {
item.target = transformDocumentLinkTarget(item.target, context);
}
}

return item;
};
}

export function transformDocumentLinkTarget(target: string, context: ServiceContext) {

const targetUri = URI.parse(target);
const clearUri = targetUri.with({ fragment: '' }).toString();

if (context.documents.isVirtualFileUri(clearUri)) {
for (const [virtualFile, map] of context.documents.getMapsByVirtualFileUri(clearUri)) {

if (!virtualFile.capabilities.documentSymbol) {
continue;
}

target = map.sourceFileDocument.uri;

const hash = targetUri.fragment;
const range = hash.match(/^L(\d+)(,(\d+))?(-L(\d+)(,(\d+))?)?$/);

if (range) {
const startLine = Number(range[1]) - 1;
const startCharacter = Number(range[3] ?? 1) - 1;
if (range[5] !== undefined) {
const endLine = Number(range[5]) - 1;
const endCharacter = Number(range[7] ?? 1) - 1;
const sourceRange = map.toSourceRange({
start: { line: startLine, character: startCharacter },
end: { line: endLine, character: endCharacter },
});
if (sourceRange) {
target += '#L' + (sourceRange.start.line + 1) + ',' + (sourceRange.start.character + 1);
target += '-L' + (sourceRange.end.line + 1) + ',' + (sourceRange.end.character + 1);
break;
}
}
else {
const sourcePos = map.toSourcePosition({ line: startLine, character: startCharacter });
if (sourcePos) {
target += '#L' + (sourcePos.line + 1) + ',' + (sourcePos.character + 1);
break;
}
}
}
}
}

return target;
}
23 changes: 15 additions & 8 deletions packages/language-service/src/languageFeatures/documentLinks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { SourceMapWithDocuments } from '../documents';
import { FileRangeCapabilities, VirtualFile } from '@volar/language-core';
import { notEmpty } from '../utils/common';
import { NoneCancellationToken } from '../utils/cancellation';
import { transformDocumentLinkTarget } from './documentLinkResolve';

export interface DocumentLinkData {
uri: string,
Expand All @@ -28,15 +29,15 @@ export function register(context: ServiceContext) {

const links = await service.provideDocumentLinks?.(document, token);

links?.forEach(link => {
for (const link of links ?? []) {
link.data = {
uri,
original: {
data: link.data,
},
serviceId: Object.keys(context.services).find(key => context.services[key] === service)!,
} satisfies DocumentLinkData;
});
}

return links;
},
Expand All @@ -46,12 +47,18 @@ export function register(context: ServiceContext) {
return link;

const range = map.toSourceRange(link.range);
if (range) {
return {
...link,
range,
};
}
if (!range)
return;

link = {
...link,
range,
};

if (link.target)
link.target = transformDocumentLinkTarget(link.target, context);

return link;
}).filter(notEmpty),
arr => arr.flat(),
) ?? [];
Expand Down
4 changes: 2 additions & 2 deletions packages/monaco/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/monaco",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -15,7 +15,7 @@
"directory": "packages/monaco"
},
"dependencies": {
"@volar/language-service": "1.10.6",
"@volar/language-service": "1.10.7",
"vscode-uri": "^3.0.8"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/source-map/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/source-map",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand Down
6 changes: 3 additions & 3 deletions packages/typescript/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/typescript",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -13,11 +13,11 @@
"directory": "packages/typescript"
},
"dependencies": {
"@volar/language-core": "1.10.6",
"@volar/language-core": "1.10.7",
"path-browserify": "^1.0.1"
},
"devDependencies": {
"@types/path-browserify": "^1.0.1",
"@volar/language-service": "1.10.6"
"@volar/language-service": "1.10.7"
}
}
4 changes: 2 additions & 2 deletions packages/vscode/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@volar/vscode",
"version": "1.10.6",
"version": "1.10.7",
"main": "out/index.js",
"license": "MIT",
"files": [
Expand All @@ -13,7 +13,7 @@
"directory": "packages/vscode"
},
"dependencies": {
"@volar/language-server": "1.10.6",
"@volar/language-server": "1.10.7",
"typesafe-path": "^0.2.2",
"vscode-nls": "^5.2.0"
},
Expand Down
Loading

0 comments on commit 927c2fe

Please sign in to comment.