6 ms·
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?
- pmontra 4y agoMost of the times I use less in the terminal. Or vi, it's not easy to accidentally make a change and save it. Or the browser in GitHub, Bitbucket or what else hosts the project. I 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.
- OrderlyTiamat 4y agoHave you considered turning to the dark side? You can have vim keybindings in emacs with evil, so you can stay in the normal state like in vi, so accidental changes should than be caught identically as in vi. But I guess having different tools for reading and writing is valuable in itself, too.
- water8 4y agoFind and grep. I don’t understand what is special about what you’re describing that isn’t done in hundred different IDEs
- tgflynn 4y agoI don't see the need. If you're worried about making accidental changes there are many ways to prevent that, depending on editor/IDE and OS. For me almost all the code I look at is checked into some git repo so accidental changes are a non-issue.
- MatthiasPortzel 4y agoIf it’s a project I already have open in VS Code, I won’t use a separate tool. 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).
- fxtentacle 4y agoThe JetBrains IDEs are fantastic for exploring unknown code.
- foobarandlmj 4y agosee: https://github.com/CoatiSoftware/Sourcetrail https://github.com/CoatiSoftware/Sourcetrail , even tho the project is marked archived, it's pretty solid, i personally still use a 2019 release. i also have a self hosted instance of this : https://elixir.bootlin.com/linux/latest/source 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.
- neutered_knot 4y agoI do code review for legal cases on occasion. When I do, and when possible as sometimes the tools I can use are specified before I get the job, I like to use doxygen (https://www.doxygen.nl/ https://www.doxygen.nl/) to convert the code to html. It also creates call graphs. 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.
- kingkongjaffa 4y agoHmm I’m familiar with generating documentation for functions with doc strings but how do you convert the code to html and generate the graphs?
- mellosouls 4y agoNot quite what you're asking but once I've narrowed down a code base to the particular area of interest, I use an old school method for grokking: 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.
- bitwize 4y agoC-x C-r (in Emacs)
- blt 4y agoMany features in IDEs like "jump to definition" and "find references" are already designed for reading code. Reading code is a huge part of software development, so generic software development tools should already be good for reading code.
- ilaksh 4y agoGitHub?
- busterarm 4y agoNot an application but a process: 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.
- f0e4c2f7 4y agoLess, grep.