Skyliner: Automated text document outlining
Either way, it's a helpful thing to have - but for some ridiculous reason as far as I know a generic text document outlining tool doesn't exist.
While GitHub's Atom (my code editor of choice) has an atom-ide has an outline view that works great, it only supports a limited number of languages (you have to have a plugin installed for every language), and sometimes it hangs and takes like 30 seconds plus to generate the outline.
To this end, I intend to remedy the situation with a new library I'm writing call Skyliner.
- clike (e.g. c, c++, header files)
- sh (including bash)
The combination of line-by-line parsing, regular expressions, and finite-state automata also means that it's much faster than Atom IDE, because it doesn't have to parse the entire document into an abstract syntax tree before generating the outline.
My goal here is to have good support as many languages as possible, rather than amazing support for just a small handful of languages. This isn't to say that I won't fix issues with existing languages as they come up, but the focus is really on ensuring that whenever I open a text document in Atom.
Once I've added support for a bunch of languages, written some documentation, and published it on npm, I'm going to try my hand it implementing my first plugin for GitHub's Atom. Apparently plugins for Atom aren't too difficult to port to Visual Studio Code, so maybe I'll take a look at doing that too (but I don't use Visual Studio Code much, so not a priority).
The code is open-source already (link below) and completely usable, but since it's an ongoing process you can expect another post on here in the future about my progress.
Skyliner on GitHub: https://github.com/sbrl/skyliner
If you'd be interested in some more detail about how it works, I'll be writing some documentation soon, which will appear in the above Git repository.