blob: 473c76643ab6ba26f16f3e656d846846cdc0186b (
plain) (
blame)
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
|
;;; mm-documentation.el --- Configuration related to documentation -*- lexical-binding: t; -*-
^L
;;; Display Available Keybindings
(use-package which-key
:demand t
:config
(which-key-mode)
:custom
(which-key-dont-use-unicode nil)
(which-key-ellipsis "…")
(wihch-key-idle-delay .5))
^L
;;; Enhance Describe Commands
(use-package helpful
:ensure t
:bind (([remap describe-command] . helpful-command)
([remap describe-function] . helpful-callable)
([remap describe-key] . helpful-key)
([remap describe-symbol] . helpful-symbol)
([remap describe-variable] . helpful-variable)
(("C-h C-p" . helpful-at-point))))
^L
;;; Open Manpage for Symbol
(defun mm-documentation-man-at-point ()
"Open a UNIX manual page for the symbol at point."
(declare (modes (c-mode c++-mode c-ts-mode c++-ts-mode)))
(interactive)
(if-let ((symbol
(pcase major-mode
((or 'c-mode 'c++-mode)
(thing-at-point 'symbol :no-properties))
((or 'c-ts-mode 'c++-ts-mode)
(when-let ((node (treesit-thing-at-point "identifier" 'nested)))
(treesit-node-text node :no-properties))))))
(man symbol)
(message "No symbol at point.")))
(dolist (mode '(c-mode c++-mode c-ts-mode c++-ts-mode))
(with-eval-after-load mode
(require 'man)))
(provide 'mm-documentation)
|