Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
335061a
build: rename project to coder-toolbox
fioan89 Feb 18, 2025
4fe83ce
chore: update license
fioan89 Feb 18, 2025
7151981
import code from coder/jetbrains-coder
fioan89 Feb 18, 2025
36fba63
fix: remove Gateway string from title
fioan89 Feb 18, 2025
e39cd05
impl: initial support for opening urls
fioan89 Feb 19, 2025
94a6ff3
fix: use new URL opener
fioan89 Feb 19, 2025
915d347
chore: replaces references to Gateway with Toolbox
fioan89 Feb 19, 2025
5973b0d
impl: go to main page after signing in
fioan89 Feb 20, 2025
b031c65
fix: connection status rendering
fioan89 Feb 20, 2025
8faed95
fix: url glitch on new environment page
fioan89 Feb 20, 2025
90d199c
impl: read plugin version from the extension.json
fioan89 Feb 21, 2025
38e3e2b
fix: user agent did not have a proper version
fioan89 Feb 21, 2025
33b4a60
Merge branch 'main' into fix-connection-issues
fioan89 Feb 24, 2025
383ee49
build: upgrade plugin api dependencies to 0.7.2.6.0.38311
fioan89 Feb 24, 2025
7a6b512
build: upgrade kotlin dependencies
fioan89 Feb 24, 2025
aa24f03
fix: compiler errors (1)
fioan89 Feb 24, 2025
3023aea
fix: compiler errors (2)
fioan89 Feb 24, 2025
ce35939
fix: compiler errors (3)
fioan89 Feb 25, 2025
500d397
fix: message logging
fioan89 Feb 25, 2025
2d69d5e
Merge branch 'main' into support-for-toolbox-2_6_0_38311
fioan89 Feb 26, 2025
b025c64
impl: initial stubs for removing a workspace
fioan89 Feb 26, 2025
9f059a4
impl: support for removing the workspace
fioan89 Feb 27, 2025
3e7edda
Merge branch 'main' into support-for-deleting-workspaces
fioan89 Feb 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
import code from coder/jetbrains-coder
  • Loading branch information
fioan89 committed Feb 18, 2025
commit 7151981b6d1ac7f587a48ad80b61358e290deb06
72 changes: 58 additions & 14 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ plugins {
alias(libs.plugins.serialization)
`java-library`
alias(libs.plugins.dependency.license.report)
alias(libs.plugins.ksp)
alias(libs.plugins.gradle.wrapper)
}

Expand All @@ -37,8 +38,17 @@ jvmWrapper {

dependencies {
compileOnly(libs.bundles.toolbox.plugin.api)
implementation(libs.slf4j)
implementation(libs.tinylog)
implementation(libs.bundles.serialization)
implementation(libs.coroutines.core)
implementation(libs.okhttp)
implementation(libs.exec)
implementation(libs.moshi)
ksp(libs.moshi.codegen)
implementation(libs.retrofit)
implementation(libs.retrofit.moshi)
testImplementation(kotlin("test"))
}

licenseReport {
Expand All @@ -52,7 +62,11 @@ tasks.compileKotlin {
compilerOptions.jvmTarget.set(JvmTarget.JVM_21)
}

val pluginId = "com.jetbrains.toolbox.sample"
tasks.test {
useJUnitPlatform()
}

val pluginId = "com.coder.toolbox"
val pluginVersion = "0.0.1"

val assemblePlugin by tasks.registering(Jar::class) {
Expand All @@ -63,6 +77,38 @@ val assemblePlugin by tasks.registering(Jar::class) {
val copyPlugin by tasks.creating(Sync::class.java) {
dependsOn(assemblePlugin)

from(assemblePlugin.get().outputs.files)
from("src/main/resources") {
include("extension.json")
include("dependencies.json")
include("icon.svg")
}

// Copy dependencies, excluding those provided by Toolbox.
from(
configurations.compileClasspath.map { configuration ->
configuration.files.filterNot { file ->
listOf(
"kotlin",
"remote-dev-api",
"core-api",
"ui-api",
"annotations",
).any { file.name.contains(it) }
}
},
)

into(getPluginInstallDir())
}

tasks.register("cleanAll", Delete::class.java) {
dependsOn(tasks.clean)
delete(getPluginInstallDir())
delete()
}

private fun getPluginInstallDir(): Path {
val userHome = System.getProperty("user.home").let { Path.of(it) }
val toolboxCachesDir = when {
SystemInfoRt.isWindows -> System.getenv("LOCALAPPDATA")?.let { Path.of(it) } ?: (userHome / "AppData" / "Local")
Expand All @@ -78,18 +124,7 @@ val copyPlugin by tasks.creating(Sync::class.java) {
else -> error("Unknown os")
} / "plugins"

val targetDir = pluginsDir / pluginId

from(assemblePlugin.get().outputs.files)

from("src/main/resources") {
include("extension.json")
include("dependencies.json")
include("icon.svg")
}

into(targetDir)

return pluginsDir / pluginId
}

val pluginZip by tasks.creating(Zip::class) {
Expand Down Expand Up @@ -119,4 +154,13 @@ val uploadPlugin by tasks.creating {
// subsequent updates
instance.uploader.upload(pluginId, pluginZip.outputs.files.singleFile)
}
}
}

// For use with kotlin-language-server.
tasks.register("classpath") {
doFirst {
File("classpath").writeText(
sourceSets["main"].runtimeClasspath.asPath
)
}
}
22 changes: 19 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,16 @@ toolbox-plugin-api = "0.6.2.6.0.37447"
kotlin = "2.0.10"
coroutines = "1.7.3"
serialization = "1.5.0"
okhttp = "4.10.0"
slf4j = "2.0.3"
tinylog = "2.7.0"
dependency-license-report = "2.5"
marketplace-client = "2.0.38"
gradle-wrapper = "0.14.0"

exec = "1.12"
moshi = "1.15.1"
ksp = "2.0.10-1.0.24"
retrofit = "2.8.2"

[libraries]
toolbox-core-api = { module = "com.jetbrains.toolbox:core-api", version.ref = "toolbox-plugin-api" }
Expand All @@ -15,15 +21,25 @@ toolbox-remote-dev-api = { module = "com.jetbrains.toolbox:remote-dev-api", vers
coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "serialization" }
serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" }
serialization-json-okio = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-okio", version.ref = "serialization" }
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
tinylog = {module = "org.tinylog:slf4j-tinylog", version.ref = "tinylog"}
exec = { module = "org.zeroturnaround:zt-exec", version.ref = "exec" }
moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi"}
moshi-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi"}
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit"}
retrofit-moshi = { module = "com.squareup.retrofit2:converter-moshi", version.ref = "retrofit"}

marketplace-client = { module = "org.jetbrains.intellij:plugin-repository-rest-client", version.ref = "marketplace-client" }

[bundles]
serialization = [ "serialization-core", "serialization-json" ]
serialization = [ "serialization-core", "serialization-json", "serialization-json-okio" ]
toolbox-plugin-api = [ "toolbox-core-api", "toolbox-ui-api", "toolbox-remote-dev-api" ]

[plugins]
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
dependency-license-report = { id = "com.github.jk1.dependency-license-report", version.ref = "dependency-license-report" }
gradle-wrapper = { id = "me.filippov.gradle.jvm.wrapper", version.ref = "gradle-wrapper" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp"}
gradle-wrapper = { id = "me.filippov.gradle.jvm.wrapper", version.ref = "gradle-wrapper" }
12 changes: 0 additions & 12 deletions src/main/kotlin/SampleEnvironmentContentsView.kt

This file was deleted.

18 changes: 0 additions & 18 deletions src/main/kotlin/SampleRemoteDevExtension.kt

This file was deleted.

22 changes: 0 additions & 22 deletions src/main/kotlin/SampleRemoteEnvironment.kt

This file was deleted.

83 changes: 0 additions & 83 deletions src/main/kotlin/SampleRemoteProvider.kt

This file was deleted.

22 changes: 0 additions & 22 deletions src/main/kotlin/await.kt

This file was deleted.

28 changes: 28 additions & 0 deletions src/main/kotlin/com/coder/toolbox/CoderGatewayExtension.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.coder.toolbox

import com.jetbrains.toolbox.api.core.PluginSecretStore
import com.jetbrains.toolbox.api.core.PluginSettingsStore
import com.jetbrains.toolbox.api.core.ServiceLocator
import com.jetbrains.toolbox.api.remoteDev.RemoteDevExtension
import com.jetbrains.toolbox.api.remoteDev.RemoteEnvironmentConsumer
import com.jetbrains.toolbox.api.remoteDev.RemoteProvider
import com.jetbrains.toolbox.api.ui.ToolboxUi
import kotlinx.coroutines.CoroutineScope
import okhttp3.OkHttpClient

/**
* Entry point into the extension.
*/
class CoderGatewayExtension : RemoteDevExtension {
// All services must be passed in here and threaded as necessary.
override fun createRemoteProviderPluginInstance(serviceLocator: ServiceLocator): RemoteProvider {
return CoderRemoteProvider(
OkHttpClient(),
serviceLocator.getService(RemoteEnvironmentConsumer::class.java),
serviceLocator.getService(CoroutineScope::class.java),
serviceLocator.getService(ToolboxUi::class.java),
serviceLocator.getService(PluginSettingsStore::class.java),
serviceLocator.getService(PluginSecretStore::class.java),
)
}
}
Loading