Skip to content

refactor(types): change neotree.Config to a partial class #1722

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lua/neo-tree/defaults.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---@type neotree.Config
---@type neotree.Config.Base
local config = {
-- If a user has a sources list it will replace this one.
-- Only sources listed here will be loaded.
Expand Down
78 changes: 40 additions & 38 deletions lua/neo-tree/types/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -106,45 +106,47 @@

---@alias neotree.Config.BorderStyle "NC"|"none"|"rounded"|"shadow"|"single"|"solid"

---@class (exact) neotree.Config
---@field sources string[]?
---@field add_blank_line_at_top boolean?
---@field auto_clean_after_session_restore boolean?
---@field close_if_last_window boolean?
---@field default_source string?
---@field enable_diagnostics boolean?
---@field enable_git_status boolean?
---@field enable_modified_markers boolean?
---@field enable_opened_markers boolean?
---@field enable_refresh_on_write boolean?
---@field enable_cursor_hijack boolean?
---@field git_status_async boolean?
---@field git_status_async_options neotree.Config.GitStatusAsync?
---@field hide_root_node boolean?
---@field retain_hidden_root_indent boolean?
---@class (exact) neotree.Config.Base
---@field sources string[]
---@field add_blank_line_at_top boolean
---@field auto_clean_after_session_restore boolean
---@field close_if_last_window boolean
---@field default_source string
---@field enable_diagnostics boolean
---@field enable_git_status boolean
---@field enable_modified_markers boolean
---@field enable_opened_markers boolean
---@field enable_refresh_on_write boolean
---@field enable_cursor_hijack boolean
---@field git_status_async boolean
---@field git_status_async_options neotree.Config.GitStatusAsync
---@field hide_root_node boolean
---@field retain_hidden_root_indent boolean
---@field log_level "trace"|"debug"|"info"|"warn"|"error"|"fatal"|nil
---@field log_to_file boolean|string?
---@field open_files_in_last_window boolean?
---@field open_files_do_not_replace_types string[]?
---@field open_files_using_relative_paths boolean?
---@field popup_border_style neotree.Config.BorderStyle?
---@field resize_timer_interval integer|-1?
---@field sort_case_insensitive boolean?
---@field sort_function fun(a: any, b: any)?
---@field use_popups_for_input boolean?
---@field use_default_mappings boolean?
---@field source_selector neotree.Config.SourceSelector?
---@field event_handlers neotree.Event.Handler[]?
---@field default_component_configs neotree.Config.ComponentDefaults?
---@field renderers neotree.Config.Renderers?
---@field nesting_rules neotree.FileNesting.Rule[]?
---@field commands table<string, fun()>?
---@field window neotree.Config.Window?
---@field log_to_file boolean|string
---@field open_files_in_last_window boolean
---@field open_files_do_not_replace_types string[]
---@field open_files_using_relative_paths boolean
---@field popup_border_style neotree.Config.BorderStyle
---@field resize_timer_interval integer|-1
---@field sort_case_insensitive boolean
---@field sort_function? fun(a: any, b: any):boolean
---@field use_popups_for_input boolean
---@field use_default_mappings boolean
---@field source_selector neotree.Config.SourceSelector
---@field event_handlers? neotree.Event.Handler[]
---@field default_component_configs neotree.Config.ComponentDefaults
---@field renderers neotree.Config.Renderers
---@field nesting_rules neotree.FileNesting.Rule[]
---@field commands table<string, fun()>
---@field window neotree.Config.Window
---
---@field filesystem neotree.Config.Filesystem?
---@field buffers neotree.Config.Buffers?
---@field git_status neotree.Config.GitStatus?
---@field document_symbols neotree.Config.DocumentSymbols?
---@field filesystem neotree.Config.Filesystem
---@field buffers neotree.Config.Buffers
---@field git_status neotree.Config.GitStatus
---@field document_symbols neotree.Config.DocumentSymbols

---@class (exact) neotree.Config._Full : neotree.Config
---@class (exact) neotree.Config._Full : neotree.Config.Base
---@field prior_windows table<string, integer[]>?

---@class (partial) neotree.Config : neotree.Config.Base
Loading