mirror of
https://github.com/openharmony/developtools_ace-ets2bundle.git
synced 2026-08-25 12:00:12 -04:00
fixed c4475d8 from https://gitee.com/houhaoyu/developtools_ace-ets2bundle/pulls/378
houhaoyu@huawei.com fix debugline fileName Signed-off-by: houhaoyu <houhaoyu@huawei.com> Change-Id: Iaeb719f4775f03e498f46f9324633c0a7c8e429a
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
const WebSocket = require('ws');
|
const WebSocket = require('ws');
|
||||||
const ts = require('typescript');
|
const ts = require('typescript');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
const { processComponentChild } = require('../lib/process_component_build');
|
const { processComponentChild } = require('../lib/process_component_build');
|
||||||
|
|
||||||
@@ -25,7 +26,8 @@ let pluginSocket = '';
|
|||||||
let supplement = {
|
let supplement = {
|
||||||
isAcceleratePreview: false,
|
isAcceleratePreview: false,
|
||||||
line: 0,
|
line: 0,
|
||||||
column: 0
|
column: 0,
|
||||||
|
fileName: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
const pluginCommandChannelMessageHandlers = {
|
const pluginCommandChannelMessageHandlers = {
|
||||||
@@ -56,16 +58,22 @@ function handlePluginCommand(jsonData) {
|
|||||||
|
|
||||||
function handlePluginCompileComponent(jsonData) {
|
function handlePluginCompileComponent(jsonData) {
|
||||||
const receivedMsg = jsonData;
|
const receivedMsg = jsonData;
|
||||||
const sourceNode = ts.createSourceFile('preview.ts', receivedMsg.data.script,
|
const compilerOptions = ts.readConfigFile(
|
||||||
ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
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 previewStatements = [];
|
||||||
const log = [];
|
const log = [];
|
||||||
supplement = {
|
supplement = {
|
||||||
isAcceleratePreview: true,
|
isAcceleratePreview: true,
|
||||||
line: parseInt(JSON.parse(receivedMsg.data.offset).line),
|
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;
|
supplement.isAcceleratePreview = false;
|
||||||
const newSource = ts.factory.updateSourceFile(sourceNode, previewStatements);
|
const newSource = ts.factory.updateSourceFile(sourceNode, previewStatements);
|
||||||
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
||||||
@@ -73,11 +81,11 @@ function handlePluginCompileComponent(jsonData) {
|
|||||||
receivedMsg.data.script = ts.transpileModule(result, {}).outputText;
|
receivedMsg.data.script = ts.transpileModule(result, {}).outputText;
|
||||||
if (receivedMsg.data.offset) {
|
if (receivedMsg.data.offset) {
|
||||||
for (let i = 0; i < log.length; i++) {
|
for (let i = 0; i < log.length; i++) {
|
||||||
let line = parseInt(newSource.getLineAndCharacterOfPosition(log[i].pos).line);
|
let line = parseInt(sourceNode.getLineAndCharacterOfPosition(log[i].pos).line);
|
||||||
let column = parseInt(newSource.getLineAndCharacterOfPosition(log[i].pos).character);
|
let column = parseInt(sourceNode.getLineAndCharacterOfPosition(log[i].pos).character);
|
||||||
if (line === 0) {
|
if (line === 0) {
|
||||||
log[i].line = parseInt(JSON.parse(receivedMsg.data.offset).line);
|
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 {
|
} else {
|
||||||
log[i].line = parseInt(JSON.parse(receivedMsg.data.offset).line) + line;
|
log[i].line = parseInt(JSON.parse(receivedMsg.data.offset).line) + line;
|
||||||
log[i].column = column;
|
log[i].column = column;
|
||||||
|
|||||||
@@ -151,13 +151,15 @@ function validateRootNode(node: ts.MethodDeclaration, log: LogInfo[]): boolean {
|
|||||||
interface supplementType {
|
interface supplementType {
|
||||||
isAcceleratePreview: boolean,
|
isAcceleratePreview: boolean,
|
||||||
line: number,
|
line: number,
|
||||||
column: number
|
column: number,
|
||||||
|
fileName: string
|
||||||
}
|
}
|
||||||
|
|
||||||
let newsupplement: supplementType = {
|
let newsupplement: supplementType = {
|
||||||
isAcceleratePreview: false,
|
isAcceleratePreview: false,
|
||||||
line: 0,
|
line: 0,
|
||||||
column: 0
|
column: 0,
|
||||||
|
fileName: ''
|
||||||
};
|
};
|
||||||
|
|
||||||
function validateEtsComponentNode(node: ts.CallExpression | ts.EtsComponentExpression) {
|
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[],
|
export function processComponentChild(node: ts.Block | ts.SourceFile, newStatements: ts.Statement[], log: LogInfo[],
|
||||||
log: LogInfo[], supplement: supplementType = {isAcceleratePreview: false, line: 0, column: 0}): void {
|
supplement: supplementType = {isAcceleratePreview: false, line: 0, column: 0, fileName: ''}): void {
|
||||||
if (supplement.isAcceleratePreview) {
|
if (supplement.isAcceleratePreview) {
|
||||||
newsupplement = supplement;
|
newsupplement = supplement;
|
||||||
}
|
}
|
||||||
@@ -290,19 +292,21 @@ function processInnerComponent(node: ts.ExpressionStatement, index: number, arr:
|
|||||||
const posOfNode: ts.LineAndCharacter =
|
const posOfNode: ts.LineAndCharacter =
|
||||||
transformLog.sourceFile.getLineAndCharacterOfPosition(getRealNodePos(node));
|
transformLog.sourceFile.getLineAndCharacterOfPosition(getRealNodePos(node));
|
||||||
const projectPath: string = projectConfig.projectPath;
|
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 line: number = 1;
|
||||||
let col: number = 1;
|
let col: number = 1;
|
||||||
if (newsupplement.isAcceleratePreview) {
|
if (newsupplement.isAcceleratePreview) {
|
||||||
if (posOfNode.line === 0) {
|
if (posOfNode.line === 0) {
|
||||||
col = newsupplement.column;
|
col = newsupplement.column - 15;
|
||||||
}
|
}
|
||||||
line = newsupplement.line;
|
line = newsupplement.line;
|
||||||
|
curFileName = newsupplement.fileName;
|
||||||
}
|
}
|
||||||
newsupplement = {
|
newsupplement = {
|
||||||
isAcceleratePreview: false,
|
isAcceleratePreview: false,
|
||||||
line: 0,
|
line: 0,
|
||||||
column: 0
|
column: 0,
|
||||||
|
fileName: ''
|
||||||
};
|
};
|
||||||
const debugInfo: string =
|
const debugInfo: string =
|
||||||
`${path.relative(projectPath, curFileName).replace(/\\+/g, '/')}` +
|
`${path.relative(projectPath, curFileName).replace(/\\+/g, '/')}` +
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
|
|
||||||
const CopyPlugin = require('copy-webpack-plugin');
|
const CopyPlugin = require('copy-webpack-plugin');
|
||||||
const Webpack = require('webpack');
|
const Webpack = require('webpack');
|
||||||
const { GenAbcPlugin } = require('./lib/gen_abc_plugin');
|
const { GenAbcPlugin } = require('./lib/gen_abc_plugin');
|
||||||
@@ -117,7 +116,6 @@ function initConfig(config) {
|
|||||||
/\.d\.ts$/
|
/\.d\.ts$/
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
new CleanWebpackPlugin(),
|
|
||||||
new ResultStates()
|
new ResultStates()
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user