{"id":41589751,"url":"https://github.com/biuld/change-classes-logger","last_synced_at":"2026-01-24T09:12:18.742Z","repository":{"id":291606098,"uuid":"978160915","full_name":"biuld/change-classes-logger","owner":"biuld","description":"A tool to help you manually hotswap changed classes.","archived":false,"fork":false,"pushed_at":"2025-05-06T17:11:38.000Z","size":205,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T18:23:36.119Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/biuld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-05T15:02:27.000Z","updated_at":"2025-05-06T17:11:32.000Z","dependencies_parsed_at":"2025-05-06T18:23:39.488Z","dependency_job_id":"d044487d-c5a0-4981-a4df-a45797016f4c","html_url":"https://github.com/biuld/change-classes-logger","commit_stats":null,"previous_names":["biuld/change-classses-logger","biuld/change-classes-logger"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/biuld/change-classes-logger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biuld%2Fchange-classes-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biuld%2Fchange-classes-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biuld%2Fchange-classes-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biuld%2Fchange-classes-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/biuld","download_url":"https://codeload.github.com/biuld/change-classes-logger/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/biuld%2Fchange-classes-logger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28722332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T08:27:05.734Z","status":"ssl_error","status_checked_at":"2026-01-24T08:27:01.197Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-24T09:12:18.687Z","updated_at":"2026-01-24T09:12:18.733Z","avatar_url":"https://github.com/biuld.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# change-classes-logger\n\nA plugin that helps you manually hot-reload modified class files in IntelliJ IDEA.\n\n![Plugin Screenshot](img/screenshot.png)\n\n[中文文档](README.zh-CN.md)\n\n## Rationale\n\nThis plugin enables selective hot-swapping of classes, addressing a common limitation in IntelliJ IDEA's built-in hot-reload mechanism:\n\n### Necessity\nIntelliJ IDEA's default hot-reload mechanism automatically reloads all modified classes in the classpath. While this works well in most scenarios, it becomes problematic when incremental compilation fails and incorrectly recompiles unnecessary classes. This plugin provides manual control over which classes to hot-reload, effectively solving this issue.\n\n### Feasibility\nWhen only modifying method implementations, reloading the current class is sufficient. Even when adding or removing class members and methods, we can determine which classes have changed by checking git status, allowing targeted hot-swapping using this tool. This implementation approach is both simple and reliable, meeting the needs of most development scenarios.\n\n## Features\n\n- Display all class files with color-coded status indicators:\n  - Blue: Modified files\n  - Green: Added files\n  - Purple: Files newer than debug session\n  - Default: Unchanged files\n- Manual selection for hot-reloading\n- Real-time class count display\n- File search filtering\n- Support for multiple source file types (.java, .kt, .scala, .groovy)\n- Enhanced hot-reloading capabilities when combined with [HotSwapHelper](https://github.com/gejun123456/HotSwapHelper)\n\n## System Requirements\n\n### Build Requirements\n- JDK 21 or higher\n- Gradle 8.0 or higher\n\n### Target IDE Version\n- IntelliJ IDEA 2025.1 or higher\n- Supports Java and Kotlin projects\n\n## Installation\n\n### Method 1: Download from Release (Recommended)\n\n1. Visit the [GitHub Releases](https://github.com/biuld/change-classes-logger/releases) page\n2. Download the latest version of `changed-classes-logger-*.zip` file\n3. Install the plugin in IntelliJ IDEA\n   - Open IntelliJ IDEA\n   - Go to Settings/Preferences -\u003e Plugins\n   - Click the gear icon and select \"Install Plugin from Disk...\"\n   - Select the downloaded zip file\n   - Restart the IDE\n\n### Method 2: Build from Source\n\n1. Clone the repository\n```bash\ngit clone https://github.com/biuld/change-classes-logger.git\ncd change-classes-logger\n```\n\n2. Build the plugin\n```bash\n./gradlew buildPlugin\n```\nAfter building, the plugin file will be located at `build/distributions/change-classes-logger-1.1-SNAPSHOT.zip`\n\n3. Install the plugin in IntelliJ IDEA\n   - Open IntelliJ IDEA\n   - Go to Settings/Preferences -\u003e Plugins\n   - Click the gear icon and select \"Install Plugin from Disk...\"\n   - Select the `change-classes-logger-1.1-SNAPSHOT.zip` file\n   - Restart the IDE\n\n## Usage\n\n1. Start a debug session\n2. Modify source code files\n3. Build the project\n   \u003e Recommended to run Gradle's class task: `./gradlew classes`\n4. Find the \"Changed Classes\" tab in the IDE's right toolbar\n5. Click the refresh button to update the list of files\n6. The files will be displayed with different colors indicating their status:\n   - Blue: Files that have been modified\n   - Green: Newly added files\n   - Purple: Files that are newer than the debug session\n   - Default color: Unchanged files\n7. Select the files you want to hot-reload in the right panel\n8. Right-click the selected files and choose \"HotSwap\" to perform hot-reloading\n\n## Development\n\nThis project is built using Kotlin and Gradle.\n\n```bash\n# Clone the project\ngit clone https://github.com/biuld/change-classes-logger.git\n\n# Build the plugin\n./gradlew buildPlugin\n\n# Run tests\n./gradlew test\n```\n\n## License\n\nThis project is released under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiuld%2Fchange-classes-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbiuld%2Fchange-classes-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiuld%2Fchange-classes-logger/lists"}