diff --git a/.github/labels.yml b/.github/labels.yml deleted file mode 100644 index e799004f..00000000 --- a/.github/labels.yml +++ /dev/null @@ -1,55 +0,0 @@ -# This file is used by .github/workflows/labels.yml -"topic: plugins": - - any: - - changed-files: - - any-glob-to-any-file: - - modules/plugins/**/* - -"topic: modules": - - any: - - changed-files: - - any-glob-to-any-file: - - modules/**/* - -"topic: dependencies": - - any: - - changed-files: - - any-glob-to-any-file: - - npins - - flake.lock - -"topic: CI": - - any: - - changed-files: - - any-glob-to-any-file: - - .github/workflows/*.yml - - .github/typos.toml - . .github/dependabot.yml - -"topic: meta": - - any: - - changed-files: - - any-glob-to-any-file: - - .github/CODEOWNERS - - LICENSE - - .github/README.md - - .github/funding.yml - - .github/assets - - .github/*_TEMPLATE - - .gitignore - - .editorconfig - - release.json - -"topic: documentation": - - any: - - changed-files: - - any-glob-to-any-file: - - docs/**/* - - .github/CONTRIBUTING.md - - .github/README.md -"topic: packaging": - - any: - - changed-files: - - any-glob-to-any-file: - - flake.nix - - flake/packages.nix diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml deleted file mode 100644 index 0a558fb8..00000000 --- a/.github/workflows/backport.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Backport PR on Label - -on: - pull_request_target: - types: - - labeled - -# Permissions needed for the korthout/backport-action to create branches and PRs -permissions: - contents: write - pull-requests: write - -jobs: - backport: - name: Create Backport PR - runs-on: ubuntu-latest - if: | - github.event.pull_request.merged == true && startsWith(github.event.label.name, 'backport-') - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - token: ${{ steps.app-token.outputs.token }} - - - name: Backport Action - uses: korthout/backport-action@v3 - 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 - # the label that triggered the workflow fully matches this pattern. - # Example matching labels: "backport-v0.1", "backport-v0.10.1" - # Example non-matching labels: "backport-foo", "backport-v1.0" - label_pattern: '^backport-(v0\.\d+(\.\d+)?)$' diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index 96d5c7be..00000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: "Label PR" - -on: - pull_request_target: - types: [edited, opened, synchronize, reopened] - -permissions: - contents: read - pull-requests: write - -jobs: - labels: - name: "Label PR" - runs-on: ubuntu-latest - if: "!contains(github.event.pull_request.title, '[skip ci]')" - steps: - - uses: actions/labeler@v5 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: .github/labeler.yml - sync-labels: true diff --git a/docs/default.nix b/docs/default.nix index 49f90b80..98b29db0 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -12,7 +12,6 @@ inherit ( (lib.evalModules { - specialArgs = {inherit inputs;}; modules = import ../modules/modules.nix { inherit lib pkgs; diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 29d05e5c..014a4a23 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -373,11 +373,3 @@ - Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options - -[taylrfnt](https://github.com/taylrfnt): - -[nvim-tree](https://github.com/nvim-tree/nvim-tree.lua): - -- Add missing `right_align` option for existing `renderer.icons` options. -- Add missing `render.icons` options (`hidden_placement`, - `diagnostics_placement`, and `bookmarks_placement`). diff --git a/flake.nix b/flake.nix index e958f91c..6e716581 100644 --- a/flake.nix +++ b/flake.nix @@ -18,7 +18,10 @@ systems = import inputs.systems; imports = [ ./flake/templates + ./flake/apps.nix + ./flake/legacyPackages.nix + ./flake/overlays.nix ./flake/packages.nix ./flake/develop.nix ]; diff --git a/flake/blink/default.nix b/flake/blink/default.nix deleted file mode 100644 index 08c87073..00000000 --- a/flake/blink/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - rustPlatform, - fetchFromGitHub, - writeShellScriptBin, -}: -rustPlatform.buildRustPackage (finalAttrs: { - pname = "blink-cmp"; - version = "1.2.0"; - - src = fetchFromGitHub { - owner = "Saghen"; - repo = "blink.cmp"; - tag = "v${finalAttrs.version}"; - hash = "sha256-bKe8SSg1HPWE7b4iRQJwiOVCrvvgttuHCOIa4U/38AY="; - }; - - postInstall = '' - cp -r {lua,plugin} "$out" - mkdir -p "$out/target" - mv "$out/lib" "$out/target/release" - ''; - - cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M="; - useFetchCargoVendor = true; - - nativeBuildInputs = [ - (writeShellScriptBin "git" "exit 1") - ]; - - env.RUSTC_BOOTSTRAP = true; -}) diff --git a/flake/develop.nix b/flake/develop.nix index d92b8182..71c13688 100644 --- a/flake/develop.nix +++ b/flake/develop.nix @@ -3,14 +3,13 @@ pkgs, config, self', - inputs', ... }: { devShells = { default = self'.devShells.lsp; nvim-nix = pkgs.mkShellNoCC {packages = [config.packages.nix];}; lsp = pkgs.mkShellNoCC { - packages = with pkgs; [inputs'.nil.packages.default statix deadnix alejandra npins]; + packages = with pkgs; [nil statix deadnix alejandra npins]; }; }; diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix new file mode 100644 index 00000000..33aee0e3 --- /dev/null +++ b/flake/legacyPackages.nix @@ -0,0 +1,35 @@ +{ + inputs, + self, + ... +}: { + perSystem = { + system, + inputs', + ... + }: { + legacyPackages = import inputs.nixpkgs { + inherit system; + overlays = [ + inputs.self.overlays.default + + (final: prev: { + # Build nil from source to get most recent + # features as they are added. + nil = inputs'.nil.packages.default; + blink-cmp = let + pin = self.pins.blink-cmp; + in + final.callPackage ./legacyPackages/blink-cmp.nix { + inherit (pin) version; + src = prev.fetchFromGitHub { + inherit (pin.repository) owner repo; + rev = pin.revision; + sha256 = pin.hash; + }; + }; + }) + ]; + }; + }; +} diff --git a/flake/legacyPackages/blink-cmp.nix b/flake/legacyPackages/blink-cmp.nix new file mode 100644 index 00000000..60dce9de --- /dev/null +++ b/flake/legacyPackages/blink-cmp.nix @@ -0,0 +1,37 @@ +{ + stdenv, + rustPlatform, + vimUtils, + gitMinimal, + src, + version, +}: let + blink-fuzzy-lib = rustPlatform.buildRustPackage { + pname = "blink-fuzzy-lib"; + inherit version src; + + # TODO: remove this if plugin stops using nightly rust + env.RUSTC_BOOTSTRAP = true; + + useFetchCargoVendor = true; + cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M="; + + nativeBuildInputs = [gitMinimal]; + }; +in + vimUtils.buildVimPlugin { + pname = "blink-cmp"; + inherit version src; + + # blink references a repro.lua which is placed outside the lua/ directory + doCheck = false; + preInstall = let + ext = stdenv.hostPlatform.extensions.sharedLibrary; + in '' + mkdir -p target/release + ln -s ${blink-fuzzy-lib}/lib/libblink_cmp_fuzzy${ext} target/release/libblink_cmp_fuzzy${ext} + ''; + + # Module for reproducing issues + nvimSkipModules = ["repro"]; + } diff --git a/flake/overlays.nix b/flake/overlays.nix new file mode 100644 index 00000000..5d0ff6e8 --- /dev/null +++ b/flake/overlays.nix @@ -0,0 +1,19 @@ +{ + pkgs, + lib, + ... +}: let + inherit (lib.nvim) neovimConfiguration; + + buildPkg = pkgs: modules: (neovimConfiguration {inherit pkgs modules;}).neovim; + + nixConfig = import ../configuration.nix false; + maximalConfig = import ../configuration.nix true; +in { + flake.overlays.default = final: _prev: { + inherit neovimConfiguration; + neovim-nix = buildPkg final [nixConfig]; + neovim-maximal = buildPkg final [maximalConfig]; + devPkg = buildPkg pkgs [nixConfig {config.vim.languages.html.enable = pkgs.lib.mkForce true;}]; + }; +} diff --git a/flake/packages.nix b/flake/packages.nix index d6afbbf8..7abe5ec0 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -1,4 +1,4 @@ -{inputs, ...} @ args: { +{inputs, ...}: { perSystem = { config, pkgs, @@ -6,15 +6,8 @@ ... }: let docs = import ../docs {inherit pkgs inputs lib;}; - buildPkg = maximal: - (args.config.flake.lib.nvim.neovimConfiguration { - inherit pkgs; - modules = [(import ../configuration.nix maximal)]; - }).neovim; in { packages = { - blink-cmp = pkgs.callPackage ./blink {}; - inherit (docs.manual) htmlOpenTool; # Documentation docs = docs.manual.html; @@ -68,9 +61,9 @@ ''; # Exposed neovim configurations - nix = buildPkg false; - maximal = buildPkg true; - default = config.packages.nix; + nix = config.legacyPackages.neovim-nix; + maximal = config.legacyPackages.neovim-maximal; + default = config.legacyPackages.neovim-nix; }; }; } diff --git a/lib/default.nix b/lib/default.nix index c4388e82..952278a8 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -4,7 +4,7 @@ lib, ... }: { - types = import ./types {inherit lib self;}; + types = import ./types {inherit lib;}; config = import ./config.nix {inherit lib;}; binds = import ./binds.nix {inherit lib;}; dag = import ./dag.nix {inherit lib;}; diff --git a/lib/types/default.nix b/lib/types/default.nix index 044a8221..c6239227 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -1,9 +1,6 @@ -{ - lib, - self, -}: let +{lib}: let typesDag = import ./dag.nix {inherit lib;}; - typesPlugin = import ./plugins.nix {inherit lib self;}; + typesPlugin = import ./plugins.nix {inherit lib;}; typesLanguage = import ./languages.nix {inherit lib;}; customTypes = import ./custom.nix {inherit lib;}; in { diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index 4be39289..fc2bd083 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -1,7 +1,4 @@ -{ - lib, - self, -}: let +{lib}: let inherit (lib.options) mkOption; inherit (lib.attrsets) attrNames mapAttrs' filterAttrs nameValuePair; inherit (lib.strings) hasPrefix removePrefix; @@ -15,7 +12,7 @@ mapAttrs' (n: v: nameValuePair (removePrefix prefix n) {src = v;}) (filterAttrs (n: _: hasPrefix prefix n) inputs); # Get the names of all npins - pluginInputNames = ["blink-cmp"] ++ attrNames self.pins; + pluginInputNames = attrNames (lib.importJSON ../../npins/sources.json).pins; # You can either use the name of the plugin or a package. pluginType = nullOr ( diff --git a/modules/plugins/filetree/nvimtree/nvimtree.nix b/modules/plugins/filetree/nvimtree/nvimtree.nix index c3beb38f..9c443a6e 100644 --- a/modules/plugins/filetree/nvimtree/nvimtree.nix +++ b/modules/plugins/filetree/nvimtree/nvimtree.nix @@ -683,48 +683,15 @@ in { }; git_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; + type = enum ["before" "after" "signcolumn"]; + description = "Place where the git icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled."; default = "before"; - description = '' - Place where the git icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; }; modified_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; + type = enum ["before" "after" "signcolumn"]; + description = "Place where the modified icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled."; default = "after"; - description = '' - Place where the modified icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; - }; - - hidden_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; - default = "after"; - description = '' - Place where the hidden icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; - }; - - diagnostics_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; - default = "after"; - description = '' - Place where the diagnostics icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; - }; - - bookmarks_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; - default = "after"; - description = '' - Place where the bookmark icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; }; padding = mkOption { diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index aceee70d..83022adf 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -2,7 +2,6 @@ config, pkgs, lib, - inputs, ... }: let inherit (builtins) attrNames; @@ -28,7 +27,7 @@ else ''{"${package}/bin/${defaultCmd}"}''; servers = { nil = { - package = inputs.nil.packages.${pkgs.stdenv.system}.nil; + package = pkgs.nil; internalFormatter = true; lspConfig = '' lspconfig.nil_ls.setup{ diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 00ad2305..61ba1513 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -51,7 +51,7 @@ doCheck = false; }; - inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp; + inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp; }; buildConfigPlugins = plugins: diff --git a/npins/sources.json b/npins/sources.json index 8e82850a..a2122460 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -39,6 +39,22 @@ "url": "https://github.com/rrethy/base16-nvim/archive/965160025d0facbe9caa863e5beef2a7a488e9d1.tar.gz", "hash": "02w1mn15gydma9canvqrlwf4l5z76s1vs01zanipwwflvwclsb8f" }, + "blink-cmp": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "saghen", + "repo": "blink.cmp" + }, + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, + "submodules": false, + "version": "v1.2.0", + "revision": "d72a826e1961e14f91d8867d10a27a89c5cfe748", + "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v1.2.0", + "hash": "01phyx7y26p2123xpdp0zfp45rc8f014a8myxn2ga71m514vr9vc" + }, "blink-cmp-spell": { "type": "Git", "repository": {