Would it not be nice if..
You could open your IDE on any file from any app?
OR
Open a repository/file from a browser in your editor of choice?
OR
Start a debugger locally from your web browser?
StarFix is a cross-platform client-side application that would let you open a file in Editor of your choice (vscode, eclipse, intellij, emacs, vi, etc.) and other commands locally directly from the browser or file system. This will enable an option to “Open in IDE” through browser extension on various websites like Github, Gitlab, etc similar to the one you see in this demo below.
StarFix comprises of amazing features :
StarFix can be used as a CLI tool as well where the repo is cloned and then the preferred Editor is launched. It also supports modifying the configurations.
StarFix has two configurable properties: - Cloning Path: The local directory where the repository gets cloned. - Preferred Editor: The Editor to launch after the repository gets cloned. These can be configured easily through the CLI.
StarFix includes a custom URL Handler to handle ide://
on the user’s machine. Whenever a URI with scheme ide://
is encountered StarFix app is launched with the arguement as the URI.
-
Download the
starfix-linux.zip
file from the Latest Release. -
Extract and Navigate to
installer
directory -
On the terminal execute the following(ensure the current directory is
installer
)
./install
-
Once you execute the above command you’ll be prompted for the password (for sudo ).
-
Test your installation by going to terminal and typing
starfix
. -
To set-up the Browser Extension, navigate to this section: Broswer Extension
-
Download the
starfix-win64.zip
file from the Latest Release -
Extract and Navigate to
installer
directory -
Now execute the file
install.cmd
(You can simply double click) -
As the app is unrecognized, Windows may launch up a new Dialog titled as
Windows protected your PC
with descriptionMicrosoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.
-
You may click on
More info
and the chooseRun anyway
-
You will then be prompted with a series of dialog boxes asking permission for the operations(modifying the registry). Please Select Yes in all those prompts to allow the installation.
-
Test your installation by typing
starfix
on the Terminal(Command Prompt or Windows PowerShell) -
To set-up the Browser Extension, navigate to this section: Broswer Extension
-
Download the
starfix-macos.zip
file from the Latest Release -
Extract and Navigate to
installer
directory -
On the terminal execute the following(ensure the current directory is
installer
)
./install
-
Once you execute the above command you’ll be prompted for the password (for sudo )
-
Test your installation by going to terminal and typing
starfix
-
To set-up the Browser Extension, navigate to this section: Broswer Extension
-
Clone This Repository.
-
Now Load Unpacked Extension in the
browser-extension
directory.The method for Loading Unpacked extension generally varies across browsers. We’ll guide you with loading up on Google Chrome and Mozilla Firefox.
-
Open the Extension Management page by navigating to chrome://extensions.
-
The Extension Management page can also be opened by clicking on the Chrome menu, hovering over More Tools then selecting the Extensions.
-
Enable Developer Mode by clicking the toggle switch next to Developer mode.
-
Click the LOAD UNPACKED button and select the extension directory(
browser-extension
). Ta-da! The extension has been successfully installed
-
Open the
about:debugging
page -
Click "This Firefox" (in newer versions of Firefox)
-
Click "Load Temporary Add-on"
-
Select any file(like
manifest.json
) in the extension’s directory(browser-extension
).
P.S: Browser Extensions will soon be published on Browser’s App Store to simplify installation.
-
Launch the terminal and type
starfix https://github.com/user_name/repo_name.git
(You can also use ssh) -
The repository will be cloned in the preferred directory and launched in the preferred Editor. See the Demo below:
Start by looking at the existing issues at starfix/issues to ensure that the issue you intend to create doesn’t exist already.
-
Bugs: Run the StarFix application and if you find unexpected behavior then open a new issue with the label
bug
and include a proper description/comment. -
Feature request: Brainstorm ideas and bring them to surface on the features that can be implemented in starfix and then create an issue with the label as
enahancement
. Always include as much exhaustive description as possible to help understand better.
After you’ve created a branch on your fork with your changes, it’s time to make a pull request
Once you’ve submitted a pull request, the collaborators can review your proposed changes and decide whether or not to incorporate (pull in) your changes.
-
Fork the repository and clone it locally. Connect your local repository to the original
upstream
repository by adding it as a remote. Pull in changes fromupstream
often so that you stay up to date and so when you submit your pull request, merge conflicts will be less likely. See more detailed instructions here. -
Create a branch for your edits.
-
Contribute in the style of the project as outlined above. This makes it easier for the collaborators to merge and for others to understand and maintain in the future.
-
Please make sure you squash all commits together before opening a pull request. If your pull request requires changes upon review, please be sure to squash all additional commits as well. This page outlines the squash process.
Once you’ve opened a pull request, a discussion will start around your proposed changes.
Other contributors and users may chime in, but ultimately the decision is made by the collaborators.
During the discussion, you may be asked to make some changes to your pull request.
If so, add more commits to your branch and push them – they will automatically go into the existing pull request!
Opening a pull request will trigger a Github Actions build to check the validity of proposed changes. After the build completes, please ensure that the build has succeeded. If the build did not succeed, please view the Github Actions log and correct any errors that were found in your contribution.
-
Quarkus : The Starfix CLI is built as a native executable with Quarkus.Specifically,we are using the command mode of Quarkus.
-
JUNIT5: As Quarkus supports JUNIT5, it has been used for Unit Testing.
-
Maven Assembly : As we needed to combine project output(native exectable) into a single distributable archive that along with installer scripts we are using Maven Assembly.
-
Github Actions : Github actions makes our CI/CD very easy.We are using it build,test and generate artifacts and distributable packages.Currently we are using it on Pull Request(Builds and generates artifacts), Push(Builds and generates artifacts) and Releases(generates distributable packages as zip file).We have also set-up a release mechanism on pushing with tags v* .
-
Starting in Development mode :
mvn quarkus:dev
-
Passing arguments: When you run with
mvn quarkus:dev
you can add-Dquarkus.args=yourvalue
as arguments you want to pass into the command line. Examplemvn quarkus:dev -Dquarkus.args="https://github.com/user/repo.git"
-
Building native executable :
mvnw package -Dnative
As StarFix uses Command Mode in Quarkus refer these links to learn more about it:
-
Why do we call it StarFix ?
-
Why are we using Quarkus?
The reason for going with this is that anything other than this(like node or python bound) would require additional setup. On the other hand Java or Native is something that can be shipped fairly lightweight. Furthermore we need a cross-platform application(Linux, Windows, and MacOS). Thus Quarkus would be the best choice.