Note that there are some explanatory texts on larger screens.

plurals
  1. POStack overflow while generating tags completion table in emacs
    primarykey
    data
    text
    <p>I'm using GNU Emacs 23.3 on Windows. I work in a very large codebase for which I generate a TAGS file (using the etags binary supplied with Emacs). The TAGS file is quite large (usually hovers around 100MB). I rarely need to use any functionality beyond <code>find-tag</code>, but there are times when I wish I could do completion out of the TAGS table. </p> <p>Calling <code>complete-tag</code> causes Emacs to make a completion table automatically. The process takes quite a bit of time, but my problem isn't in the amount of time it takes, but rather the fact that right at the end (around 100% completion), I get a stack overflow (sorry about the unprintable chars):</p> <pre><code>Debugger entered--Lisp error: (error "Stack overflow in regexp matcher") re-search-forward("^\\(\\([^]+[^-a-zA-Z0-9_+*$:]+\\)?\\([-a-zA-Z0-9_+*$?:]+\\)[^-a-zA-Z0-9_+*$?:]*\\)\\(\\([^\n]+\\)\\)?\\([0-9]+\\)?,\\([0-9]+\\)?\n" nil t) etags-tags-completion-table() byte-code(...) tags-completion-table() </code></pre> <p>Has anyone else run into this? Know of a way to work around it?</p> <p><strong>EDIT:</strong> Stack output after turning on <code>debug-on-error</code></p> <p><strong>EDIT:</strong> Removed stack, since I now know what the failing entries look like:</p> <pre><code>^L c:\path\to\some\header.h,0 ^L c:\path\to\some\otherheader.h,0 </code></pre> <p>My tags file contains quite a few entries in this format. Looking at the headers involved, it's clear that they couldn't be correctly parsed by etags. This is fine, but I'm surprised that <code>tags-completion-table</code> doesn't account for this format in its regex. For reference, here's what a real entry looks like:</p> <pre><code>^L c:\path\to\some\validheader.h,115 class CSomeClass ^?12,345 bool SomeMethod(^?CSomeClass::SomeMethod^A67,890 </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload