mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +00:00 
			
		
		
		
	feat: obsidian and orgmode neovim plugins
This commit is contained in:
		
					parent
					
						
							
								61d497e9ce
							
						
					
				
			
			
				commit
				
					
						07c101f447
					
				
			
		
					 5 changed files with 118 additions and 0 deletions
				
			
		|  | @ -55,6 +55,10 @@ with lib; let | ||||||
|     "presence-nvim" |     "presence-nvim" | ||||||
|     "icon-picker-nvim" |     "icon-picker-nvim" | ||||||
|     "dressing-nvim" |     "dressing-nvim" | ||||||
|  |     "orgmode-nvim" | ||||||
|  |     "obsidian-nvim" | ||||||
|  |     "vim-markdown" | ||||||
|  |     "tabular" | ||||||
|   ]; |   ]; | ||||||
|   # You can either use the name of the plugin or a package. |   # You can either use the name of the plugin or a package. | ||||||
|   pluginsType = with types; listOf (nullOr (either (enum availablePlugins) package)); |   pluginsType = with types; listOf (nullOr (either (enum availablePlugins) package)); | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ | ||||||
|     ./notifications |     ./notifications | ||||||
|     ./utility |     ./utility | ||||||
|     ./presence |     ./presence | ||||||
|  |     ./notes | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   pkgsModule = {config, ...}: { |   pkgsModule = {config, ...}: { | ||||||
|  |  | ||||||
							
								
								
									
										6
									
								
								modules/notes/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/notes/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | _: { | ||||||
|  |   imports = [ | ||||||
|  |     ./obsidian | ||||||
|  |     ./orgmode | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										51
									
								
								modules/notes/obsidian/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								modules/notes/obsidian/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | ||||||
|  | { | ||||||
|  |   pkgs, | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | with lib; | ||||||
|  | with builtins; let | ||||||
|  |   cfg = config.vim.notes.obsidian; | ||||||
|  |   auto = config.vim.autocomplete; | ||||||
|  | in { | ||||||
|  |   options.vim.notes = { | ||||||
|  |     obsidian = { | ||||||
|  |       enable = mkEnableOption "Complementary neovim plugins for Obsidian editor"; | ||||||
|  |       dir = mkOption { | ||||||
|  |         type = types.str; | ||||||
|  |         default = "~/my-vault"; | ||||||
|  |         description = "Obsidian vault directory"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       completion = { | ||||||
|  |         nvim_cmp = mkOption { | ||||||
|  |           # if using nvim-cmp, otherwise set to false | ||||||
|  |           type = types.bool; | ||||||
|  |           description = "If using nvim-cmp, otherwise set to false"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf (cfg.enable) { | ||||||
|  |     vim.startPlugins = [ | ||||||
|  |       "obsidian-nvim" | ||||||
|  |       "vim-markdown" | ||||||
|  |       "tabular" | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     vim.luaConfigRC.obsidian = nvim.dag.entryAnywhere '' | ||||||
|  |       require("obsidian").setup({ | ||||||
|  |         dir = "${cfg.dir}", | ||||||
|  |         completion = { | ||||||
|  |           nvim_cmp = ${ | ||||||
|  |         if (auto.type == "nvim-cmp") | ||||||
|  |         then "true" | ||||||
|  |         else "false" | ||||||
|  |       } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										56
									
								
								modules/notes/orgmode/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								modules/notes/orgmode/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,56 @@ | ||||||
|  | { | ||||||
|  |   pkgs, | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | with lib; | ||||||
|  | with builtins; let | ||||||
|  |   cfg = config.vim.notes.orgmode; | ||||||
|  | in { | ||||||
|  |   options.vim.notes = { | ||||||
|  |     orgmode = { | ||||||
|  |       enable = mkEnableOption "Neovim plugin for Emac Orgmode. Get the best of both worlds."; | ||||||
|  |       orgAgendaFiles = mkOption { | ||||||
|  |         type = types.str; | ||||||
|  |         default = "{'~/Dropbox/org/*', '~/my-orgs/**/*'}"; | ||||||
|  |         description = "List of org files to be used as agenda files."; | ||||||
|  |       }; | ||||||
|  |       orgDefaultNotesFile = mkOption { | ||||||
|  |         type = types.str; | ||||||
|  |         default = "~/Dropbox/org/refile.org"; | ||||||
|  |         description = "Default org file to be used for notes."; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf (cfg.enable) { | ||||||
|  |     vim.startPlugins = [ | ||||||
|  |       "orgmode-nvim" | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     vim.luaConfigRC.orgmode = nvim.dag.entryAnywhere '' | ||||||
|  |       -- Load custom treesitter grammar for org filetype | ||||||
|  |       require('orgmode').setup_ts_grammar() | ||||||
|  | 
 | ||||||
|  |       -- Treesitter configuration | ||||||
|  |       require('nvim-treesitter.configs').setup { | ||||||
|  | 
 | ||||||
|  |         -- If TS highlights are not enabled at all, or disabled via `disable` prop, | ||||||
|  |         -- highlighting will fallback to default Vim syntax highlighting | ||||||
|  |         highlight = { | ||||||
|  |           enable = true, | ||||||
|  |           -- Required for spellcheck, some LaTex highlights and | ||||||
|  |           -- code block highlights that do not have ts grammar | ||||||
|  |         additional_vim_regex_highlighting = {'org'}, | ||||||
|  |         }, | ||||||
|  |         ensure_installed = {'org'}, -- Or run :TSUpdate org | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       require('orgmode').setup({ | ||||||
|  |         org_agenda_files = ${cfg.orgAgendaFiles}, | ||||||
|  |         org_default_notes_file = '${cfg.orgDefaultNotesFile}', | ||||||
|  |       }) | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 NotAShelf
				NotAShelf