Welcome to Searchfox
Query LanguageQueries entered into the search box use exact string matching. No search operators are supported. Case insensitive matching and regular expression matching can be requested with the check boxes. Path filtering uses globbing. A path matches even if only a substring of the path is matched by the glob. Use the
$operators to match the beginning or end of the path. Here are some examples:
- Find all paths containing the substring "
- Find all paths starting with
- Find all paths containing "
- Find all paths ending with "
- Find all C++ files in
js/src, but not in subdirectories (i.e.,
*does not match
- Find all C++ files in
js/srcor in subdirectories (i.e.,
- Find all C++ source or header files in
js/srcor in subdirectories.
Cross-referencingOnce you have arrived at a file, you can mouse over identifiers. If the color of the identifier changes, then clicking on the identifier will open a context menu for cross-referencing identifiers.
reviveCrashedTab” and clicking. A context menu will open and you can choose to search for all references to the symbol (definitions, assignments, and uses).
over the same identifier in the following:
In this case, you're given the opportunity to search for
SessionStore.reviveCrashedTab (and not
SessionStoreInternal.reviveCrashedTab). Also, since there is only one definition of
SessionStore.reviveCrashedTab, you can jump directly to it.
Syntax HighlightingSearchfox uses semantic syntax highlighting. Types are shown in teal (blue-green). Definitions are shown in bold. Hovering over an identifier highlights other uses of that identifier.
Version 2.0 (May 31, 2016)
- Semantic syntax highlighting
Version 1.5 (March 16, 2016)
- IDL support
- XBL support
- Support for C++ variables, enums, and macros
- Indexes generated code
Version 1.0 (January 10, 2016)
- Full text search of entire tree
Indexing is provided via Livegrep.
Global variables are indexed as properties. Heuristics allow code like
this.methodto be indexed as
- Cross-referencing C++ code
Only functions are indexed. Support for fields and types is coming soon. Methods are indexed by walking up the inheritance hierarchy to find the uppermost declaration of the method (the root). All methods transitively overriding that method are indexed together. With multiple inheritance, there may be more than one root method; in this case, the first one is chosen arbitrarily. This is a bug to be fixed.