Skip to content

Commit

Permalink
chore: fix types
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed May 31, 2024
1 parent 109348e commit 326f083
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 32 deletions.
16 changes: 8 additions & 8 deletions packages/component-meta/lib/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -681,14 +681,14 @@ function createSchemaResolvers(
const script = sourceFile.generated.languagePlugin.typescript?.getServiceScript(sourceFile.generated.root);
if (script) {
for (const [source, [_, map]] of language.maps.forEach(script.code)) {
const start = map.getSourceOffset(declaration.getStart());
const end = map.getSourceOffset(declaration.getEnd());
if (start && end) {
return {
file: source,
range: [start[0], end[0]],
};
};
for (const [start] of map.getSourceOffsets(declaration.getStart())) {
for (const [end] of map.getSourceOffsets(declaration.getEnd())) {
return {
file: source,
range: [start, end],
};
}
}
}
}
return undefined;
Expand Down
12 changes: 10 additions & 2 deletions packages/language-core/lib/plugins/file-md.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,16 @@ const plugin: VueLanguagePlugin = () => {
return sfc;

function transformRange(block: SFCBlock) {
block.loc.start.offset = file2VueSourceMap.getSourceOffset(block.loc.start.offset)?.[0] ?? -1;
block.loc.end.offset = file2VueSourceMap.getSourceOffset(block.loc.end.offset)?.[0] ?? -1;
block.loc.start.offset = -1;
block.loc.end.offset = -1;
for (const [start] of file2VueSourceMap.getSourceOffsets(block.loc.start.offset)) {
block.loc.start.offset = start;
break;
}
for (const [end] of file2VueSourceMap.getSourceOffsets(block.loc.end.offset)) {
block.loc.end.offset = end;
break;
}
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,14 @@ export function create(
ast = getAst(ts, fileName, virtualCode.snapshot, serviceScript.scriptKind);
let mapped = false;
for (const [_1, [_2, map]] of context.language.maps.forEach(virtualCode)) {
const sourceOffset = map.getSourceOffset(document.offsetAt(selection));
if (sourceOffset !== undefined) {
sourceCodeOffset = sourceOffset[0];
for (const [sourceOffset] of map.getSourceOffsets(document.offsetAt(selection))) {
sourceCodeOffset = sourceOffset;
mapped = true;
break;
}
if (mapped) {
break;
}
}
if (!mapped) {
return;
Expand Down
43 changes: 24 additions & 19 deletions packages/typescript-plugin/lib/requests/collectExtractProps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,31 @@ export function collectExtractProps(
) {
const { name } = node;
for (const [_, map] of maps) {
const source = map.getSourceOffset(name.getEnd() - (isTsPlugin ? volarFile.snapshot.getLength() : 0));
if (
source
&& source[0] >= sfc.template!.startTagEnd + templateCodeRange[0]
&& source[0] <= sfc.template!.startTagEnd + templateCodeRange[1]
&& isSemanticTokensEnabled(source[1].data)
) {
if (!result.has(name.text)) {
const type = checker.getTypeAtLocation(node);
const typeString = checker.typeToString(type, node, ts.TypeFormatFlags.NoTruncation);
result.set(name.text, {
name: name.text,
type: typeString.includes('__VLS_') ? 'any' : typeString,
model: false,
});
}
const isModel = ts.isPostfixUnaryExpression(node.parent) || ts.isBinaryExpression(node.parent);
if (isModel) {
result.get(name.text)!.model = true;
let mapped = false;
for (const source of map.getSourceOffsets(name.getEnd() - (isTsPlugin ? volarFile.snapshot.getLength() : 0))) {
if (
source[0] >= sfc.template!.startTagEnd + templateCodeRange[0]
&& source[0] <= sfc.template!.startTagEnd + templateCodeRange[1]
&& isSemanticTokensEnabled(source[1].data)
) {
mapped = true;
if (!result.has(name.text)) {
const type = checker.getTypeAtLocation(node);
const typeString = checker.typeToString(type, node, ts.TypeFormatFlags.NoTruncation);
result.set(name.text, {
name: name.text,
type: typeString.includes('__VLS_') ? 'any' : typeString,
model: false,
});
}
const isModel = ts.isPostfixUnaryExpression(node.parent) || ts.isBinaryExpression(node.parent);
if (isModel) {
result.get(name.text)!.model = true;
}
break;
}
}
if (mapped) {
break;
}
}
Expand Down

0 comments on commit 326f083

Please sign in to comment.