diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 2379973f..121915c4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -8,7 +8,7 @@ ## Preface -[LICENSE]: ../LICENSE +[LICENSE]: /LICENSE I am glad you are thinking about contributing to nvf! The project is shaped by contributors and user feedback, and all contributions are appreciated. @@ -30,7 +30,7 @@ personally. ## Contributing Process -[pull request template]: ./PULL_REQUEST_TEMPLATE.md +[pull request template]: /.github/PULL_REQUEST_TEMPLATE.md The contribution process is mostly documented in the [pull request template]. When you create a pull request, you will find a checklist of items to complete diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 7868e55b..0542862e 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -17,13 +17,13 @@ jobs: if: | github.event.pull_request.merged == true && startsWith(github.event.label.name, 'backport-') steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha }} token: ${{ steps.app-token.outputs.token }} - name: Backport Action - uses: korthout/backport-action@v3 + uses: korthout/backport-action@v4 with: # Regex pattern for labels that should trigger a backport AND extracts the target branch # from the name (e.g. v0.x or v0.x.y; we use zerover). This action will ONLY proceed if diff --git a/.github/workflows/cachix.yml b/.github/workflows/cachix.yml index 13995cb6..63a0fd6f 100644 --- a/.github/workflows/cachix.yml +++ b/.github/workflows/cachix.yml @@ -21,11 +21,16 @@ jobs: - nix - maximal steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 name: Checkout - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main + uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - uses: cachix/cachix-action@v16 with: diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 090c17b8..5583213e 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -17,10 +17,13 @@ jobs: if: "!contains(github.event.pull_request.title, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v5 - - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main + uses: actions/checkout@v6 + - uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - name: Check Flake run: nix flake check @@ -31,10 +34,15 @@ jobs: if: "!contains(github.event.pull_request.title, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main + uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - name: Check formatting via Alejandra run: nix run nixpkgs#alejandra -- --check . --exclude npins @@ -56,7 +64,7 @@ jobs: if: "!contains(github.event.pull_request.title, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Check for typos uses: crate-ci/typos@master @@ -83,11 +91,14 @@ jobs: - docs-manpages - docs-json steps: - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 + - uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - name: Set default git branch (to reduce log spam) run: git config --global init.defaultBranch main @@ -101,7 +112,7 @@ jobs: run: echo "date=$(date +'%Y-%m-%d-%H%M%S')" >> ${GITHUB_OUTPUT} - name: Upload doc artifacts - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: "${{ matrix.package }}" path: result/share/doc/nvf @@ -111,11 +122,14 @@ jobs: runs-on: ubuntu-latest if: false # disabled until we fix ndg docs steps: - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 + - uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - name: Build linkcheck package run: nix build .#docs-linkcheck -Lv @@ -126,7 +140,7 @@ jobs: if: "!contains(github.event.pull_request.title, '[skip ci]')" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 2 # slows down checkout, but we need to compare against the previous commit on push events @@ -148,7 +162,12 @@ jobs: cat "$HOME/changed_files" - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main + uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - name: Checking Editorconfig conformance shell: bash diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml index 1ed6a1ec..ec153088 100644 --- a/.github/workflows/cleanup.yml +++ b/.github/workflows/cleanup.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout" - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: "Delete old branches" uses: beatlabs/delete-old-branches-action@v0.0.11 diff --git a/.github/workflows/docs-preview.yml b/.github/workflows/docs-preview.yml index a238a41d..d6570af7 100644 --- a/.github/workflows/docs-preview.yml +++ b/.github/workflows/docs-preview.yml @@ -3,7 +3,7 @@ name: Build and Preview Manual on: workflow_dispatch: pull_request_target: - types: [opened, synchronize, reopened, closed] + types: [opened, synchronize, reopened, labeled, unlabeled, edited] paths: - ".github/workflows/docs-preview.yml" - "modules/**" @@ -24,11 +24,13 @@ jobs: build-preview: runs-on: ubuntu-latest steps: - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - - - name: Checkout - uses: actions/checkout@v5 + - uses: actions/checkout@v6 + - uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - name: Set default git branch (to reduce log spam) run: git config --global init.defaultBranch main @@ -49,7 +51,7 @@ jobs: mkdir -p $PREVIEW_DIR # Copy the build files to the preview subdirectory - cp -rvf ../result/share/doc/nvf/* ./$PREVIEW_DIR + cp -rvf ../result/share/doc/* ./$PREVIEW_DIR # Configure git to use the GitHub Actions token for authentication git config --global user.name "GitHub Actions" @@ -127,7 +129,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Delete preview for closed/merged PR run: | @@ -164,7 +166,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Double check preview directory deletion run: | diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 3b4cc38b..1c628b08 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -28,7 +28,7 @@ jobs: outputs: should_run: ${{ steps.should_run.outputs.should_run }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: print latest_commit run: echo ${{ github.sha }} @@ -43,11 +43,18 @@ jobs: if: ${{ needs.check_date.outputs.should_run != 'false' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 - - uses: DeterminateSystems/nix-installer-action@main + - uses: actions/checkout@v6 + - uses: cachix/install-nix-action@v31.9.0 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + substituters = https://cache.nixos.org/ https://feel-co.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= + - run: | nix build .#docs -Lv - cp -r result/share/doc/nvf public + cp -r result/share/doc public + - uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 10bf2089..f1c5cc4b 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -9,10 +9,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: "Install Nix" - uses: cachix/install-nix-action@v31.8.2 + uses: cachix/install-nix-action@v31.9.0 - name: Set up Git run: | @@ -69,7 +69,7 @@ jobs: - name: Create Pull Request if: steps.check_changes.outputs.changes_detected == 'true' - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 with: branch: ${{ env.BRANCH_NAME }} base: main diff --git a/docs/manual/release-notes.md b/docs/manual/release-notes.md index 296b20b1..ddb53883 100644 --- a/docs/manual/release-notes.md +++ b/docs/manual/release-notes.md @@ -12,4 +12,5 @@ release-notes/rl-0.5.md release-notes/rl-0.6.md release-notes/rl-0.7.md release-notes/rl-0.8.md +release-notes/rl-0.9.md ``` diff --git a/docs/manual/release-notes/rl-0.8.md b/docs/manual/release-notes/rl-0.8.md index 62f42638..bb26a9a2 100644 --- a/docs/manual/release-notes/rl-0.8.md +++ b/docs/manual/release-notes/rl-0.8.md @@ -621,3 +621,13 @@ [JudahZF](https://github.com/JudahZF): - Added gitFiles mapping option to telescope + +[Ring-A-Ding-Ding-Baby](https://github.com/Ring-A-Ding-Ding-Baby) + +- Aligned `codelldb` adapter setup with [rustaceanvim]’s built-in logic. +- Added `languages.rust.dap.backend` option to choose between `codelldb` and + `lldb-dap` adapters. + +[Libadoxon](https://github.com/Libadoxon) + +- `toggleterm` open map now also works when in terminal mode diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md new file mode 100644 index 00000000..16bc1cf0 --- /dev/null +++ b/docs/manual/release-notes/rl-0.9.md @@ -0,0 +1,8 @@ +# Release 0.9 {#sec-release-0-9} + +## Changelog {#sec-release-0-9-changelog} + +[suimong](https://github.com/suimong): + +- Fix `vim.tabline.nvimBufferline` where `setupOpts.options.hover` requires + `vim.opt.mousemoveevent` to be set. diff --git a/flake.lock b/flake.lock index e55e64f1..de4d1484 100644 --- a/flake.lock +++ b/flake.lock @@ -56,11 +56,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1765435293, - "narHash": "sha256-HRp4g6qBCb8vpJ17s2FacMRXRszM73uBiR56aILMELA=", + "lastModified": 1765720983, + "narHash": "sha256-tWtukpABmux6EC/FuCJEgA1kmRjcRPtED44N+GGPq+4=", "owner": "feel-co", "repo": "ndg", - "rev": "65bf834b332d5f8b28d95ea14c7974be7c272971", + "rev": "f399ace8bb8e1f705dd8942b24d207aa4d75c936", "type": "github" }, "original": { diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index 2cf6ee04..4dbbaa71 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -1,5 +1,5 @@ { - self, + inputs, config, pkgs, lib, @@ -43,7 +43,7 @@ defaultFormat = ["prettier"]; formats = let - parser = "${self.packages.${pkgs.stdenv.hostPlatform.system}.prettier-plugin-astro}/index.js"; + parser = "${inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.prettier-plugin-astro}/index.js"; in { prettier = { command = getExe pkgs.prettier; diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index fea75305..3c49d271 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -87,6 +87,19 @@ in { type = package; default = pkgs.lldb; }; + + adapter = mkOption { + type = enum ["lldb-dap" "codelldb"]; + default = "codelldb"; + description = '' + Select which LLDB-based debug adapter to use: + + - "codelldb": use the CodeLLDB adapter from the vadimcn.vscode-lldb extension. + - "lldb-dap": use the LLDB DAP implementation shipped with LLVM (lldb-dap). + + The default "codelldb" backend generally provides a better debugging experience for Rust. + ''; + }; }; extensions = { @@ -191,11 +204,20 @@ in { ${optionalString cfg.dap.enable '' dap = { - adapter = { - type = "executable", - command = "${cfg.dap.package}/bin/lldb-dap", - name = "rustacean_lldb", - }, + adapter = ${ + if cfg.dap.adapter == "lldb-dap" + then '' + { + type = "executable", + command = "${cfg.dap.package}/bin/lldb-dap", + name = "rustacean_lldb", + }'' + else let + codelldb = pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter; + codelldbPath = "${codelldb}/bin/codelldb"; + liblldbPath = "${codelldb}/share/lldb/lib/liblldb.so"; + in ''require("rustaceanvim.config").get_codelldb_adapter("${codelldbPath}", "${liblldbPath}")'' + }, }, ''} } diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index bfe793a0..a34d5212 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -1,5 +1,5 @@ { - self, + inputs, config, pkgs, lib, @@ -56,7 +56,7 @@ defaultFormat = ["prettier"]; formats = let - prettierPlugin = self.packages.${pkgs.stdenv.system}.prettier-plugin-svelte; + prettierPlugin = inputs.self.packages.${pkgs.stdenv.system}.prettier-plugin-svelte; prettierPluginPath = "${prettierPlugin}/lib/node_modules/prettier-plugin-svelte/plugin.js"; in { prettier = { diff --git a/modules/plugins/tabline/nvim-bufferline/config.nix b/modules/plugins/tabline/nvim-bufferline/config.nix index 396e6886..b3285537 100644 --- a/modules/plugins/tabline/nvim-bufferline/config.nix +++ b/modules/plugins/tabline/nvim-bufferline/config.nix @@ -24,15 +24,33 @@ in { # Recommended by upstream, so enabled here. visuals.nvim-web-devicons.enable = true; + # See `:help bufferline-hover-events` + options = mkIf cfg.setupOpts.options.hover.enabled { + mousemoveevent = true; + }; + maps.normal = mkMerge [ - (mkLuaBinding cfg.mappings.closeCurrent "require(\"bufdelete\").bufdelete" mappings.closeCurrent.description) + ( + mkLuaBinding cfg.mappings.closeCurrent "require(\"bufdelete\").bufdelete" + mappings.closeCurrent.description + ) (mkBinding cfg.mappings.cycleNext ":BufferLineCycleNext" mappings.cycleNext.description) (mkBinding cfg.mappings.cycleNext ":BufferLineCycleNext" mappings.cycleNext.description) (mkBinding cfg.mappings.cyclePrevious ":BufferLineCyclePrev" mappings.cyclePrevious.description) (mkBinding cfg.mappings.pick ":BufferLinePick" mappings.pick.description) - (mkBinding cfg.mappings.sortByExtension ":BufferLineSortByExtension" mappings.sortByExtension.description) - (mkBinding cfg.mappings.sortByDirectory ":BufferLineSortByDirectory" mappings.sortByDirectory.description) - (mkLuaBinding cfg.mappings.sortById "function() require(\"bufferline\").sort_buffers_by(function (buf_a, buf_b) return buf_a.id < buf_b.id end) end" mappings.sortById.description) + ( + mkBinding cfg.mappings.sortByExtension ":BufferLineSortByExtension" + mappings.sortByExtension.description + ) + ( + mkBinding cfg.mappings.sortByDirectory ":BufferLineSortByDirectory" + mappings.sortByDirectory.description + ) + ( + mkLuaBinding cfg.mappings.sortById + "function() require(\"bufferline\").sort_buffers_by(function (buf_a, buf_b) return buf_a.id < buf_b.id end) end" + mappings.sortById.description + ) (mkBinding cfg.mappings.moveNext ":BufferLineMoveNext" mappings.moveNext.description) (mkBinding cfg.mappings.movePrevious ":BufferLineMovePrev" mappings.movePrevious.description) ]; diff --git a/modules/plugins/terminal/toggleterm/config.nix b/modules/plugins/terminal/toggleterm/config.nix index 280f29d2..85cca09f 100644 --- a/modules/plugins/terminal/toggleterm/config.nix +++ b/modules/plugins/terminal/toggleterm/config.nix @@ -17,9 +17,20 @@ in { vim = { lazy.plugins.toggleterm-nvim = { package = "toggleterm-nvim"; - cmd = ["ToggleTerm" "ToggleTermSendCurrentLine" "ToggleTermSendVisualLines" "ToggleTermSendVisualSelection" "ToggleTermSetName" "ToggleTermToggleAll"]; + cmd = [ + "ToggleTerm" + "ToggleTermSendCurrentLine" + "ToggleTermSendVisualLines" + "ToggleTermSendVisualSelection" + "ToggleTermSetName" + "ToggleTermToggleAll" + ]; keys = - [(mkKeymap "n" cfg.mappings.open "execute v:count . \"ToggleTerm\"" {desc = "Toggle terminal";})] + [ + (mkKeymap ["n" "t"] cfg.mappings.open "execute v:count . \"ToggleTerm\"" { + desc = "Toggle terminal"; + }) + ] ++ optional cfg.lazygit.enable { key = cfg.lazygit.mappings.open; mode = "n"; diff --git a/release.json b/release.json index 4e5e8435..c7151f55 100644 --- a/release.json +++ b/release.json @@ -1,4 +1,4 @@ { - "release": "v0.8", - "isReleaseBranch": true + "release": "v0.9", + "isReleaseBranch": false }