IndexingAPI Indexing API allows all clients to request (re)indexing of a certain index, or certain root of project sources. Indexing SPIs allow module owners to implement indexer for a particular feature or language.
This API was historically part of Parsing API, but was separated into its own module.
There are situations where it is desireable to exclude files from the NetBeans indexing infrastructure. Implementors of IndexabilityQueryImplementation are queried whether an indexer should be invoked for a given file.
Indexing for a file can be rejected verbatim (
boolean preventIndexing(FileObject fo)) or more specific by
indexer name, URL to the file to be indexed and the UTL of the indexing root.
boolean preventIndexing(String indexerName, URL indexable, URL rootUrl).
One such example are Angular projects, where code assistence is provided by the typescript integration by the
language server. In these cases the
code, that the IDE user does not need to be indexed, but which take a lot of time to parse. A hypothetical
plugin could check if an
angular.json file is present and then prevent the
from indexing files in the
Parsers may need to provide reduced data for indexing, or enriched data for source parsing. The added isIndexingTask() method identifies tasks applied by indexing infrastructure.
Added a support for custom camel case separators and custom camel case parts into
Historically the module offered both APIs for Parsing (invoking parser, implementing parser) and Indexing (refresh index, index SPIs). Those APIs are typically used by unrelated pieces of code, possibly with the exception of "refresh" actions.
The indexing now resides separately in its
parsing.indexing module. Binary compatibility
is kept by using module-auto-deps.xml.
Please also refer to the API Changes document of the parental module.
The sources for the module are in the Apache Git repositories or in the GitHub repositories.
XXX no answer for deploy-dependencies
Read more about the implementation in the answers to architecture questions.