Hack Tree-Sitters HTML Debug Output To Dark Mode
I'm working on a Tree-Sitter^ts^^ parser for Neopolitan. I'm using the `-D`` flag for command line tests to produce a `log.html`` file with a visual graph of the output. It's easier to figure out what's going on when things aren't going right.
The graph is produced by graphviz^gv^^ via an internal call STDIN call. The output is black text on a white background. As someone who like working in dark mode it's a bit of a flash-bang every time I switch to it.
To fix that, I pulled down the source code^sc^^ and made the following edits:
Add this to the style sheet section
body {
background-color: darkslategray;
}
Change:
fprintf(self->dot_graph_file, "graph {\nlabel=\"");
To:
fprintf(self->dot_graph_file, "graph {\nbgcolor=\"darkslategray\"\nlabel=\"");
Change:
fprintf(f, "digraph stack { \n");
To:
fprintf(f, "digraph stack { \nbgcolor=\"darkslategray\"\n");
Change:
fprintf(f, "digraph tree {\n");
To:
fprintf(f, "digraph tree {\nbgcolor=\"darkslategray\"\n");
Installing The Hack
Installing the modified version of Tree-Sitter is done by running:
cargo install --path cli
That drops the binary under:
~/.cargo/bin/tree-sitter
My main tree-sitter is under:
/opt/homebrew/bin/tree-sitter
I could switch things around to use the new one 100% of the time, but I just call the `~/.cargo/bin`` version directly when testing like:
~/.cargo/bin/tree-sitter test
-
The above changes the background color only. The text and lines stay black. It's possible to change them as well, but this is fine for me
-
graphviz must be installed to generate the html. I got it using the homebrew command `brew install graphviz``
Reference
Reference
Reference
If all goes well, this is what I'll be using to do syntax highlighting for neopolitan in neovim