Skip to content

Commit

Permalink
textmate bundle
Browse files Browse the repository at this point in the history
  • Loading branch information
van800 committed Nov 22, 2023
1 parent a594f45 commit a48fa8c
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 1 deletion.
42 changes: 41 additions & 1 deletion rider/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@

import com.jetbrains.rd.generator.gradle.RdGenExtension
import org.gradle.kotlin.dsl.support.unzipTo
import org.jetbrains.intellij.tasks.InstrumentCodeTask
import org.jetbrains.intellij.tasks.PrepareSandboxTask
import org.jetbrains.intellij.tasks.RunIdeTask
import org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.daemon.common.toHexString
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.FileOutputStream
import java.io.InputStream
import java.io.OutputStream
import java.net.URI
import java.net.URL

repositories {
maven { setUrl("https://cache-redirector.jetbrains.com/maven-central") }
Expand All @@ -23,6 +30,7 @@ apply {
}

val baseVersion = "2023.3"
var godotVscodePluginVersion = "1.3.1" // https://github.com/godotengine/godot-vscode-plugin/releases
val buildCounter = ext.properties["build.number"] ?: "9999"
version = "$baseVersion.$buildCounter"

Expand Down Expand Up @@ -52,7 +60,7 @@ intellij {
updateSinceUntilBuild.set(false)

// Workaround for https://youtrack.jetbrains.com/issue/IDEA-179607
plugins.set(listOf("rider-plugins-appender"))
plugins.set(listOf("rider-plugins-appender", "org.jetbrains.plugins.textmate"))
}

repositories.forEach {
Expand Down Expand Up @@ -98,6 +106,28 @@ fun File.writeTextIfChanged(content: String) {
}
}

fun download(temp:File){
// val url = URL("https://marketplace.visualstudio.com/_apis/public/gallery/publishers/geequlim/vsextensions/godot-tools/latest/vspackage")
val url = URL("https://github.com/godotengine/godot-vscode-plugin/releases/download/$godotVscodePluginVersion/godot-tools-$godotVscodePluginVersion.vsix")

val connection = url.openConnection()
connection.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
)

val inputStream: InputStream = connection.getInputStream()
val outputStream: OutputStream = FileOutputStream(temp)

outputStream.use { output ->
inputStream.use { input ->
input.copyTo(output)
}
}

logger.lifecycle("File downloaded to ${temp.path}")
}


tasks {
configure<RdGenExtension> {
Expand Down Expand Up @@ -190,12 +220,22 @@ tasks {
from("../resharper/src/annotations")
}

val configDir = destinationDir.resolve(File("${intellij.pluginName.get()}/textmate-config"))

doLast {
files.forEach {
val file = file(it)
if (!file.exists()) throw RuntimeException("File $file does not exist")
logger.warn("$name: ${file.name} -> $destinationDir/${intellij.pluginName.get()}/dotnet")
}

logger.lifecycle("downloading bundle")
val temp = FileUtil.createTempFile("package", "")
download(temp)

FileUtil.createDirectory(configDir)
logger.lifecycle("Unzipping ${temp.path} to $configDir")
unzipTo(configDir, temp)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.jetbrains.rider.plugins.godot.textMate

import com.intellij.openapi.application.PathManager
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.ProjectActivity
import org.jetbrains.plugins.textmate.TextMateService
import org.jetbrains.plugins.textmate.actions.Plugin
import org.jetbrains.plugins.textmate.configuration.TextMateUserBundlesSettings
import kotlin.io.path.pathString

class TextmateActivator : ProjectActivity {

private val logger = Logger.getInstance(TextmateActivator::class.java)
override suspend fun execute(project: Project) {
val extensionDir = PathManager.getPluginsDir().resolve("rider-godot").resolve("textmate-config").resolve("extension")
val plugin = Plugin("godot-tools", "geequlim", "")
logger.info("Attempt to apply Textmate bundle $extensionDir")
if (TextMateUserBundlesSettings.instance != null && !TextMateUserBundlesSettings.instance!!.bundles.any { it.key == plugin.toString() }) {
TextMateUserBundlesSettings.instance!!.addBundle(extensionDir.pathString, plugin.toString())
TextMateService.getInstance().reloadEnabledBundles()
}
}
}
3 changes: 3 additions & 0 deletions rider/src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@
<idea-version since-build="233.10527" until-build="234.*" />

<depends>com.intellij.modules.rider</depends>
<depends>org.jetbrains.plugins.textmate</depends>

<extensions defaultExtensionNs="com.intellij">
<postStartupActivity implementation="com.jetbrains.rider.plugins.godot.textMate.TextmateActivator"/>

<configurationType implementation="com.jetbrains.rider.plugins.godot.run.configurations.GodotDebugRunConfigurationType" />
<runConfigurationProducer implementation="com.jetbrains.rider.plugins.godot.run.configurations.DebugSceneRunConfigurationProducer" />
<runConfigurationProducer implementation="com.jetbrains.rider.plugins.godot.run.configurations.DebugSceneRunConfigurationProducerCor" />
Expand Down

0 comments on commit a48fa8c

Please sign in to comment.