Skip to content

Commit

Permalink
feat: JetBrains plugin for ZModel (zenstackhq#904)
Browse files Browse the repository at this point in the history
  • Loading branch information
ymc9 authored Dec 25, 2023
1 parent a74df05 commit c79be9e
Show file tree
Hide file tree
Showing 40 changed files with 896 additions and 239 deletions.
14 changes: 14 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,20 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v1.1.0

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-home-cache-cleanup: true

- name: Build
run: DEFAULT_NPM_TAG=latest pnpm run build

Expand Down
18 changes: 18 additions & 0 deletions packages/ide/jetbrains/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
.sign
8 changes: 8 additions & 0 deletions packages/ide/jetbrains/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/ide/jetbrains/.idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions packages/ide/jetbrains/.idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions packages/ide/jetbrains/.idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions packages/ide/jetbrains/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions packages/ide/jetbrains/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

68 changes: 68 additions & 0 deletions packages/ide/jetbrains/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
plugins {
id("java")
id("org.jetbrains.kotlin.jvm") version "1.9.21"
id("org.jetbrains.intellij") version "1.16.1"
}

group = "dev.zenstack"
version = "0.5.0"

repositories {
mavenCentral()
}

// Configure Gradle IntelliJ Plugin
// Read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
intellij {
version.set("2023.3.2")
type.set("IU") // Target IDE Platform

plugins.set(listOf("JavaScript", "org.jetbrains.plugins.textmate"))
}

tasks {
// Set the JVM compatibility versions
withType<JavaCompile> {
sourceCompatibility = "17"
targetCompatibility = "17"
}
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions.jvmTarget = "17"
}

prepareSandbox {
doLast {
copy {
from("${project.projectDir}/../../schema/bundle/language-server/main.js")
into("${destinationDir.path}/zenstack/language-server/")
}
copy {
from("${project.projectDir}/../../schema/src/res/stdlib.zmodel")
into("${destinationDir.path}/zenstack/res/")
}
copy {
from("${project.projectDir}/src/main/textMate/zmodel.tmbundle")
into("${destinationDir.path}/zenstack/res/zmodel.tmbundle")
}
copy {
from("${project.projectDir}/../../language/syntaxes/zmodel.tmLanguage")
into("${destinationDir.path}/zenstack/res/zmodel.tmbundle/Syntaxes/")
}
}
}

patchPluginXml {
sinceBuild.set("231")
untilBuild.set("241.*")
}

signPlugin {
certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
privateKey.set(System.getenv("PRIVATE_KEY"))
password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
}

publishPlugin {
token.set(System.getenv("PUBLISH_TOKEN"))
}
}
6 changes: 6 additions & 0 deletions packages/ide/jetbrains/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
kotlin.stdlib.default.dependency=false
# Enable Gradle Configuration Cache -> https://docs.gradle.org/current/userguide/configuration_cache.html
org.gradle.configuration-cache=false
# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html
org.gradle.caching=true
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit c79be9e

Please sign in to comment.