mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-03 20:22:21 +00:00 
			
		
		
		
	Merge branch 'main' into feature/listof-str-border
This commit is contained in:
		
				commit
				
					
						95705bc43b
					
				
			
		
					 11 changed files with 141 additions and 68 deletions
				
			
		| 
						 | 
				
			
			@ -83,7 +83,7 @@ Release notes for release 0.5
 | 
			
		|||
 | 
			
		||||
- Updated indent-blankine.nvim to v3 - this comes with a few option changes, which will be migrated with `renamedOptionModule`
 | 
			
		||||
 | 
			
		||||
[jacekpoz](https://github.com/jacekpoz):
 | 
			
		||||
[jacekpoz](https://jacekpoz.pl):
 | 
			
		||||
 | 
			
		||||
- Fixed scrollOffset not being used
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,7 @@ vim.api.nvim_set_keymap('n', '<leader>a', ':lua camelToSnake()<CR>', { noremap =
 | 
			
		|||
 | 
			
		||||
- Added rose-pine theme.
 | 
			
		||||
 | 
			
		||||
[jacekpoz](https://github.com/jacekpoz):
 | 
			
		||||
[jacekpoz](https://jacekpoz.pl):
 | 
			
		||||
 | 
			
		||||
- Added `vim.autocomplete.alwaysComplete`. Allows users to have the autocomplete window popup only when manually activated.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,14 +63,17 @@ configuration formats.
 | 
			
		|||
  recommended to go through rustacean.nvim's README to take a closer look at its
 | 
			
		||||
  features and usage
 | 
			
		||||
 | 
			
		||||
[jacekpoz](https://github.com/jacekpoz):
 | 
			
		||||
[jacekpoz](https://jacekpoz.pl):
 | 
			
		||||
 | 
			
		||||
[ocaml-lsp]: https://github.com/ocaml/ocaml-lsp
 | 
			
		||||
[new-file-template.nvim]: https://github.com/otavioschwanck/new-file-template.nvim
 | 
			
		||||
 | 
			
		||||
- Add [ocaml-lsp] support
 | 
			
		||||
 | 
			
		||||
- Fix "Emac" typo
 | 
			
		||||
 | 
			
		||||
- Add [new-file-template.nvim] to automatically fill new file contents using templates.
 | 
			
		||||
 | 
			
		||||
[diniamo](https://github.com/diniamo):
 | 
			
		||||
 | 
			
		||||
- Move the `theme` dag entry to before `luaScript`.
 | 
			
		||||
| 
						 | 
				
			
			@ -141,10 +144,10 @@ configuration formats.
 | 
			
		|||
- Add [neo-tree.nvim] as an alternative file-tree plugin. It will be available
 | 
			
		||||
  under `vim.filetree.neo-tree`, similar to nvimtree.
 | 
			
		||||
 | 
			
		||||
- Add `print-nvf-config` & `print-nvf-config-path` helper scripts to Neovim
 | 
			
		||||
- Add `nvf-print-config` & `nvf-print-config-path` helper scripts to Neovim
 | 
			
		||||
  closure. Both of those scripts have been automatically added to your PATH upon
 | 
			
		||||
  using neovimConfig or `programs.nvf.enable`.
 | 
			
		||||
  - `print-nvf-config` will display your `init.lua`, in full.
 | 
			
		||||
  - `print-nvf-config-path` will display the path to _a clone_ of your
 | 
			
		||||
  - `nvf-print-config` will display your `init.lua`, in full.
 | 
			
		||||
  - `nvf-print-config-path` will display the path to _a clone_ of your
 | 
			
		||||
    `init.lua`. This is not the path used by the Neovim wrapper, but an
 | 
			
		||||
    identical clone.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -69,11 +69,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "mnw": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1721440413,
 | 
			
		||||
        "narHash": "sha256-PF/FbgCUZ6mQrKp28G2YoVDlSThBy8AxIT9d2Ju3kTY=",
 | 
			
		||||
        "lastModified": 1722191188,
 | 
			
		||||
        "narHash": "sha256-YF//iMALbrd2Ni9aju7w8NniH16Qz6RFTRD6md5UkDc=",
 | 
			
		||||
        "owner": "Gerg-L",
 | 
			
		||||
        "repo": "mnw",
 | 
			
		||||
        "rev": "4ea225024677e7c3a96080af8624fd3aa5dfa1b6",
 | 
			
		||||
        "rev": "c7b289f3f5a31b6e744be37d83fc231816621231",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -129,11 +129,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1721016451,
 | 
			
		||||
        "narHash": "sha256-Cypl9ORr5UjtBsbjXMTJRepTe362yNVrPrntUvHiTaw=",
 | 
			
		||||
        "lastModified": 1722141560,
 | 
			
		||||
        "narHash": "sha256-Ul3rIdesWaiW56PS/Ak3UlJdkwBrD4UcagCmXZR9Z7Y=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "a14c5d651cee9ed70f9cd9e83f323f1e531002db",
 | 
			
		||||
        "rev": "038fb464fcfa79b4f08131b07f2d8c9a6bcc4160",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -628,9 +628,15 @@
 | 
			
		|||
    };
 | 
			
		||||
 | 
			
		||||
    plugin-nvim-nio = {
 | 
			
		||||
      # (required nvim-dap-ui)
 | 
			
		||||
      # (required by nvim-dap-ui)
 | 
			
		||||
      url = "github:nvim-neotest/nvim-nio";
 | 
			
		||||
      flake = false;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    plugin-new-file-template-nvim = {
 | 
			
		||||
      # (required by new-file-template.nvim)
 | 
			
		||||
      url = "github:otavioschwanck/new-file-template.nvim";
 | 
			
		||||
      flake = false;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,11 +7,9 @@ inputs: {
 | 
			
		|||
  extraModules ? [],
 | 
			
		||||
}: let
 | 
			
		||||
  inherit (pkgs) vimPlugins;
 | 
			
		||||
  inherit (pkgs.vimUtils) buildVimPlugin;
 | 
			
		||||
  inherit (lib.strings) isString toString;
 | 
			
		||||
  inherit (lib.lists) filter map concatLists;
 | 
			
		||||
  inherit (lib.attrsets) recursiveUpdate getAttr;
 | 
			
		||||
  inherit (lib.asserts) assertMsg;
 | 
			
		||||
  inherit (lib.attrsets) recursiveUpdate;
 | 
			
		||||
 | 
			
		||||
  # import modules.nix with `check`, `pkgs` and `lib` as arguments
 | 
			
		||||
  # check can be disabled while calling this file is called
 | 
			
		||||
| 
						 | 
				
			
			@ -33,12 +31,21 @@ inputs: {
 | 
			
		|||
  # build a vim plugin with the given name and arguments
 | 
			
		||||
  # if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug
 | 
			
		||||
  # instead
 | 
			
		||||
  buildPlug = {pname, ...} @ attrs: let
 | 
			
		||||
    src = getAttr ("plugin-" + pname) inputs;
 | 
			
		||||
  buildPlug = attrs: let
 | 
			
		||||
    src = inputs."plugin-${attrs.pname}";
 | 
			
		||||
  in
 | 
			
		||||
    pkgs.stdenvNoCC.mkDerivation ({
 | 
			
		||||
        inherit src;
 | 
			
		||||
        version = src.shortRev or src.shortDirtyRev or "dirty";
 | 
			
		||||
 | 
			
		||||
        inherit src;
 | 
			
		||||
 | 
			
		||||
        nativeBuildInputs = with pkgs.vimUtils; [
 | 
			
		||||
          vimCommandCheckHook
 | 
			
		||||
          vimGenDocHook
 | 
			
		||||
          neovimRequireCheckHook
 | 
			
		||||
        ];
 | 
			
		||||
        passthru.vimPlugin = true;
 | 
			
		||||
 | 
			
		||||
        installPhase = ''
 | 
			
		||||
          runHook preInstall
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -50,41 +57,27 @@ inputs: {
 | 
			
		|||
      }
 | 
			
		||||
      // attrs);
 | 
			
		||||
 | 
			
		||||
  noBuildPlug = {pname, ...} @ attrs: let
 | 
			
		||||
    input = getAttr ("plugin-" + pname) inputs;
 | 
			
		||||
  in
 | 
			
		||||
    {
 | 
			
		||||
      version = input.shortRev or input.shortDirtyRev or "dirty";
 | 
			
		||||
      outPath = getAttr ("plugin-" + pname) inputs;
 | 
			
		||||
    }
 | 
			
		||||
    // attrs;
 | 
			
		||||
 | 
			
		||||
  buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars);
 | 
			
		||||
 | 
			
		||||
  pluginBuilders = {
 | 
			
		||||
    nvim-treesitter = buildTreesitterPlug vimOptions.treesitter.grammars;
 | 
			
		||||
    flutter-tools-patched =
 | 
			
		||||
      buildPlug
 | 
			
		||||
      {
 | 
			
		||||
        pname = "flutter-tools";
 | 
			
		||||
        patches = [../patches/flutter-tools.patch];
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  buildConfigPlugins = plugins:
 | 
			
		||||
    map
 | 
			
		||||
    (plug: (
 | 
			
		||||
      if (isString plug)
 | 
			
		||||
      then
 | 
			
		||||
        (
 | 
			
		||||
          if (plug == "nvim-treesitter")
 | 
			
		||||
          then (buildTreesitterPlug vimOptions.treesitter.grammars)
 | 
			
		||||
          else if (plug == "flutter-tools-patched")
 | 
			
		||||
          then
 | 
			
		||||
            (
 | 
			
		||||
              buildPlug
 | 
			
		||||
              {
 | 
			
		||||
                pname = "flutter-tools";
 | 
			
		||||
                patches = [../patches/flutter-tools.patch];
 | 
			
		||||
              }
 | 
			
		||||
            )
 | 
			
		||||
          else noBuildPlug {pname = plug;}
 | 
			
		||||
        )
 | 
			
		||||
      else plug
 | 
			
		||||
    ))
 | 
			
		||||
    (filter
 | 
			
		||||
      (f: f != null)
 | 
			
		||||
      plugins);
 | 
			
		||||
    (
 | 
			
		||||
      plug:
 | 
			
		||||
        if (isString plug)
 | 
			
		||||
        then pluginBuilders.${plug} or (buildPlug {pname = plug;})
 | 
			
		||||
        else plug
 | 
			
		||||
    )
 | 
			
		||||
    (filter (f: f != null) plugins);
 | 
			
		||||
 | 
			
		||||
  # built (or "normalized") plugins that are modified
 | 
			
		||||
  builtStartPlugins = buildConfigPlugins vimOptions.startPlugins;
 | 
			
		||||
| 
						 | 
				
			
			@ -114,20 +107,11 @@ inputs: {
 | 
			
		|||
    inherit extraLuaPackages extraPython3Packages;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  dummyInit = pkgs.writeText "nvf-init.lua" vimOptions.builtLuaConfigRC;
 | 
			
		||||
  # Additional helper scripts for printing and displaying nvf configuration
 | 
			
		||||
  # in your commandline.
 | 
			
		||||
  printConfig = pkgs.writers.writeDashBin "print-nvf-config" ''
 | 
			
		||||
    cat << EOF
 | 
			
		||||
      ${vimOptions.builtLuaConfigRC}
 | 
			
		||||
    EOF
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  printConfigPath = pkgs.writers.writeDashBin "print-nvf-config-path" ''
 | 
			
		||||
    realpath ${pkgs.writeTextFile {
 | 
			
		||||
      name = "nvf-init.lua";
 | 
			
		||||
      text = vimOptions.builtLuaConfigRC;
 | 
			
		||||
    }}
 | 
			
		||||
  '';
 | 
			
		||||
  printConfig = pkgs.writers.writeDashBin "nvf-print-config" "cat ${dummyInit}";
 | 
			
		||||
  printConfigPath = pkgs.writers.writeDashBin "nvf-print-config-path" "echo -n ${dummyInit}";
 | 
			
		||||
in {
 | 
			
		||||
  inherit (module) options config;
 | 
			
		||||
  inherit (module._module.args) pkgs;
 | 
			
		||||
| 
						 | 
				
			
			@ -137,7 +121,7 @@ in {
 | 
			
		|||
  neovim = pkgs.symlinkJoin {
 | 
			
		||||
    name = "nvf-with-helpers";
 | 
			
		||||
    paths = [neovim-wrapped printConfig printConfigPath];
 | 
			
		||||
    postBuild = "echo helpers added";
 | 
			
		||||
    postBuild = "echo Helpers added";
 | 
			
		||||
 | 
			
		||||
    meta = {
 | 
			
		||||
      description = "Wrapped version of Neovim with additional helper scripts";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@
 | 
			
		|||
    ./ccc
 | 
			
		||||
    ./gestures
 | 
			
		||||
    ./motion
 | 
			
		||||
    ./new-file-template
 | 
			
		||||
    ./telescope
 | 
			
		||||
    ./icon-picker
 | 
			
		||||
    ./images
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								modules/plugins/utility/new-file-template/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/plugins/utility/new-file-template/config.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  inherit (lib.modules) mkIf;
 | 
			
		||||
  inherit (lib.nvim.dag) entryAnywhere;
 | 
			
		||||
  inherit (lib.nvim.lua) toLuaObject;
 | 
			
		||||
 | 
			
		||||
  cfg = config.vim.utility.new-file-template;
 | 
			
		||||
in {
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    vim = {
 | 
			
		||||
      startPlugins = [
 | 
			
		||||
        "new-file-template-nvim"
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      pluginRC.new-file-template = entryAnywhere ''
 | 
			
		||||
        require('new-file-template').setup(${toLuaObject cfg.setupOpts})
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								modules/plugins/utility/new-file-template/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/utility/new-file-template/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./config.nix
 | 
			
		||||
    ./new-file-template.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
{lib, ...}: let
 | 
			
		||||
  inherit (lib.options) mkOption;
 | 
			
		||||
  inherit (lib.types) attrsOf bool listOf str;
 | 
			
		||||
  inherit (lib.nvim.types) mkPluginSetupOption;
 | 
			
		||||
in {
 | 
			
		||||
  options.vim.utility.new-file-template = {
 | 
			
		||||
    enable = mkOption {
 | 
			
		||||
      type = bool;
 | 
			
		||||
      default = false;
 | 
			
		||||
      description = ''
 | 
			
		||||
        new-file-template.nvim: Automatically insert a template on new files in neovim.
 | 
			
		||||
        ::: {.note}
 | 
			
		||||
        For custom templates add a directory containing `lua/templates/*.lua`
 | 
			
		||||
        to `vim.additionalRuntimePaths`.
 | 
			
		||||
        :::
 | 
			
		||||
        [custom-template-docs]: https://github.com/otavioschwanck/new-file-template.nvim?tab=readme-ov-file#creating-new-templates
 | 
			
		||||
        More documentation on the templates available at [custom-template-docs]
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    setupOpts = mkPluginSetupOption "nvim-file-template.nvim" {
 | 
			
		||||
      disableInsert = mkOption {
 | 
			
		||||
        type = bool;
 | 
			
		||||
        default = false;
 | 
			
		||||
        description = "Enter insert mode after inserting the template";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      disableAutocmd = mkOption {
 | 
			
		||||
        type = bool;
 | 
			
		||||
        default = false;
 | 
			
		||||
        description = "Disable the autocmd that creates the template";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      disableFiletype = mkOption {
 | 
			
		||||
        type = listOf str;
 | 
			
		||||
        default = [];
 | 
			
		||||
        description = "Disable default templates for specific filetypes";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      disableSpecific = mkOption {
 | 
			
		||||
        type = attrsOf (listOf str);
 | 
			
		||||
        default = {};
 | 
			
		||||
        description = "Disable specific regexp for the default templates.";
 | 
			
		||||
        example = "{ ruby = [\".*\"]; }";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      suffixAsFiletype = mkOption {
 | 
			
		||||
        type = bool;
 | 
			
		||||
        default = false;
 | 
			
		||||
        description = "Use suffix of filename rather than `vim.bo.filetype` as filetype";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -155,11 +155,7 @@ in {
 | 
			
		|||
          -- The following list is generated from `vim.additionalRuntimePaths`
 | 
			
		||||
          -- and is used to append additional runtime paths to the
 | 
			
		||||
          -- `runtimepath` option.
 | 
			
		||||
          local additionalRuntimePaths = ${listToLuaTable cfg.additionalRuntimePaths};
 | 
			
		||||
 | 
			
		||||
          for _, path in ipairs(additionalRuntimePaths) do
 | 
			
		||||
            vim.opt.runtimepath:append(path)
 | 
			
		||||
          end
 | 
			
		||||
          vim.opt.runtimepath:append(${listToLuaTable cfg.additionalRuntimePaths})
 | 
			
		||||
        ''}
 | 
			
		||||
 | 
			
		||||
        ${optionalString cfg.disableDefaultRuntimePaths ''
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue