GitXplorerGitXplorer
W

refine

public
86 stars
7 forks
8 issues

Commits

List of commits on branch master.
Unverified
07c1f3518fff4e363c68c0a110137756754641df

fix(cl-assert): use cl-assert instead of deprecated assert

jjimeh committed 4 months ago
Unverified
4fcc5e4b578aa2f553f351d748bd7eeaf5e94be0

fix(keymap): use lambda for q keybind to avoid error

jjimeh committed 4 months ago
Verified
d72fa50910b86217a35bb1b7e56adea206052021

Merge pull request #19 from rgrinberg/fix-elisp-value

WWilfred committed 5 years ago
Unverified
6d1286716017f226d740ea21b85fae14075cd4da

Pretty print in emacs-lisp mode

rrgrinberg committed 5 years ago
Verified
0a99439a0b4ed6f79b9a240ea1270140a9e328bc

Merge pull request #18 from eigengrau/master

WWilfred committed 7 years ago
Unverified
6927e9a6354a7a91fd4e7a2745231218bb8b5281

Add test for ‘(repeat (choice …’ defcustom

eeigengrau committed 7 years ago

README

The README file for this repository.

Refine

Build Status Coverage Status MELPA MELPA Stable

inspect and modify elisp variables

Refine provides a convenient UI for editing variables. Refine is not for editing files, but for changing elisp variables, particularly lists.

Table of Contents

Usage examples

edit_hook

Refine is great for editing large lists, such as hooks. In the above example, I insert and edit values in prog-mode-hook.

kill_ring

Refine is also a valuable debugging tool. In this example, I reorder items in the kill-ring so I paste the value I want.

Limitations

Refine deliberately modifies values in place. This is useful if you're working with a list that's shared between multiple variables, such as font-lock-defaults.

In some cases, this isn't possible (e.g. inserting into an empty list). In these cases, refine will overwrite your variable.

Keybindings

Editing:

command binding
refine-edit e or RET
refine-cycle c
refine-insert i
refine-insert-after a
refine-delete k
refine-move-forward s or <M-up>
refine-move-backward w or <M-down>

Moving around:

command binding
refine-next n
refine-previous p

Buffer commands:

command binding
refine-update g
kill-this-buffer q

Installation

Install from MELPA (recommended), or add refine.el to load-path.

Tests

You can run tests inside Emacs by just opening the test files and doing M-x eval-buffer M-x ert RET t RET.

Alternatively, you can run the test from a shell:

$ cask install
$ cask exec ert-runner

Note that refine has had infinite loop bugs during development, so you may need to press Ctrl-C if tests don't terminate.

Related projects

counsel-set-variable (part of ivy) is also an excellent way of editing variables in Emacs.

edit-list provides list editing in a very similar style to refine. It doesn't edit in-place, nor work as well for hooks, but does provide an elegant, Emacsy UI.