tslilc / siege-mode

An emacs minor mode to surround the region with smart delimiters interactively.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

siege-mode

An emacs minor mode to surround the region with smart delimiters interactively.

siege-mode.gif

Lay siege to the region from both sides!

(with the power of regular expressions)

When the region is active, most input¹ is redirected to the minibuffer and treated as a delimiter for the region. The input is used as the left delimiter from which the right one is derived using siege-transform-regexs applied to tokens generated by siege-boundary-list and siege-block-*. If such derivations are not desired they may be disabled via "C-c a" in the minibuffer or by default (siege-default-derive). This process may be explicitly invoked by calling siege-explicit-call, bound to "M-s M-s".

All changes are dynamically displayed in the buffer (see siege-preview-face) and may be committed by "Ret" in the minibuffer. It is also possible to commit the input on "space" as set by siege-default-end-on-space and toggled by "C-c s" in the minibuffer.

By default siege-mode understands the usual delimeter pairs, as well as latex LaTeX begin/end pairs and left/right pairs. Moreover, for ease of use it will pair both _{ and ^{ with } by default.

Installation

To install the package, you use quelpa-use-package

  (use-package siege-mode
    :ensure quelpa
    :quelpa (siege-mode :repo "tslilc/siege-mode" :fetcher github))

License

GPL v3+

Technical note

¹ siege-mode remaps self-insert-command so that key-presses which would otherwise simply insert a character trigger delimiter input. This would seem to be the best compromise between usability and unobtrusiveness, but the author is certainly open to suggestion.

About

An emacs minor mode to surround the region with smart delimiters interactively.

License:GNU General Public License v3.0


Languages

Language:Emacs Lisp 100.0%