Feature idea
As an IntelliJ, PyCharm or Android Studio user, I want the IDE-specific metadata (.idea, *.properties, .vmoptions) to be stored outside of my workspace under $IDE_HOME/.ide/«ide»/«workspace» so that my workspace stays clean and independent of the IDE being used.
Additional context
Part of #2142. Builds on #2172 (getIdeMetadataPath()).
The three JetBrains-based IDEs share the superclass IdeaBasedIdeToolCommandlet, so most of the change can be solved once in the common super-class:
- vmoptions: switch the central write in
IdeaBasedIdeToolCommandlet.runTool from the workspace to getIdeMetadataPath().
*.properties env vars (IDEA_PROPERTIES, PYCHARM_PROPERTIES, STUDIO_PROPERTIES): point to getIdeMetadataPath().
.idea (IntelliJ only): needs a spike first — IntelliJ expects .idea in the opened project root, so relocation likely requires a symlink or idea.config.path in idea.properties. To be clarified before implementation.
- Migration: move existing metadata of all workspaces to the new location (idempotent), registered in
IdeMigrator.
IdeMigrator requires strictly ascending migration versions — coordinate the migration version with #2174 depending on merge order.
Feature idea
As an IntelliJ, PyCharm or Android Studio user, I want the IDE-specific metadata (
.idea,*.properties,.vmoptions) to be stored outside of my workspace under$IDE_HOME/.ide/«ide»/«workspace»so that my workspace stays clean and independent of the IDE being used.Additional context
Part of #2142. Builds on #2172 (
getIdeMetadataPath()).The three JetBrains-based IDEs share the superclass
IdeaBasedIdeToolCommandlet, so most of the change can be solved once in the common super-class:IdeaBasedIdeToolCommandlet.runToolfrom the workspace togetIdeMetadataPath().*.propertiesenv vars (IDEA_PROPERTIES,PYCHARM_PROPERTIES,STUDIO_PROPERTIES): point togetIdeMetadataPath()..idea(IntelliJ only): needs a spike first — IntelliJ expects.ideain the opened project root, so relocation likely requires a symlink oridea.config.pathinidea.properties. To be clarified before implementation.IdeMigrator.IdeMigratorrequires strictly ascending migration versions — coordinate the migration version with #2174 depending on merge order.