1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
# v0.6
Helpful now correctly handles \= escapes in docstrings.
Added disassemble buttons to byte-code functions in symbol properties.
Fixed an issue with the prompt when setting variables to symbol
values.
Quoted keywords in docstrings are now highlighted.
# v0.5
Allow function tracing to be enabled/disabled from Helpful buffers.
Ensure docstring references to Info nodes are converted to
buttons. Docstring references to command keys are converted to buttons
too (see `set-mark-command` for an example).
Helpful now shows all aliases for callables and variables, and
highlights which aliases are obsolete.
Improved helpful performance for primitives when Emacs source code is
loaded.
Helpful will now only keep the last 5 buffers, to avoid cluttering
your buffer list. You can customise this behaviour with
`helpful-max-buffers`: set it to 1 to cleanup all previous buffers, or
set it to `nil` never cleanup buffers.
## recentf bug
Helpful had an issue where it would call find-file with propertized
strings. This broke various recentf features.
This has been fixed, and you can check if you're running a fixed
version by seeing whether you have a `helpful--button` function
defined. If you do, your version is new enough.
You will aso need to edit your `~/.emacs.d/recentf` and
`recentf-save.el` to remove any lines that start with a `#`:
``` emacs-lisp
#("/usr/share/emacs/25.3.50/lisp/frame.el.gz" 0 41 (button (t) category helpful-navigate-button-button path #0 position 2815))
```
Otherwise, you will get `Invalid read syntax: "#"` when starting
Emacs.
# v0.4
You can now enable edebug directly from helpful buffers!
Variables may be set from the helpful buffer, and booleans can be
toggled. If a variable is a `defcustom`, we also offer Customize.
Show the name of variables at the top of the helpful buffer.
Improved handling of special forms, and prevent users from
accidentally unbinding special forms.
Ensure we can find (and jump to) the definition of functions even if the source
buffer has narrowing in effect.
Fixed an issue where calling helpful commands on interactively defined
functions would overwrite unrelated buffers. Fixed a crash with
interactively defined functions being edebugged.
Added a cleanup command `helpful-kill-buffers`.
Fixed an issue with helpful making recentf write broken paths to
~/.recentf, breaking Emacs startup.
# v0.3
Fixed a crash on autoloaded functions that aren't loaded yet.
Fixed a crash in `helpful-key` for symbols that aren't bound to
commands.
Fixed an issue where viewing help for a function opened a buffer with
its source code. Helpful now cleans up any extra buffers it created.
Pressing RET on the extracted source code now goes to the buffer and
position where the source code is located.
TAB now moves between buttons in helpful buffers.
Buffer names now include 'function' or 'variable' etc, e.g. `*helpful
function: message*`.
# v0.2
Fixed a crash on viewing aliased primitive functions.
Fixed an issue where we didn't find the path for functions defined
interactively using `cl-defstruct`.
Interactively defined functions (e.g. try re-evaluating package.el.gz
and looking at `package-desc-name`) are converted from raw closures to
equivalent defun forms.
We now show the value of variables too.
Added a command `helpful-callable`, which offers both macros and
functions. This should be a drop-in replacement for
`describe-function`.
Added a command `helpful-key`, which offers help on keybindings much
like `describe-key`.
Added a command `helpful-symbol`, which offers help on variables,
functions and macros. It prompts the user if a symbol is both a
variable and a callable.
# v0.1
First release.
|