mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	dev: rewrite view section of nvimtree config
This commit is contained in:
		
					parent
					
						
							
								bb6b138027
							
						
					
				
			
			
				commit
				
					
						83a8308ed5
					
				
			
		
					 2 changed files with 131 additions and 120 deletions
				
			
		|  | @ -142,20 +142,26 @@ in { | ||||||
|           select_prompts = ${boolToString cfg.selectPrompts}, |           select_prompts = ${boolToString cfg.selectPrompts}, | ||||||
| 
 | 
 | ||||||
|           view = { |           view = { | ||||||
|               width = ${nvim.lua.expToLua cfg.view.width},   |  | ||||||
|             centralize_selection = ${boolToString cfg.view.centralizeSelection}, |             centralize_selection = ${boolToString cfg.view.centralizeSelection}, | ||||||
|             cursorline = ${boolToString cfg.view.cursorline}, |             cursorline = ${boolToString cfg.view.cursorline}, | ||||||
|             debounce_delay = ${toString cfg.view.debounceDelay}, |             debounce_delay = ${toString cfg.view.debounceDelay}, | ||||||
|  |             width = ${nvim.lua.expToLua cfg.view.width}, | ||||||
|             side = "${cfg.view.side}", |             side = "${cfg.view.side}", | ||||||
|             preserve_window_proportions = ${boolToString cfg.view.preserveWindowProportions}, |             preserve_window_proportions = ${boolToString cfg.view.preserveWindowProportions}, | ||||||
|             number = ${boolToString cfg.view.number}, |             number = ${boolToString cfg.view.number}, | ||||||
|               relativenumber = ${boolToString cfg.view.relativeNumber}, |             relativenumber = ${boolToString cfg.view.relativenumber}, | ||||||
|               signcolumn = ${cfg.view.signcolumn}, |             signcolumn = "${cfg.view.signcolumn}", | ||||||
| 
 |  | ||||||
|             float = { |             float = { | ||||||
|               enable = ${boolToString cfg.view.float.enable}, |               enable = ${boolToString cfg.view.float.enable}, | ||||||
|               quit_on_focus_loss = ${boolToString cfg.view.float.quitOnFocusLoss}, |               quit_on_focus_loss = ${boolToString cfg.view.float.quitOnFocusLoss}, | ||||||
|                 open_win_config = ${nvim.lua.expToLua cfg.view.float.openWinConfig}, |               open_win_config = { | ||||||
|  |                 relative = "${cfg.view.float.openWinConfig.relative}", | ||||||
|  |                 border = "${cfg.view.float.openWinConfig.border}", | ||||||
|  |                 width = ${toString cfg.view.float.openWinConfig.width}, | ||||||
|  |                 height = ${toString cfg.view.float.openWinConfig.height}, | ||||||
|  |                 row = ${toString cfg.view.float.openWinConfig.row}, | ||||||
|  |                 col = ${toString cfg.view.float.openWinConfig.col}, | ||||||
|  |               }, | ||||||
|             }, |             }, | ||||||
|           }, |           }, | ||||||
|          |          | ||||||
|  | @ -174,6 +180,9 @@ in { | ||||||
|               icons = ${nvim.lua.expToLua cfg.renderer.indentMarkers.icons}, |               icons = ${nvim.lua.expToLua cfg.renderer.indentMarkers.icons}, | ||||||
|             }, |             }, | ||||||
|        |        | ||||||
|  |             special_files = ${nvim.lua.listToLuaTable cfg.renderer.specialFiles}, | ||||||
|  |             symlink_destination = ${boolToString cfg.renderer.symlinkDestination}, | ||||||
|  | 
 | ||||||
|             icons = { |             icons = { | ||||||
|               webdev_colors = ${boolToString cfg.renderer.icons.webdevColors}, |               webdev_colors = ${boolToString cfg.renderer.icons.webdevColors}, | ||||||
|               git_placement = "${cfg.renderer.icons.gitPlacement}", |               git_placement = "${cfg.renderer.icons.gitPlacement}", | ||||||
|  | @ -216,9 +225,8 @@ in { | ||||||
|               }, |               }, | ||||||
|             }, |             }, | ||||||
|           }, |           }, | ||||||
|           special_files = ${nvim.lua.listToLuaTable cfg.renderer.specialFiles}, |  | ||||||
|           symlink_destination = ${boolToString cfg.renderer.symlinkDestination}, |  | ||||||
|         }, |         }, | ||||||
|  |        | ||||||
|         filters = { |         filters = { | ||||||
|           git_ignored = ${boolToString cfg.filters.gitIgnored}, |           git_ignored = ${boolToString cfg.filters.gitIgnored}, | ||||||
|           dotfiles = ${boolToString cfg.filters.dotfiles}, |           dotfiles = ${boolToString cfg.filters.dotfiles}, | ||||||
|  | @ -226,9 +234,11 @@ in { | ||||||
|           no_buffer = ${boolToString cfg.filters.noBuffer}, |           no_buffer = ${boolToString cfg.filters.noBuffer}, | ||||||
|           exclude = ${nvim.lua.listToLuaTable cfg.filters.exclude}, |           exclude = ${nvim.lua.listToLuaTable cfg.filters.exclude}, | ||||||
|         }, |         }, | ||||||
|  |        | ||||||
|         trash = { |         trash = { | ||||||
|           cmd = "${cfg.trash.cmd}", |           cmd = "${cfg.trash.cmd}", | ||||||
|         }, |         }, | ||||||
|  |        | ||||||
|         actions = { |         actions = { | ||||||
|           use_system_clipboard = ${boolToString cfg.actions.useSystemClipboard}, |           use_system_clipboard = ${boolToString cfg.actions.useSystemClipboard}, | ||||||
|           change_dir = { |           change_dir = { | ||||||
|  |  | ||||||
|  | @ -369,30 +369,38 @@ with builtins; { | ||||||
| 
 | 
 | ||||||
|     view = mkOption { |     view = mkOption { | ||||||
|       description = "Window / buffer setup."; |       description = "Window / buffer setup."; | ||||||
| 
 |  | ||||||
|       default = { |       default = { | ||||||
|         centralizeSelection = false; |         centralizeSelection = false; | ||||||
|         cursorline = false; |         cursorline = true; | ||||||
|         debounceDelay = 100; |         debounceDelay = 15; | ||||||
|  |         width = 30; | ||||||
|         side = "left"; |         side = "left"; | ||||||
|         preserveWindowProportions = false; |         preserveWindowProportions = false; | ||||||
|         number = false; |         number = false; | ||||||
|         relativeNumber = false; |         relativenumber = false; | ||||||
|         signcolumn = "yes"; |         signcolumn = "yes"; | ||||||
|  |         float = { | ||||||
|  |           enable = false; | ||||||
|  |           quitOnFocusLoss = true; | ||||||
|  |           openWinConfig = { | ||||||
|  |             relative = "editor"; | ||||||
|  |             border = "rounded"; | ||||||
|  |             width = 30; | ||||||
|  |             height = 30; | ||||||
|  |             row = 1; | ||||||
|  |             col = 1; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|       }; |       }; | ||||||
| 
 |  | ||||||
|       type = types.submodule { |       type = types.submodule { | ||||||
|         options = { |         options = { | ||||||
|           centralizeSelection = mkOption { |           centralizeSelection = mkOption { | ||||||
|  |             description = "If true, reposition the view so that the current node is initially centralized when entering nvim-tree."; | ||||||
|             type = types.bool; |             type = types.bool; | ||||||
|             description = '' |  | ||||||
|               When entering nvim-tree, reposition the view so that the current node is |  | ||||||
|               initially centralized |  | ||||||
|             ''; |  | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           cursorline = mkOption { |           cursorline = mkOption { | ||||||
|             description = "Whether to display the cursor line in NvimTree"; |             description = "Enable cursorline in nvim-tree window."; | ||||||
|             type = types.bool; |             type = types.bool; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|  | @ -408,76 +416,69 @@ with builtins; { | ||||||
|             description = '' |             description = '' | ||||||
|               Width of the window: can be a `%` string, a number representing columns, a |               Width of the window: can be a `%` string, a number representing columns, a | ||||||
|               function or a table. |               function or a table. | ||||||
|               A table indicates that the view should be dynamically sized based on the | 
 | ||||||
|               longest line (previously `view.adaptive_size`). |               A table (an attribute set in our case, see example) indicates that the view should be dynamically sized based on the | ||||||
|  |               longest line. | ||||||
|             ''; |             ''; | ||||||
|             type = with types; oneOf [int attrs]; |             type = with types; oneOf [int attrs]; | ||||||
|  |             example = literalExpression '' | ||||||
|  |               { | ||||||
|  |                 min = 30; | ||||||
|  |                 max = -1; | ||||||
|  |                 padding = 1; | ||||||
|  |               } | ||||||
|  |             ''; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           side = mkOption { |           side = mkOption { | ||||||
|  |             description = "Side of the tree."; | ||||||
|             type = types.enum ["left" "right"]; |             type = types.enum ["left" "right"]; | ||||||
|             default = "left"; |  | ||||||
|             description = "Side the tree will appear on left or right"; |  | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           preserveWindowProportions = mkOption { |           preserveWindowProportions = mkOption { | ||||||
|             type = types.bool; |  | ||||||
|             default = false; |  | ||||||
|             description = '' |             description = '' | ||||||
|               Preserves window proportions when opening a file. |               Preserves window proportions when opening a file. | ||||||
|               If `false`, the height and width of windows other than nvim-tree will be equalized. |               If `false`, the height and width of windows other than nvim-tree will be equalized. | ||||||
|             ''; |             ''; | ||||||
|  |             type = types.bool; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           number = mkOption { |           number = mkOption { | ||||||
|             type = types.bool; |  | ||||||
|             default = false; |  | ||||||
|             description = "Print the line number in front of each line."; |             description = "Print the line number in front of each line."; | ||||||
|  |             type = types.bool; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           relativeNumber = mkOption { |           relativenumber = mkOption { | ||||||
|             type = types.bool; |  | ||||||
|             default = false; |  | ||||||
|             description = '' |             description = '' | ||||||
|               Show the line number relative to the line with the cursor in front of each line. |               Show the line number relative to the line with the cursor in front of each line. | ||||||
|               If the option `view.number` is also `true`, the number on the cursor line |               If the option `view.number` is also `true`, the number on the cursor line | ||||||
|               will be the line number instead of `0`. |               will be the line number instead of `0`. | ||||||
|             ''; |             ''; | ||||||
|  |             type = types.bool; | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           signcolumn = mkOption { |           signcolumn = mkOption { | ||||||
|  |             description = " Show diagnostic sign column. Value can be `" yes "`, `" auto "`, `" no "`."; | ||||||
|             type = types.enum ["yes" "auto" "no"]; |             type = types.enum ["yes" "auto" "no"]; | ||||||
|             default = "yes"; |  | ||||||
|             description = "Show diagnostic sign column."; |  | ||||||
|           }; |           }; | ||||||
| 
 | 
 | ||||||
|           float = mkOption { |           float = mkOption { | ||||||
|             description = "Configuration options for floating window"; |             description = "Configuration options for floating window."; | ||||||
| 
 |  | ||||||
|             default = { |  | ||||||
|               quitOnFocusLoss = true; |  | ||||||
|               openWinConfig = { |  | ||||||
|                 relative = "editor"; |  | ||||||
|                 border = "single"; |  | ||||||
|                 width = 30; |  | ||||||
|                 height = 30; |  | ||||||
|                 row = 1; |  | ||||||
|                 col = 1; |  | ||||||
|               }; |  | ||||||
|             }; |  | ||||||
| 
 |  | ||||||
|             type = types.submodule { |             type = types.submodule { | ||||||
|               options = { |               options = { | ||||||
|                 enable = mkEnableOption "Tree window will be floating."; |                 enable = mkOption { | ||||||
|  |                   description = "If true, tree window will be floating."; | ||||||
|  |                   type = types.bool; | ||||||
|  |                 }; | ||||||
| 
 | 
 | ||||||
|                 quitOnFocusLoss = mkOption { |                 quitOnFocusLoss = mkOption { | ||||||
|                   type = types.bool; |  | ||||||
|                   description = "Close the floating tree window when it loses focus."; |                   description = "Close the floating tree window when it loses focus."; | ||||||
|  |                   type = types.bool; | ||||||
|                 }; |                 }; | ||||||
| 
 | 
 | ||||||
|                 openWinConfig = mkOption { |                 openWinConfig = mkOption { | ||||||
|                   type = with types; oneOf [str attrs]; |                   description = "Floating window config. See `:h nvim_open_win()` for more details."; | ||||||
|                   description = "Floating window configuration."; |                   type = types.attrs; | ||||||
|                 }; |                 }; | ||||||
|               }; |               }; | ||||||
|             }; |             }; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue