Indexing in DataGrip is responsible for the core features of the IDE: code completion, inspections, finding usages, navigation, syntax highlighting, and refactorings.
It starts when you open your project, switch between branches, after you load or unload plugins, and after large external file updates. For example, this can happen if multiple files in your project are created or generated after you build your project.
Indexing examines the code of your project to create a virtual map of objects and code elements that make up your script. This is necessary to provide the coding assistance functionality, search, and navigation instantaneously. After indexing, the IDE is aware of your code. That is why, actions like finding usages or smart completion are performed immediately.
While indexing is in progress, the above-mentioned coding assistance features are unavailable or partially available. Nevertheless, you can still work with the IDE: you can type code, work with VCS features, configure settings, and perform other code unrelated actions.
The amount of time required for indexing vary depending on your project: the more complex your project is, the more files it comprises, the more time it takes to index it. You can decrease the indexing time by excluding files and folders and by unloading modules.
Note that if indexing is already in progress, you cannot speed it up. Wait for the process to finish and then you can temporarily simplify your project. The next time, indexing will finish sooner.