Closed DavidLGoldberg closed 7 years ago
FYI: I didn't actually observe / test for any major leaks, but this is at least best practice.
I have some experience with atom packages: https://github.com/DavidLGoldberg/jumpy/ https://github.com/DavidLGoldberg/qolor/
I'm new to Elm, and love your package because it's the only one I found that is at all written in Elm!
I actually want to rewrite a large portion of both of my packages in elm as well. I'm going to draw a lot of inspiration from your package.
I might make a few more contributions to your package as well if time permits. I just wanted to get this out for you / start a discussion!
One of my main drives is to create a barrier between the core logic and interface between the editor. This way I can port more easily to visual studio code or any other editor du jour.
Also I have some ideas how both packages could benefit greatly from elm. Anyway this is arch you've come up with is a huge inspiration (really made my day when I found it)!
Some things I might do for your package if I get a chance:
Hi David,
Sorry for not replying sooner. I can highly recommend using Elm to make editor plugins! I wrote the first iteration of this plugin in React, because I thought that it would integrate better with Atom. However, I ran into a really nasty bug to do with a conflict where React was also being used in the Hyperclick plugin. I got completely stumped and blocked, so I decided to rewrite as much as possible in Elm, and to my surprise it was much easier and faster writing in Elm than React, even though I had to use a lot of Elm ports, which is what people complain the most about with Elm.
I think the dock feature arrived after I made this - that'd be great if you could give that a go. Otherwise I might try it out myself if I get chance. I created an issue for that: https://github.com/mbylstra/atom-elm-navigator/issues/15.
Recently I've been playing with VS Code, and there are certainly some advantages - it seems much faster. So, an architecture that supports multiple Editors is definitely something to aim for. It think Elm helps with that as Elm ports force you to separate boundaries, which makes it more re-useable.
Jumpy is a really neat plugin. Very creative idea!