bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#46859: 28.0.50; [PATCH]: Add option to truncate long lines in xref.e


From: Gregory Heytings
Subject: bug#46859: 28.0.50; [PATCH]: Add option to truncate long lines in xref.el
Date: Wed, 03 Mar 2021 19:34:30 +0000


Yes.  You get, for each match: the line number (from the beginning of the file), the byte offset (from the beginning of the file) of the first displayed character, and the context of the match.

OK, so we get the byte offset, but not the length of the match (which we'll also need later, for purposes such as highlighting and replacement). And what happens if there are several matches on the same line? We need columns for all of them.


I don't know exactly what you want to do, I initially chimed in this conversation to react to Juri's "GNU grep has no option to truncate output", to mention that GNU grep does have an option to do this; perhaps it doesn't do exactly what you want.

I could be wrong, but I believe that adapting what you want to what GNU grep provides will always be more efficient than the opposite.

And you can easily get the byte offset of each beginning of line with "grep -nbo '^.'", so calculating the byte offset from the beginning of the line is easy.

Do you mean to suggest we call grep one more time for each matching line?


No, once for each file. "grep -nbo '^.' FILE" returns a "<line>:<offset of first char>:<first char>" line for each line in FILE. With this you can easily calculate the offset of a match on a given line. This will be more efficient than calculating the offset of a match by parsing each line with Elisp code.
reply via email to

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