From a15ad3cd11eb6a871179a15840b620ac5f938456 Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Sat, 17 May 2025 17:03:08 +0200 Subject: [PATCH 1/4] languages/clojure: init --- docs/release-notes/rl-0.8.md | 7 ++++ modules/plugins/languages/clojure.nix | 56 +++++++++++++++++++++++++++ modules/plugins/languages/default.nix | 1 + 3 files changed, 64 insertions(+) create mode 100644 modules/plugins/languages/clojure.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 1f10476f..e67ee69b 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -407,3 +407,10 @@ - Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and `setupOpts` - Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix + +[anil9](https://github.com/anil9): + +[clojure-lsp]: https://github.com/clojure-lsp/clojure-lsp +[conjure]: https://github.com/Olical/conjure + +- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] and [conjure]. diff --git a/modules/plugins/languages/clojure.nix b/modules/plugins/languages/clojure.nix new file mode 100644 index 00000000..5259d4ff --- /dev/null +++ b/modules/plugins/languages/clojure.nix @@ -0,0 +1,56 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.meta) getExe; + inherit (lib.lists) isList; + inherit (lib.types) either listOf package str; + inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.lua) expToLua; + + cfg = config.vim.languages.clojure; +in { + options.vim.languages.clojure = { + enable = mkEnableOption "Clojure language support"; + + treesitter = { + enable = mkEnableOption "Clojure treesitter" // {default = config.vim.languages.enableTreesitter;}; + package = mkGrammarOption pkgs "clojure"; + }; + + lsp = { + enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; + package = mkOption { + description = "Clojure LSP"; + type = either package (listOf str); + default = pkgs.clojure-lsp; + }; + }; + }; + + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.lsp.enable { + vim.lsp.lspconfig.enable = true; + vim.lsp.lspconfig.sources.clojure-lsp = '' + lspconfig.clojure_lsp.setup { + capabilities = capabilities; + on_attach = default_on_attach; + cmd = ${ + if isList cfg.lsp.package + then expToLua cfg.lsp.package + else ''{"${getExe cfg.lsp.package}"}'' + }; + } + ''; + }) + + (mkIf cfg.treesitter.enable { + vim.treesitter.enable = true; + vim.treesitter.grammars = [cfg.treesitter.package]; + }) + ]); +} diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 25b99080..961d7cc5 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -9,6 +9,7 @@ in { ./cue.nix ./dart.nix ./clang.nix + ./clojure.nix ./css.nix ./elixir.nix ./fsharp.nix From 9e50a89d7ed7734dc4db84916bd0e6b6d83c9af8 Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Wed, 21 May 2025 20:34:02 +0200 Subject: [PATCH 2/4] repl/conjure: init --- docs/release-notes/rl-0.8.md | 3 ++- modules/modules.nix | 1 + modules/plugins/repl/conjure/conjure.nix | 19 +++++++++++++++++++ modules/plugins/repl/conjure/default.nix | 5 +++++ modules/plugins/repl/default.nix | 5 +++++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 modules/plugins/repl/conjure/conjure.nix create mode 100644 modules/plugins/repl/conjure/default.nix create mode 100644 modules/plugins/repl/default.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index e67ee69b..385eb548 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -413,4 +413,5 @@ [clojure-lsp]: https://github.com/clojure-lsp/clojure-lsp [conjure]: https://github.com/Olical/conjure -- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] and [conjure]. +- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] +- Add code evaluation environment [conjure] under `vim.repl.conjure` diff --git a/modules/modules.nix b/modules/modules.nix index c7e198dd..97bfa211 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -33,6 +33,7 @@ "minimap" "notes" "projects" + "repl" "rich-presence" "runner" "session" diff --git a/modules/plugins/repl/conjure/conjure.nix b/modules/plugins/repl/conjure/conjure.nix new file mode 100644 index 00000000..dbcde32b --- /dev/null +++ b/modules/plugins/repl/conjure/conjure.nix @@ -0,0 +1,19 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption; + inherit (lib.modules) mkIf; + + cfg = config.vim.repl.conjure; +in { + options.vim.repl.conjure = { + enable = mkEnableOption "Whether to enable Conjure"; + }; + + config = mkIf cfg.enable { + vim.startPlugins = [pkgs.vimPlugins.conjure]; + }; +} diff --git a/modules/plugins/repl/conjure/default.nix b/modules/plugins/repl/conjure/default.nix new file mode 100644 index 00000000..de8c3190 --- /dev/null +++ b/modules/plugins/repl/conjure/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./conjure.nix + ]; +} diff --git a/modules/plugins/repl/default.nix b/modules/plugins/repl/default.nix new file mode 100644 index 00000000..ba03a390 --- /dev/null +++ b/modules/plugins/repl/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./conjure + ]; +} From f7b556ab240b1a25a0e85d7fe901919613cf8acb Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Thu, 22 May 2025 16:19:52 +0200 Subject: [PATCH 3/4] conjure option text update Co-authored-by: Ching Pei Yang <59727193+horriblename@users.noreply.github.com> --- modules/plugins/repl/conjure/conjure.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/repl/conjure/conjure.nix b/modules/plugins/repl/conjure/conjure.nix index dbcde32b..83481af2 100644 --- a/modules/plugins/repl/conjure/conjure.nix +++ b/modules/plugins/repl/conjure/conjure.nix @@ -10,7 +10,7 @@ cfg = config.vim.repl.conjure; in { options.vim.repl.conjure = { - enable = mkEnableOption "Whether to enable Conjure"; + enable = mkEnableOption "Conjure"; }; config = mkIf cfg.enable { From 3da08708d7d91f4da45484ebe3cd5353c9ebde0d Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Mon, 26 May 2025 22:01:14 +0200 Subject: [PATCH 4/4] language/clojure: variable order Co-authored-by: Soliprem <73885403+Soliprem@users.noreply.github.com> --- modules/plugins/languages/clojure.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/languages/clojure.nix b/modules/plugins/languages/clojure.nix index 5259d4ff..0b932708 100644 --- a/modules/plugins/languages/clojure.nix +++ b/modules/plugins/languages/clojure.nix @@ -25,9 +25,9 @@ in { lsp = { enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; package = mkOption { - description = "Clojure LSP"; type = either package (listOf str); default = pkgs.clojure-lsp; + description = "Clojure LSP"; }; }; };