diff options
author | Tom Willemse | 2014-01-26 00:04:11 +0100 |
---|---|---|
committer | Tom Willemse | 2014-01-26 00:04:11 +0100 |
commit | 081ca68d0355cc2433d6780b1c2f7d3c1f090156 (patch) | |
tree | ddc95c8aa51628a8c2e2d5ea8ea70bce89fabdc5 | |
parent | d99ecc0b2c170e5ba4765b6ba18c30772ddaceff (diff) | |
download | edocs-081ca68d0355cc2433d6780b1c2f7d3c1f090156.tar.gz edocs-081ca68d0355cc2433d6780b1c2f7d3c1f090156.zip |
Don't use regex, use read
-rw-r--r-- | edocs.el | 28 |
1 files changed, 13 insertions, 15 deletions
@@ -93,21 +93,19 @@ etc." (let (ls) (save-excursion (goto-char (point-min)) - (while (re-search-forward - (rx (and bol ?\( - (group (or "defun" "defgroup" "defcustom" "defvar" - "defclass" "defgeneric" "defconst" - "define-minor-mode" "defface")) - " " - (group (1+ (not (any space ?\n ?\))))))) - nil :noerror) - (let ((type (buffer-substring-no-properties - (match-beginning 1) (match-end 1))) - (name (buffer-substring-no-properties - (match-beginning 2) (match-end 2)))) - (unless (string-match edocs-private-regexp name) - (setq ls (cons (cons type name) ls)))))) - (reverse ls))) + (condition-case nil + (while t + (let ((expr (read (current-buffer)))) + (when (member (car expr) + '(defun defgroup defcustom defvar + defclass defgeneric defconst + define-minor-mode defface)) + (let ((type (symbol-name (car expr))) + (name (symbol-name (cadr expr)))) + (unless (string-match edocs-private-regexp name) + (push (cons type name) ls)))))) + (end-of-file nil)) + (reverse ls)))) (defun edocs--get-docs (type name) "Get docs of TYPE for symbol NAME." |