Giter VIP home page Giter VIP logo

paredit's Introduction

Light Table

Build Status Build Status Build status CircleCI codecov

Packaging status

Join the chat at https://gitter.im/LightTable/LightTable Code Shelter

Light Table is a next generation code editor that connects you to your creation with instant feedback. Light Table is very customizable and can display anything a Chromium browser can.

This is a development branch and is not clean like master and can have many breakages.

Downloads

Prebuilt binaries are available through lighttable.com. To build and use a developer version of Light Table see these instructions.

For OSX users, the install process involves the following steps until we officially sign our OSX App:

  • In Finder, Ctrl-click on LightTable.app/ and select Open.
  • When you see this prompt about LightTable being unidentified, click Open.
  • If Ctrl-click doesn't work for you, open System Preferences > Security & Privacy > General, temporarily change "Allow apps downloaded from:" to Anywhere and double click on LightTable.app.

Documentation

Plugins

Light Table has a powerful plugin system that allows almost any aspect of the editor to be extended and customized. With over 100+ plugins, the community is able to offer eval support for new languages, create domain-specific IDEs and much more. If you're interested in writing your own plugin, see the Write a Plugin and Submit a Plugin docs. For an example ClojureScript plugin, see LightTable-Declassifier.

Community

Want to ask a question or just say hi? Please do :). Our mailing list is the Light Table Google group. We also hang out in #lighttable on Freenode IRC.

For Developers

LightTable is primarily written in ClojureScript. If you aren't familiar with it, check out David Nolen's tutorial.

In order to develop for Light Table, you will need to install a developer version of Light Table. For more information, read CONTRIBUTING.md and For Developers.

License

All files in this project are under the LICENSE.md license unless otherwise stated in the file or by a dependency's license file.

Credits

Big thanks to all our contributors! Thanks of course to Kodowa for all they have done for Light Table and also to Cognitect for providing friday contributions for one of the core team members.

paredit's People

Contributors

cldwalker avatar danielribeiro avatar ibdknox avatar jamii avatar mikeinnes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paredit's Issues

Porting features from paredit-plus

This is a meta issue to port handy paredit functions from paredit-plus. We need to have one well-maintained plugin we can all rely on. Features that should be ported (list updated as needed):

  • Kill sexp and add to CodeMirror's yank buffer
  • Raise sexp
  • Splice sexp
  • Wrap with ({[
  • Join sexp

I'll take this on unless @otijhuis is interested in helping with some of it (I know you're back in emacs land ;))

Grow right grows over curly braces

While developing I oven had strange non matching endings of functions. I investigated and found the following problem.

{:data (+ 1) 2}

You want to get this
{:data (+ 1 2)}

But when you grow (+ 1) to the right you get:

{:data (+ 1 2})

move to next/previous sibling form

//example 1
[
  [ xxxx ]
  xx|xx
  [ xxxx ]
]
//go to next
[
  [ xxxx ]
  xxxx
  |[ xxxx ]
]

//example 2
[
  xxxx
  [ xx|xx ]
  [ xxxx ]
]
//go to next
[
  xxxx
  [ xxxx ]
  |[ xxxx ]
]

//example 3
[
  [
     xx|xx 
     [ xxxx ]
  ]
  [ xxxx ]
]
//go to next
[
  [
     xxxx 
     |[ xxxx ]
  ]
  [ xxxx ]
]

//example 4
[
  [ xxxx ]
  xx|xx
  [ xxxx ]
]
//go to previous
[
  |[ xxxx ]
  xxxx
  [ xxxx ]
]

I hope the examples are clear enough.

grow right can't grow over last form

Here is example:

(defn my-command
  []
  (|)(a)
  (b)
  (c)
  (d))

After grow right four times expected result is:

(defn my-command
  []
  (|(a)
   (b)
   (c)
   (d)))

Actual result is

(defn my-command
  []
  (|(a)
   (b)
   (c))
  (d))

I believe outer paren causes a bug, cause if last paren is on a next line everything works fine.

Paredit should be stricter by default

Captured from the Clojurians Slack, user manenko:

Paredit mode isn't strict enough. Or maybe I just didn't setup it right 🙂

For example, I can put my cursor | between ( and reagent/cursor:

(|reagent/cursor app-state [:account])

And hit backspace key. Result will be:

|reagent/cursor app-state [:account])

In Emacs Paredit mode I cannot do that. It protects me from having unbalanced opening and closing parenthesis/brackets/braces.


I am personally not very familiar with emacs and I am not confident I am actually using paredit correctly to test if this is an issue as there is no documentation...

[Bug] Can't bind "ctrl-shift-0" to :paredit.grow.right

My user keymap binds "ctrl-shift-0" to :paredit.grow.right . This is the usual emacs command for forward slurp. When I try using the key binding in an editor, though, it doesn't do anything. This is strange, because I have "ctrl-shift-9" mapped to paredit: grow left and that works as it should.

Here's my user keymap file

{:+ {:editor {"alt-a" [:editor.watch.watch-selection]
              "alt-shift-a" [:editor.watch.unwatch]
              "pmeta-alt-shift-a" [:editor.watch.remove-all]
              "pmeta-;" [:toggle-comment-selection]
              "ctrl-shift-0" [:paredit.grow.right]
              "ctrl-shift-9" [:paredit.grow.left]
              "pmeta-shift-]" [:paredit.shrink.right]
              "pmeta-shift-[" [:paredit.shrink.left]}}
     :find-bar {"pmeta-f" [:find.clear
                          :find.hide]}
 :- {:tabs {"pmeta-shift-[" [:tabs.prev]
            "pmeta-shift-]" [:tabs.next]}}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.