- Debug Information
- Triggered by: ${{ env.ACTOR }}
- HEAD at: ${{ env.REF }}
- Reruns: ${{ env.RUNS }}
-
-
- cleanup:
- if: ${{ github.event.pull_request.merged == true || github.event.pull_request.state == 'closed' }}
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Delete preview for closed/merged PR
- run: |
- PR_NUMBER=${{ github.event.pull_request.number }}
- BRANCH_NAME="gh-pages"
- PREVIEW_DIR="docs-preview-${PR_NUMBER}"
-
- # Clone the gh-pages branch
- git clone --single-branch --branch $BRANCH_NAME https://github.com/${{ github.repository }} gh-pages
- cd gh-pages
-
- # Check if the preview directory exists, and delete it if it does
- if [ -d "$PREVIEW_DIR" ]; then
- echo "Deleting preview directory $PREVIEW_DIR"
- rm -rf $PREVIEW_DIR
- else
- echo "Preview directory $PREVIEW_DIR does not exist. Skipping deletion."
- fi
-
- # Configure git to use the GitHub Actions token for authentication
- git config --global user.name "GitHub Actions"
- git config --global user.email "actions@github.com"
-
- # Set the GitHub token for authentication
- git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
-
- # Add and commit the changes (only if there's something to delete)
- git add .
- git diff --quiet || git commit -m "Remove preview for PR #${PR_NUMBER}"
- git push origin $BRANCH_NAME
-
- cleanup-comment:
- needs: cleanup
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Double check preview directory deletion
- run: |
- # Check if the preview directory exists, and delete it if it does
- if [ -d "docs-preview-${{ github.event.pull_request.number }}" ]; then
- echo "Something went wrong, preview directory is not deleted."
- exit 1
- else
- echo "Preview directory has been deleted successfully, proceeding."
- fi
-
- - name: Post cleanup verification
- uses: peter-evans/create-or-update-comment@v4
- with:
- issue-number: ${{ github.event.pull_request.number }}
- body: |
- ✅ Preview has been deleted successfully!
diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md
index 32186a8f..59267ddf 100644
--- a/docs/release-notes/rl-0.7.md
+++ b/docs/release-notes/rl-0.7.md
@@ -28,11 +28,11 @@ configuration formats.
### `vim.maps` rewrite {#sec-vim-maps-rewrite}
-Instead of specifying map modes using submodules (e.g.: `vim.maps.normal`), a
-new `vim.keymaps` submodule with support for a `mode` option has been
-introduced. It can be either a string, or a list of strings, where a string
-represents the short-name of the map mode(s), that the mapping should be set
-for. See `:help map-modes` for more information.
+Instead of specifying map modes using submodules (eg.: `vim.maps.normal`), a new
+`vim.keymaps` submodule with support for a `mode` option has been introduced. It
+can be either a string, or a list of strings, where a string represents the
+short-name of the map mode(s), that the mapping should be set for. See
+`:help map-modes` for more information.
For example:
diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md
index c65defeb..036b673c 100644
--- a/docs/release-notes/rl-0.8.md
+++ b/docs/release-notes/rl-0.8.md
@@ -16,16 +16,6 @@
- Implement [](#opt-vim.git.gitsigns.setupOpts) for user-specified setup table
in gitsigns configuration.
-- [](#opt-vim.options.mouse) no longer compares values to an enum of available
- mouse modes. This means you can provide any string without the module system
- warning you that it is invalid. Do keep in mind that this value is no longer
- checked, so you will be responsible for ensuring its validity.
-
-- Deprecate `vim.enableEditorconfig` in favor of
- [](#opt-vim.globals.editorconfig).
-
-- Deprecate rnix-lsp as it has been abandoned and archived upstream.
-
[amadaluzia](https://github.com/amadaluzia):
[haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim
@@ -46,8 +36,3 @@
- Add [aerial.nvim]
- Add [nvim-ufo]
-
-[LilleAila](https://github.com/LilleAila):
-
-- Remove `vim.notes.obsidian.setupOpts.dir`, which was set by default. Fixes
- issue with setting the workspace directory.
diff --git a/flake.lock b/flake.lock
index da38b967..d4e745c1 100644
--- a/flake.lock
+++ b/flake.lock
@@ -51,6 +51,27 @@
"type": "github"
}
},
+ "naersk": {
+ "inputs": {
+ "nixpkgs": [
+ "rnix-lsp",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1655042882,
+ "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=",
+ "owner": "nix-community",
+ "repo": "naersk",
+ "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "naersk",
+ "type": "github"
+ }
+ },
"nil": {
"inputs": {
"flake-utils": [
@@ -103,6 +124,22 @@
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
}
},
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1656753965,
+ "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nmd": {
"flake": false,
"locked": {
@@ -2073,6 +2110,26 @@
"type": "github"
}
},
+ "rnix-lsp": {
+ "inputs": {
+ "naersk": "naersk",
+ "nixpkgs": "nixpkgs_2",
+ "utils": "utils"
+ },
+ "locked": {
+ "lastModified": 1669555118,
+ "narHash": "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=",
+ "owner": "nix-community",
+ "repo": "rnix-lsp",
+ "rev": "95d40673fe43642e2e1144341e86d0036abd95d9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "rnix-lsp",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"flake-parts": "flake-parts",
@@ -2203,6 +2260,7 @@
"plugin-vim-repeat": "plugin-vim-repeat",
"plugin-vim-startify": "plugin-vim-startify",
"plugin-which-key": "plugin-which-key",
+ "rnix-lsp": "rnix-lsp",
"systems": "systems_2"
}
},
@@ -2256,6 +2314,21 @@
"repo": "default",
"type": "github"
}
+ },
+ "utils": {
+ "locked": {
+ "lastModified": 1656928814,
+ "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index 89690cad..c1fe0688 100644
--- a/flake.nix
+++ b/flake.nix
@@ -89,6 +89,7 @@
};
# Language servers (use master instead of nixpkgs)
+ rnix-lsp.url = "github:nix-community/rnix-lsp";
nil = {
url = "github:oxalica/nil";
inputs.nixpkgs.follows = "nixpkgs";
diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix
index b77d057a..389ca0ce 100644
--- a/flake/legacyPackages.nix
+++ b/flake/legacyPackages.nix
@@ -8,10 +8,8 @@
inherit system;
overlays = [
inputs.self.overlays.default
-
(_: _: {
- # Build nil from source to get most recent
- # features as they are added.
+ rnix-lsp = inputs'.rnix-lsp.defaultPackage;
nil = inputs'.nil.packages.default;
})
];
diff --git a/lib/languages.nix b/lib/languages.nix
index 56c225d6..52f1b5b8 100644
--- a/lib/languages.nix
+++ b/lib/languages.nix
@@ -6,12 +6,7 @@
inherit (lib.nvim.attrsets) mapListToAttrs;
in {
# Converts a boolean to a yes/no string. This is used in lots of
- # configuration formats, and is not covered by `toLuaObject`
- toVimBool = bool:
- if bool
- then "yes"
- else "no";
-
+ # configuration formats.
diagnosticsToLua = {
lang,
config,
@@ -35,8 +30,8 @@ in {
mkEnable = desc:
mkOption {
- default = false;
- type = bool;
description = "Turn on ${desc} for enabled languages by default";
+ type = bool;
+ default = false;
};
}
diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix
index 8d27d7ac..e4cb193f 100644
--- a/modules/extra/deprecations.nix
+++ b/modules/extra/deprecations.nix
@@ -14,7 +14,6 @@
splitRight = "splitright";
autoIndent = "autoindent";
wordWrap = "wrap";
- showSignColumn = "signcolumn";
};
in {
imports = concatLists [
@@ -36,28 +35,23 @@ in {
vim.autopairs.enable has been removed in favor of per-plugin modules.
You can enable nvim-autopairs with vim.autopairs.nvim-autopairs.enable instead.
'')
-
(mkRemovedOptionModule ["vim" "autopairs" "type"] ''
vim.autopairs.type has been removed in favor of per-plugin modules.
You can enable nvim-autopairs with vim.autopairs.nvim-autopairs.enable instead.
'')
-
(mkRemovedOptionModule ["vim" "autocomplete" "enable"] ''
vim.autocomplete.enable has been removed in favor of per-plugin modules.
You can enable nvim-cmp with vim.autocomplete.nvim-cmp.enable instead.
'')
-
(mkRemovedOptionModule ["vim" "autocomplete" "type"] ''
vim.autocomplete.type has been removed in favor of per-plugin modules.
You can enable nvim-cmp with vim.autocomplete.nvim-cmp.enable instead.
'')
-
(mkRemovedOptionModule ["vim" "autocomplete" "sources"] ''
vim.autocomplete.sources has been removed in favor of per-plugin modules.
You can add nvim-cmp sources with vim.autocomplete.nvim-cmp.sources
instead.
'')
-
(mkRemovedOptionModule ["vim" "snippets" "vsnip" "enable"] ''
vim.snippets.vsnip.enable has been removed in favor of the more modern luasnip.
'')
@@ -90,12 +84,9 @@ in {
`tabstop` and `shiftwidth` manually in `vim.options` or per-filetype in a
`ftplugin` directory added to your runtime path.
'')
-
- # 2024-12-02
- (mkRenamedOptionModule ["vim" "enableEditorconfig"] ["vim" "globals" "editorconfig"])
]
- # 2024-12-01
+ # 2024-12-1
# Migrated via batchRenameOptions. Further batch renames must be below this line.
renamedVimOpts
];
diff --git a/modules/neovim/init/basic.nix b/modules/neovim/init/basic.nix
index 532ebcea..9370fa8f 100644
--- a/modules/neovim/init/basic.nix
+++ b/modules/neovim/init/basic.nix
@@ -5,7 +5,6 @@
}: let
inherit (lib.options) mkOption mkEnableOption literalMD;
inherit (lib.strings) optionalString;
- inherit (lib.attrsets) optionalAttrs;
inherit (lib.types) enum bool str int either;
inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.dag) entryAfter;
@@ -59,12 +58,24 @@ in {
description = "Prevent swapfile and backupfile from being created";
};
+ showSignColumn = mkOption {
+ type = bool;
+ default = true;
+ description = "Show the sign column";
+ };
+
bell = mkOption {
type = enum ["none" "visual" "on"];
default = "none";
description = "Set how bells are handled. Options: on, visual or none";
};
+ enableEditorconfig = mkOption {
+ type = bool;
+ default = true;
+ description = "Follow editorconfig rules in current directory";
+ };
+
searchCase = mkOption {
type = enum ["ignore" "smart" "sensitive"];
default = "sensitive";
@@ -95,55 +106,63 @@ in {
# Set options that were previously interpolated in 'luaConfigRC.basic' as vim.options (vim.o)
# and 'vim.globals' (vim.g). Future options, if possible, should be added here instead of the
# luaConfigRC section below.
- options = pushDownDefault (lib.mergeAttrsList [
- {
- # Options that are always set, with a lower priority
- encoding = "utf-8";
- hidden = true;
- expandtab = true;
+ options = pushDownDefault {
+ encoding = "utf-8";
+ hidden = true;
+ expandtab = true;
+ };
- # Junkfile Behaviour
- swapfile = !cfg.preventJunkFiles;
- backup = !cfg.preventJunkFiles;
- writebackup = !cfg.preventJunkFiles;
- }
+ globals = pushDownDefault {
+ editorconfig = cfg.enableEditorconfig;
+ };
- (optionalAttrs cfg.undoFile.enable {
- undofile = true;
- undodir = cfg.undoFile.path;
- })
-
- (optionalAttrs (cfg.bell == "none") {
- errorbells = false;
- visualbell = false;
- })
-
- (optionalAttrs (cfg.bell == "on") {
- visualbell = false;
- })
-
- (optionalAttrs (cfg.bell == "visual") {
- visualbell = false;
- })
-
- (optionalAttrs (cfg.lineNumberMode == "relative") {
- relativenumber = true;
- })
-
- (optionalAttrs (cfg.lineNumberMode == "number") {
- number = true;
- })
-
- (optionalAttrs (cfg.lineNumberMode == "relNumber") {
- number = true;
- relativenumber = true;
- })
- ]);
-
- # Options that are more difficult to set through 'vim.options'. Namely, appending values
- # to pre-set Neovim options. Fear not, though as the Lua DAG is still as powerful as it
- # could be.
+ # Options that are more difficult to set through 'vim.options'. Fear not, though
+ # as the Lua DAG is still as powerful as it could be.
luaConfigRC.basic = entryAfter ["globalsScript"] ''
+ -- Settings that are set for everything
+ vim.opt.shortmess:append("c")
+
+ ${optionalString cfg.undoFile.enable ''
+ vim.o.undofile = true
+ vim.o.undodir = ${toLuaObject cfg.undoFile.path}
+ ''}
+
+ ${optionalString cfg.showSignColumn ''
+ vim.o.signcolumn = "yes"
+ ''}
+
+ ${optionalString cfg.preventJunkFiles ''
+ vim.o.swapfile = false
+ vim.o.backup = false
+ vim.o.writebackup = false
+ ''}
+
+ ${optionalString (cfg.bell == "none") ''
+ vim.o.errorbells = false
+ vim.o.visualbell = false
+ ''}
+
+ ${optionalString (cfg.bell == "on") ''
+ vim.o.visualbell = false
+ ''}
+
+ ${optionalString (cfg.bell == "visual") ''
+ vim.o.errorbells = false
+ ''}
+
+ ${optionalString (cfg.lineNumberMode == "relative") ''
+ vim.o.relativenumber = true
+ ''}
+
+ ${optionalString (cfg.lineNumberMode == "number") ''
+ vim.o.number = true
+ ''}
+
+ ${optionalString (cfg.lineNumberMode == "relNumber") ''
+ vim.o.number = true
+ vim.o.relativenumber = true
+ ''}
+
${optionalString cfg.useSystemClipboard ''
vim.opt.clipboard:append("unnamedplus")
''}
diff --git a/modules/neovim/init/spellcheck.nix b/modules/neovim/init/spellcheck.nix
index f8d784da..5d6f5bed 100644
--- a/modules/neovim/init/spellcheck.nix
+++ b/modules/neovim/init/spellcheck.nix
@@ -124,6 +124,7 @@ in {
nvim --headless --clean \
--cmd "mkspell $out/spell/$name.add.spl $spellfile" -Es -n
done
+
'';
in
mkIf (cfg.extraSpellWords != {}) [
@@ -132,12 +133,10 @@ in {
compileJoinedSpellfiles.outPath
];
- options = {
- spell = true;
- spelllang = cfg.languages;
- };
-
luaConfigRC.spellcheck = entryAfter ["basic"] ''
+ vim.opt.spell = true
+ vim.opt.spelllang = ${listToLuaTable cfg.languages}
+
-- Disable spellchecking for certain filetypes
-- as configured by `vim.spellcheck.ignoredFiletypes`
vim.api.nvim_create_augroup("nvf_autocmds", {clear = false})
diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix
index 1120633c..ffb69e92 100644
--- a/modules/plugins/languages/nix.nix
+++ b/modules/plugins/languages/nix.nix
@@ -26,6 +26,22 @@
then expToLua package
else ''{"${package}/bin/${defaultCmd}"}'';
servers = {
+ rnix = {
+ package = pkgs.rnix-lsp;
+ internalFormatter = cfg.format.type == "nixpkgs-fmt";
+ lspConfig = ''
+ lspconfig.rnix.setup{
+ capabilities = capabilities,
+ ${
+ if (cfg.format.enable && cfg.format.type == "nixpkgs-fmt")
+ then useFormat
+ else noFormat
+ },
+ cmd = ${packageToCmd cfg.lsp.package "rnix-lsp"},
+ }
+ '';
+ };
+
nil = {
package = pkgs.nil;
internalFormatter = true;
@@ -149,7 +165,6 @@ in {
type = enum (attrNames formats);
default = defaultFormat;
};
-
package = mkOption {
description = "Nix formatter package";
type = package;
@@ -173,18 +188,7 @@ in {
assertions = [
{
assertion = cfg.format.type != "nixpkgs-fmt";
- message = ''
- nixpkgs-fmt has been archived upstream. Please use one of the following available formatters:
- ${concatStringsSep ", " (attrNames formats)}
- '';
- }
-
- {
- assertion = cfg.lsp.server != "rnix";
- message = ''
- rnix-lsp has been archived upstream. Please use one of the following available language servers:
- ${concatStringsSep ", " (attrNames servers)}
- '';
+ message = "nixpkgs-fmt has been archived upstream. Please use one of the following instead: ${concatStringsSep ", " (attrNames formats)}";
}
];
vim.pluginRC.nix = ''
diff --git a/modules/plugins/notes/obsidian/obsidian.nix b/modules/plugins/notes/obsidian/obsidian.nix
index 2da2127b..2dae5a9c 100644
--- a/modules/plugins/notes/obsidian/obsidian.nix
+++ b/modules/plugins/notes/obsidian/obsidian.nix
@@ -24,6 +24,12 @@ in {
enable = mkEnableOption "complementary neovim plugins for Obsidian editor";
setupOpts = mkPluginSetupOption "Obsidian.nvim" {
+ dir = mkOption {
+ type = str;
+ default = "~/my-vault";
+ description = "Obsidian vault directory";
+ };
+
daily_notes = {
folder = mkOption {
type = nullOr str;
diff --git a/modules/plugins/utility/gestures/gesture-nvim/config.nix b/modules/plugins/utility/gestures/gesture-nvim/config.nix
index 9838c178..2996f7d2 100644
--- a/modules/plugins/utility/gestures/gesture-nvim/config.nix
+++ b/modules/plugins/utility/gestures/gesture-nvim/config.nix
@@ -15,47 +15,43 @@
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
in {
config = mkIf cfg.enable {
- vim = {
- startPlugins = ["gesture-nvim"];
+ vim.startPlugins = ["gesture-nvim"];
- maps.normal = mkMerge [
- (mkSetLuaBinding mappings.draw "require('gesture').draw")
- (mkSetLuaBinding mappings.finish "require('gesture').finish")
- (mkIf (mappings.draw.value == "