A simple IntelliJ IDEA Plugin for teaching purposes and performing basic engineering tasks.
SimpleJ should not be viewed as a utility in and of itself but rather a mechanism to inspire ideas for better DevEx while providing code samples.
Functionality currently offered includes...
- Configurable
jsonattributes for workspace validation, new module templates and browser overlays - Some customization of the Plugin through the Settings panel
- New module creation using templates specified within
simplej-config.json - Safe module deletion, plus removal of any entries within
CODEOWNERS - Location-aware Gradle Task execution
- Open in Github
- Copying the Github link for the current file and/or file line range
- Code owner lookup for the current file/directory
- Workspace validation (ssh, java version/home, Android build tools) based on the values defined within
simplej-config.json - Nested IDE browser overlay based on the values defined within
simplej-config.json
Configuration file that informs various SimpleJ attributes, including:
- New module templates
- Web Browser overlay mappings
- Workspace validation checks...
- ssh
- java version/home
- android build tools
Located at: config > simplej > simplej-config.json
{
"workspaceCompat": {
"ssh": {},
"java": {},
"android": {}
},
"webBrowserMappings": {},
"newModuleTemplates": []
}- Easily accessible through SimpleJ’s Popup Menu Actions
- Customized by
simplej-config.json - Allows for storing plugin State changes
- Provides a visual surface for
simplej-config.json
W/out SimpleJ
- Utilize Intellij/Android Studio new module templates
- Fill in gaps for additional metadata;
CODEOWNERS - Update prefabbed files for project-specific capabilities; convention plugin’s, DSL configuration, etc
- Manually Gradle Sync
W/SimpleJ
Right click > SimpleJ > New Module
W/out SimpleJ
- Delete the module’s directory
- Manually delete references to the module from disparate locations;
CODEOWNERS,settings.gradle.kts,.gitignore - Ensure no dependencies exist on the project
W/SimpleJ
Right click > SimpleJ > Delete Module
W/out SimpleJ
- Within terminal navigate to the appropriate project directory
- Concat lengthy Gradle paths together for task execution
- Remember arbitrary task options & properties
W/SimpleJ
Right click > SimpleJ > Run... > ...
W/out SimpleJ
- Identify a file’s repository and branch
- Open a browser tab and manually navigate the repository
- When sharing code, manually copy the tab’s url
- Specific line navigation requires additional steps
W/SimpleJ
Right click > SimpleJ > Open in Github
W/out SimpleJ
- Search
CODEOWNERSfor parts of the file path - Ownership claims can use wildcards, making manual searching inaccurate
- Order matters, so finding the last entry is important
CODEOWNERfiles can be very noisy
W/SimpleJ
Right click > SimpleJ > Lookup Code Owner
W/out SimpleJ
- Misconfigured or missing environment variables
- Back and forth with support engineers
- Often even the best documentation can result in missed steps
- Errors appearing as they’re encountered
W/SimpleJ
Right click > SimpleJ > Validate Workspace
W/out SimpleJ
- Manually finding & opening relevant documentation websites
- Context switching between the browser and the IDE
- No clear or preferred doc websites for frameworks, projects, or files
W/SimpleJ
Open mapped file > Click the globe icon
SimpleJ is available on the Plugin Marketplace.
SimpleJ can also be installed locally by downloading the plugin-x.x.x.zip located here. Then navigating to Settings > Plugins > ⚙️ > Install Plugin from Disk... and selecting the downloaded zip.
When modifying SimpleJ's functionality the fastest way to validate changes is to push the changes to a development instance of the IDE. This is done through the use of the following command:
./gradlew :plugin:runIdeTo debug Plugin behaviors run that same command with some additional flags, like so...
./gradlew :plugin:runIde --debug-jvmThen trigger the debugger within your IDE using a 'Remote JVM Debug' run configuration.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.







