Skip to content

wildsmith/simplej-plugin

Repository files navigation

SimpleJ IDE Plugin

A simple IntelliJ IDEA Plugin for teaching purposes and performing basic engineering tasks.

SimpleJ Logo

SimpleJ Logo

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.

Features

Functionality currently offered includes...

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": []
}

Settings

  • 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

settings flow

New Module Creation

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

new module flow

Safe Module Deletion

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

module deletion flow

Gradle Task Execution

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... > ...

gradle task execution flow

Open in Github + Copy Github Link

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

github interaction flow

Code Owner Lookup

W/out SimpleJ

  • Search CODEOWNERS for parts of the file path
  • Ownership claims can use wildcards, making manual searching inaccurate
  • Order matters, so finding the last entry is important
  • CODEOWNER files can be very noisy

W/SimpleJ

Right click > SimpleJ > Lookup Code Owner

code owner lookup

Workspace Validation

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

workspace validation

Browser Overlay

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

Install

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.

Validating Changes

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:runIde

Debugging

To debug Plugin behaviors run that same command with some additional flags, like so...

./gradlew :plugin:runIde --debug-jvm

Then trigger the debugger within your IDE using a 'Remote JVM Debug' run configuration.

License

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.

About

IntelliJ IDE Plugin Teaching Aid

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages