Tag: dsl

什么是TeamCity Kotlin DSL中的Meta Runner的替代品?

很明显,TeamCity Kotlin DSL中不会支持metarunners的生成。 这些文件保持纯XML格式。 如何使用可用的DSLfunction替换它? 说我想这样做: steps { step { type = “mymetarunner” // compound meta-runner step } } 如何使用Kotlin定义mymetarunner ?

如何将@Value属性注入到使用Spring 5和Kotlin Bean Definition DSL定义的bean中

我正在开发一个使用Kotlin的Spring Boot(2.0.0 M7)应用程序,并且需要定义一些bean来利用新的DSL来定义bean。 我不能想出一个方法来注入来自@Value属性的值。 我们来考虑这个简化的例子: fun beans() = beans { for (i in 1..10) { bean(“myString${i}” + someProperty) { “myString${i}” + someProperty} } } someProperty应该来自这样的东西: @Value(“\${myProperty}”) someProperty: String 我如何使它可以访问beans {} DSL?

“与接收者的Lambda”:这个Kotlin结构是什么?

我正在看这个Kotlin对象声明: object A : B({ variableName1 = “text1” variableName2 = “text2” params { param(“Foo”, “Bar”) } }) 而我无法弄清楚B类构造函数的参数是什么。 我在这个例子中有目的地提取了信息,但是B类实际上是 jetbrains.buildServer.configs.kotlin.v10.BuildType 而我无法find该types的文档。 我发现了一些接近的东西,但它是一个接口的定义,因此没有构造函数。 总而言之,Kotlin的这个构造是什么? { variableName1 = “text1” variableName2 = “text2” params { param(“Foo”, “Bar”) } }

如何使用Anko DSL设置NavigationView的headerView?

在一般的XML布局中,默认的主布局是这样的: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> <include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> </android.support.v4.widget.DrawerLayout> 我试图用Anko DSL编码: … override fun createView(ui: AnkoContext<MainActivity>) = with(ui) { drawerLayout { lparams(width = matchParent, height = matchParent) id = ID_DRAWER_LAYOUT fitsSystemWindows = true navigationView { lparams(width […]

用kotlinx.html DSL创建CSS类

我正在使用Kotlin以Javascript插件和kotlinx.html库来构建示例应用程序: fun main(args: Array<String>) { window.onload = { document.body!!.append.div { a("#", classes = "red") { +"Link" } } } } 我想用“红色”CSS类绘制a链接为红色。 现在我正在使用unsage raw来做到这一点: document.head!!.append.style { unsafe { raw(".red { background: #f00; }") } } 如何用kotlinx.html DSL创建CSS类? 我没有找到任何有关CSS的DSL文件。

如何让Kotlin的类型安全的建设者在斯卡拉工作?

Kotlin有令人敬畏的类型安全建设者 ,可以创建这样的dsl html { head { title("The title") body {} // compile error } body {} // fine } 令人敬畏的是,你不能把标签放在无效的地方,像头内的身体,自动完成也能正常工作。 我很感兴趣,如果这可以在Scala中实现。 如何得到它?

在使用Ktor的HTML构建器时,如何将部分代码提取到Kotlin的局部变量中?

我想了解Kotlin / Ktor中的HTML生成器。 这里的示例使用HTML生成器来生成结果: call.respondHtml { head { title { +"HTML Application" } } body { h1 { +"Sample application with HTML builders" } widget { +"Widgets are just functions" } } } 我正在尝试将这个身体提取到像这样的变量中: val block: HTML.() -> Unit = { head { title { +"HTML Application" } } body { h1 { +"Sample application […]

Kotlin – 限制扩展方法范围

有没有办法限制DSL中的扩展方法? 说我有这样的班级结构: class Outer { fun middle(op: Middle.() -> Unit): Middle { val middle = Middle() middle.op() return middle } } class Middle { fun inner(op: Inner.() -> Unit): Inner { val inner = Inner() inner.op() return inner } } class Inner fun outer(op: Outer.() -> Unit): Outer { val outer = Outer() outer.op() return […]

如何隐藏Kotlin TeamCity的自定义构建步骤中的参数?

我试图设置TeamCity,使用配置作为与Kotlin的代码。 我正在编写构建包装,所以我可以隐藏默认的公开配置,只公开重要的参数。 这将允许我阻止类的用户更改会导致构建错误的值。 我要这个: steps { step { name = "Restore NuGet Packages" type = "jb.nuget.installer" param("nuget.path", "%teamcity.tool.NuGet.CommandLine.3.3.0%") param("nuget.updatePackages.mode", "sln") param("nuget.use.restore", "restore") param("sln.path", "path_to_solution") //parameter here param("toolPathSelector", "%teamcity.tool.NuGet.CommandLine.3.3.0%") } …是这样的: MyBuildSteps.buildstep1("path_to_solution") 以下是步骤的功能签名: public final class BuildSteps { public final fun step(base: BuildStep?, init: BuildStep.() -> Unit ): Unit { /* compiled code */ } } […]

如何在Kotlin DSL定义中优雅地结合父母和孩子的标签

使用Kotlin我想定义一个DSL来初始化一个结构。 正如你所看到的,我想创建一个模块,每个模块都有多个字段。 class DSL : ModuleDSL() { init { module(Module("myModule")) { field("Test", "Test") field("Test", "Test") field("Test", "Test") } module(Module("myOtherModule")) { field("Test", "Test") field("Test", "Test") field("Test", "Test") } } } 每个字段必须连接到模块。 Whit在包含字段定义的闭包中,afaik我没有对模块的引用。 什么是创建模块和它的领域之间的连接最优雅的方式。 为了完整起见,这些是其余的课程 open class ModuleDSL { fun field(fieldname: String, attributename: String) { println("${fieldname} is named ${attributename}") } fun module(module: Module, function: () -> Unit) […]