0.1.1 is 245.2 MiB size!!!!
Why GFM plugin is so huge in size O_o?
I would suggest to not bundle those OS specific libs, but to download them on demand - from dropbox or somewhere. Jetbrains would surely appreciate it :)
For rendering a preview you need to have some sort of WebView.
Early versions of this plugin used(and still are) LoboEvolution and JavaFx WebView but those two has their drawbacks. Starting from 0.1.0 gfm plugin uses JxBrowser(200+mb) for rendering as a default. Here is small comparison table for WebViews which i considered to use in gfm plugin:
| JxBrowser | JavaFX WebView | LoboEvolution | SWT browser | |
|---|---|---|---|---|
| Can be embedded in swing without on OS X (64 bit) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: (cocoa restrictions) |
| Runs with Java 6 | :white_check_mark: | :x: (Unless it's Windows) | :white_check_mark: | :white_check_mark: |
| Renders SVG | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: |
| Renders Images | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: |
| Renders Css properly | :white_check_mark: | :ballot_box_with_check: (Has problems with fonts) | :x: | :white_check_mark: |
| Fast rendering speed | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: |
Many people still run Intellij platform products on java 6(no JavaFx) due to font rendering problems with java 7 and java 8 on retina displays; some versions(new ones) of Intellij platform products comes with bundled OpenJre 8 without OpenFx bundled(so JavaFx WebView will not work). In fact even if Intellij is run with (Oracle)Java8 JavaFx is not in classpath so I need to do some nasty things to get it worked.
I'll contact Jetbrains about on demand lib downloading. If Jetbrains will be Ok about getting OS specific libs from some kind of storage on demand that'll do.
I'm sorry, but even if you'll download it on demand, this is ***king crazy amount of data, IDE itself with lots of functionality have 312 MiB size. Even browser with all possible extensions I have have smaller size. Lets be honest, 245.2 MiB is TOO MUCH for plugin of such kind.
I'm not familiar with Java, so I can't suggest anything here, but I hope it will be possible to find solution with reasonable size, lets say, < 10 MiB
@nazar-pc libs for other OSs take 200MB. 50 MB jar for Windows is totally ok with me, if the permgen can handle it.
@krasa, well, I'm on Linux x64)
@nazar-pc 70MB is still ok ^^
maybe you can take a look at ghfm, a good implementation in node.js... they do it in 23 MB. ;-)
I suggest to distribute a version without bunding jxbrowser-<platform>-<version>.jar, and when rending engine is JxBrowser, notify the user.
I don't think any user like to download 3 useless huge other platform's jar. For the size:
| File | Size |
|---|---|
| jxbrowser-linux32-5.4.3.jar | 74M |
| jxbrowser-linux64-5.4.3.jar | 73M |
| jxbrowser-mac-5.4.3.jar | 54M |
| jxbrowser-win-5.4.3.jar | 45M |
| gfm-plugin.jar, Loboevolution.jar, ... | ~ 4.5M |
Actually, only one jar is needed. And for other jar, total 4.5M, it's acceptable.
And, another question, why still include LoboEvolution?
Whatever the answer, it kind of sucks to wait 15 minutes for a minor update.
(The JetBrains CDN is very slow...)
yeah the size is bad. not a fan :(
sad to see its open since 2015