commit edc0c44350371dc0b3e15d49841846c50800bf67 from: ale date: Thu Jul 23 18:30:11 2026 UTC Scaffold inicial: flake devShell (JDK21+Gradle), Gradle build para IntelliJ Platform Plugin 2.18.1 apuntando al IntelliJ local, README 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 { + sourceCompatibility = "21" + targetCompatibility = "21" + } + withType { + 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"