diff options
| author | Eivind Fonn <evfonn@gmail.com> | 2019-12-13 09:10:44 +0100 |
|---|---|---|
| committer | Eivind Fonn <evfonn@gmail.com> | 2019-12-19 14:52:36 +0100 |
| commit | 177d72c4d1ba57e69721f5279f0b0a874624e767 (patch) | |
| tree | 5d2bc8c027c8441c9719aa26a132150de862f85a /scripts | |
| parent | 6cef26fce01369bcc179068720a5dcb60fd1fba6 (diff) | |
Script for extracting documentation data to json
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/evil-extract-docstrings | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/evil-extract-docstrings b/scripts/evil-extract-docstrings new file mode 100755 index 0000000..9e636b6 --- /dev/null +++ b/scripts/evil-extract-docstrings @@ -0,0 +1,30 @@ +#!/usr/bin/emacs --script + +(setq cur-path (file-name-directory load-file-name)) + +(add-to-list 'load-path (format "%s.." cur-path)) +(require 'evil) +(require 'json) +(require 'help) + +(with-temp-file (format "%s../doc/docstringdb.json" cur-path) + (let (vars) + (mapatoms + (lambda (sym) + (when (string-prefix-p "evil-" (symbol-name sym)) + (let ((default (car (get sym 'standard-value)))) + (while (and (consp default) (memq (car default) '(function quote))) + (setq default (cadr default))) + (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 . ,(documentation-property sym 'variable-documentation 'raw)) + (fn-docstring . ,(ignore-errors (documentation sym 'raw))) + (arglist . ,(help-function-arglist sym)) + (functionp . ,(functionp sym)) + (macrop . ,(macrop sym))) + vars))))) + (insert (json-encode vars)))) |
