feat: add Android Studio integration (v1.1.0)
Generate .idea/ run configurations for one-click build and deployment directly from Android Studio. Students can now open projects in the IDE they already know and hit the green play button to deploy to their robot. Run configurations generated: - Build: compiles APK without deploying (build.sh / build.bat) - Deploy (auto): auto-detects USB or WiFi connection - Deploy (USB): forces USB deployment (deploy.sh --usb) - Deploy (WiFi): forces WiFi deployment (deploy.sh --wifi) - Test: runs unit tests (./gradlew test) Both Unix (.sh) and Windows (.bat) variants are generated. Android Studio automatically hides the configurations whose script files don't exist, so only platform-appropriate configs appear in the Run dropdown. workspace.xml configures the project tree to hide internal directories (build/, .gradle/, gradle/) and expand src/ by default, giving students a clean view of just their code and the deployment scripts. Technical notes: - Uses ShConfigurationType (not the old ShellScript type) for Android Studio 2025.2+ compatibility - All paths use $PROJECT_DIR$ for portability - INTERPRETER_PATH is /bin/bash on Unix, cmd.exe on Windows - upgrade.rs regenerates all .idea/ files so run configs stay in sync with any future deploy.sh flag changes Requires Shell Script plugin (by JetBrains) to be installed in Android Studio. README.md updated with installation instructions. Files modified: - src/project/mod.rs: generate_idea_files() writes 5 XML files per platform - src/commands/upgrade.rs: add .idea/ files to safe_to_overwrite
This commit is contained in:
@@ -52,6 +52,19 @@ pub fn upgrade_project(path: &str) -> Result<()> {
|
||||
"gradle/wrapper/gradle-wrapper.properties",
|
||||
"gradle/wrapper/gradle-wrapper.jar",
|
||||
".gitignore",
|
||||
// Android Studio integration — regenerated so run configs stay in
|
||||
// sync if deploy.sh flags or script names ever change.
|
||||
".idea/workspace.xml",
|
||||
".idea/runConfigurations/Build.xml",
|
||||
".idea/runConfigurations/Build (Windows).xml",
|
||||
".idea/runConfigurations/Deploy (auto).xml",
|
||||
".idea/runConfigurations/Deploy (auto) (Windows).xml",
|
||||
".idea/runConfigurations/Deploy (USB).xml",
|
||||
".idea/runConfigurations/Deploy (USB) (Windows).xml",
|
||||
".idea/runConfigurations/Deploy (WiFi).xml",
|
||||
".idea/runConfigurations/Deploy (WiFi) (Windows).xml",
|
||||
".idea/runConfigurations/Test.xml",
|
||||
".idea/runConfigurations/Test (Windows).xml",
|
||||
];
|
||||
|
||||
println!("{}", "Updating infrastructure files...".bright_yellow());
|
||||
|
||||
Reference in New Issue
Block a user