Source code browsers
Navigators

© Lead Image © alexandragl, 123RF.com
If you've ever struggled to get a sense of someone else's code, the right tool could save you hours of grepping.
Open source is all about code. Contributors read tons of code, of which they have written only a small fraction. Being able to comprehend a program is crucial to the contribution process, and free software is all about contribution. In other words, you need tools to read and understand code.
These tools are called "source code browsers" or "source navigators." Linux has many of them, and normally they fall in two large categories. Older ones implement their own (simplified) parsers to recognize language symbols, such as function definitions, and record their location in the source code. This works fast and reasonably well, yet most programming languages have complex grammar that simplified parsers can't fully embrace. Newer browsers rely on the tool set to build an abstract syntax tree (AST) [1]. This makes indexing more precise, but also slower and more cumbersome to generate. Choosing one approach over another depends on the situation, and I hope this text provides you with some guidance.
Ubiquitous Ctags
Ctags is the de facto standard for source code indexers in Linux. As the name suggests, it builds on the "tag" concept. Put simply, a tag is a syntax construct that has an index entry, such as a class, function, or macro definition. This index comes in a so-called "tags" file, and the main purpose of the non-interactive ctags
command is to generate tags
files from source-code trees. Tags files have a well-defined format, and virtually all code editors in Linux understand it.
[...]
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

News
-
Linux Hits an Important Milestone
If you pay attention to the news in the Linux-sphere, you've probably heard that the open source operating system recently crashed through a ceiling no one thought possible.
-
Plasma Bigscreen Returns
A developer discovered that the Plasma Bigscreen feature had been sitting untouched, so he decided to do something about it.
-
CachyOS Now Lets Users Choose Their Shell
Imagine getting the opportunity to select which shell you want during the installation of your favorite Linux distribution. That's now a thing.
-
Wayland 1.24 Released with Fixes and New Features
Wayland continues to move forward, while X11 slowly vanishes into the shadows, and the latest release includes plenty of improvements.
-
Bugs Found in sudo
Two critical flaws allow users to gain access to root privileges.
-
Fedora Continues 32-Bit Support
In a move that should come as a relief to some portions of the Linux community, Fedora will continue supporting 32-bit architecture.
-
Linux Kernel 6.17 Drops bcachefs
After a clash over some late fixes and disagreements between bcachefs's lead developer and Linus Torvalds, bachefs is out.
-
ONLYOFFICE v9 Embraces AI
Like nearly all office suites on the market (except LibreOffice), ONLYOFFICE has decided to go the AI route.
-
Two Local Privilege Escalation Flaws Discovered in Linux
Qualys researchers have discovered two local privilege escalation vulnerabilities that allow hackers to gain root privileges on major Linux distributions.
-
New TUXEDO InfinityBook Pro Powered by AMD Ryzen AI 300
The TUXEDO InfinityBook Pro 14 Gen10 offers serious power that is ready for your business, development, or entertainment needs.