aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-03-03Always autoload callables if they aren't loaded0.16Wilfred Hughes
Fixes #117
2019-03-03Set comment-start inside helpful buffersWilfred Hughes
2019-02-28Handle C-style names in helpful-symbolNick Drozd
In Emacs's C core, Lisp functions and variables take on slightly different names: dashes are replaced with underscores, and functions and variables are prefixed with "F" and "V" respectively. This change allows for looking up those symbols. For example, if I am looking at the source for `purecopy': DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0, doc: /* Make a copy of object OBJ in pure storage. Recursively copies contents of vectors and cons cells. Does not copy symbols. Copies strings without text properties. */) (register Lisp_Object obj) { if (NILP (Vpurify_flag)) return obj; else if (MARKERP (obj) || OVERLAYP (obj) || SYMBOLP (obj)) /* Can't purify those. */ return obj; else return purecopy (obj); } I can run `helpful-at-point' on `Vpurify_flag'. This doesn't support running C-style names through `helpful-callable' etc, but that doesn't seem like a useful feature.
2019-02-28Replace tabs with spacesWilfred Hughes
2019-02-28Remove all advice before determining source of functionCeleritasCelery
Previously, we would only remove the outermost advice. This led to `helpful--primitive-p` returning the wrong answer for primitive functions with more than one active advice. Fixes #185.
2019-02-27Bump copyright yearWilfred Hughes
2019-02-27Better source detection for functions defined by macrosWilfred Hughes
If we can't find the location but know the buffer, try expanding forms in the buffer to see if we can find the relevant function. This is largely code from elisp-def, but it wasn't in a terribly reusable form and I've copied it.
2019-02-16Smarter buffer prompt when inspecting buffer-local valuesWilfred Hughes
See discussion in #49
2019-02-16Fix viewing the value of inhibit-read-onlyWilfred Hughes
Fixes #189
2019-02-03If there are no primitives, don't show that headerWilfred Hughes
2019-01-13Read and display symbols with spaces correctlyWilfred Hughes
Fixes #172
2019-01-13Ensure helpful--definition-buffer-opened skips when appropriateWilfred Hughes
This test depends on what buffers are currently open in the active Emacs instance, so can fail when running the test suite whilst developing.
2019-01-13Fix indentationWilfred Hughes
2019-01-08Cut repeated calls to helpful--aliasesNick Drozd
helpful--aliases is expensive, so as usual we'll call it just once at the beginning of helpful-update. This sacrifices a little elegance for a significant peformance boost. Here are before and after times running (helpful-callable #'move-beginning-of-line) 50 times on my crappy little Thinkpad: Before: Elapsed time: 61.507899s (23.391894s in 148 GCs) Elapsed time: 56.855148s (24.392109s in 133 GCs) Elapsed time: 58.082409s (25.796263s in 146 GCs) After: Elapsed time: 43.519486s (17.412847s in 95 GCs) Elapsed time: 43.171007s (17.036012s in 92 GCs) Elapsed time: 44.725709s (18.705316s in 102 GCs) So the time per call goes from a little over a second to a little under a second.
2018-12-29Define our own function/variable for unit testing obsolescence dataWilfred Hughes
This ensures the tests pass across different Emacs versions (which might have more/less verbose information).
2018-12-29Add obsolescence information.Nathan Moreau
helpful.el (helpful--obsolete-info): new function. (helpful--format-alias): obsolescence info code extracted. (helpful-update): display the obsolescence info. (helpful--format-obsolete-info): new function. Closes #152.
2018-12-29Flash highlight for longerWilfred Hughes
In a large function, 1 second isn't always enough to spot the reference.
2018-10-31Use Rust syntax highlighting for RustNick Drozd
This is another change stemming from Remacs.
2018-10-27Use syntax-ppss to find the outer sexpWilfred Hughes
beginning-of-defun just uses open-paren-in-column-0-is-defun-start, which fooled functions like face-attribute where the docstring contains a open paren at the start of the line. Fixes #170
2018-10-21Fix mistake in commentWilfred Hughes
2018-10-21Update changelogWilfred Hughes
2018-10-21Indentation pedantryWilfred Hughes
2018-10-21Tweak wording to make source code more obviousWilfred Hughes
For aliases, we're trying to show the alias definition, not the underlying function/variable definition. Closes #168
2018-10-14Roll versionWilfred Hughes
0.15 was quickly released due to a nasty crash.
2018-10-14Pretty-print primitive values0.15Wilfred Hughes
As of 1d2954b we pretty-print keymaps and hooks by default, but this broke display of variables of other types. Fix that.
2018-10-14Roll versionWilfred Hughes
2018-10-14Add a note in the changelog for 0de7c150.14Wilfred Hughes
2018-10-14Show values as rendered ('pretty') by defaultWilfred Hughes
This is often more useful, especially for hooks. See #160
2018-10-01Add .rs file extension to helpful--primitive-pNick Drozd
This makes it possible to show variables defined in Rust in Remacs. In general I don't like the idea of modifying Elisp to accomodate Remacs, but in this case it seems to be necessary because the "c" is hardcoded. An alternative approach would be to check whether the file is an Elisp file, but that would require exhaustively enumerating possibilities: .el, .el.gz, .elc, and maybe more that I don't know about. This way seems easier, if less elegant.
2018-10-01Fix function aliases of primitive functionsWilfred Hughes
Fixes #159
2018-10-01Enable movement in helpful callee buffersWilfred Hughes
Previously TAB just did nothing, which was less useful.
2018-09-23Merge pull request #157 from nickdrozd/kbdWilfred Hughes
Add support for named keyboard macros
2018-09-23Ensure helpful-mode-map is a keymap (oops!)Wilfred Hughes
2018-09-23Only set the keybindings inside a defvar formWilfred Hughes
Otherwise, users can't run eval-buffer without clobbering their personal keybindings. See discussion in https://github.com/Wilfred/elisp-refs/pull/20 .
2018-09-22Ensure we can go to definitions when the buffer is narrowedWilfred Hughes
Fixes #158
2018-09-21Ensure we don't quote keywords or nil in variable assignment promptWilfred Hughes
2018-09-13Add support for named keyboard macrosNick Drozd
2018-09-13Update changelogNick Drozd
I forgot to do this for the callee-sorting.
2018-09-13Improve button wording based on feedback in #49Wilfred Hughes
2018-09-13More accurate extraction of DEFVAR source codeWilfred Hughes
2018-08-16Merge pull request #153 from nickdrozd/sort-calleesWilfred Hughes
Sort callees
2018-08-16Add helpful--display-callee-groupNick Drozd
Move helpful--sort-symbols into this function because it is faster to sort sublists separately than to sort the whole list at once (right?).
2018-08-16Sort callees into (compound) functions and primitivesNick Drozd
Addresses #150 (at least partially)
2018-08-16Add helpful--sort-symbolsNick Drozd
2018-08-12Tweak comments for readabilityWilfred Hughes
2018-08-12Update changelogWilfred Hughes
2018-08-12Clearly separate library names from absolute pathsWilfred Hughes
We need an absolute path for opening the file, but `find-function-search-for-symbol` expects a relative path for primitive functions. Using the library name allows us to avoid `find-function-C-source`, which doesn't support Rust primitives. This should fix Remacs support. See discussion in https://github.com/Wilfred/remacs/pull/800
2018-08-12Make tests less verboseWilfred Hughes
Don't bother reporting about file decompression, and use proper ERT test skipping.
2018-08-12Roll versionWilfred Hughes
2018-08-12Rename file to avoid confusion with other projects' unit tests0.13Wilfred Hughes