# [CHADTree](https://ms-jpq.github.io/chadtree) File Manager for Neovim, Better than NERDTree. ## Features Illustrated **See full list of screen captures [here](https://github.com/ms-jpq/chadtree/tree/chad/docs/FEATURES.md)** ### I like speed - **Parallel** Filesystem Scan - **[React Like](https://reactjs.org/docs/reconciliation.html)** Reconciling Difference Minimizing Rendering engine - **Never** blocks _You can read more about my [performance optimization](https://github.com/ms-jpq/chadtree/tree/chad/docs/ARCHITECTURE.md) here._ ### I like power - Visual mode selections - Create, Copy, Paste, Delete, Rename, gotta do them all - Quickfix integration - [Bookmarks](https://raw.githubusercontent.com/ms-jpq/chadtree/chad/docs/img/bookmarks.png) ![visual_select.gif](https://raw.githubusercontent.com/ms-jpq/chadtree/chad/docs/img/visual_select.gif) ### I like 21st century - Filtering by glob - Follow mode - Session support (save open folders to disk, pick up where you left off) - Trash support (requires [`trash`](https://formulae.brew.sh/formula/trash) or [`trash-cli`](https://github.com/andreafrancia/trash-cli)) - `ls -l` statistics - Correct! handling of symlinks ![filtering.gif](https://raw.githubusercontent.com/ms-jpq/chadtree/chad/docs/img/filtering.gif) ### I like version control - Asynchronous parse git status (untracked, modified, staged) - Full support for git submodules ![git.gif](https://raw.githubusercontent.com/ms-jpq/chadtree/chad/docs/img/git_showcase.gif) ### I like colours - Full `$LS_COLOR` support! (shows same colours as unix `ls` & `tree` commands) - [Github coloured](https://github.com/github/linguist) icons (over 600 colours!) - Three different sets of icons out of the box - Four built-in themes - nord, solarized, trapdoor, vim-syntax ![ls_colours.png](https://raw.githubusercontent.com/ms-jpq/chadtree/chad/docs/img/ls_colours.png) ![github_colours.png](https://raw.githubusercontent.com/ms-jpq/chadtree/chad/docs/img/github_colours.png) ### I like refinement - Maintain cursor position on relevant files even when during movements. - Maintain selection when copying, moving files - Mimetype warning (so you don't accidentally open an image) - Validating config parser **(notice, I added an extra `"dog"` param)** ![mime warn.png](https://github.com/ms-jpq/chadtree/raw/chad/docs/img/mimetype.png) ![schema error.png](https://github.com/ms-jpq/chadtree/raw/chad/docs/img/schema_error.png) ### I like documentation - Built-in help command in a floating window! - Over 1000 lines of meticulous docs covering every option / function! **Use `:CHADhelp` to view [documentation](https://github.com/ms-jpq/chadtree/tree/chad/docs)** **Use `:CHADhelp --web` to open documentation in your browser!** (If you have one installed) ## Install **Minimum version**: `python`: 3.8.2, `nvim`: `0.4.3`, make sure to have `virtualenv` installed (e.g.: `sudo apt install --yes -- python3-venv`) Install the usual way, ie. [VimPlug](https://github.com/junegunn/vim-plug), [Vundle](https://github.com/VundleVim/Vundle.vim), etc ```vim Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} ``` You will have to run `:CHADdeps` when installing / updating. This will install CHADTree's dependencies locally inside `chadtree/.vars/runtime`. doing `rm -rf chadtree/` will cleanly remove everything CHADTree uses on your computer. ## Usage To toggle CHADTree run command `:CHADopen`. Set it to a hotkey for convenience. ```vimL nnoremap v CHADopen ``` To see a list of hot keys: Either use `:CHADhelp keybind` or open in browser using [`:CHADhelp keybind --web`](https://github.com/ms-jpq/chadtree/tree/chad/docs/KEYBIND.md) ### FAQ Q: Sometimes Windows will get stuck with CHADTree decorations when I do not want them to be, how do I resolve this? A: Run `:CHADrestore` ### Recommendations Add a hotkey to clear quickfix list: ```vimL nnoremap l call setqflist([]) ``` ## If you like this... Also check out - [`sad`](https://github.com/ms-jpq/sad), its a modern `sed` that does previews with syntax highlighting, and lets you pick and choose which chunks to edit. - [`coq.nvim`](https://github.com/ms-jpq/coq_nvim), it's a FAST AS FUCK completion client with shit tons of features. - [isomorphic-copy](https://github.com/ms-jpq/isomorphic-copy), it's a cross platform clipboard that is daemonless, and does not require third party support. ## Special Thanks CHADTree does not define it's own colours beyond some minimal defaults, all themes are imported from other open source projects. > The base icons are imported from the [vim-devicon](https://github.com/ryanoasis/vim-devicons) > All emoji icons are imported from the [vim-emoji-icon-theme](https://github.com/adelarsq/vim-emoji-icon-theme) > Some themes are imported from [dircolors-solarized](https://github.com/seebi/dircolors-solarized) > Some themes are imported from [nord-dircolors](https://github.com/arcticicestudio/nord-dircolors) > Some themes are imported from [LS_COLORS](https://github.com/trapd00r/LS_COLORS) > Some themes are imported from [vim-nerdtree-syntax-highlight](https://github.com/tiagofumo/vim-nerdtree-syntax-highlight)