Home

Awesome

<img src="https://cdn2.iconfinder.com/data/icons/icontober/64/Inkcontober_Mask_Juggernaut-512.png" alt="drawing" width="100"/>

Gitter HitCount

Yet another text editor?

I've used emacs(with and without spacemacs), Vim, WebStorm, and everything in between. I keep coming back to webstorm and vim due to 1 reason: The features webstorm provides are amazing. But WebStorm is a resource hog. Vim is a light saber, and excels at fast editing. Plugins do bog vim down in terms of speed.

Since I work on 3D applications, I need every ounce of juice my editor can spare me and I want a crossbreed of vim and webstorm to drive my daily editing needs.

So, I set out to write a lightweight and fast editor that isn't a resource hog but still fits the workflow I'm most used to.

Why not VSCode?

https://github.com/Microsoft/vscode/issues/49161

While VSCode fits everything Im trying to do and is an engineering marvel:

While some / all of these can be fixed with plugins / using different forks of VSCode, one question arises: Why bother? Why not build my own editor from the ground up instead of complaining about VSCode or webstorm or Vim?

Why even compete with established editors out there?

There are many editors out there, but this one is mine. And, I can learn Rust when implementing it :sunglasses:

Objectives in order of priority

Build from source

You will need nodejs & npm to be installed before proceeding further. Run npm run release to install dependencies, and build the JS and Rust code into one binary. The built binary will be in target/release.

Hack with me

Run npm run watch-rs to allow cargo to watch for changes and live reload Run npm run watch-js to allow webpack to look for UI changes and live reload

Contributions

PR's are welcome. Just try not to break anything, even if you do, thats ok, Lets build something good together! :smile:

Where do you need help?

Right now, Im trying to get all the basics right. Take a look at the project tracker if you're so inclined: https://github.com/ShashankaNataraj/Juggernaut/projects

But.. But.. electron is bloated®

That is exactly why this project uses https://github.com/Boscop/web-view :laughing: The idea is to not distribute a browsers runtime along with the binary, but to use what system level browser runtimes are already available. That way, power consumption and performance are guaranteed to be better than the bundled binary. This leads to some problems:

  1. Native window dialogs are no longer accessible because web browsers are built to not expose file paths and directory structures to websites
  2. Actions like drag and drop are no longer available because of the same reasons as the above point. Drag and drops while possible, will not yield the file path