blob: 55dbd7956180099e8399046982522df640cf30a9 (
plain)
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
|
#!/usr/bin/env -S emacs --script
(setq cur-path (file-name-directory load-file-name))
(add-to-list 'load-path (expand-file-name ".." cur-path))
(require 'evil)
(require 'evil-digraphs)
(require 'json)
(require 'help)
(defun mark-command-keys (string)
"Mark key bindings in STRING with the \":kbd:\" Sphinx role."
(when string
(cl-loop
for prev = 0 then pos until (>= prev (length string))
for pos = (next-single-property-change prev 'face string (length string))
concat
(let ((s (substring string prev pos)))
(if (eq (get-text-property prev 'face string) 'help-key-binding)
(format ":kbd:`%s`" s)
s)))))
(let (vars)
(mapatoms
(lambda (sym)
(when (string-prefix-p "evil-" (symbol-name sym))
(let ((default (eval (car (get sym 'standard-value)))))
(push `(,sym (default . ,(cond
((consp default) (format "%S" default))
((symbolp default) (symbol-name default))
(t default)))
(local . ,(local-variable-if-set-p sym))
(default-type . ,(type-of default))
(var-docstring . ,(mark-command-keys (documentation-property sym 'variable-documentation)))
(fn-docstring . ,(ignore-errors (mark-command-keys (documentation sym))))
(arglist . ,(help-function-arglist sym))
(functionp . ,(functionp sym))
(macrop . ,(macrop sym)))
vars)))))
(with-temp-file (expand-file-name "../doc/docstringdb.json" cur-path)
(insert (json-encode vars))))
|