-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Track is a plugin for bookmarking specific pieces of information that is relevant to things that you are working on at the moment.
The said "things" could be one or, more of the following.
- Code files from your current project, files from other projects that have used the same logic on some part, etc.
- Websites i.e. blogs, YouTube videos or, maybe a documentation website.
- Offline images, audios, videos, etc.
- Manuals i.e.
man find(1)
, etc. - Terminal commands that you do not want to run again.
- And, more (Except your biological mother. She is too over-weight).
This plugin borrows its core concept from GIT. See the following.
- We have a
Root
which is essentially the project directory that GIT will track. - Then on the next level we have
Branch
which is similar to branches in GIT. - And, on the final level we have the marks i.e. the files, binaries, medias, etc. In terms of GIT, these are the actual files that GIT will track.
Note that, Root is just a list of Branches and a Branch is a list of Marks. This exists so that you can have several versions of your marks list for working on specific parts of your project (say).
The credit to this idea goes to @nikfp.
Root represents a directory in track.nvim. This is synonymous to current working directory.
A root will contain a map of branches and the branches will contain marks. A root will
also contain a main
key which (just like GIT) will be the default branch of the root.
A Root
will always contain a main
branch which is not removable.
A virtual marks list. Allows one to create different versions of marks that is better suited to a part of a project that you might be working on.
Consider the following example for instance.
Working at documenting your project will require you to frequent
README.md, CONRIBUTING.md and doc/index.html
(say) files and writing tests for your project
would require you to frequent the tests/mocks.java, tests/fixtures.java and https://junit.com
files and sites.
Normally, without branches one may put all project files in
the mark-list or, remove files README.md, CONRIBUTING.md and doc/index.html
and then add
tests/mocks.java, tests/fixtures.java and https://junit.com
files and vice-versa. This adds overhead.
Now, with branches you just need to stash the current branch which contains README.md, CONRIBUTING.md and doc/index.html and add tests/mocks.java, tests/fixtures.java and https://junit.com
to the new branch.
This is similar to GIT branches. You create feature branches for working on them separately.
The actual URIs that will be used as bookmarks. Note that you can virtually add anything to this. Files, terminal commands, manpages, websites, media files, etc.