From b00e829594894fc2dfe4d47e26eecd12c79d7b37 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Mon, 20 Apr 2026 23:49:31 +0200 Subject: [PATCH 1/2] languages/java: add extension maven.nvim --- docs/manual/release-notes/rl-0.9.md | 3 +++ modules/plugins/languages/java.nix | 38 +++++++++++++++++++++++++++-- npins/sources.json | 13 ++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 604a241b..23e84a1a 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -383,6 +383,9 @@ - Extend `languages.asm` to support more filetypes out of the box. +- Added {option}`vim.languages.java.extensions.maven-nvim.enable` for Maven + support; + - Didn't Add [`syntax-gaslighting`](https://github.com/NotAShelf/syntax-gaslighting.nvim), you're crazy. diff --git a/modules/plugins/languages/java.nix b/modules/plugins/languages/java.nix index 1fad79a3..c1094f4c 100644 --- a/modules/plugins/languages/java.nix +++ b/modules/plugins/languages/java.nix @@ -7,8 +7,9 @@ inherit (lib.options) literalExpression mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib) genAttrs; - inherit (lib.types) listOf; - inherit (lib.nvim.types) mkGrammarOption enumWithRename; + inherit (lib.types) listOf str; + inherit (lib.meta) getExe; + inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption enumWithRename; cfg = config.vim.languages.java; @@ -46,6 +47,26 @@ in { description = "Java LSP server to use"; }; }; + extensions = { + maven-nvim = { + enable = mkEnableOption "maven integration"; + setupOpts = mkPluginSetupOption "maven-nvim" { + mvn_executable = mkOption { + type = str; + default = getExe pkgs.maven; + defaultText = literalExpression "getExe pkgs.maven"; + description = '' + The maven executable to use. + ''; + example = '' + - `"mvn"`: to use the maven from the `PATH`. + - `"./mvnw"`: to use the projects maven. + - `"$${getExe pkgs.maven}"`: to use maven from a nix package. + ''; + }; + }; + }; + }; }; config = mkIf cfg.enable (mkMerge [ @@ -62,5 +83,18 @@ in { vim.treesitter.enable = true; vim.treesitter.grammars = [cfg.treesitter.package]; }) + + (mkIf cfg.extensions.maven-nvim.enable { + vim = mkMerge [ + { + startPlugins = ["nui-nvim" "plenary-nvim"]; + lazy.plugins.maven-nvim = { + package = "maven-nvim"; + setupModule = "maven"; + setupOpts = cfg.extensions.maven-nvim.setupOpts; + }; + } + ]; + }) ]); } diff --git a/npins/sources.json b/npins/sources.json index bc47cd60..ffd5978d 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -1063,6 +1063,19 @@ "url": "https://github.com/OXY2DEV/markview.nvim/archive/1861f959599ae03cfd59f56222a542035b0cd947.tar.gz", "hash": "sha256-T6ZVy7o9sSGa2vOolvmL7KO3cXkyEwJ9F4n6BbWdPGk=" }, + "maven-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "oclay1st", + "repo": "maven.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "8d53fe5d5e4b0417c1e923f1c44f769192435411", + "url": "https://github.com/oclay1st/maven.nvim/archive/8d53fe5d5e4b0417c1e923f1c44f769192435411.tar.gz", + "hash": "sha256-fzen+eJtenvnxRPWXHnnmp+r1g2iaEFOEYUPblViroY=" + }, "mellow": { "type": "Git", "repository": { From c4a7fd88b59c99fec5e198154bc3f3bbd028d8b9 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Mon, 20 Apr 2026 23:49:51 +0200 Subject: [PATCH 2/2] languages/java: add extension gradle.nvim --- docs/manual/release-notes/rl-0.9.md | 3 +++ modules/plugins/languages/java.nix | 31 +++++++++++++++++++++++++++++ npins/sources.json | 13 ++++++++++++ 3 files changed, 47 insertions(+) diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 23e84a1a..7bbe8db0 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -386,6 +386,9 @@ - Added {option}`vim.languages.java.extensions.maven-nvim.enable` for Maven support; +- Added {option}`vim.languages.java.extensions.gradle-nvim.enable` for Gradle + support; + - Didn't Add [`syntax-gaslighting`](https://github.com/NotAShelf/syntax-gaslighting.nvim), you're crazy. diff --git a/modules/plugins/languages/java.nix b/modules/plugins/languages/java.nix index c1094f4c..25a78acb 100644 --- a/modules/plugins/languages/java.nix +++ b/modules/plugins/languages/java.nix @@ -47,6 +47,7 @@ in { description = "Java LSP server to use"; }; }; + extensions = { maven-nvim = { enable = mkEnableOption "maven integration"; @@ -66,6 +67,23 @@ in { }; }; }; + gradle-nvim = { + enable = mkEnableOption "gradle integration"; + setupOpts = mkPluginSetupOption "gradle-nvim" { + gadle_executable = mkOption { + type = str; + default = getExe pkgs.gradle; + defaultText = literalExpression "getExe pkgs.gradle"; + description = '' + The gradle executable to use. + ''; + example = '' + - `"gradle"`: to use the gradle from the `PATH`. + - `"$${getExe pkgs.gradle}"`: to use gradle from a nix package. + ''; + }; + }; + }; }; }; @@ -96,5 +114,18 @@ in { } ]; }) + + (mkIf cfg.extensions.gradle-nvim.enable { + vim = mkMerge [ + { + startPlugins = ["nui-nvim" "plenary-nvim"]; + lazy.plugins.gradle-nvim = { + package = "gradle-nvim"; + setupModule = "gradle"; + setupOpts = cfg.extensions.gradle-nvim.setupOpts; + }; + } + ]; + }) ]); } diff --git a/npins/sources.json b/npins/sources.json index ffd5978d..51a79319 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -702,6 +702,19 @@ "url": "https://api.github.com/repos/olexsmir/gopher.nvim/tarball/refs/tags/v0.6.1", "hash": "sha256-tfagWNHlfCRQ0BMihFCubKgMUpp5QtFl91ja4/Y2/gI=" }, + "gradle-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "oclay1st", + "repo": "gradle.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "dac2cdd20cbc55c588bdcda1b4ee6f9b280d9e79", + "url": "https://github.com/oclay1st/gradle.nvim/archive/dac2cdd20cbc55c588bdcda1b4ee6f9b280d9e79.tar.gz", + "hash": "sha256-wcUMX9Z1KKkZWs79OnunyGS4yYEeHiiTjtIHUjq1A3k=" + }, "gruber-darker": { "type": "Git", "repository": {