Skip to content

Commit 320fc62

Browse files
committed
fix(typescript-plugin): add isTsPlugin param for repl support
1 parent a66f233 commit 320fc62

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

packages/typescript-plugin/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export = createLanguageServicePlugin(
104104
const [fileName, templateCodeRange]: Parameters<Requests['collectExtractProps']> = request.arguments;
105105
const { language, program, sourceScript, virtualCode } = getLanguageServiceAndVirtualCode(fileName);
106106
return {
107-
response: collectExtractProps(ts, language, program, sourceScript, virtualCode, templateCodeRange),
107+
response: collectExtractProps(ts, language, program, sourceScript, virtualCode, templateCodeRange, true),
108108
};
109109
},
110110
);
@@ -120,7 +120,7 @@ export = createLanguageServicePlugin(
120120
const [fileName, position]: Parameters<Requests['getPropertiesAtLocation']> = request.arguments;
121121
const { language, program, sourceScript, virtualCode } = getLanguageServiceAndVirtualCode(fileName);
122122
return {
123-
response: getPropertiesAtLocation(ts, language, program, sourceScript, virtualCode, position),
123+
response: getPropertiesAtLocation(ts, language, program, sourceScript, virtualCode, position, true),
124124
};
125125
});
126126
session.addProtocolHandler('_vue:getComponentDirectives', request => {

packages/typescript-plugin/lib/requests/collectExtractProps.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export function collectExtractProps(
1414
sourceScript: SourceScript,
1515
virtualCode: VueVirtualCode,
1616
templateCodeRange: [number, number],
17+
isTsPlugin: boolean,
1718
): ExtractPropsInfo[] {
1819
const result = new Map<string, ExtractPropsInfo>();
1920
const sourceFile = program.getSourceFile(virtualCode.fileName)!;
@@ -33,7 +34,7 @@ export function collectExtractProps(
3334
for (const map of maps) {
3435
let mapped = false;
3536
for (
36-
const source of map.toSourceLocation(name.getEnd() - sourceScript.snapshot.getLength())
37+
const source of map.toSourceLocation(name.getEnd() - (isTsPlugin ? sourceScript.snapshot.getLength() : 0))
3738
) {
3839
if (
3940
source[0] >= sfc.template!.startTagEnd + templateCodeRange[0]

packages/typescript-plugin/lib/requests/getPropertiesAtLocation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export function getPropertiesAtLocation(
1010
sourceScript: SourceScript,
1111
virtualCode: VueVirtualCode,
1212
position: number,
13+
isTsPlugin: boolean,
1314
): string[] {
1415
const virtualScript = sourceScript.generated!.languagePlugin.typescript?.getServiceScript(virtualCode);
1516
if (!virtualScript) {
@@ -32,7 +33,7 @@ export function getPropertiesAtLocation(
3233
if (!mapped) {
3334
return [];
3435
}
35-
position += sourceScript.snapshot.getLength();
36+
position += isTsPlugin ? sourceScript.snapshot.getLength() : 0;
3637

3738
const sourceFile = program.getSourceFile(virtualCode.fileName);
3839
if (!sourceFile) {

0 commit comments

Comments
 (0)