mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "07b00f4f3385fc85c2a7590ee72977f8c228f92a" and "adc9b79ed2c1abadd3f4bab230a7300929430eaf" have entirely different histories.
		
	
	
		
			
				07b00f4f33
			
			...
			
				adc9b79ed2
			
		
	
		
					 18 changed files with 357 additions and 522 deletions
				
			
		
							
								
								
									
										2
									
								
								.github/workflows/labeler.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/labeler.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -14,7 +14,7 @@ jobs: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     if: "!contains(github.event.pull_request.title, '[skip ci]')" |     if: "!contains(github.event.pull_request.title, '[skip ci]')" | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/labeler@v6 |       - uses: actions/labeler@v5 | ||||||
|         with: |         with: | ||||||
|           repo-token: ${{ secrets.GITHUB_TOKEN }} |           repo-token: ${{ secrets.GITHUB_TOKEN }} | ||||||
|           configuration-path: .github/labels.yml |           configuration-path: .github/labels.yml | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ with the following options: | ||||||
| | `enable`   | `bool`                | `true`  | Enables or disables this autocommand definition.                                                                                                                                 | `true`                                                           | | | `enable`   | `bool`                | `true`  | Enables or disables this autocommand definition.                                                                                                                                 | `true`                                                           | | ||||||
| | `event`    | `nullOr (listOf str)` | `null`  | **Required.** List of Neovim events that trigger this autocommand (e.g., `BufWritePre`, `FileType`).                                                                             | `[ "BufWritePre" ]`                                              | | | `event`    | `nullOr (listOf str)` | `null`  | **Required.** List of Neovim events that trigger this autocommand (e.g., `BufWritePre`, `FileType`).                                                                             | `[ "BufWritePre" ]`                                              | | ||||||
| | `pattern`  | `nullOr (listOf str)` | `null`  | List of file patterns (globs) to match against (e.g., `*.py`, `*`). If `null`, matches all files for the given event.                                                            | `[ "*.lua", "*.nix" ]`                                           | | | `pattern`  | `nullOr (listOf str)` | `null`  | List of file patterns (globs) to match against (e.g., `*.py`, `*`). If `null`, matches all files for the given event.                                                            | `[ "*.lua", "*.nix" ]`                                           | | ||||||
| | `callback` | `nullOr luaInline`    | `null`  | A Lua function to execute when the event triggers. Use `lib.generators.mkLuaInline`. **Cannot be used with `command`.** | `lib.generators.mkLuaInline "function() print('File saved!') end"` | | | `callback` | `nullOr luaInline`    | `null`  | A Lua function to execute when the event triggers. Use `lib.nvim.types.luaInline` or `lib.options.literalExpression "mkLuaInline '''...'''"`. **Cannot be used with `command`.** | `lib.nvim.types.luaInline "function() print('File saved!') end"` | | ||||||
| | `command`  | `nullOr str`          | `null`  | A Vimscript command to execute when the event triggers. **Cannot be used with `callback`.**                                                                                      | `"echo 'File saved!'"`                                           | | | `command`  | `nullOr str`          | `null`  | A Vimscript command to execute when the event triggers. **Cannot be used with `callback`.**                                                                                      | `"echo 'File saved!'"`                                           | | ||||||
| | `group`    | `nullOr str`          | `null`  | The name of an `augroup` (defined in `vim.augroups`) to associate this autocommand with.                                                                                         | `"MyCustomAuGroup"`                                              | | | `group`    | `nullOr str`          | `null`  | The name of an `augroup` (defined in `vim.augroups`) to associate this autocommand with.                                                                                         | `"MyCustomAuGroup"`                                              | | ||||||
| | `desc`     | `nullOr str`          | `null`  | A description for the autocommand (useful for introspection).                                                                                                                    | `"Format buffer on save"`                                        | | | `desc`     | `nullOr str`          | `null`  | A description for the autocommand (useful for introspection).                                                                                                                    | `"Format buffer on save"`                                        | | ||||||
|  | @ -71,7 +71,7 @@ Vimscript) for the same autocommand. Choose one. | ||||||
|       pattern = [ "*.lua" ]; |       pattern = [ "*.lua" ]; | ||||||
|       group = "UserSetup"; |       group = "UserSetup"; | ||||||
|       desc = "Notify after saving Lua file"; |       desc = "Notify after saving Lua file"; | ||||||
|       callback = lib.generators.mkLuaInline '' |       callback = lib.nvim.types.luaInline '' | ||||||
|         function() |         function() | ||||||
|           vim.notify("Lua file saved!", vim.log.levels.INFO) |           vim.notify("Lua file saved!", vim.log.levels.INFO) | ||||||
|         end |         end | ||||||
|  |  | ||||||
|  | @ -518,10 +518,3 @@ | ||||||
|   [htmlHINT]. |   [htmlHINT]. | ||||||
| - Add QMK support under `vim.utility.qmk-nvim` via [qmk-nvim]. | - Add QMK support under `vim.utility.qmk-nvim` via [qmk-nvim]. | ||||||
| - Add QML support under `vim.languages.qml` using [qmlls] and [qmlformat] | - Add QML support under `vim.languages.qml` using [qmlls] and [qmlformat] | ||||||
| 
 |  | ||||||
| [Jules](https://github.com/jules-sommer): |  | ||||||
| 
 |  | ||||||
| [nvim-highlight-colors]: https://github.com/brenoprata10/nvim-highlight-colors |  | ||||||
| 
 |  | ||||||
| - Add [nvim-highlight-colors] plugin in `vim.ui.nvim-highlight-colors` with |  | ||||||
|   `enable` and `setupOpts` |  | ||||||
|  |  | ||||||
							
								
								
									
										18
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										18
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -23,11 +23,11 @@ | ||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1756770412, |         "lastModified": 1754487366, | ||||||
|         "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", |         "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", | ||||||
|         "owner": "hercules-ci", |         "owner": "hercules-ci", | ||||||
|         "repo": "flake-parts", |         "repo": "flake-parts", | ||||||
|         "rev": "4524271976b625a4a605beefd893f270620fd751", |         "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -38,11 +38,11 @@ | ||||||
|     }, |     }, | ||||||
|     "mnw": { |     "mnw": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1756659871, |         "lastModified": 1748710831, | ||||||
|         "narHash": "sha256-v6Rh4aQ6RKjM2N02kK9Usn0Ix7+OY66vNpeklc1MnGE=", |         "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", | ||||||
|         "owner": "Gerg-L", |         "owner": "Gerg-L", | ||||||
|         "repo": "mnw", |         "repo": "mnw", | ||||||
|         "rev": "ed6cc3e48557ba18266e598a5ebb6602499ada16", |         "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | @ -53,11 +53,11 @@ | ||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1756696532, |         "lastModified": 1755049066, | ||||||
|         "narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=", |         "narHash": "sha256-ANrc15FSoOAdNbfKHxqEJjZLftIwIsenJGRb/04K41s=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f", |         "rev": "e45f8f193029378d0aaee5431ba098dc80054e9a", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ | ||||||
|     pname = "avante-nvim-lib"; |     pname = "avante-nvim-lib"; | ||||||
|     inherit version src; |     inherit version src; | ||||||
| 
 | 
 | ||||||
|     cargoHash = "sha256-pTWCT2s820mjnfTscFnoSKC37RE7DAPKxP71QuM+JXQ="; |     cargoHash = "sha256-8mBpzndz34RrmhJYezd4hLrJyhVL4S4IHK3plaue1k8="; | ||||||
| 
 | 
 | ||||||
|     nativeBuildInputs = [ |     nativeBuildInputs = [ | ||||||
|       pkg-config |       pkg-config | ||||||
|  |  | ||||||
|  | @ -38,7 +38,7 @@ | ||||||
|         type = nullOr luaInline; |         type = nullOr luaInline; | ||||||
|         default = null; |         default = null; | ||||||
|         example = literalExpression '' |         example = literalExpression '' | ||||||
|           lib.generators.mkLuaInline ''' |           mkLuaInline ''' | ||||||
|             function() |             function() | ||||||
|                 print("Saving a Lua file...") |                 print("Saving a Lua file...") | ||||||
|             end |             end | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ in { | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     vim = { |     vim = { | ||||||
|       startPlugins = [ |       startPlugins = [ | ||||||
|         "bufferline-nvim" |         "nvim-bufferline-lua" | ||||||
|         "bufdelete-nvim" |         "bufdelete-nvim" | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
|   lib, |   lib, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   inherit (lib.options) mkOption mkEnableOption literalExpression literalMD; |   inherit (lib.options) mkOption mkEnableOption literalExpression; | ||||||
|   inherit (lib.types) enum bool either nullOr str int listOf attrs; |   inherit (lib.types) enum bool either nullOr str int listOf attrs; | ||||||
|   inherit (lib.generators) mkLuaInline; |   inherit (lib.generators) mkLuaInline; | ||||||
|   inherit (lib.nvim.binds) mkMappingOption; |   inherit (lib.nvim.binds) mkMappingOption; | ||||||
|  | @ -24,28 +24,17 @@ in { | ||||||
|       movePrevious = mkMappingOption "Move previous buffer" "<leader>bmp"; |       movePrevious = mkMappingOption "Move previous buffer" "<leader>bmp"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     setupOpts = mkPluginSetupOption "bufferline-nvim" { |     setupOpts = mkPluginSetupOption "Bufferline-nvim" { | ||||||
|       highlights = mkOption { |       highlights = mkOption { | ||||||
|         type = either attrs luaInline; |         type = either attrs luaInline; | ||||||
|         default = |         default = | ||||||
|           if config.vim.theme.enable && config.vim.theme.name == "catppuccin" |           if config.vim.theme.enable && config.vim.theme.name == "catppuccin" | ||||||
|           then |           then | ||||||
|             mkLuaInline '' |             mkLuaInline | ||||||
|               (function() |             '' | ||||||
|                 local integration = require("catppuccin.groups.integrations.bufferline") |               require("catppuccin.groups.integrations.bufferline").get() | ||||||
|                 return (integration.get_theme or integration.get)() |  | ||||||
|               end)() |  | ||||||
|             '' |             '' | ||||||
|           else {}; |           else {}; | ||||||
|         defaultText = literalMD '' |  | ||||||
|           ```lua |  | ||||||
|           (function() |  | ||||||
|             local integration = require("catppuccin.groups.integrations.bufferline") |  | ||||||
|             return (integration.get_theme or integration.get)() |  | ||||||
|           end)() |  | ||||||
|           ``` |  | ||||||
|           if the active theme is Catppuccin, `{}` otherwise. |  | ||||||
|         ''; |  | ||||||
|         description = '' |         description = '' | ||||||
|           Overrides the highlight groups of bufferline. |           Overrides the highlight groups of bufferline. | ||||||
| 
 | 
 | ||||||
|  | @ -70,11 +59,10 @@ in { | ||||||
|         themable = mkOption { |         themable = mkOption { | ||||||
|           type = bool; |           type = bool; | ||||||
|           default = true; |           default = true; | ||||||
|           example = false; |  | ||||||
|           description = '' |           description = '' | ||||||
|             Whether or not to allow highlight groups to be overridden. |             Whether or not to allow highlight groups to be overridden. | ||||||
| 
 | 
 | ||||||
|             While `false`, bufferline.nvim sets highlights as default. |             While false, bufferline.nvim sets highlights as default. | ||||||
|           ''; |           ''; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -71,9 +71,6 @@ in { | ||||||
|       require('catppuccin').setup { |       require('catppuccin').setup { | ||||||
|         flavour = "${style}", |         flavour = "${style}", | ||||||
|         transparent_background = ${boolToString transparent}, |         transparent_background = ${boolToString transparent}, | ||||||
|         float = { |  | ||||||
|           transparent = ${boolToString transparent}, |  | ||||||
|         }, |  | ||||||
|         term_colors = true, |         term_colors = true, | ||||||
|         integrations = { |         integrations = { | ||||||
|           nvimtree = { |           nvimtree = { | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
|     ./borders |     ./borders | ||||||
|     ./breadcrumbs |     ./breadcrumbs | ||||||
|     ./colorful-menu-nvim |     ./colorful-menu-nvim | ||||||
|     ./nvim-highlight-colors |  | ||||||
|     ./colorizer |     ./colorizer | ||||||
|     ./fastaction |     ./fastaction | ||||||
|     ./illuminate |     ./illuminate | ||||||
|  |  | ||||||
|  | @ -1,28 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: let |  | ||||||
|   inherit (lib.modules) mkIf; |  | ||||||
|   inherit (lib.nvim.dag) entryAnywhere; |  | ||||||
|   inherit (lib.nvim.lua) toLuaObject; |  | ||||||
| 
 |  | ||||||
|   cfg = config.vim.ui.nvim-highlight-colors; |  | ||||||
| in { |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     vim = { |  | ||||||
|       startPlugins = [ |  | ||||||
|         "nvim-highlight-colors" |  | ||||||
|       ]; |  | ||||||
| 
 |  | ||||||
|       # enable display of 24-bit RGB colors in neovim |  | ||||||
|       # via the terminal. This is required for nvim-highlight-colors |  | ||||||
|       # to display arbitrary RGB highlights. |  | ||||||
|       options.termguicolors = true; |  | ||||||
| 
 |  | ||||||
|       pluginRC.nvim-highlight-colors = entryAnywhere '' |  | ||||||
|         require('nvim-highlight-colors').setup(${toLuaObject cfg.setupOpts}) |  | ||||||
|       ''; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| { |  | ||||||
|   imports = [ |  | ||||||
|     ./nvim-highlight-colors.nix |  | ||||||
|     ./config.nix |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
|  | @ -1,71 +0,0 @@ | ||||||
| {lib, ...}: let |  | ||||||
|   inherit (lib.options) mkOption mkEnableOption; |  | ||||||
|   inherit (lib.types) attrsOf enum nullOr submodule bool str; |  | ||||||
|   inherit (lib.modules) mkRenamedOptionModule; |  | ||||||
|   inherit (lib.nvim.types) mkPluginSetupOption; |  | ||||||
|   inherit (lib.nvim.config) mkBool; |  | ||||||
| in { |  | ||||||
|   options.vim.ui.nvim-highlight-colors = { |  | ||||||
|     enable = mkEnableOption "color highlighting [nvim-highlight-colors.lua]"; |  | ||||||
| 
 |  | ||||||
|     setupOpts = mkPluginSetupOption "nvim-highlight-colors" { |  | ||||||
|       render = mkOption { |  | ||||||
|         type = enum ["background" "foreground" "virtual"]; |  | ||||||
|         default = "background"; |  | ||||||
|         example = "virtual"; |  | ||||||
|         description = '' |  | ||||||
|           Style to render color highlighting with. |  | ||||||
| 
 |  | ||||||
|           ::: {.note} |  | ||||||
|           Each render style works as follows: |  | ||||||
|             - 'background' sets the background |  | ||||||
|               highlight of the matched color string |  | ||||||
|               to the RGB color it describes. |  | ||||||
| 
 |  | ||||||
|             - 'foreground' sets the foreground |  | ||||||
|               highlight of the matched color string |  | ||||||
|               to the RGB color it describes. |  | ||||||
| 
 |  | ||||||
|             - 'virtual' displays the matched color |  | ||||||
|               with virtual text alongside the color |  | ||||||
|               string in the buffer. Virtual text can |  | ||||||
|               be configured to display the color in |  | ||||||
|               various ways, i.e custom virtual symbol |  | ||||||
|               (via `virtual_symbol`) positioning |  | ||||||
|               relative to string, suffix/prefix, etc. |  | ||||||
|           ::: |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       virtual_symbol_position = mkOption { |  | ||||||
|         type = enum ["inline" "eol" "eow"]; |  | ||||||
|         default = "inline"; |  | ||||||
|         example = "eol"; |  | ||||||
|         description = '' |  | ||||||
|           Where to render the virtual symbol in |  | ||||||
|           relation to the color string. |  | ||||||
| 
 |  | ||||||
|           ::: {.note} |  | ||||||
|           Each render style works as follows: |  | ||||||
|             - 'inline' render virtual text inline, |  | ||||||
|               similar to the style of VSCode color |  | ||||||
|               hinting. |  | ||||||
| 
 |  | ||||||
|             - 'eol' render virtual text at the end |  | ||||||
|               of the line which the color string |  | ||||||
|               occurs (last column). Recommended to |  | ||||||
|               set `virtual_symbol_suffix` to an |  | ||||||
|               empty string when used. |  | ||||||
| 
 |  | ||||||
|             - 'eow' render virtual text at the end |  | ||||||
|               of the word where the color string |  | ||||||
|               occurs. Recommended to set |  | ||||||
|               `virtual_symbol_prefix` to a single |  | ||||||
|               space for padding and the suffix to |  | ||||||
|               an empty string for no padding. |  | ||||||
|           ::: |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -9,16 +9,14 @@ in { | ||||||
| 
 | 
 | ||||||
|     setupOpts = mkPluginSetupOption "image.nvim" { |     setupOpts = mkPluginSetupOption "image.nvim" { | ||||||
|       backend = mkOption { |       backend = mkOption { | ||||||
|         type = enum ["kitty" "ueberzug" "sixel"]; |         type = enum ["kitty" "ueberzug"]; | ||||||
|         default = "ueberzug"; |         default = "ueberzug"; | ||||||
|         description = '' |         description = '' | ||||||
|           The backend to use for rendering images. |           The backend to use for rendering images. | ||||||
| 
 | 
 | ||||||
|           * `kitty` - best in class, works great and is very snappy. Recommended |           - kitty - best in class, works great and is very snappy | ||||||
|           by upstream. |           - ueberzug - backed by ueberzugpp, supports any terminal, | ||||||
|           * `ueberzug` - backed by ueberzugpp, supports any terminal, |  | ||||||
|             but has lower performance |             but has lower performance | ||||||
|           * `sixel` - uses the Sixel graphics protocol, widely supported by many terminals |  | ||||||
|         ''; |         ''; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -22,7 +22,9 @@ | ||||||
|       passthru.vimPlugin = false; |       passthru.vimPlugin = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|   # Build a Vim plugin with the given name and arguments. |   # build a vim plugin with the given name and arguments | ||||||
|  |   # if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug | ||||||
|  |   # instead | ||||||
|   buildPlug = attrs: let |   buildPlug = attrs: let | ||||||
|     pin = getPin attrs.pname; |     pin = getPin attrs.pname; | ||||||
|   in |   in | ||||||
|  | @ -34,7 +36,6 @@ | ||||||
|       // attrs |       // attrs | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|   # Build a given Treesitter grammar. |  | ||||||
|   buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars); |   buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars); | ||||||
| 
 | 
 | ||||||
|   pluginBuilders = { |   pluginBuilders = { | ||||||
|  | @ -47,9 +48,6 @@ | ||||||
|       doCheck = false; |       doCheck = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # Get plugins built from source from self.packages |  | ||||||
|     # If adding a new plugin to be built from source, it must also be inherited |  | ||||||
|     # here. |  | ||||||
|     inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp avante-nvim; |     inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp avante-nvim; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | @ -73,38 +71,29 @@ | ||||||
|   # Wrap the user's desired (unwrapped) Neovim package with arguments that'll be used to |   # Wrap the user's desired (unwrapped) Neovim package with arguments that'll be used to | ||||||
|   # generate a wrapped Neovim package. |   # generate a wrapped Neovim package. | ||||||
|   neovim-wrapped = inputs.mnw.lib.wrap {inherit pkgs;} { |   neovim-wrapped = inputs.mnw.lib.wrap {inherit pkgs;} { | ||||||
|     appName = "nvf"; |  | ||||||
|     neovim = config.vim.package; |     neovim = config.vim.package; | ||||||
|     initLua = config.vim.builtLuaConfigRC; |  | ||||||
|     luaFiles = config.vim.extraLuaFiles; |  | ||||||
| 
 |  | ||||||
|     # Plugin configurations |  | ||||||
|     plugins = { |     plugins = { | ||||||
|       start = buildConfigPlugins config.vim.startPlugins; |       start = buildConfigPlugins config.vim.startPlugins; | ||||||
|       opt = buildConfigPlugins config.vim.optPlugins; |       opt = buildConfigPlugins config.vim.optPlugins; | ||||||
|     }; |     }; | ||||||
| 
 |     appName = "nvf"; | ||||||
|     # Providers for Neovim |     extraBinPath = config.vim.extraPackages; | ||||||
|  |     initLua = config.vim.builtLuaConfigRC; | ||||||
|  |     luaFiles = config.vim.extraLuaFiles; | ||||||
|     providers = { |     providers = { | ||||||
|       ruby.enable = config.vim.withRuby; |  | ||||||
|       nodeJs.enable = config.vim.withNodeJs; |  | ||||||
|       python3 = { |       python3 = { | ||||||
|         enable = config.vim.withPython3; |         enable = config.vim.withPython3; | ||||||
|         extraPackages = ps: map (flip builtins.getAttr ps) config.vim.python3Packages; |         extraPackages = ps: map (flip builtins.getAttr ps) config.vim.python3Packages; | ||||||
|       }; |       }; | ||||||
|  |       ruby.enable = config.vim.withRuby; | ||||||
|  |       nodeJs.enable = config.vim.withNodeJs; | ||||||
|     }; |     }; | ||||||
| 
 |  | ||||||
|     # Aliases to link `nvim` to |  | ||||||
|     aliases = lib.optional config.vim.viAlias "vi" ++ lib.optional config.vim.vimAlias "vim"; |     aliases = lib.optional config.vim.viAlias "vi" ++ lib.optional config.vim.vimAlias "vim"; | ||||||
| 
 | 
 | ||||||
|     # Additional packages or Lua packages to be made available to Neovim |  | ||||||
|     extraBinPath = config.vim.extraPackages; |  | ||||||
|     extraLuaPackages = ps: map (flip builtins.getAttr ps) config.vim.luaPackages; |     extraLuaPackages = ps: map (flip builtins.getAttr ps) config.vim.luaPackages; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   # A store path representing the built Lua configuration. |  | ||||||
|   dummyInit = pkgs.writeText "nvf-init.lua" config.vim.builtLuaConfigRC; |   dummyInit = pkgs.writeText "nvf-init.lua" config.vim.builtLuaConfigRC; | ||||||
| 
 |  | ||||||
|   # Additional helper scripts for printing and displaying nvf configuration |   # Additional helper scripts for printing and displaying nvf configuration | ||||||
|   # in your commandline. |   # in your commandline. | ||||||
|   printConfig = pkgs.writers.writeDashBin "nvf-print-config" "cat ${dummyInit}"; |   printConfig = pkgs.writers.writeDashBin "nvf-print-config" "cat ${dummyInit}"; | ||||||
|  | @ -117,20 +106,10 @@ | ||||||
|     paths = [neovim-wrapped printConfig printConfigPath]; |     paths = [neovim-wrapped printConfig printConfigPath]; | ||||||
|     postBuild = "echo Helpers added"; |     postBuild = "echo Helpers added"; | ||||||
| 
 | 
 | ||||||
|     passthru = { |  | ||||||
|     # Allow evaluating config.vim, i.e., config.vim from the packages' passthru |     # Allow evaluating config.vim, i.e., config.vim from the packages' passthru | ||||||
|     # attribute. For example, packages.x86_64-linux.neovim.passthru.neovimConfig |     # attribute. For example, packages.x86_64-linux.neovim.passthru.neovimConfig | ||||||
|     # will return the configuration in full. |     # will return the configuration in full. | ||||||
|       neovimConfig = config.vim; |     passthru.neovimConfig = config.vim; | ||||||
| 
 |  | ||||||
|       # Also expose the helper scripts in passthru. |  | ||||||
|       nvfPrintConfig = printConfig; |  | ||||||
|       nvfPrintConfigPath = printConfigPath; |  | ||||||
| 
 |  | ||||||
|       # In systems where we only have a package and no module, this can be used |  | ||||||
|       # to access the built init.lua |  | ||||||
|       initLua = dummyInit; |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|     meta = |     meta = | ||||||
|       neovim-wrapped.meta |       neovim-wrapped.meta | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
|   lib, |   lib, | ||||||
|   ... |   ... | ||||||
| }: let | }: let | ||||||
|   inherit (lib.options) mkOption mkEnableOption literalMD literalExpression; |   inherit (lib.options) mkOption mkEnableOption literalMD; | ||||||
|   inherit (lib.types) package bool str listOf attrsOf; |   inherit (lib.types) package bool str listOf attrsOf; | ||||||
|   inherit (lib.nvim.types) pluginsOpt extraPluginType; |   inherit (lib.nvim.types) pluginsOpt extraPluginType; | ||||||
| in { | in { | ||||||
|  | @ -11,7 +11,6 @@ in { | ||||||
|     package = mkOption { |     package = mkOption { | ||||||
|       type = package; |       type = package; | ||||||
|       default = pkgs.neovim-unwrapped; |       default = pkgs.neovim-unwrapped; | ||||||
|       defaultText = literalExpression "pkgs.neovim-unwrapped"; |  | ||||||
|       description = '' |       description = '' | ||||||
|         The neovim package to use for the wrapper. This |         The neovim package to use for the wrapper. This | ||||||
|         corresponds to the package that will be wrapped |         corresponds to the package that will be wrapped | ||||||
|  | @ -28,20 +27,21 @@ in { | ||||||
|     viAlias = mkOption { |     viAlias = mkOption { | ||||||
|       type = bool; |       type = bool; | ||||||
|       default = true; |       default = true; | ||||||
|       example = false; |  | ||||||
|       description = "Enable the `vi` alias for `nvim`"; |       description = "Enable the `vi` alias for `nvim`"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     vimAlias = mkOption { |     vimAlias = mkOption { | ||||||
|       type = bool; |       type = bool; | ||||||
|       default = true; |       default = true; | ||||||
|       example = false; |  | ||||||
|       description = "Enable the `vim` alias for `nvim`"; |       description = "Enable the `vim` alias for `nvim`"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     startPlugins = pluginsOpt { |     startPlugins = pluginsOpt { | ||||||
|       default = ["plenary-nvim"]; |       default = ["plenary-nvim"]; | ||||||
|       example = literalExpression "[pkgs.vimPlugins.telescope-nvim]"; |       example = '' | ||||||
|  |         [pkgs.vimPlugins.telescope-nvim] | ||||||
|  |       ''; | ||||||
|  | 
 | ||||||
|       description = '' |       description = '' | ||||||
|         List of plugins to load on startup. This is used |         List of plugins to load on startup. This is used | ||||||
|         internally to add plugins to Neovim's runtime. |         internally to add plugins to Neovim's runtime. | ||||||
|  | @ -54,7 +54,9 @@ in { | ||||||
| 
 | 
 | ||||||
|     optPlugins = pluginsOpt { |     optPlugins = pluginsOpt { | ||||||
|       default = []; |       default = []; | ||||||
|       example = literalExpression "[pkgs.vimPlugins.vim-ghost]"; |       example = '' | ||||||
|  |         [pkgs.vimPlugins.vim-ghost] | ||||||
|  |       ''; | ||||||
|       description = '' |       description = '' | ||||||
|         List of plugins to optionally load on startup. |         List of plugins to optionally load on startup. | ||||||
| 
 | 
 | ||||||
|  | @ -106,7 +108,7 @@ in { | ||||||
|       ''; |       ''; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # This defaults to `true` in the wrapper |     # this defaults to `true` in the wrapper | ||||||
|     # and since we pass this value to the wrapper |     # and since we pass this value to the wrapper | ||||||
|     # with an inherit, it should be `true` here as well |     # with an inherit, it should be `true` here as well | ||||||
|     withRuby = |     withRuby = | ||||||
|  | @ -118,14 +120,14 @@ in { | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|     withNodeJs = mkEnableOption '' |     withNodeJs = mkEnableOption '' | ||||||
|       NodeJS support in the Neovim wrapper |       NodeJs support in the Neovim wrapper | ||||||
|     ''; |     ''; | ||||||
| 
 | 
 | ||||||
|     luaPackages = mkOption { |     luaPackages = mkOption { | ||||||
|       type = listOf str; |       type = listOf str; | ||||||
|       default = []; |       default = []; | ||||||
|       example = ''["magick" "serpent"]''; |       example = ''["magick" "serpent"]''; | ||||||
|       description = "List of Lua packages to install"; |       description = "List of lua packages to install"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     withPython3 = mkEnableOption '' |     withPython3 = mkEnableOption '' | ||||||
|  | @ -142,7 +144,7 @@ in { | ||||||
|     pluginOverrides = mkOption { |     pluginOverrides = mkOption { | ||||||
|       type = attrsOf package; |       type = attrsOf package; | ||||||
|       default = {}; |       default = {}; | ||||||
|       example = literalExpression '' |       example = '' | ||||||
|         { |         { | ||||||
|           lazydev-nvim = pkgs.fetchFromGitHub { |           lazydev-nvim = pkgs.fetchFromGitHub { | ||||||
|             owner = "folke"; |             owner = "folke"; | ||||||
|  |  | ||||||
|  | @ -145,7 +145,7 @@ in { | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|       lazy.builtLazyConfig = '' |       lazy.builtLazyConfig = '' | ||||||
|         ${optionalString (length lznSpecs > 0) "require('lz.n').load(${toLuaObject lznSpecs})"} |         require('lz.n').load(${toLuaObject lznSpecs}) | ||||||
|         ${optionalString cfg.enableLznAutoRequire "require('lzn-auto-require').enable()"} |         ${optionalString cfg.enableLznAutoRequire "require('lzn-auto-require').enable()"} | ||||||
|       ''; |       ''; | ||||||
|     }) |     }) | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue