an interactive, multi-threaded file tree viewer
 
 
 
Go to file
Justin Collier 0f37c1d479
Merge branch 'minor-0.4.0'
2023-08-02 15:48:50 -07:00
.assets fixed demo; small README fix 2020-09-30 16:20:13 -07:00
src renamed to ntree, updated changelog, migrated links 2023-08-02 15:48:35 -07:00
.clang-format rewritten using C++17; new features 2020-09-30 13:04:14 -07:00
.gitignore renamed to ntree, updated changelog, migrated links 2023-08-02 15:48:35 -07:00
CHANGELOG.md renamed to ntree, updated changelog, migrated links 2023-08-02 15:48:35 -07:00
CMakeLists.txt renamed to ntree, updated changelog, migrated links 2023-08-02 15:48:35 -07:00
LICENSE Initial commit 2020-06-22 20:33:12 -07:00
Makefile renamed to ntree, updated changelog, migrated links 2023-08-02 15:48:35 -07:00
README.md renamed to ntree, updated changelog, migrated links 2023-08-02 15:48:35 -07:00

README.md

ntree

     _
 _ _| |_ _ _ ___ ___
| ' \  _| '_/ -_) -_) ntree: an interactive file tree viewer
|_||_\__|_| \___\___| Copyright (C) 2020-2023 Justin Collier
------------------------------------------------------------

About

ntree is intended for use as an auxiliary window for software development.
Use it to keep track of the relevant parts of your project structure.

ntree

  • provides a live view of any number of directory trees
  • links with libgit2 to skip gitignored paths for each tree
  • allows for manual pattern match exclusions
  • skips hidden files by default

Requirements

  • GNU/Linux
  • >= C++17 (tested with Clang 10.0.0, Clang 12.0.0, GCC 10.2.1, and GCC 11.0.0)
  • libgit2 [optional; compile with cmake .. -DNTREE_NO_GIT=ON to disable]
  • ncurses
  • pthread
  • CMake >=3.0
  • GNU Make [optional; Makefile calls CMake]

Usage

git clone https://git.jpcx.dev/ntree
cd ntree
make
sudo make install

# for this directory
ntree

# for other directories:
ntree ../another_dir

# for multiple directories:
ntree . some_dir ../another_dir

# to exclude patterns (ECMAScript Regex)
ntree -I thirdparty|assets

# to set a max descent level
ntree -L 3

Controls

h, j, k, l for motion

[hold shift for fast motion]

press . to toggle hidden file display
press g to toggle gitignored file display
press i to toggle pattern-ignored file display
press + to increase descent level
press - to decrease descent level

press q to exit

TODO

  • improve colors; vary according to file type
  • improve multithreading mutex efficiency
  • extend to Windows; provide replacement for -lpthread

Contribution

Contribution is welcome! Please make a pull request.

License

Copyright (C) 2020-2023 Justin Collier

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.