Indexing API is an entry point for Go To File functionality which should be fast for CND projects as it is now with own impl
Btw, is it possible to do the following to prevent influence of slow indexers:
- Indexing API prepares list of files (for Go To File)
- after list is ready it is passed concurrently for registered indexers
it should allow to prevent slow down of main features when new language with slow impl is added to IDE
(In reply to comment #1)
> Btw, is it possible to do the following to prevent influence of slow indexers:
> - Indexing API prepares list of files (for Go To File)
I had an idea that might help with this. IMO we should change the indexing infrastructure, as you say, to first gather a list of files in open project. This list would be built based on the generic source groups provided by projects (no classpath/globalpath registry at this stage). The list would include essentially all files (not just sources) from all open projects. This list would server as data for (1) goto-file functionality and (2) the indexers.
> - after list is ready it is passed concurrently for registered indexers
> it should allow to prevent slow down of main features when new language with
> slow impl is added to IDE
The indexers would, however, be launched for the registered source roots as they are now. The files-crawling could be skipped, because it's done in the first stage. We would have to translate file paths for the indexers, because they need the file paths relative to a source root.
I can see several advantages:
- building the files list does not depend on the number and type of indexer registered in the system
- the goto file feature is available right after the files list is built (no need to wait for any indexers)
- there is no need to deal with classpath (API) in projects that otherwise don't have/use this concept (eg. cnd project)
- it will cover issue #162580 (Allow indexing files that are not under GlobalPathRegistry's roots)
- we won't need any special API for excluding indexers (mimetypes)
This was assigned to Rasta - Tomasi, if you will not be able to work on this please change the target milestone to TBD or NEXT.
Tomasi, Vladimir, is this still needed/planned for 7.2?