--data-directory: directory for storing generated indexes and server data. The default directory is ./ij-shared-indexes-tool-data. You can use a server running locally or remotely or any S3-compatible storage to host these files for access.
"PyCharm can build shared indexes for your project's code. Whenever PyCharm needs to reindex your application, it will use the available shared indexes and will build local indexes for the rest of the project. Normally, this is faster than building local indexes for the entire application from scratch." (source)
We build shared indexes in a way that lets them work on multiple computers. Ordinary indexes depend on file IDs inside file systems that are unique to each local computer. They are additionally affected by the IDE configurations. Shared indexes, by contrast, use hashes of file contents (with mixins included). This allows them to be used outside the environment they were created in.
You can easily try this plugin out by downloading pre-built shared indexes for JDKs that are available from right inside IntelliJ IDEA. If we detect that the CDN contains a shared index for the selected JDK, the IDE will ask you if you want to download it. You can choose to download the index just once or configure the system to download shared indexes automatically.
JetBrains has a guide for creating shared indexes, but it involves many steps, including downloading custom tooling and uploading indexes to a CDN. It also lacks instructions for automating this process, to generate indexes in CI, for example.
After generating indexes, you can upload the output folder to your CDN, or a local server. You can also use shared indexes without a CDN by using a network share or even your local filesystem for testing. Check out my GitHub repo for details: -indexer
ffe2fad269