All Projects → magnars → string-edit.el

magnars / string-edit.el

Licence: other
Avoid escape nightmares by editing strings in a separate buffer

Programming Languages

emacs lisp
2029 projects
Gherkin
971 projects
ruby
36898 projects - #4 most used programming language
shell
77523 projects

string-edit.el Build Status

Avoid escape nightmares by editing strings in a separate buffer.

Installation

I highly recommended installing string-edit through elpa.

It's available on marmalade and melpa:

M-x package-install string-edit

You can also install the dependencies on your own, and just dump string-edit in your path somewhere:

Usage

Call string-edit-at-point when inside a string. A new buffer pops up with unescaped content, letting you edit it directly.

Then press C-c C-c to re-escape the content and insert into the string, or C-c C-k to abort.

asciicast

JavaScript and HTML

I made this package to edit html templates in javascript code. So it works a little special there:

  • newlines in the content resolves into multiple concatenated strings.
  • if the content starts with a <, html-mode is enabled in the popup buffer.

Todo

  • string interpolation (handle with intangible overlays?)
  • what's the difference between a newline and a \n in an emacs lisp multiline string?
  • setting major-mode for the popup buffer

Contribute

Yes, please do. :-)

All changes must be accompanied by feature tests, or I might break it later. They are written in Ecukes, a Cucumber for Emacs.

You'll find the repo at:

https://github.com/magnars/string-edit.el

To fetch the test dependencies, install cask if you haven't already, then:

$ cd /path/to/string-edit
$ cask

Run the tests with:

$ ./run-tests.sh

License

Copyright (C) 2013 Magnar Sveen

Author: Magnar Sveen [email protected]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].