!389 fix debugline filename

Merge pull request !389 from houhaoyu/cherry-pick-1647351217
This commit is contained in:
openharmony_ci
2022-03-16 01:31:52 +00:00
committed by Gitee
3 changed files with 27 additions and 17 deletions
+16 -8
View File
@@ -15,6 +15,7 @@
const WebSocket = require('ws');
const ts = require('typescript');
const path = require('path');
const { processComponentChild } = require('../lib/process_component_build');
@@ -25,7 +26,8 @@ let pluginSocket = '';
let supplement = {
isAcceleratePreview: false,
line: 0,
column: 0
column: 0,
fileName: ''
}
const pluginCommandChannelMessageHandlers = {
@@ -56,16 +58,22 @@ function handlePluginCommand(jsonData) {
function handlePluginCompileComponent(jsonData) {
const receivedMsg = jsonData;
const sourceNode = ts.createSourceFile('preview.ts', receivedMsg.data.script,
ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
const compilerOptions = ts.readConfigFile(
path.resolve(__dirname, '../tsconfig.json'), ts.sys.readFile).config.compilerOptions;
Object.assign(compilerOptions, {
"sourceMap": false,
});
const sourceNode = ts.createSourceFile('preview.ets', 'struct{build(){' + receivedMsg.data.script + '}}',
ts.ScriptTarget.Latest, true, ts.ScriptKind.ETS, compilerOptions);
const previewStatements = [];
const log = [];
supplement = {
isAcceleratePreview: true,
line: parseInt(JSON.parse(receivedMsg.data.offset).line),
column: parseInt(JSON.parse(receivedMsg.data.offset).column)
column: parseInt(JSON.parse(receivedMsg.data.offset).column),
fileName: receivedMsg.data.filePath || ''
}
processComponentChild(sourceNode, previewStatements, log, supplement);
processComponentChild(sourceNode.statements[0].members[1].body, previewStatements, log, supplement);
supplement.isAcceleratePreview = false;
const newSource = ts.factory.updateSourceFile(sourceNode, previewStatements);
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
@@ -73,11 +81,11 @@ function handlePluginCompileComponent(jsonData) {
receivedMsg.data.script = ts.transpileModule(result, {}).outputText;
if (receivedMsg.data.offset) {
for (let i = 0; i < log.length; i++) {
let line = parseInt(newSource.getLineAndCharacterOfPosition(log[i].pos).line);
let column = parseInt(newSource.getLineAndCharacterOfPosition(log[i].pos).character);
let line = parseInt(sourceNode.getLineAndCharacterOfPosition(log[i].pos).line);
let column = parseInt(sourceNode.getLineAndCharacterOfPosition(log[i].pos).character);
if (line === 0) {
log[i].line = parseInt(JSON.parse(receivedMsg.data.offset).line);
log[i].column = parseInt(JSON.parse(receivedMsg.data.offset).column) + column;
log[i].column = parseInt(JSON.parse(receivedMsg.data.offset).column) + column - 15;
} else {
log[i].line = parseInt(JSON.parse(receivedMsg.data.offset).line) + line;
log[i].column = column;
+11 -7
View File
@@ -151,13 +151,15 @@ function validateRootNode(node: ts.MethodDeclaration, log: LogInfo[]): boolean {
interface supplementType {
isAcceleratePreview: boolean,
line: number,
column: number
column: number,
fileName: string
}
let newsupplement: supplementType = {
isAcceleratePreview: false,
line: 0,
column: 0
column: 0,
fileName: ''
};
function validateEtsComponentNode(node: ts.CallExpression | ts.EtsComponentExpression) {
@@ -173,8 +175,8 @@ function validateEtsComponentNode(node: ts.CallExpression | ts.EtsComponentExpre
}
}
export function processComponentChild(node: ts.Block | ts.SourceFile, newStatements: ts.Statement[],
log: LogInfo[], supplement: supplementType = {isAcceleratePreview: false, line: 0, column: 0}): void {
export function processComponentChild(node: ts.Block | ts.SourceFile, newStatements: ts.Statement[], log: LogInfo[],
supplement: supplementType = {isAcceleratePreview: false, line: 0, column: 0, fileName: ''}): void {
if (supplement.isAcceleratePreview) {
newsupplement = supplement;
}
@@ -290,19 +292,21 @@ function processInnerComponent(node: ts.ExpressionStatement, index: number, arr:
const posOfNode: ts.LineAndCharacter =
transformLog.sourceFile.getLineAndCharacterOfPosition(getRealNodePos(node));
const projectPath: string = projectConfig.projectPath;
const curFileName: string = transformLog.sourceFile.fileName.replace(/.ts$/, '');
let curFileName: string = transformLog.sourceFile.fileName.replace(/\.ts$/, '');
let line: number = 1;
let col: number = 1;
if (newsupplement.isAcceleratePreview) {
if (posOfNode.line === 0) {
col = newsupplement.column;
col = newsupplement.column - 15;
}
line = newsupplement.line;
curFileName = newsupplement.fileName;
}
newsupplement = {
isAcceleratePreview: false,
line: 0,
column: 0
column: 0,
fileName: ''
};
const debugInfo: string =
`${path.relative(projectPath, curFileName).replace(/\\+/g, '/')}` +
-2
View File
@@ -15,7 +15,6 @@
const path = require('path');
const fs = require('fs');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CopyPlugin = require('copy-webpack-plugin');
const Webpack = require('webpack');
const { GenAbcPlugin } = require('./lib/gen_abc_plugin');
@@ -117,7 +116,6 @@ function initConfig(config) {
/\.d\.ts$/
]
}),
new CleanWebpackPlugin(),
new ResultStates()
]
});