= StarFix : Simplifying The Devflow :toc: :toc-placement!:
image:https://github.com/starfixdev/starfix/blob/master/images/starfix.png[StarFix Logo,title="StarFix Logo"]
== Intro 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.
== Demo
image:https://github.com/starfixdev/starfix/blob/master/images/demo.gif[Starfish Demo]
[discrete]
toc::[]
== Features StarFix comprises of amazing features :
=== CLI Tool 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.
=== Configurable StarFix has two configurable properties:
=== Custom Protocol Handler
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.
=== Browser Extension To be able to add an "Open In IDE" button on Web Pages and launching the protocol handler we need a browser extension. The extension also acts as the integration between web and desktop.
== Supported Platforms:
== Installation === LINUX
starfix-linux.zip
file from the Latest Release.installer
directoryinstaller
) starfix
.=== WINDOWS
starfix-win64.zip
file from the Latest Releaseinstaller
directoryinstall.cmd
(You can simply double click)Windows protected your PC
with description Microsoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.
More info
and the choose Run anyway
starfix
on the Terminal(Command Prompt or Windows PowerShell)=== MACOS
starfix-macos.zip
file from the Latest Releaseinstaller
directoryinstaller
) starfix
=== BROWSER EXTENSION
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.==== Loading unpacked on Google Chrome
browser-extension
).
Ta-da! The extension has been successfully installed==== Loading unpacked on Mozilla Firefox
about:debugging
pagemanifest.json
) in the extension's directory(browser-extension
).P.S: Browser Extensions will soon be published on Browser's App Store to simplify installation.
== Usage
=== As a CLI Tool
starfix https://github.com/user_name/repo_name.git
(You can also use ssh)=== Fully Integrated
=== Configuration Editor
starfix config
== Contributing to StarFix === Creating Issues Start by looking at the existing issues at https://github.com/starfixdev/starfish/issues[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.
=== Pull Request
After you've created a branch on your fork with your changes, it's time to https://help.github.com/articles/creating-a-pull-request/[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.
==== Pull Request Pro Tips
upstream
repository by adding it as a https://help.github.com/articles/configuring-a-remote-for-a-fork/[remote].
Pull in changes from upstream
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 https://help.github.com/articles/syncing-a-fork[here].==== Open Pull Requests
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.
=== Technology for Development
=== Quick Command reference:
mvn quarkus:dev
mvn quarkus:dev
you can add -Dquarkus.args=yourvalue
as arguments you want to pass into the command line.
Example mvn quarkus:dev -Dquarkus.args="https://github.com/user/repo.git"
mvnw package -Dnative
=== Useful Links/Resources: As StarFix uses Command Mode in Quarkus refer these links to learn more about it:
== FAQS
[qanda] Why do we call it StarFix ? :: The following image is good enough to explain ... image:https://github.com/starfixdev/starfix/blob/master/images/starfix_illustration.png[StarFix Illustration,title="starfix illustration"]
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.