aboutsummaryrefslogtreecommitdiff
path: root/helpful.el
AgeCommit message (Collapse)Author
2020-09-22Detect docstring symbol references that are unambiguousWilfred Hughes
If we see "function `foo'" or "variable `foo'", it's clear what we should link to. Fixes #243
2020-09-17Fix docstring extraction in Emacs 27Wilfred Hughes
Fixes #248
2020-05-04Add "natively compiled" info to summaryxeals
2020-05-04Check callables aren't native-compiled before calling them primitivexeals
2020-01-11Add support for CL generic methodsDamien Cassou
2020-01-01Improve link creation from Info manual referencesDaniel Martín
* helpful.el (helpful--propertize-info): Follow Emacs convention for function documentation. Consider lowercase "info" and angular quotation marks in docstrings. Default to the Emacs manual if there's no manual reference (ie. see the `blink-cursor-mode' variable). * test/helpful-unit-test.el (helpful--format-docstring--info): Add new testcases for the now covered cases.
2019-10-01Handle byte-compiled functions bound to keysWilfred Hughes
Fixes #212
2019-10-01Adding TODOWilfred Hughes
2019-08-14Ensure ? in symbols isn't needlessly escapedWilfred Hughes
2019-08-14Use "and" in summariesWilfred Hughes
For example, say "ace-window is an autoloaded, interactive and compiled function" rather than comma-separating everywhere. Also simplify button logic and add a test for "an" in descriptions.
2019-08-07Fix helpful--convert-c-name callsNick Drozd
I don't know how these got mixed up, but they did.
2019-07-24Remove another used functionWilfred Hughes
Found with M-x emr-el-find-unused-definitions
2019-07-24Remove unused functionWilfred Hughes
Fixes #210
2019-07-24Report package/emacs version for custom variablesWilfred Hughes
Fixes #207
2019-07-11Show the original value for defcustom variablesWilfred Hughes
Fixes #199
2019-07-11Roll versionWilfred Hughes
2019-07-11Add bookmark support0.17Wilfred Hughes
Fixes #203
2019-06-22Show if a function is compiledErik Arvstedt
Include this info like in `describe-function`
2019-06-20Relax minimum Emacs versionWilfred Hughes
Helpful relies on several 24.x Emacs features (defvar-local, nadvice, lexical binding), but the only 25.x feature is macroexpand-1. `M-x package-lint-current-buffer` is happy with this change. Fixes #205
2019-05-28Do not require shut-up packageJonas Bernoulli
2019-05-16Disable major mode change hooks when finding definitionsWilfred Hughes
Fixes #208
2019-04-07Prefer displaying string values as literalsWilfred Hughes
Fixes #200
2019-04-07Don't show the Source Code heading if we don't have any sourceWilfred Hughes
2019-04-07Render keyboard maros in keymap pretty viewWilfred Hughes
Fixes #202
2019-03-16Ensure backslashes in string literals are escapedWilfred Hughes
Fixes #197
2019-03-16Unused variableWilfred Hughes
2019-03-16Don't interpret "`foo'" as a symbol referenceWilfred Hughes
This requires `foo' to be handled as part of the loop in `helpful--format-command-keys' rather than a separate function. Helps with #197
2019-03-16Don't interpret command references inside doublequoted stringsWilfred Hughes
Helps with #197
2019-03-13Consider after-change-functions to be a hookWilfred Hughes
2019-03-09Fix type error for unbound symbolsNick Drozd
2019-03-03Fix docstring rendering when keymap references have their own lineWilfred Hughes
Previously, we'd render "\\<foo-map>\n" as "\n", leading to an unwanted blank line in the output. See `org-capture` (on MELPA) for an example.
2019-03-03Roll versionWilfred Hughes
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-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-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-21Indentation pedantryWilfred Hughes