auctex-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [AUCTeX-devel] extended reftex-search-document


From: Tassilo Horn
Subject: Re: [AUCTeX-devel] extended reftex-search-document
Date: Tue, 02 Dec 2014 15:21:19 +0100
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux)

Lars Madsen <address@hidden> writes:

Hi Lars,

> And tested it by looking for ' :' (space colon), it should find those
> outside math. It does, but a few files in I get an error
>
> wrong type argument: stringp, nil
>
> and the buffer has opened *next-file*
>
> It seems it was hit at the very first ' :' that is actually in math
> mode. So I'm guessing (not (texmathp)) is not the proper test?

The problem is that `texmathp' assumes that the buffer is in
(la)tex-mode.  That's ok, but `tags-search' scans the files using
fundamental-mode in order to be as fast as possible.  Therefore, the
variable `comment-start-skip' which is used by `texmathp' is nil, and
that's the cause of the error.

Long story short: this works.

--8<---------------cut here---------------start------------->8---
(defun daleif-tags-search (regexp &optional file-list-form)
  "Search through all files listed in tags table for match for REGEXP.
Stops when a match is found.
To continue searching for next match, use command \\[tags-loop-continue].

If FILE-LIST-FORM is non-nil, it should be a form that, when
evaluated, will return a list of file names.  The search will be
restricted to these files.

Also see the documentation of the `tags-file-name' variable."
  (interactive "sTags search (regexp): ")
  (if (and (equal regexp "")
           (eq (car tags-loop-scan) 're-search-forward)
           (null tags-loop-operate))
      ;; Continue last tags-search as if by M-,.
      (tags-loop-continue nil)
    (setq tags-loop-scan
          `(and (re-search-forward ,regexp nil t)
                (let ((comment-start-skip "\\(\\(^\\|[^\\
]\\)\\(\\\\\\\\\\)*\\)\\(%+[    ]*\\)"))
                  (not (texmathp))))
          tags-loop-operate nil)
    (tags-loop-continue (or file-list-form t))))
--8<---------------cut here---------------end--------------->8---

I just let-bound the standard latex-mode value of `comment-start-skip'
in the `tags-loop-scan' form.

Bye,
Tassilo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]