Giter VIP home page Giter VIP logo

smartparens's Introduction

Smartparens

Join the chat at https://gitter.im/smartparens/Lobby MELPA Documentation Status MELPA Stable Documentation Status Build Status Coverage Status Paypal logo Patreon

Table of Contents

Smartparens is a minor mode for dealing with pairs in Emacs.

It can automatically insert pairs:

smartparens insert

wrap, unwrap and rewrap pairs:

smartparens wrapping

expand and contract pairs:

smartparens slurping

navigate pairs:

smartparens navigating

and much more!

Getting Started

We generally target GNU Emacs version 24.3 and newer, however, everything should work mostly fine on anything newer than version 24.

You can install smartparens from MELPA. Once installed, enable the default configuration:

(require 'smartparens-config)

You can now use smartparens with M-x smartparens-mode. To automatically enable smartparens in a programming mode:

;; Always start smartparens mode in js-mode.
(add-hook 'js-mode-hook #'smartparens-mode)

You may want to try smartparens-strict-mode. This enforces that pairs are always balanced, so commands like kill-line keep your code well-formed.

Usage

Inside Emacs, M-x sp-cheat-sheet will show you all the commands available, with examples.

There's also a great article demonstrating movement and editing in smartparens and extensive documentation in the wiki.

Contributing

We love pull requests. Please include tests. Smartparens uses ert-runner for testing. To run all the tests, run:

$ cask exec ert-runner

Alternatively, you can open the individual files in Emacs, then M-x eval-buffer M-x ert.

You can learn more about how we test on the testing wiki page.

Language Support

Smartparens has a default configuration that works well for most languages. For language-specific behaviour, smartparens has a separate smartparens-FOO.el file for every language and smartparens-config.el loads these automatically.

Supporting Smartparens

If you want to support this project, you can:

  • Contribute code. If you have an idea that is not yet implemented and will benefit this project, feel free to implement it and submit a pull request. If you have any concerns whether your contribution will be accepted, ask beforehand. You can email the author or start an issue on the tracker.

  • Contribute ideas. Even if you can't code Emacs Lisp, you can still contribute valuable ideas for other programmers to implement. Simply start new issue on the tracker and submit your suggestion.

  • You can make a financial donation through PayPal or Patreon. If you like smartparens and can spare a modest amount on a donation, feel free to do so. These donations are expressions of your gratitude and are used for my personal "rewards" (books, games, music etc.). You can also gift me a game on Steam or buy something on Amazon. Regardless of the donations, smartparens will always be free both as in beer and as in speech.

Related Projects

Other Emacs projects that deal with pairs include:

Smartparens aims to provide a superset of these features, in all programming languages.

smartparens's People

Contributors

aaronjensen avatar andreyorst avatar bbatsov avatar brantou avatar expez avatar fanael avatar fommil avatar fuco1 avatar hi-angel avatar jabranham avatar jell avatar johnmastro avatar jojojames avatar kidd avatar moyamo avatar pythonnut avatar raxod502 avatar rgemulla avatar sammidysam avatar sandinmyjoints avatar sirikid avatar tkf avatar tsdh avatar vderyagin avatar vikraman avatar vspinu avatar wilfred avatar wyuenho avatar xiaohanyu avatar xiongtx avatar

Watchers

 avatar  avatar

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.