问题标签 [ksp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
16 浏览

ksp - KSP Principia 如何扩展未来的赛道

Principia 是否可以控制更改我的船未来预测轨迹的长度/持续时间?我可以看到 Max History Length 控件,但我没有看到未来长度的控件。希望我只是瞎了眼。我想看看未来大约 32 天。

0 投票
0 回答
55 浏览

c - CryptAcquireCertificatePrivateKey 错误:0x80090016 与自定义密钥存储提供程序

我正在开发一个自定义 CNG 密钥存储提供程序。它适用于 Chrome 等某些应用程序,但第三方应用程序使用CryptAcquireCertificatePrivateKey证书上下文的方法导致 0x80090016 而不调用我的 KSP 的任何方法。

¿ 是否可以将该CryptAcquireCertificatePrivateKey方法与具有存储在密钥存储提供程序中的私钥的证书一起使用?

0 投票
1 回答
50 浏览

kotlin - KSP中的“符号”是什么意思

目前我正在研究 KSP(Kotlin Symbol Processing),我很好奇KSP中的 "Symbol" 是什么意思。

在与 KAPT 进行比较时,它说“要在未修改的情况下运行 Java 注释处理器,KAPT 会将 Kotlin 代码编译成 Java 存根,保留 Java 注释处理器关心的信息。要创建这些存根,KAPT 需要解析 Kotlin 程序中的所有符号。”

我不知道“Kotlin 程序中的所有符号”到底是什么意思?

0 投票
1 回答
205 浏览

kotlin - 调试 Kotlin 符号处理 (KSP)

如何使用 Idea 和 Gradle 调试 KSP?

在调试模式下从 IDE运行build任务不会将 IDE 附加到进程。

有没有任何命令行方法可以让处理器等到 IDE 连接到进程?

(我正在使用 KSP 1.5.31-1.0.0

0 投票
0 回答
38 浏览

kotlin - 如何使用 kotlin 符号处理(KSP)为函数添加一个参数

我有一个注释“AddHeader”的功能:

如果一个函数添加了这个注解,它会添加一个像这样的参数:

将改变:

我不知道如何实现这个目标。请帮忙。

0 投票
1 回答
282 浏览

android - 使用 Kotlin 信号处理 (KSP) 时提供注释处理器参数

我使用以下方法将 KSP 与 Room 结合使用:

这实际上有效。但是,当我尝试运行它时,我会收到此警告

[ksp] MyDatabase.kt:11:模式导出目录未提供给注释处理器,因此我们无法导出模式。您可以提供room.schemaLocation注释处理器参数或将 exportSchema 设置为 false。

为此:使用 KSP 时如何提供注释处理器参数?

0 投票
1 回答
194 浏览

kotlin - Kotlin Multiplatform 上的 KSP 在 kspJs 上失败,并显示“Collection has more than one element”。

我正在尝试使用 KSP(Kotlin 符号处理)来查看它的功能,并且我正在尝试让它在 Kotlin 多平台项目上运行。当我只启用 kspJvm 时,它工作得很好,只要我也启用 kspJs,它就会失败,并显示“集合有多个元素”。

我在这个演示 github 项目中重新创建了这个问题: https ://github.com/janvladimirmostert/observable-demo

在我的处理器中,我有以下配置:

build.gradle.kts

gradle.properties

src/commonMain/kotlin/io/jvaas/observe/ Observable.kt

src/jvmMain/resources/META-INF/services/ com.google.devtools.ksp.processing.SymbolProcessorProvider

src/jvmMain/kotlin/io/jvaas/observe/ ObservableProcessor.kt

在我的消费者中,我有以下内容:

applications/od-server/src/ commonMain /kotlin/com/od/demo/ Blah.kt

当启用kspJvm选项并正确输出文件时,这将被正确处理

应用程序/od-server/build/generated/ksp / jvmMain /kotlin/com/od/demo/BlahO.kt

如果我为kspJs启用它,它会失败

我已经尝试了通常的 gradle build --info / --debug / --scan 但不清楚我可以从哪里开始寻找解决这个问题。

如上所述,我做了一个演示项目来演示错误: https ://github.com/janvladimirmostert/observable-demo

关于如何解决该错误的任何想法?

0 投票
0 回答
101 浏览

kotlin - 在木星测试期间未找到 Kotlin KSP 注释处理器生成的类

我正在为 Kotlin 开发一个 KSP 注释处理器。代码在编译期间正确生成,我可以在输出目录中看到生成的类。现在我想通过 JUnit 和“com.github.tschuchortdev.KotlinCompilation”测试我的注释处理器。如果我调用 compile 方法,将生成代码,我可以在 Temp-Directory 中看到生成的类,但是如果我尝试加载该类,则会收到“java.lang.ClassNotFoundException:test.pack.TestClassDslBuilder”异常。我希望代码是不言自明的。我的问题是:为什么类没有编译并且不可加载?可能缺少 kompiler 的配置。

0 投票
0 回答
15 浏览

cryptography - 使用 BCryptImportKey 将现有证书导入 CNG/KSP

我正在尝试通过 CNG api BCrptImportKey 将现有的 cert.pem 导入 KSP。如何将密钥保存到 blob 中然后导入。任何示例代码都有助于理解流程吗?

谢谢

0 投票
0 回答
30 浏览

kotlin - 如何确定函数返回类型是否是 ksp 中的原语

简短版本:如何判断 aKSType是否是原始类型,甚至将其与 kotlin 类型进行比较?

我正在使用 ksp 在 Kotlin 中编写代码生成器。我正在迭代一个类型的函数并有一个KSFunctionDeclaration. 我想知道函数的返回类型是否是原始类型。

我可以看到使用的类型名称it.returnType?.resolve()?.declaration?.simpleName,它将显示Long等等Int。所以我可以检查该名称是否== "Long"等。但似乎应该有一种方法可以与实际类型进行比较。

我发现它的builtins属性对每个内置类型Resolver都有一个类型的属性。KSType但是我不知道怎么去Resolver