From c4ef3e45d6067f666ea5846bfac64943d3923595 Mon Sep 17 00:00:00 2001 From: Keerecles Date: Tue, 10 Jun 2025 10:09:47 +0800 Subject: [PATCH 1/2] update compile config Signed-off-by: Keerecles Change-Id: I5286881ce86526964857ef9961c78c35ec155097 --- .../demo/localtest/build_config_template.json | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/arkui-plugins/test/demo/localtest/build_config_template.json b/arkui-plugins/test/demo/localtest/build_config_template.json index 0df152f9d..64b8fdafb 100755 --- a/arkui-plugins/test/demo/localtest/build_config_template.json +++ b/arkui-plugins/test/demo/localtest/build_config_template.json @@ -1,5 +1,6 @@ { "plugins": { + "ui_syntax_plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/ui-syntax-plugins/index", "ui_plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/ui-plugins/index", "memo_plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/memo-plugins/index" }, @@ -12,19 +13,35 @@ "./demo/localtest/entry/new.ets" ], - "packageName" : "entry", - "moduleType": "shared", - "hasMainModule": true, - - "buildType": "build", "buildMode": "Debug", + "projectRootPath": "./demo/localtest/", "moduleRootPath": "./demo/localtest/entry/", - "sourceRoots": ["./"], - - "loaderOutPath": "./dist", "cachePath": "./dist/cache", - + "loaderOutPath": "./dist", + "compileSdkVersion": 20, + "compatibleSdkVersion": 20, + "bundleName": "com.example.myapplication", + "useNormalizedOHMUrl": true, + "buildType": "build", + "packageName": "entry", "buildSdkPath": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/", - - "dependentModuleList": [] -} \ No newline at end of file + "sourceRoots": [ + "./" + ], + "moduleType": "shared", + "moduleName": "entry", + "dependentModuleList": [], + "hasMainModule": true, + "buildLoaderJson": "", + "integratedHsp": false, + "allowEmptyBundleName": false, + "declgenV2OutPath": "", + "externalApiPaths": [ + ], + "level": { + "level": 20000, + "levelStr": "INFO", + "colour": "green" + }, + "isBuildConfigModified": false +} -- Gitee From 0a60c7bc807f240e4ca99f5bff720e430ef8711a Mon Sep 17 00:00:00 2001 From: Keerecles Date: Mon, 9 Jun 2025 21:23:16 +0800 Subject: [PATCH 2/2] test debug Signed-off-by: Keerecles Change-Id: I4ab10d57d070f7f51b4dcb204abf0ff92eef7eb6 --- arkui-plugins/common/debug.ts | 2 +- arkui-plugins/common/plugin-context.ts | 1 + arkui-plugins/common/program-visitor.ts | 20 ++++++++++---------- arkui-plugins/ui-plugins/index.ts | 16 ++++++++++++++++ 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/arkui-plugins/common/debug.ts b/arkui-plugins/common/debug.ts index f39940e8f..59d7982a7 100644 --- a/arkui-plugins/common/debug.ts +++ b/arkui-plugins/common/debug.ts @@ -18,7 +18,7 @@ import * as arkts from '@koalaui/libarkts'; const isDebugLog: boolean = false; const isDebugDump: boolean = false; -const isPerformance: boolean = false; +const isPerformance: boolean = true; arkts.Performance.getInstance().skip(!isPerformance); export function getEnumName(enumType: any, value: number): string | undefined { diff --git a/arkui-plugins/common/plugin-context.ts b/arkui-plugins/common/plugin-context.ts index 95843cb7b..33437e5f4 100644 --- a/arkui-plugins/common/plugin-context.ts +++ b/arkui-plugins/common/plugin-context.ts @@ -107,6 +107,7 @@ export interface Plugins { afterNew?: PluginHandler; parsed?: PluginHandler; scopeInited?: PluginHandler; + bound?: PluginHandler; checked?: PluginHandler; lowered?: PluginHandler; asmGenerated?: PluginHandler; diff --git a/arkui-plugins/common/program-visitor.ts b/arkui-plugins/common/program-visitor.ts index daf5cda20..cea1a398a 100644 --- a/arkui-plugins/common/program-visitor.ts +++ b/arkui-plugins/common/program-visitor.ts @@ -174,7 +174,7 @@ export class ProgramVisitor extends AbstractVisitor { const visited = new Set(); const queue: arkts.Program[] = programQueue; this.getLegacyModule(); - arkts.Performance.getInstance().createEvent(`${this.state}-external-source`); + // arkts.Performance.getInstance().createEvent(`${this.state}-external-source`); while (queue.length > 0) { const currProgram = queue.shift()!; if (visited.has(currProgram.peer) || currProgram.isASTLowered()) { @@ -197,16 +197,16 @@ export class ProgramVisitor extends AbstractVisitor { this.visitNextProgramInQueue(queue, visited, externalSource); } } - arkts.Performance.getInstance().stopEvent(`${this.state}-external-source`, false); + // arkts.Performance.getInstance().stopEvent(`${this.state}-external-source`, false); } programVisitor(program: arkts.Program): arkts.Program { this.visitExternalSources(program, [program]); - arkts.Performance.getInstance().createEvent(`${this.state}-source`); + // arkts.Performance.getInstance().createEvent(`${this.state}-source`); let programScript = program.astNode; programScript = this.visitor(programScript, program, this.externalSourceName); - arkts.Performance.getInstance().stopEvent(`${this.state}-source`, false); + // arkts.Performance.getInstance().stopEvent(`${this.state}-source`, false); const visitorsToReset = flattenVisitorsInHooks(this.hooks, this.state); visitorsToReset.forEach((visitor) => visitor.reset()); @@ -247,7 +247,7 @@ export class ProgramVisitor extends AbstractVisitor { } visitor(node: arkts.AstNode, program?: arkts.Program, externalSourceName?: string): arkts.EtsScript { - arkts.Performance.getInstance().createEvent(`${this.state}-${externalSourceName ?? 'SOURCE'}`); + // arkts.Performance.getInstance().createEvent(`${this.state}-${externalSourceName ?? 'SOURCE'}`); let hook: ProgramHookLifeCycle | undefined; let script: arkts.EtsScript = node as arkts.EtsScript; @@ -264,9 +264,9 @@ export class ProgramVisitor extends AbstractVisitor { } this.visitTransformer(transformer, script, externalSourceName, program); transformer.reset(); - arkts.Performance.getInstance().createEvent('set-all-parent'); + // arkts.Performance.getInstance().createEvent('set-all-parent'); arkts.setAllParents(script); - arkts.Performance.getInstance().stopEvent('set-all-parent', false); + // arkts.Performance.getInstance().stopEvent('set-all-parent', false); if (!transformer.isExternal) { debugDump( script.dumpSrc(), @@ -283,7 +283,7 @@ export class ProgramVisitor extends AbstractVisitor { hook = isExternal ? this.hooks?.external : this.hooks?.source; this.postVisitor(hook, node, program, externalSourceName); - arkts.Performance.getInstance().stopEvent(`${this.state}-${externalSourceName ?? 'SOURCE'}`, false); + // arkts.Performance.getInstance().stopEvent(`${this.state}-${externalSourceName ?? 'SOURCE'}`, false); return script; } @@ -303,12 +303,12 @@ export class ProgramVisitor extends AbstractVisitor { externalSourceName?: string, program?: arkts.Program ): arkts.EtsScript { - arkts.Performance.getInstance().createEvent(transformer.constructor.name); + // arkts.Performance.getInstance().createEvent(transformer.constructor.name); transformer.isExternal = !!externalSourceName; transformer.externalSourceName = externalSourceName; transformer.program = program; const newScript = transformer.visitor(script) as arkts.EtsScript; - arkts.Performance.getInstance().stopEvent(transformer.constructor.name, false); + // arkts.Performance.getInstance().stopEvent(transformer.constructor.name, false); return newScript; } } diff --git a/arkui-plugins/ui-plugins/index.ts b/arkui-plugins/ui-plugins/index.ts index a50014ecf..878114d01 100644 --- a/arkui-plugins/ui-plugins/index.ts +++ b/arkui-plugins/ui-plugins/index.ts @@ -26,6 +26,7 @@ export function uiTransform(): Plugins { return { name: 'ui-plugin', parsed: parsedTransform, + bound: boundTransform, checked: checkedTransform, clean() { arkts.arktsGlobal.clearContext(); @@ -78,6 +79,21 @@ function parsedTransform(this: PluginContext): arkts.EtsScript | undefined { return script; } +function boundTransform(this: PluginContext): arkts.EtsScript | undefined { + let script: arkts.EtsScript | undefined; + console.log('[UI PLUGIN] AFTER BOUND ENTER'); + const contextPtr = this.getContextPtr() ?? arkts.arktsGlobal.compilerContext?.peer; + if (!!contextPtr) { + let program = arkts.getOrUpdateGlobalContext(contextPtr).program; + script = program.astNode; + arkts.Performance.getInstance().createEvent('rebind'); + arkts.rebindSubtree(script) + arkts.Performance.getInstance().stopEvent('rebind', true); + console.log('[UI PLUGIN] AFTER BOUND EXIT'); + } + return script; +} + function checkedTransform(this: PluginContext): arkts.EtsScript | undefined { let script: arkts.EtsScript | undefined; console.log('[UI PLUGIN] AFTER CHECKED ENTER'); -- Gitee