mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	Merge branch 'NotAShelf:main' into overhaul-spell
This commit is contained in:
		
				commit
				
					
						97764f6140
					
				
			
		
					 11 changed files with 243 additions and 170 deletions
				
			
		|  | @ -64,6 +64,7 @@ inputs: let | ||||||
|           enable = isMaximal; |           enable = isMaximal; | ||||||
|           crates.enable = true; |           crates.enable = true; | ||||||
|         }; |         }; | ||||||
|  |         java.enable = isMaximal; | ||||||
|         ts.enable = isMaximal; |         ts.enable = isMaximal; | ||||||
|         svelte.enable = isMaximal; |         svelte.enable = isMaximal; | ||||||
|         go.enable = isMaximal; |         go.enable = isMaximal; | ||||||
|  |  | ||||||
|  | @ -16,7 +16,9 @@ https://github.com/horriblename[horriblename]: | ||||||
| 
 | 
 | ||||||
| https://github.com/amanse[amanse]: | https://github.com/amanse[amanse]: | ||||||
| 
 | 
 | ||||||
| * Added daily notes options for obsidian plugin.a | * Added daily notes options for obsidian plugin. | ||||||
|  | 
 | ||||||
|  | * Added jdt-language-server for Java. | ||||||
| 
 | 
 | ||||||
| https://github.com/yavko[yavko]: | https://github.com/yavko[yavko]: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,7 +13,6 @@ | ||||||
|     else "'${value}'"; |     else "'${value}'"; | ||||||
| 
 | 
 | ||||||
|   # convert an expression to lua |   # convert an expression to lua | ||||||
| 
 |  | ||||||
|   expToLua = exp: |   expToLua = exp: | ||||||
|     if builtins.isList exp |     if builtins.isList exp | ||||||
|     then listToLuaTable exp # if list, convert to lua table |     then listToLuaTable exp # if list, convert to lua table | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ with lib; { | ||||||
|     sources = mkOption { |     sources = mkOption { | ||||||
|       default = {}; |       default = {}; | ||||||
|       description = "List of debuggers to install"; |       description = "List of debuggers to install"; | ||||||
|       type = with types; attrsOf string; |       type = with types; attrsOf str; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     mappings = { |     mappings = { | ||||||
|  |  | ||||||
|  | @ -23,6 +23,7 @@ in { | ||||||
|     ./zig.nix |     ./zig.nix | ||||||
|     ./html.nix |     ./html.nix | ||||||
|     ./svelte.nix |     ./svelte.nix | ||||||
|  |     ./java.nix | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   options.vim.languages = { |   options.vim.languages = { | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								modules/languages/java.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								modules/languages/java.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | ||||||
|  | { | ||||||
|  |   pkgs, | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | with lib; | ||||||
|  | with builtins; let | ||||||
|  |   cfg = config.vim.languages.java; | ||||||
|  | in { | ||||||
|  |   options.vim.languages.java = { | ||||||
|  |     enable = mkEnableOption "Java language support"; | ||||||
|  | 
 | ||||||
|  |     treesitter = { | ||||||
|  |       enable = mkEnableOption "Enable Java treesitter" // {default = config.vim.languages.enableTreesitter;}; | ||||||
|  |       package = nvim.types.mkGrammarOption pkgs "java"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     lsp = { | ||||||
|  |       enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.languages.enableLSP;}; | ||||||
|  | 
 | ||||||
|  |       package = mkOption { | ||||||
|  |         description = "java language server"; | ||||||
|  |         type = types.package; | ||||||
|  |         default = pkgs.jdt-language-server; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable (mkMerge [ | ||||||
|  |     (mkIf cfg.lsp.enable { | ||||||
|  |       vim.lsp.lspconfig.enable = true; | ||||||
|  |       vim.lsp.lspconfig.sources.jdtls = '' | ||||||
|  |         lspconfig.jdtls.setup { | ||||||
|  |           cmd = {"${cfg.lsp.package}/bin/jdt-language-server", "-data", vim.fn.stdpath("cache").."/jdtls/workspace"}, | ||||||
|  |         } | ||||||
|  |       ''; | ||||||
|  |     }) | ||||||
|  | 
 | ||||||
|  |     (mkIf cfg.treesitter.enable { | ||||||
|  |       vim.treesitter.enable = true; | ||||||
|  |       vim.treesitter.grammars = [cfg.treesitter.package]; | ||||||
|  |     }) | ||||||
|  |   ]); | ||||||
|  | } | ||||||
|  | @ -56,9 +56,9 @@ with builtins; let | ||||||
|                 command = {"${cfg.format.package}/bin/nixpkgs-fmt"}, |                 command = {"${cfg.format.package}/bin/nixpkgs-fmt"}, | ||||||
|               }, |               }, | ||||||
|             ''} |             ''} | ||||||
|         ''} |  | ||||||
|             }, |             }, | ||||||
|           }; |           }, | ||||||
|  |         ''} | ||||||
|         } |         } | ||||||
|       ''; |       ''; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -7,7 +7,8 @@ with lib; | ||||||
| with builtins; let | with builtins; let | ||||||
|   cfg = config.vim.notes.orgmode; |   cfg = config.vim.notes.orgmode; | ||||||
| in { | in { | ||||||
|   config = mkIf (cfg.enable) { |   config = mkIf cfg.enable (mkMerge [ | ||||||
|  |     { | ||||||
|       vim.startPlugins = [ |       vim.startPlugins = [ | ||||||
|         "orgmode-nvim" |         "orgmode-nvim" | ||||||
|       ]; |       ]; | ||||||
|  | @ -27,7 +28,6 @@ in { | ||||||
|             -- code block highlights that do not have ts grammar |             -- code block highlights that do not have ts grammar | ||||||
|             additional_vim_regex_highlighting = {'org'}, |             additional_vim_regex_highlighting = {'org'}, | ||||||
|           }, |           }, | ||||||
|         ensure_installed = {'org'}, -- Or run :TSUpdate org |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         require('orgmode').setup({ |         require('orgmode').setup({ | ||||||
|  | @ -35,5 +35,12 @@ in { | ||||||
|           org_default_notes_file = '${cfg.orgDefaultNotesFile}', |           org_default_notes_file = '${cfg.orgDefaultNotesFile}', | ||||||
|         }) |         }) | ||||||
|       ''; |       ''; | ||||||
|   }; |     } | ||||||
|  | 
 | ||||||
|  |     (mkIf cfg.treesitter.enable { | ||||||
|  |       vim.treesitter.enable = true; | ||||||
|  | 
 | ||||||
|  |       vim.treesitter.grammars = [cfg.treesitter.orgPackage]; | ||||||
|  |     }) | ||||||
|  |   ]); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,21 +1,30 @@ | ||||||
| { | { | ||||||
|   config, |   config, | ||||||
|   lib, |   lib, | ||||||
|  |   pkgs, | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| with lib; | with lib; | ||||||
| with builtins; { | with builtins; { | ||||||
|   options.vim.notes.orgmode = { |   options.vim.notes.orgmode = { | ||||||
|     enable = mkEnableOption "nvim-orgmode: Neovim plugin for Emac Orgmode. Get the best of both worlds"; |     enable = mkEnableOption "nvim-orgmode: Neovim plugin for Emac Orgmode. Get the best of both worlds"; | ||||||
|  | 
 | ||||||
|     orgAgendaFiles = mkOption { |     orgAgendaFiles = mkOption { | ||||||
|       type = types.str; |       type = types.str; | ||||||
|       default = "{'~/Documents/org/*', '~/my-orgs/**/*'}"; |       default = "{'~/Documents/org/*', '~/my-orgs/**/*'}"; | ||||||
|       description = "List of org files to be used as agenda files."; |       description = "List of org files to be used as agenda files."; | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|     orgDefaultNotesFile = mkOption { |     orgDefaultNotesFile = mkOption { | ||||||
|       type = types.str; |       type = types.str; | ||||||
|       default = "~/Documents/org/refile.org"; |       default = "~/Documents/org/refile.org"; | ||||||
|       description = "Default org file to be used for notes."; |       description = "Default org file to be used for notes."; | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|  |     treesitter = { | ||||||
|  |       enable = mkEnableOption "Enable Orgmode treesitter" // {default = config.vim.languages.enableTreesitter;}; | ||||||
|  | 
 | ||||||
|  |       orgPackage = nvim.types.mkGrammarOption pkgs "org"; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -27,8 +27,13 @@ | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   dracula = { |   dracula = { | ||||||
|     setup = '' |     setup = { | ||||||
|       require('dracula').setup({}); |       style ? null, | ||||||
|  |       transparent, | ||||||
|  |     }: '' | ||||||
|  |       require('dracula').setup({ | ||||||
|  |         transparent_bg = ${lib.boolToString transparent}, | ||||||
|  |       }); | ||||||
|       require('dracula').load(); |       require('dracula').load(); | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -3,58 +3,61 @@ | ||||||
|   lib, |   lib, | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
| with lib; |  | ||||||
| with builtins; let | with builtins; let | ||||||
|  |   inherit (lib) optionalString boolToString mkIf optionals; | ||||||
|  |   inherit (lib.nvim.lua) nullString; | ||||||
|  | 
 | ||||||
|   cfg = config.vim.ui.breadcrumbs; |   cfg = config.vim.ui.breadcrumbs; | ||||||
|   nb = cfg.navbuddy; |   nb = cfg.navbuddy; | ||||||
| 
 |  | ||||||
|   nilOrStr = v: |  | ||||||
|     if v == null |  | ||||||
|     then "nil" |  | ||||||
|     else toString v; |  | ||||||
| in { | in { | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     vim.startPlugins = |     vim.startPlugins = | ||||||
|       [ |       [ | ||||||
|         "nvim-lspconfig" |         "nvim-lspconfig" | ||||||
|       ] |       ] | ||||||
|       ++ lib.optionals (config.vim.lsp.lspsaga.enable && cfg.source == "lspsaga") [ |       ++ optionals (cfg.source == "nvim-navic") [ | ||||||
|  |         "nvim-navic" | ||||||
|  |       ] | ||||||
|  |       ++ optionals (config.vim.lsp.lspsaga.enable && cfg.source == "lspsaga") [ | ||||||
|         "lspsaga" |         "lspsaga" | ||||||
|       ] |       ] | ||||||
|       ++ lib.optionals (cfg.navbuddy.enable || cfg.source == "nvim-navic") [ |       ++ optionals cfg.navbuddy.enable [ | ||||||
|         "nvim-navbuddy" |         "nvim-navbuddy" | ||||||
|  |         "nui-nvim" | ||||||
|         "nvim-navic" |         "nvim-navic" | ||||||
|       ]; |       ]; | ||||||
| 
 | 
 | ||||||
|     vim.luaConfigRC.breadcrumbs = nvim.dag.entryAfter ["lspconfig"] '' |     vim.luaConfigRC.breadcrumbs = lib.nvim.dag.entryAfter ["lspconfig"] '' | ||||||
|       local navbuddy = require("nvim-navbuddy") |  | ||||||
|       local navic = require("nvim-navic") |  | ||||||
|       local actions = require("nvim-navbuddy.actions") |  | ||||||
| 
 | 
 | ||||||
|  |       ${optionalString (cfg.source == "nvim-navic") '' | ||||||
|  |         local navic = require("nvim-navic") | ||||||
|         require("nvim-navic").setup { |         require("nvim-navic").setup { | ||||||
|           highlight = true |           highlight = true | ||||||
|         } |         } | ||||||
|  |       ''} | ||||||
| 
 | 
 | ||||||
|       -- TODO: wrap this in an optional string with navbuddy as the enable condition |       ${optionalString cfg.navbuddy.enable '' | ||||||
|  |         local navbuddy = require("nvim-navbuddy") | ||||||
|  |         local actions = require("nvim-navbuddy.actions") | ||||||
|         navbuddy.setup { |         navbuddy.setup { | ||||||
|             window = { |             window = { | ||||||
|                 border = "${nb.window.border}",  -- "rounded", "double", "solid", "none" |                 border = "${nb.window.border}",  -- "rounded", "double", "solid", "none" | ||||||
|                 size = "60%", |                 size = "60%", | ||||||
|                 position = "50%", |                 position = "50%", | ||||||
|               scrolloff = ${(nilOrStr nb.window.scrolloff)}, |                 scrolloff = ${(nullString nb.window.scrolloff)}, | ||||||
|                 sections = { |                 sections = { | ||||||
|                     left = { |                     left = { | ||||||
|                         size = "20%", |                         size = "20%", | ||||||
|                       border = ${(nilOrStr nb.window.sections.left.border)}, |                         border = ${(nullString nb.window.sections.left.border)}, | ||||||
|                     }, |                     }, | ||||||
| 
 | 
 | ||||||
|                     mid = { |                     mid = { | ||||||
|                         size = "40%", |                         size = "40%", | ||||||
|                       border = ${(nilOrStr nb.window.sections.mid.border)}, |                         border = ${(nullString nb.window.sections.mid.border)}, | ||||||
|                     }, |                     }, | ||||||
| 
 | 
 | ||||||
|                     right = { |                     right = { | ||||||
|                       border = ${(nilOrStr nb.window.sections.right.border)}, |                         border = ${(nullString nb.window.sections.right.border)}, | ||||||
|                         preview = "leaf", |                         preview = "leaf", | ||||||
|                     } |                     } | ||||||
|                 }, |                 }, | ||||||
|  | @ -77,7 +80,7 @@ in { | ||||||
|                 follow_node = ${boolToString nb.sourceBuffer.followNode}, |                 follow_node = ${boolToString nb.sourceBuffer.followNode}, | ||||||
|                 highlight = ${boolToString nb.sourceBuffer.highlight}, |                 highlight = ${boolToString nb.sourceBuffer.highlight}, | ||||||
|                 reorient = "${nb.sourceBuffer.reorient}", |                 reorient = "${nb.sourceBuffer.reorient}", | ||||||
|               scrolloff = ${nilOrStr nb.sourceBuffer.scrolloff} |                 scrolloff = ${nullString nb.sourceBuffer.scrolloff} | ||||||
|             }, |             }, | ||||||
| 
 | 
 | ||||||
|             icons = { |             icons = { | ||||||
|  | @ -110,7 +113,7 @@ in { | ||||||
|             }, |             }, | ||||||
| 
 | 
 | ||||||
|             -- make those configurable |             -- make those configurable | ||||||
|           use_default_mappings = ${toString (cfg.navbuddy.useDefaultMappings)}, |             use_default_mappings = ${boolToString cfg.navbuddy.useDefaultMappings}, | ||||||
|             mappings = { |             mappings = { | ||||||
|                 ["${cfg.navbuddy.mappings.close}"] = actions.close(), |                 ["${cfg.navbuddy.mappings.close}"] = actions.close(), | ||||||
|                 ["${cfg.navbuddy.mappings.nextSibling}"] = actions.next_sibling(), |                 ["${cfg.navbuddy.mappings.nextSibling}"] = actions.next_sibling(), | ||||||
|  | @ -158,6 +161,7 @@ in { | ||||||
|                 ["${cfg.navbuddy.mappings.help}"] = actions.help(),            -- Open mappings help window |                 ["${cfg.navbuddy.mappings.help}"] = actions.help(),            -- Open mappings help window | ||||||
|             }, |             }, | ||||||
|         } |         } | ||||||
|  |       ''} | ||||||
|     ''; |     ''; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yavor Kolev
				Yavor Kolev