IMPORTANT: This project is no longer being mantained! If you want to continue mantaining it, please open an issue and I'll link your project here!
LightTable wrapper for parinfer.
It automatically closes parens for you based on code indentation.
Simply open a Clojure or a ClojureScript file, and parinfer will auto-indent file based on your current use of parenthesis, and then work on "indent-mode".
There are now two ways of working with Parinfer: indent will infer parenthesis based on your code indentation - this is the default way of working. paren will infer indentation based on your parenthesis usage. I recommend adding a keystroke to toggle mode. Open
User keymaps and add something like:
; Parinfer [:editor.clj "ctrl-0" (:parinfer-toggle-mode)] [:editor.cljs "ctrl-0" (:parinfer-toggle-mode)]
To build the plugin:
- Clone the repo into your plugins folder
- On OS X:
- On Linux:
- On Windows:
- On OS X:
- Open lt_parinfer.cljs
- Connect an nrepl client to the project.clj. Note that this step is probably not required, only use this if the steps below don't work
- Save lt_parinfer.cljs or run the command
Editor: Build file or project. You should see "Compiled plugin to ...lt-parinfer_compiled.js" in the statusbar
- Run the command
Plugins: Refresh plugin listto detect the plugin
- Save lt-parinfer.behaviors or run the command
App: Reload behaviorsto load/reload the plugin behaviors
For interactive development, use the built-in clojurescript eval (ctrl-enter by default) and choose the
Light Table UI connection.
Note: due to Issue 1042 the
App: Reload behaviors command will not reload the plugin source. To pick up changes either use interactive eval or restart Light Table.
- Use "input" event of codemirror, not "change", so changes appear instantaneous
- When removing chars from a name in "paren-mode", reduces indentation of next lines
- I'm thinking about a "clever-mode", one that would infer if you want to use indent or paren mode and run parinfer with that mode.