Commit Diff


commit - /dev/null
commit + edc0c44350371dc0b3e15d49841846c50800bf67
blob - /dev/null
blob + 0c3abb32d3d895c1ae2f491674e66390df9ca4df (mode 644)
--- /dev/null
+++ .gitignore
@@ -0,0 +1,6 @@
+build/
+.gradle/
+.idea/
+*.iml
+out/
+result
blob - /dev/null
blob + 3331a54576afea1cab7874e885875a2615ffe0db (mode 644)
--- /dev/null
+++ README.md
@@ -0,0 +1,26 @@
+# gotvcs-intellij
+
+Plugin de IntelliJ que integra [Game of Trees](https://gameoftrees.org/) (`got`)
+como proveedor de control de versiones nativo: detección de work trees `.got/`,
+estado de archivos en el panel de Commit, diffs, historial y commits desde la UI.
+
+## Estado actual
+
+Fase 1 + 2 del plan: esqueleto del plugin, detección de raíces `got` y estado
+de archivos (read-only) vía `got status`. Diff completo, commit/rollback,
+historial y update quedan para fases posteriores.
+
+## Build
+
+Requiere JDK 21 y Gradle, provistos por el `flake.nix` de este repo:
+
+```
+nix develop -c gradle buildPlugin
+```
+
+El ZIP resultante queda en `build/distributions/` y se instala manualmente en
+IntelliJ vía *Settings > Plugins > Install Plugin from Disk*.
+
+Compila contra una instalación local de IntelliJ Ultimate (ver `gradle.properties`,
+clave `ideLocalPath`) en vez de descargar un IDE, ya que un IntelliJ descargado
+por Gradle normalmente no ejecuta en NixOS sin `nix-ld`/FHS.
blob - /dev/null
blob + a92b719b88f2202e25972fea0e34acd7c6aad573 (mode 644)
--- /dev/null
+++ build.gradle.kts
@@ -0,0 +1,47 @@
+plugins {
+    id("java")
+    id("org.jetbrains.kotlin.jvm") version "2.4.10"
+    id("org.jetbrains.intellij.platform") version "2.18.1"
+}
+
+group = "dev.nezzontli"
+version = "0.1.0"
+
+repositories {
+    mavenCentral()
+    intellijPlatform {
+        defaultRepositories()
+    }
+}
+
+dependencies {
+    intellijPlatform {
+        local(providers.gradleProperty("ideLocalPath").get())
+        bundledPlugin("com.intellij.modules.vcs")
+    }
+}
+
+intellijPlatform {
+    pluginConfiguration {
+        ideaVersion {
+            sinceBuild = "261"
+        }
+
+        changeNotes = """
+            Fase 1 + 2: detección de work trees got y estado de archivos
+            (read-only) en el panel de Commit.
+        """.trimIndent()
+    }
+}
+
+tasks {
+    withType<JavaCompile> {
+        sourceCompatibility = "21"
+        targetCompatibility = "21"
+    }
+    withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
+        compilerOptions {
+            jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
+        }
+    }
+}
blob - /dev/null
blob + f8e71a911910a9c90ccc407775ebd6e10aab7fa6 (mode 644)
--- /dev/null
+++ flake.nix
@@ -0,0 +1,22 @@
+{
+  description = "Entorno de build para el plugin IntelliJ de Game of Trees (got)";
+
+  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+
+  outputs =
+    { self, nixpkgs }:
+    let
+      system = "x86_64-linux";
+      pkgs = import nixpkgs { inherit system; };
+    in
+    {
+      devShells.${system}.default = pkgs.mkShell {
+        packages = [
+          pkgs.jdk21
+          pkgs.gradle
+        ];
+
+        JAVA_HOME = "${pkgs.jdk21}/lib/openjdk";
+      };
+    };
+}
blob - /dev/null
blob + 58d4b84c91303c5da085316c31ba5fd096134687 (mode 644)
--- /dev/null
+++ gradle.properties
@@ -0,0 +1,10 @@
+# Ruta a la instalación local de IntelliJ Ultimate contra la que se compila
+# y desde la que se resuelven las clases de plataforma (VCS API, etc).
+# En NixOS esta ruta vive bajo /nix/store y cambia con cada actualización del
+# paquete `idea` en /nixdots — si `gradle buildPlugin` falla con un error de
+# "local IDE not found", resolver la ruta actual con:
+#   readlink -f /etc/profiles/per-user/ale/bin/idea
+# y actualizar ideLocalPath más abajo.
+ideLocalPath=/nix/store/2j9cidng2j273q9p2xzn0mxj5hkh53fc-idea-2026.1.4/idea
+
+kotlin.stdlib.default.dependency=false
blob - /dev/null
blob + d777b5b47393868c2ec57ced3dd33fe33fb915b1 (mode 644)
--- /dev/null
+++ settings.gradle.kts
@@ -0,0 +1 @@
+rootProject.name = "gotvcs-intellij"