e33fe37a99
We've been sometimes using lo and sometimes using my slices package, and we need to pick one for consistency. Lo is more extensive and better maintained so we're going with that. My slices package was a superset of go's own slices package so in some places I've just used the official one (the methods were just wrappers anyway). I've also moved the remaining methods into the utils package. |
||
---|---|---|
.. | ||
build_tree_test.go | ||
build_tree.go | ||
collapsed_paths.go | ||
commit_file_node.go | ||
commit_file_tree_view_model.go | ||
commit_file_tree.go | ||
file_node_test.go | ||
file_node.go | ||
file_tree_test.go | ||
file_tree_view_model.go | ||
file_tree.go | ||
node.go | ||
README.md |
FileTree Package
This package handles the representation of file trees. There are two ways to render files: one is to render them flat, so something like this:
dir1/file1
dir1/file2
file3
And the other is to render them as a tree
dir1/
file1
file2
file3
Internally we represent each of the above as a tree, but with the flat approach there's just a single root node and every path is a direct child of that root. Viewing in 'tree' mode (as opposed to 'flat' mode) allows for collapsing and expanding directories, and lets you perform actions on directories e.g. staging a whole directory. But it takes up more vertical space and sometimes you just want to have a flat view where you can go flick through your files one by one to see the diff.
This package is not concerned about rendering the tree: only representing its internal state.