parinfer / parinfer.js

Let's simplify the way we write Lisp
https://shaunlebron.github.io/parinfer
MIT License
1.76k stars 40 forks source link

new plugin: emacs-parinfer #58

Closed randre03 closed 8 years ago

randre03 commented 8 years ago

Hi Shaun, I've decided this will be a great way to work on my elisp chops so I'm working on emacs-parinfer which is planned to be a minor mode for emacs. Depending on how much work I get done over the coming holiday I might be at a point of making code public in a week or so. Thanks for all the work you have done so far! Roger

shaunlebron commented 8 years ago

thanks! see #41 for some early talks about connecting it to Node if you want to go that route.

If not, I've written more docs about hooking Parinfer up to an editor here: https://github.com/shaunlebron/parinfer/tree/master/lib

and send me a github repo link so I link it on the website.

anthgur commented 8 years ago

Hey @randre03 (or anyone else), have you thought about using the cider nrepl client? Might be an easier install/run experience than rpc to node. Not sure how it would be performance wise but might be worth exploring.

shaunlebron commented 8 years ago

@anthgur thanks! that might be the easiest way forward

lgrapenthin commented 8 years ago

But wouldn't that mean we have to run a JVM to parinfer?

shaunlebron commented 8 years ago

right, that would be okay for Clojure users, but there are other Lisp dialect users who would find this dependency strange.

dongcarl commented 8 years ago

@randre03 I'm really hoping you are making this native instead of rpcing to node. Is there any update on the progress? Anything we can help with?

edpaget commented 8 years ago

Hey all, I had a long train ride, so I started working on this using node for RPC (sorry @dongcarl). It's not usable at all yet, but if anyone wants to help out. Let me know and I'll add you to the repo: https://github.com/edpaget/parinfer-mode

shaunlebron commented 8 years ago

Thanks @edpaget! Added it to the website.

Porting parinfer is nontrivial right now, so I think using node for RPC is good since it's relatively simple (Sublime Text and Neovim are doing this too). And since Parinfer is still experimental, it also allows us to push bug fixes to the main implementation to affect all editors, which is really nice.

Having said that, I'll help anyone as much as possible if they want to start a proper port.

dongcarl commented 8 years ago

@shaunlebron I might give it a go. I'm guessing the first step is doing https://github.com/shaunlebron/parinfer/tree/master/lib#porting-parinfer?

arronmabrey commented 8 years ago

@shaunlebron you mention sublime but I haven't seen any links to a sublime plugin. Am I missing something?

dongcarl commented 8 years ago

@arronmabrey https://github.com/oakmac/sublime-text-parinfer

arronmabrey commented 8 years ago

Thanks! On Mon, Dec 7, 2015 at 8:02 PM Carl Dong notifications@github.com wrote:

@arronmabrey https://github.com/arronmabrey https://github.com/oakmac/sublime-text-parinfer

— Reply to this email directly or view it on GitHub https://github.com/shaunlebron/parinfer/issues/58#issuecomment-162720222 .

shaunlebron commented 8 years ago

@arronmabrey I'm now maintaining a list of the plugins on the main readme, since it's probably the most important thing to a user to know where they can use it :)

https://github.com/shaunlebron/parinfer#how-to-use-it

randre03 commented 8 years ago

Sorry for the delay, but repo is now live: https://github.com/randre03/emacs-parinfer

refi64 commented 8 years ago

@randre03 I love this part:

Right now, this minor mode is not functional so do not install.

:)

shaunlebron commented 8 years ago

Great work @randre03! @dongcarl actually started to work on this as well here, so you guys should talk.

dongcarl commented 8 years ago

@randre03 did you... port most of Clojure syntax into emacs-lisp?!

randre03 commented 8 years ago

Check out the README. if I had working ELISP implementations of those clojure functions listed there then this should be entirely ELISP code. There are (I suspect) some issues with data structures that need to be worked out, but I don't see that as especially concerning.

On Wed, Dec 16, 2015 at 9:16 PM, Carl Dong notifications@github.com wrote:

@randre03 https://github.com/randre03 did you... port most of Clojure syntax into emacs-lisp?!

— Reply to this email directly or view it on GitHub https://github.com/shaunlebron/parinfer/issues/58#issuecomment-165325831 .

-Roger

oakmac commented 8 years ago

Hi folks!

I ported parinfer.js to Emacs Lisp: https://github.com/oakmac/parinfer-elisp

Hopefully someone can use this library to make an awesome Emacs extension :)

shaunlebron commented 8 years ago

an update and petition for help...

logo

Are we there yet?

Emacs is easily the most requested target editor for Parinfer, but the earlier plugin attempts here have stalled! This is in no small part to me rewriting Parinfer's core, which essentially pulled the rug out from under their feet. sorry about that...

The new core (now available on Emacs-Lisp!)

Parinfer's new core has been documented in detail to force a stable and deliberate design. @oakmac has in turn ported the new code to Emacs-Lisp at parinfer-elisp, among several other languages. This was the hard part, and it's done! :tada:

Integration Help Wanted

We'd like someone who actually uses Emacs to help us with the final plugin part (i.e. figuring out the integration points with Emacs). I remain focused on issues concerning the core, while Chris maintains several other ports and plugins (nearly all of them). So if you'd like to be the hero that brings Parinfer to the most requested editor, here are some ways to get started:

Gitter

Thanks!

edpaget commented 8 years ago

I've updated https://github.com/edpaget/parinfer-mode to use the emacs lisp library, not sure it's all the way right yet, but seems to work in my limited testing.

shaunlebron commented 8 years ago

thanks @edpaget! listing yours as the main emacs port now