See: Description
Package | Description |
---|---|
org.netbeans.modules.parsing.api.indexing | |
org.netbeans.modules.parsing.spi.indexing | |
org.netbeans.modules.parsing.spi.indexing.support |
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 node_modules
folder often contains huge amounts of javascript
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 js
indexer
from indexing files in the node_modules
directory.
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.
QuerySupport
Added a support for custom camel case separators and custom camel case parts into QuerySupport
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.