Ask HN: Is there a tool you use just for reading code?
When writing code, I'm a huge fan of using keyboard driven development. But sometimes I just want to read code, either to review or to learn things in a mouse-driven and read-only environment. Git forges seem like the obvious answer to this but they're slower to browse and not as customizable as your favorite text editor/IDE.
Is there an application you use to read code? And am I alone in feeling the need of such tool?
15 comments
[ 3.0 ms ] story [ 41.4 ms ] threadI write code with emacs. I could turn a file in read only mode but I prefer not to mix what I'm working on with what I'm only reading.
But I guess having different tools for reading and writing is valuable in itself, too.
I don’t understand what is special about what you’re describing that isn’t done in hundred different IDEs
If it’s a single file I want to check out, I have an alias for “nvim -R” which I use a lot. Vim’s syntax highlighting is very good, prevents me from making accidental changes, and is very convienent if I’m in the terminal already.
If I’m looking at code on GitHub then their code-search feature is very cool (cs.GitHub.com or by pressing cmd+shift+f on GitHub).
i also have a self hosted instance of this : https://elixir.bootlin.com/linux/latest/source
what you asked, comes across with code auditing as well, i wasn't surprised to know security researchers use sourcetrail as well.
hope your favourite language is supported.
It is nice because it links to function and method definitions where it can, so as I go through the code I open each function I am teaching in a new tab - the open tab set simulates the call stack.
Print the relevant sections off to read and use pen to mark and note against them; I find it extremely useful (and less tiring on the eyes) for linking functions and clarifying code.
1) Run it. See what it does.
2) Read it. Identify main function(s).
3) Trace it. Use a debugger w/ breakpoints for this. See if you can follow how it runs.
4) Print it. Review interesting parts that you don't quite understand away form a computer.