From 9ff17da8abc0068d25c32575fee4110fef3c9103 Mon Sep 17 00:00:00 2001 From: w30045791 Date: Fri, 11 Jul 2025 14:32:15 +0800 Subject: [PATCH] add jsdoc_func and getFileName_func and col_func Signed-off-by: w30045791 --- koala-wrapper/native/src/bridges.cc | 28 +++++++++++++++++++ koala-wrapper/src/Es2pandaNativeModule.ts | 12 ++++++++ koala-wrapper/src/arkts-api/peers/Program.ts | 4 +++ .../src/arkts-api/peers/SourcePosition.ts | 4 +++ .../src/arkts-api/utilities/public.ts | 4 +++ 5 files changed, 52 insertions(+) diff --git a/koala-wrapper/native/src/bridges.cc b/koala-wrapper/native/src/bridges.cc index 3cc1282ac..95400b948 100644 --- a/koala-wrapper/native/src/bridges.cc +++ b/koala-wrapper/native/src/bridges.cc @@ -408,6 +408,14 @@ KInt impl_SourcePositionLine(KNativePointer context, KNativePointer instance) } KOALA_INTEROP_2(SourcePositionLine, KInt, KNativePointer, KNativePointer); +KInt impl_SourcePositionCol(KNativePointer context, KNativePointer instance) +{ + auto&& _context_ = reinterpret_cast(context); + auto&& _instance_ = reinterpret_cast(instance); + return GetImpl()->SourcePositionCol(_context_, _instance_); +} +KOALA_INTEROP_2(SourcePositionCol, KInt, KNativePointer, KNativePointer); + KNativePointer impl_CreateSourceRange(KNativePointer context, KNativePointer start, KNativePointer end) { auto&& _context_ = reinterpret_cast(context); @@ -709,3 +717,23 @@ void impl_MemoryTrackerPrintCurrent(KNativePointer context) tracker.Report(GetMemoryStats()); } KOALA_INTEROP_V1(MemoryTrackerPrintCurrent, KNativePointer); + +static KNativePointer impl_JsdocStringFromDeclaration(KNativePointer contextPtr, KNativePointer decl) +{ + auto context = reinterpret_cast(contextPtr); + auto node = reinterpret_cast(decl); + + auto result = GetImpl()->JsdocStringFromDeclaration(context, node); + return new std::string(result); +} +KOALA_INTEROP_2(JsdocStringFromDeclaration, KNativePointer, KNativePointer, KNativePointer); + +static KNativePointer impl_ProgramSourceFilePathConst(KNativePointer contextPtr, KNativePointer instancePtr) +{ + auto context = reinterpret_cast(contextPtr); + auto program = reinterpret_cast(instancePtr); + + auto result = GetImpl()->ProgramSourceFilePathConst(context, program); + return new std::string(result); +} +KOALA_INTEROP_2(ProgramSourceFilePathConst, KNativePointer, KNativePointer, KNativePointer); \ No newline at end of file diff --git a/koala-wrapper/src/Es2pandaNativeModule.ts b/koala-wrapper/src/Es2pandaNativeModule.ts index 1fcdcdd4f..82770dbc0 100644 --- a/koala-wrapper/src/Es2pandaNativeModule.ts +++ b/koala-wrapper/src/Es2pandaNativeModule.ts @@ -15,6 +15,7 @@ import { KNativePointer as KPtr, + KStringPtr, KInt, KBoolean, KNativePointer, @@ -799,6 +800,9 @@ export class Es2pandaNativeModule { _SourcePositionLine(context: KNativePointer, instance: KNativePointer): KInt { throw new Error('Not implemented'); } + _SourcePositionCol(context: KNativePointer, instance: KNativePointer): KInt { + throw new Error('Not implemented'); + } _CreateETSStringLiteralType(context: KNativePointer, str: String): KNativePointer { throw new Error('Not implemented'); } @@ -954,6 +958,14 @@ export class Es2pandaNativeModule { _CallExpressionIsTrailingCallConst(context: KNativePointer, node: KNativePointer): boolean { throw new Error('CallExpressionIsTrailingCallConst was not overloaded by native module initialization'); } + + _JsdocStringFromDeclaration(context: KNativePointer, decl: KNativePointer): KStringPtr { + throw new Error('Not implemented'); + } + + _ProgramSourceFilePathConst(context: KPtr, decl: KPtr): KNativePointer { + throw new Error('Not implemented'); + } } export function initEs2panda(): Es2pandaNativeModule { diff --git a/koala-wrapper/src/arkts-api/peers/Program.ts b/koala-wrapper/src/arkts-api/peers/Program.ts index 5733592bc..747453674 100644 --- a/koala-wrapper/src/arkts-api/peers/Program.ts +++ b/koala-wrapper/src/arkts-api/peers/Program.ts @@ -74,6 +74,10 @@ export class Program extends ArktsObject { return unpackString(global.es2panda._ProgramModuleNameConst(global.context, this.peer)); } + get sourceFilePath(): string { + return unpackString(global.es2panda._ProgramSourceFilePathConst(global.context, this.peer)); + } + isASTLowered(): boolean { return global.es2panda._ProgramIsASTLoweredConst(global.context, this.peer); } diff --git a/koala-wrapper/src/arkts-api/peers/SourcePosition.ts b/koala-wrapper/src/arkts-api/peers/SourcePosition.ts index 9d84847a6..bcd219b73 100644 --- a/koala-wrapper/src/arkts-api/peers/SourcePosition.ts +++ b/koala-wrapper/src/arkts-api/peers/SourcePosition.ts @@ -35,4 +35,8 @@ export class SourcePosition extends ArktsObject { line(): number { return global.es2panda._SourcePositionLine(global.context, this.peer); } + + col(): number { + return global.es2panda._SourcePositionCol(global.context, this.peer); + } } \ No newline at end of file diff --git a/koala-wrapper/src/arkts-api/utilities/public.ts b/koala-wrapper/src/arkts-api/utilities/public.ts index c630d2ac8..906174ca3 100644 --- a/koala-wrapper/src/arkts-api/utilities/public.ts +++ b/koala-wrapper/src/arkts-api/utilities/public.ts @@ -324,3 +324,7 @@ export function CreateCacheContextFromFile( ): KNativePointer { return global.es2panda._CreateCacheContextFromFile(configPtr, passString(filename), globalContext, isExternal); } + +export function getJsdocStringFromDeclaration(decl: AstNode): string { + return withStringResult(global.es2panda._JsdocStringFromDeclaration(global.context, decl.peer)) ?? throwError(`failed to unpack (peer shouldn't be NULLPTR)`); +} -- Gitee