+ 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 59267ddf..32186a8f 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 (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.
+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.
For example:
diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md
index 036b673c..c65defeb 100644
--- a/docs/release-notes/rl-0.8.md
+++ b/docs/release-notes/rl-0.8.md
@@ -16,6 +16,16 @@
- 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
@@ -36,3 +46,8 @@
- 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 d4e745c1..da38b967 100644
--- a/flake.lock
+++ b/flake.lock
@@ -51,27 +51,6 @@
"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": [
@@ -124,22 +103,6 @@
"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": {
@@ -2110,26 +2073,6 @@
"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",
@@ -2260,7 +2203,6 @@
"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"
}
},
@@ -2314,21 +2256,6 @@
"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 c1fe0688..89690cad 100644
--- a/flake.nix
+++ b/flake.nix
@@ -89,7 +89,6 @@
};
# 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 389ca0ce..b77d057a 100644
--- a/flake/legacyPackages.nix
+++ b/flake/legacyPackages.nix
@@ -8,8 +8,10 @@
inherit system;
overlays = [
inputs.self.overlays.default
+
(_: _: {
- rnix-lsp = inputs'.rnix-lsp.defaultPackage;
+ # Build nil from source to get most recent
+ # features as they are added.
nil = inputs'.nil.packages.default;
})
];
diff --git a/lib/languages.nix b/lib/languages.nix
index 52f1b5b8..56c225d6 100644
--- a/lib/languages.nix
+++ b/lib/languages.nix
@@ -6,7 +6,12 @@
inherit (lib.nvim.attrsets) mapListToAttrs;
in {
# Converts a boolean to a yes/no string. This is used in lots of
- # configuration formats.
+ # configuration formats, and is not covered by `toLuaObject`
+ toVimBool = bool:
+ if bool
+ then "yes"
+ else "no";
+
diagnosticsToLua = {
lang,
config,
@@ -30,8 +35,8 @@ in {
mkEnable = desc:
mkOption {
- description = "Turn on ${desc} for enabled languages by default";
- type = bool;
default = false;
+ type = bool;
+ description = "Turn on ${desc} for enabled languages by default";
};
}
diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix
index e4cb193f..8d27d7ac 100644
--- a/modules/extra/deprecations.nix
+++ b/modules/extra/deprecations.nix
@@ -14,6 +14,7 @@
splitRight = "splitright";
autoIndent = "autoindent";
wordWrap = "wrap";
+ showSignColumn = "signcolumn";
};
in {
imports = concatLists [
@@ -35,23 +36,28 @@ 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.
'')
@@ -84,9 +90,12 @@ 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-1
+ # 2024-12-01
# 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 9370fa8f..532ebcea 100644
--- a/modules/neovim/init/basic.nix
+++ b/modules/neovim/init/basic.nix
@@ -5,6 +5,7 @@
}: 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;
@@ -58,24 +59,12 @@ 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";
@@ -106,63 +95,55 @@ 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 {
- encoding = "utf-8";
- hidden = true;
- expandtab = true;
- };
+ options = pushDownDefault (lib.mergeAttrsList [
+ {
+ # Options that are always set, with a lower priority
+ encoding = "utf-8";
+ hidden = true;
+ expandtab = true;
- globals = pushDownDefault {
- editorconfig = cfg.enableEditorconfig;
- };
+ # Junkfile Behaviour
+ swapfile = !cfg.preventJunkFiles;
+ backup = !cfg.preventJunkFiles;
+ writebackup = !cfg.preventJunkFiles;
+ }
- # 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.
+ (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.
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 5d6f5bed..f8d784da 100644
--- a/modules/neovim/init/spellcheck.nix
+++ b/modules/neovim/init/spellcheck.nix
@@ -124,7 +124,6 @@ in {
nvim --headless --clean \
--cmd "mkspell $out/spell/$name.add.spl $spellfile" -Es -n
done
-
'';
in
mkIf (cfg.extraSpellWords != {}) [
@@ -133,10 +132,12 @@ in {
compileJoinedSpellfiles.outPath
];
- luaConfigRC.spellcheck = entryAfter ["basic"] ''
- vim.opt.spell = true
- vim.opt.spelllang = ${listToLuaTable cfg.languages}
+ options = {
+ spell = true;
+ spelllang = cfg.languages;
+ };
+ luaConfigRC.spellcheck = entryAfter ["basic"] ''
-- 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 ffb69e92..1120633c 100644
--- a/modules/plugins/languages/nix.nix
+++ b/modules/plugins/languages/nix.nix
@@ -26,22 +26,6 @@
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;
@@ -165,6 +149,7 @@ in {
type = enum (attrNames formats);
default = defaultFormat;
};
+
package = mkOption {
description = "Nix formatter package";
type = package;
@@ -188,7 +173,18 @@ in {
assertions = [
{
assertion = cfg.format.type != "nixpkgs-fmt";
- message = "nixpkgs-fmt has been archived upstream. Please use one of the following instead: ${concatStringsSep ", " (attrNames formats)}";
+ 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)}
+ '';
}
];
vim.pluginRC.nix = ''
diff --git a/modules/plugins/notes/obsidian/obsidian.nix b/modules/plugins/notes/obsidian/obsidian.nix
index 2dae5a9c..2da2127b 100644
--- a/modules/plugins/notes/obsidian/obsidian.nix
+++ b/modules/plugins/notes/obsidian/obsidian.nix
@@ -24,12 +24,6 @@ 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 2996f7d2..9838c178 100644
--- a/modules/plugins/utility/gestures/gesture-nvim/config.nix
+++ b/modules/plugins/utility/gestures/gesture-nvim/config.nix
@@ -15,43 +15,47 @@
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
in {
config = mkIf cfg.enable {
- vim.startPlugins = ["gesture-nvim"];
+ vim = {
+ startPlugins = ["gesture-nvim"];
- vim.maps.normal = mkMerge [
- (mkSetLuaBinding mappings.draw "require('gesture').draw")
- (mkSetLuaBinding mappings.finish "require('gesture').finish")
- (mkIf (mappings.draw.value == "