mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +00:00 
			
		
		
		
	Merge branch 'main' into feature/custom-keybinds
This commit is contained in:
		
				commit
				
					
						933fa2a8ae
					
				
			
		
					 22 changed files with 190 additions and 130 deletions
				
			
		|  | @ -8,3 +8,4 @@ This section lists the release notes for tagged version of neovim-flake and curr | ||||||
| 
 | 
 | ||||||
| include::rl-0.1.adoc[] | include::rl-0.1.adoc[] | ||||||
| include::rl-0.2.adoc[] | include::rl-0.2.adoc[] | ||||||
|  | include::rl-0.3.adoc[] | ||||||
|  |  | ||||||
|  | @ -1,3 +1,35 @@ | ||||||
|  | [[sec-release-0.3]] | ||||||
|  | == Release 0.3 | ||||||
|  | 
 | ||||||
|  | Release 0.3 had to come out beore I wanted it to due to Neovim 0.9 dropping into nixpkgs-unstable. The treesitter changes | ||||||
|  | have prompted a treesitter rework, which was followed by reworking the languages system. Most of the changes to those are downstreamed | ||||||
|  | from the original repository. The feature requests that was originally planned for 0.3 have been moved to 0.4, which  | ||||||
|  | should come out soon. | ||||||
|  | 
 | ||||||
|  | [[sec-release-0.3-changelog]] | ||||||
|  | === Changelog | ||||||
|  | 
 | ||||||
|  | * We have transitioned to flake-parts, from flake-utils to extend the flexibility of this flake. This means the flake structure  | ||||||
|  | is different than usual, but the functionality remains the same. | ||||||
|  | 
 | ||||||
|  | * We now provide a home-manager module. Do note that it is still far from perfect, but it works. | ||||||
|  | 
 | ||||||
|  | * `nodejs_16` is now bundled with `Copilot.lua` if the user has enabled Copilot assistant. | ||||||
|  | 
 | ||||||
|  | * which-key section titles have been fixed. This is to be changed once again in a possible keybind rewrite, but now it should | ||||||
|  | display the correct titles instad of `+prefix` | ||||||
|  | 
 | ||||||
|  | * Most of `presence.nvim`'s options have been made fully configurable through your configuration file. | ||||||
|  | 
 | ||||||
|  | * Most of the modules have been refactored to separate `config` and `options` attributes. | ||||||
|  | 
 | ||||||
|  | * Darwin has been deprecated as the zig package is marked as broken. We will attempt to use the zig overlay to return Darwin | ||||||
|  | support.  | ||||||
|  | 
 | ||||||
|  | * `Fidget.nvim` has been added as a neat visual addition for LSP installations. | ||||||
|  | 
 | ||||||
|  | * `diffview.nvim` has been added to provide a convenient diff utility. | ||||||
|  | 
 | ||||||
| * Treesitter grammars are now configurable with <<opt-vim.treesitter.grammars>>. Utilizes the nixpkgs `nvim-treesitter` plugin rather than a custom input in order to take advantage of build support of pinned versions. See https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees[discourse] for more information. Packages can be found under the `pkgs.vimPlugins.nvim-treesitter.builtGrammars` attribute. Treesitter grammars for supported languages should be enabled within the module. By default no grammars are installed, thus the following grammars which do not have a language section are not included anymore: comment, toml, make, html, css, graphql, json. | * Treesitter grammars are now configurable with <<opt-vim.treesitter.grammars>>. Utilizes the nixpkgs `nvim-treesitter` plugin rather than a custom input in order to take advantage of build support of pinned versions. See https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees[discourse] for more information. Packages can be found under the `pkgs.vimPlugins.nvim-treesitter.builtGrammars` attribute. Treesitter grammars for supported languages should be enabled within the module. By default no grammars are installed, thus the following grammars which do not have a language section are not included anymore: comment, toml, make, html, css, graphql, json. | ||||||
| 
 | 
 | ||||||
| * A new section has been added for language support: `vim.languages.<language>`. The options <<opt-vim.languages.enableLSP>>, <<opt-vim.languages.enableTreesitter>>, etc. will enable the respective section for all languages that have been enabled. | * A new section has been added for language support: `vim.languages.<language>`. The options <<opt-vim.languages.enableLSP>>, <<opt-vim.languages.enableTreesitter>>, etc. will enable the respective section for all languages that have been enabled. | ||||||
|  | @ -9,9 +41,35 @@ | ||||||
| 
 | 
 | ||||||
| * Removed the plugins document in the docs. Was too unwieldy to keep updated. | * Removed the plugins document in the docs. Was too unwieldy to keep updated. | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| * `vim.visual.lspkind` has been moved to <<opt-vim.lsp.lspkind.enable>> | * `vim.visual.lspkind` has been moved to <<opt-vim.lsp.lspkind.enable>> | ||||||
| 
 | 
 | ||||||
| * Improved handling of completion formatting. When setting <<opt-vim.autocomplete.sources>>, can also include optional menu mapping. And can provide your own function with <<opt-vim.autocomplete.formatting.format>>. | * Improved handling of completion formatting. When setting <<opt-vim.autocomplete.sources>>, can also include optional menu mapping. And can provide your own function with <<opt-vim.autocomplete.formatting.format>>. | ||||||
| 
 | 
 | ||||||
| * For <<opt-vim.visuals.indentBlankline.fillChar>> and <<opt-vim.visuals.indentBlankline.eolChar>> turning them off should use `null` rather than `""` now. | * For <<opt-vim.visuals.indentBlankline.fillChar>> and <<opt-vim.visuals.indentBlankline.eolChar>> turning them off should use `null` rather than `""` now. | ||||||
|  | 
 | ||||||
|  | * Transparency has been made optional and has been disabled by default. <<opt-vim.theme.transparent>> option can be used to enable or  | ||||||
|  | disable transparency for your configuration. | ||||||
|  | 
 | ||||||
|  | * Fixed deprecated configuration method for Tokyonight, and added new style "moon" | ||||||
|  | 
 | ||||||
|  | * Dart language support as well as extended flutter support has been added. Thanks to @FlafyDev for his contributions towards Dart  | ||||||
|  | language support. | ||||||
|  | 
 | ||||||
|  | * Elixir language support has been added through `elixir-tools.nvim`. | ||||||
|  | 
 | ||||||
|  | * `hop.nvim` and `leap.nvim` have been added for fast navigation. | ||||||
|  | 
 | ||||||
|  | * `modes.nvim` has been added to the UI plugins as a minor error highlighter. | ||||||
|  | 
 | ||||||
|  | * `smartcollumn.nvim` has been added to dynamically display a colorcolumn when the limit has been exceeded, providing  | ||||||
|  | per-buftype column position and more. | ||||||
|  | 
 | ||||||
|  | * `project.nvim` has been added for better project management inside Neovim. | ||||||
|  | 
 | ||||||
|  | * More configuration options have been added to `nvim-session-manager`. | ||||||
|  | 
 | ||||||
|  | * Editorconfig support has been added to the core functionality, with an enable option. | ||||||
|  | 
 | ||||||
|  | * `venn-nvim` has been dropped due to broken keybinds. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								docs/release-notes/rl-0.4.adoc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docs/release-notes/rl-0.4.adoc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | [[sec-release-0.4]] | ||||||
|  | == Release 0.4 | ||||||
|  | 
 | ||||||
|  | Release notes for release 0.4 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | [[sec-release-0.4-changelog]] | ||||||
|  | === Changelog | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ttps://github.com/horriblename[horriblename]: | ||||||
|  | 
 | ||||||
|  | * Added `clangd` as alternative lsp for C/++. | ||||||
|  | 
 | ||||||
|  | * Added `toggleterm` integration for `lazygit`. | ||||||
|  | @ -91,6 +91,7 @@ inputs: let | ||||||
|         enable = true; |         enable = true; | ||||||
|         name = "catppuccin"; |         name = "catppuccin"; | ||||||
|         style = "mocha"; |         style = "mocha"; | ||||||
|  |         transparent = false; | ||||||
|       }; |       }; | ||||||
|       vim.autopairs.enable = true; |       vim.autopairs.enable = true; | ||||||
| 
 | 
 | ||||||
|  | @ -127,7 +128,7 @@ inputs: let | ||||||
|       vim.git = { |       vim.git = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         gitsigns.enable = true; |         gitsigns.enable = true; | ||||||
|         gitsigns.codeActions = true; |         gitsigns.codeActions = false; # throws an annoying debug message | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       vim.minimap = { |       vim.minimap = { | ||||||
|  | @ -151,7 +152,6 @@ inputs: let | ||||||
|       vim.utility = { |       vim.utility = { | ||||||
|         colorizer.enable = true; |         colorizer.enable = true; | ||||||
|         icon-picker.enable = true; |         icon-picker.enable = true; | ||||||
|         venn-nvim.enable = false; # FIXME throws an error when its commands are ran manually |  | ||||||
|         diffview-nvim.enable = true; |         diffview-nvim.enable = true; | ||||||
|         motion = { |         motion = { | ||||||
|           hop.enable = true; |           hop.enable = true; | ||||||
|  | @ -167,7 +167,10 @@ inputs: let | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       vim.terminal = { |       vim.terminal = { | ||||||
|         toggleterm.enable = true; |         toggleterm = { | ||||||
|  |           enable = true; | ||||||
|  |           lazygit.enable = true; | ||||||
|  |         }; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       vim.ui = { |       vim.ui = { | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1355,7 +1355,6 @@ | ||||||
|         "toggleterm-nvim": "toggleterm-nvim", |         "toggleterm-nvim": "toggleterm-nvim", | ||||||
|         "tokyonight": "tokyonight", |         "tokyonight": "tokyonight", | ||||||
|         "trouble": "trouble", |         "trouble": "trouble", | ||||||
|         "venn-nvim": "venn-nvim", |  | ||||||
|         "vim-markdown": "vim-markdown", |         "vim-markdown": "vim-markdown", | ||||||
|         "vim-repeat": "vim-repeat", |         "vim-repeat": "vim-repeat", | ||||||
|         "vim-startify": "vim-startify", |         "vim-startify": "vim-startify", | ||||||
|  | @ -1652,22 +1651,6 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "venn-nvim": { |  | ||||||
|       "flake": false, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1669127905, |  | ||||||
|         "narHash": "sha256-Ks5qUaI0MrhVC2AhVsReVwC/2WArXqIQ36CcCSCyzAk=", |  | ||||||
|         "owner": "jbyuki", |  | ||||||
|         "repo": "venn.nvim", |  | ||||||
|         "rev": "c114563960b8fb1197695d42798d1f3e7190b798", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "jbyuki", |  | ||||||
|         "repo": "venn.nvim", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "vim-markdown": { |     "vim-markdown": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|  |  | ||||||
|  | @ -383,11 +383,6 @@ | ||||||
|       flake = false; |       flake = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     venn-nvim = { |  | ||||||
|       url = "github:jbyuki/venn.nvim"; |  | ||||||
|       flake = false; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     icon-picker-nvim = { |     icon-picker-nvim = { | ||||||
|       url = "github:ziontee113/icon-picker.nvim"; |       url = "github:ziontee113/icon-picker.nvim"; | ||||||
|       flake = false; |       flake = false; | ||||||
|  |  | ||||||
|  | @ -51,7 +51,6 @@ with lib; let | ||||||
|     "cinnamon-nvim" |     "cinnamon-nvim" | ||||||
|     "cheatsheet-nvim" |     "cheatsheet-nvim" | ||||||
|     "colorizer" |     "colorizer" | ||||||
|     "venn-nvim" |  | ||||||
|     "cellular-automaton" |     "cellular-automaton" | ||||||
|     "presence-nvim" |     "presence-nvim" | ||||||
|     "icon-picker-nvim" |     "icon-picker-nvim" | ||||||
|  |  | ||||||
|  | @ -133,8 +133,8 @@ in { | ||||||
|         set termguicolors |         set termguicolors | ||||||
|         set t_Co=256 |         set t_Co=256 | ||||||
|       ''} |       ''} | ||||||
|       ${optionalString cfg.enableEditorconfig '' |       ${optionalString (!cfg.enableEditorconfig) '' | ||||||
|         vim.g.editorconfig = false |         let g:editorconfig = v:false | ||||||
|       ''} |       ''} | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -141,7 +141,7 @@ with builtins; { | ||||||
|     }; |     }; | ||||||
|     enableEditorconfig = mkOption { |     enableEditorconfig = mkOption { | ||||||
|       type = types.bool; |       type = types.bool; | ||||||
|       default = false; |       default = true; | ||||||
|       description = "Follow editorconfig rules in current directory"; |       description = "Follow editorconfig rules in current directory"; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -16,8 +16,19 @@ with builtins; let | ||||||
|         lspconfig.ccls.setup{ |         lspconfig.ccls.setup{ | ||||||
|           capabilities = capabilities; |           capabilities = capabilities; | ||||||
|           on_attach=default_on_attach; |           on_attach=default_on_attach; | ||||||
|           cmd = {"${pkgs.ccls}/bin/ccls"}; |           cmd = {"${cfg.lsp.package}/bin/ccls"}; | ||||||
|           ${optionalString (cfg.lsp.opts != null) "init_options = ${cfg.lsp.cclsOpts}"} |           ${optionalString (cfg.lsp.opts != null) "init_options = ${cfg.lsp.opts}"} | ||||||
|  |         } | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |     clangd = { | ||||||
|  |       package = pkgs.clang-tools; | ||||||
|  |       lspConfig = '' | ||||||
|  |         lspconfig.clangd.setup{ | ||||||
|  |           capabilities = capabilities; | ||||||
|  |           on_attach=default_on_attach; | ||||||
|  |           cmd = {"${cfg.lsp.package}/bin/clangd"}; | ||||||
|  |           ${optionalString (cfg.lsp.opts != null) "init_options = ${cfg.lsp.opts}"} | ||||||
|         } |         } | ||||||
|       ''; |       ''; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -64,7 +64,11 @@ in { | ||||||
|         type = with types; enum (attrNames servers); |         type = with types; enum (attrNames servers); | ||||||
|         default = defaultServer; |         default = defaultServer; | ||||||
|       }; |       }; | ||||||
|       package = nvim.types.mkGrammarOption pkgs "python"; |       package = mkOption { | ||||||
|  |         description = "python LSP server package"; | ||||||
|  |         type = types.package; | ||||||
|  |         default = servers.${cfg.lsp.server}.package; | ||||||
|  |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     format = { |     format = { | ||||||
|  |  | ||||||
|  | @ -55,7 +55,7 @@ with builtins; let | ||||||
|   }; |   }; | ||||||
| in { | in { | ||||||
|   options.vim.languages.ts = { |   options.vim.languages.ts = { | ||||||
|     enable = mkEnableOption "SQL language support"; |     enable = mkEnableOption "Typescript/Javascript language support"; | ||||||
| 
 | 
 | ||||||
|     treesitter = { |     treesitter = { | ||||||
|       enable = mkOption { |       enable = mkOption { | ||||||
|  |  | ||||||
|  | @ -28,7 +28,7 @@ in { | ||||||
|       package = mkOption { |       package = mkOption { | ||||||
|         description = "ZLS package"; |         description = "ZLS package"; | ||||||
|         type = types.package; |         type = types.package; | ||||||
|         default = pkgs.nodePackages.pyright; |         default = pkgs.zls; | ||||||
|       }; |       }; | ||||||
|       zigPackage = mkOption { |       zigPackage = mkOption { | ||||||
|         description = "Zig package used by ZLS"; |         description = "Zig package used by ZLS"; | ||||||
|  | @ -37,7 +37,6 @@ in { | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 |  | ||||||
|   config = mkIf cfg.enable (mkMerge [ |   config = mkIf cfg.enable (mkMerge [ | ||||||
|     (mkIf cfg.treesitter.enable { |     (mkIf cfg.treesitter.enable { | ||||||
|       vim.treesitter.enable = true; |       vim.treesitter.enable = true; | ||||||
|  |  | ||||||
|  | @ -21,6 +21,7 @@ in { | ||||||
|       ''; |       ''; | ||||||
|       vim.luaConfigRC.null_ls = nvim.dag.entryAfter ["null_ls-setup" "lsp-setup"] '' |       vim.luaConfigRC.null_ls = nvim.dag.entryAfter ["null_ls-setup" "lsp-setup"] '' | ||||||
|         require('null-ls').setup({ |         require('null-ls').setup({ | ||||||
|  |           debug = false, | ||||||
|           diagnostics_format = "[#{m}] #{s} (#{c})", |           diagnostics_format = "[#{m}] #{s} (#{c})", | ||||||
|           debounce = 250, |           debounce = 250, | ||||||
|           default_timeout = 5000, |           default_timeout = 5000, | ||||||
|  |  | ||||||
|  | @ -6,33 +6,64 @@ | ||||||
| with lib; | with lib; | ||||||
| with builtins; let | with builtins; let | ||||||
|   cfg = config.vim.terminal.toggleterm; |   cfg = config.vim.terminal.toggleterm; | ||||||
|  |   toggleKey = "<c-t>"; | ||||||
| in { | in { | ||||||
|   config = mkIf cfg.enable { |   config = mkMerge [ | ||||||
|     vim.startPlugins = [ |     ( | ||||||
|       "toggleterm-nvim" |       mkIf cfg.enable { | ||||||
|     ]; |         vim.startPlugins = [ | ||||||
|  |           "toggleterm-nvim" | ||||||
|  |         ]; | ||||||
|          |          | ||||||
|     vim.luaConfigRC.toggleterm = nvim.dag.entryAnywhere '' |         vim.maps.normal = mkBinding cfg.mappings.open "<Cmd>execute v:count . \"ToggleTerm\"<CR>" "Toggle terminal"; | ||||||
|       require("toggleterm").setup({ |  | ||||||
|         open_mapping = null, |  | ||||||
|         direction = '${toString cfg.direction}', |  | ||||||
|         -- TODO: this should probably be turned into a module that uses the lua function if and only if the user has not set it |  | ||||||
|         size = function(term) |  | ||||||
|           if term.direction == "horizontal" then |  | ||||||
|             return 15 |  | ||||||
|           elseif term.direction == "vertical" then |  | ||||||
|             return vim.o.columns * 0.4 |  | ||||||
|           end |  | ||||||
|         end, |  | ||||||
|         winbar = { |  | ||||||
|           enabled = '${toString cfg.enable_winbar}', |  | ||||||
|           name_formatter = function(term) --  term: Terminal |  | ||||||
|             return term.name |  | ||||||
|           end |  | ||||||
|         }, |  | ||||||
|       }) |  | ||||||
|     ''; |  | ||||||
| 
 | 
 | ||||||
|     vim.maps.normal = mkBinding cfg.mappings.open "<Cmd>execute v:count . \"ToggleTerm\"<CR>" "Toggle terminal"; |         vim.luaConfigRC.toggleterm = nvim.dag.entryAnywhere '' | ||||||
|   }; |           require("toggleterm").setup({ | ||||||
|  |             open_mapping = null, | ||||||
|  |             direction = '${toString cfg.direction}', | ||||||
|  |             -- TODO: this should probably be turned into a module that uses the lua function if and only if the user has not set it | ||||||
|  |             size = function(term) | ||||||
|  |               if term.direction == "horizontal" then | ||||||
|  |                 return 15 | ||||||
|  |               elseif term.direction == "vertical" then | ||||||
|  |                 return vim.o.columns * 0.4 | ||||||
|  |               end | ||||||
|  |             end, | ||||||
|  |             winbar = { | ||||||
|  |               enabled = '${toString cfg.enable_winbar}', | ||||||
|  |               name_formatter = function(term) --  term: Terminal | ||||||
|  |                 return term.name | ||||||
|  |               end | ||||||
|  |             }, | ||||||
|  |           }) | ||||||
|  |         ''; | ||||||
|  |       } | ||||||
|  |     ) | ||||||
|  |     ( | ||||||
|  |       mkIf (cfg.enable && cfg.lazygit.enable) | ||||||
|  |       { | ||||||
|  |         vim.startPlugins = lib.optionals (cfg.lazygit.package != null) [ | ||||||
|  |           cfg.lazygit.package | ||||||
|  |         ]; | ||||||
|  |         vim.luaConfigRC.toggleterm-lazygit = nvim.dag.entryAfter ["toggleterm"] '' | ||||||
|  |           local terminal = require 'toggleterm.terminal' | ||||||
|  |           local lazygit = terminal.Terminal:new({ | ||||||
|  |             cmd = '${ | ||||||
|  |             if (cfg.lazygit.package != null) | ||||||
|  |             then getExe cfg.lazygit.package | ||||||
|  |             else "lazygit" | ||||||
|  |           }', | ||||||
|  |             direction = '${cfg.lazygit.direction}', | ||||||
|  |             hidden = true, | ||||||
|  |             on_open = function(term) | ||||||
|  |               vim.cmd("startinsert!") | ||||||
|  |               vim.keymap.set( 't', [[${toggleKey}]], function() term:toggle() end, {silent = true, noremap = true, buffer = term.bufnr}) | ||||||
|  |             end | ||||||
|  |           }) | ||||||
|  | 
 | ||||||
|  |           vim.keymap.set( 'n', [[<leader>gg]], function() lazygit:toggle() end, {silent = true, noremap = true}) | ||||||
|  |         ''; | ||||||
|  |       } | ||||||
|  |     ) | ||||||
|  |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| { | { | ||||||
|  |   pkgs, | ||||||
|   config, |   config, | ||||||
|   lib, |   lib, | ||||||
|   ... |   ... | ||||||
|  | @ -24,5 +25,18 @@ with builtins; { | ||||||
|       default = false; |       default = false; | ||||||
|       description = "Enable winbar"; |       description = "Enable winbar"; | ||||||
|     }; |     }; | ||||||
|  |     lazygit = { | ||||||
|  |       enable = mkEnableOption "Enable LazyGit integration"; | ||||||
|  |       direction = mkOption { | ||||||
|  |         type = types.enum ["horizontal" "vertical" "tab" "float"]; | ||||||
|  |         default = "float"; | ||||||
|  |         description = "Direction of the lazygit window"; | ||||||
|  |       }; | ||||||
|  |       package = mkOption { | ||||||
|  |         type = with types; nullOr package; | ||||||
|  |         default = pkgs.lazygit; | ||||||
|  |         description = "The package that should be used for lazygit. Setting it to null will attempt to use lazygit from your PATH"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,6 +1,9 @@ | ||||||
| {lib}: { | {lib}: { | ||||||
|   onedark = { |   onedark = { | ||||||
|     setup = {style ? "dark"}: '' |     setup = { | ||||||
|  |       style ? "dark", | ||||||
|  |       transparent, | ||||||
|  |     }: '' | ||||||
|       -- OneDark theme |       -- OneDark theme | ||||||
|       require('onedark').setup { |       require('onedark').setup { | ||||||
|         style = "${style}" |         style = "${style}" | ||||||
|  | @ -11,12 +14,13 @@ | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   tokyonight = { |   tokyonight = { | ||||||
|     setup = {style ? "night"}: '' |     setup = { | ||||||
|       -- need to set style before colorscheme to apply |       style ? "night", | ||||||
|       vim.g.tokyonight_style = '${style}' |       transparent, | ||||||
|       vim.cmd[[colorscheme tokyonight]] |     }: '' | ||||||
|  |       vim.cmd[[colorscheme tokyonight-${style}]] | ||||||
|     ''; |     ''; | ||||||
|     styles = ["day" "night" "storm"]; |     styles = ["day" "night" "storm" "moon"]; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   dracula = { |   dracula = { | ||||||
|  | @ -34,7 +38,7 @@ | ||||||
|       -- Catppuccin theme |       -- Catppuccin theme | ||||||
|       require('catppuccin').setup { |       require('catppuccin').setup { | ||||||
|         flavour = "${style}", |         flavour = "${style}", | ||||||
|         transparent_background = "${builtins.toString transparent}", |         transparent_background = ${lib.boolToString transparent}, | ||||||
|         integrations = { |         integrations = { | ||||||
|       	  nvimtree = { |       	  nvimtree = { | ||||||
|       		  enabled = true, |       		  enabled = true, | ||||||
|  |  | ||||||
|  | @ -40,6 +40,8 @@ in { | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     vim.startPlugins = [cfg.name]; |     vim.startPlugins = [cfg.name]; | ||||||
|     vim.luaConfigRC.themeSetup = nvim.dag.entryBefore ["theme"] cfg.extraConfig; |     vim.luaConfigRC.themeSetup = nvim.dag.entryBefore ["theme"] cfg.extraConfig; | ||||||
|     vim.luaConfigRC.theme = supported_themes.${cfg.name}.setup {style = cfg.style;}; |     vim.luaConfigRC.theme = supported_themes.${cfg.name}.setup (with cfg; { | ||||||
|  |       inherit style transparent; | ||||||
|  |     }); | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -7,7 +7,6 @@ _: { | ||||||
|     ./colorizer |     ./colorizer | ||||||
|     ./icon-picker |     ./icon-picker | ||||||
|     ./telescope |     ./telescope | ||||||
|     ./venn |  | ||||||
|     ./diffview |     ./diffview | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,42 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; |  | ||||||
| with builtins; let |  | ||||||
|   cfg = config.vim.utility.venn-nvim; |  | ||||||
| in { |  | ||||||
|   config = mkIf (cfg.enable) { |  | ||||||
|     vim.startPlugins = [ |  | ||||||
|       "venn-nvim" |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|     # TODO: https://github.com/jbyuki/venn.nvim#using-toggle-command |  | ||||||
|     # add keybindings for drawing diagrams |  | ||||||
|     vim.luaConfigRC.venn-nvim = nvim.dag.entryAnywhere '' |  | ||||||
|       local venn = require('venn') |  | ||||||
|       -- venn.nvim: enable or disable keymappings |  | ||||||
|       function _G.Toggle_venn() |  | ||||||
|           local venn_enabled = vim.inspect(vim.b.venn_enabled) |  | ||||||
|           if venn_enabled == "nil" then |  | ||||||
|               vim.b.venn_enabled = true |  | ||||||
|               vim.cmd[[setlocal ve=all]] |  | ||||||
|               -- draw a line on HJKL keystokes |  | ||||||
|               vim.api.nvim_buf_set_keymap(0, "n", "J", "<C-v>j:VBox<CR>", {noremap = true}) |  | ||||||
|               vim.api.nvim_buf_set_keymap(0, "n", "K", "<C-v>k:VBox<CR>", {noremap = true}) |  | ||||||
|               vim.api.nvim_buf_set_keymap(0, "n", "L", "<C-v>l:VBox<CR>", {noremap = true}) |  | ||||||
|               vim.api.nvim_buf_set_keymap(0, "n", "H", "<C-v>h:VBox<CR>", {noremap = true}) |  | ||||||
|               -- draw a box by pressing "f" with visual selection |  | ||||||
|               vim.api.nvim_buf_set_keymap(0, "v", "f", ":VBox<CR>", {noremap = true}) |  | ||||||
|           else |  | ||||||
|               vim.cmd[[setlocal ve=]] |  | ||||||
|               vim.cmd[[mapclear <buffer>]] |  | ||||||
|               vim.b.venn_enabled = nil |  | ||||||
|           end |  | ||||||
|       end |  | ||||||
|       -- toggle keymappings for venn using <leader>v |  | ||||||
|       vim.api.nvim_set_keymap('n', '<leader>v', ":lua Toggle_venn()<CR>", { noremap = true}) |  | ||||||
|     ''; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| _: { |  | ||||||
|   imports = [ |  | ||||||
|     ./config.nix |  | ||||||
|     ./venn.nix |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; |  | ||||||
| with builtins; { |  | ||||||
|   options.vim.utility.venn-nvim = { |  | ||||||
|     enable = mkEnableOption "Enable venn.nvim: draw ASCII diagrams in Neovim"; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Michał
				Michał