OpenGrok

OpenGrok is a source code cross-reference and search engine. It helps programmers search, cross-reference, and navigate source code trees to aid program comprehension.

It can read program file formats and version control histories such as Monotone, Subversion, Mercurial, Git, ClearCase, Perforce, AccuRev, Razor, and Bazaar.

The name comes from the term grok, a computing jargon term meaning "intuitive understanding".

OpenGrok is being developed mainly by the community with the help of a few engineers from the Oracle Corporation. OpenGrok is released under the terms of the Common Development and Distribution License (CDDL).

It is mainly written in Java, with some tooling done in Python. It relies on the analysis done by Ctags. There is an official Docker image available.

Features
OpenGrok supports:
 * Full text search
 * Definition search
 * Identifier search
 * Path search
 * History search
 * Showing matching lines
 * Hierarchical search
 * Query syntax
 * Incremental updates
 * Syntax highlighting cross-references
 * Quick navigation inside files
 * Interface for SCM
 * Usable URLs
 * Individual file download
 * Changes at directory level
 * Multi language support
 * Suggester
 * REST API