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

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

bug#15874: 24.3.50; exit! not properly font-locked in ruby-mode


From: Dmitry Gutov
Subject: bug#15874: 24.3.50; exit! not properly font-locked in ruby-mode
Date: Thu, 05 Dec 2013 05:42:19 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1

On 05.12.2013 04:50, Stefan Monnier wrote:
Maybe a good way to handle them is via syntax-propertize,

Huh yes, that's an approach I haven't considered. But it seems more performance-intensive than the other options, at least as long as Emacs regexps don't support lookbehind.

If we could match "non-symbols", then the font-lock part of the problem would be solved, and appending "?" or "!" in the forward-token and backward-token functions would take negligible amount of time.

Say, why don't we have a "non-symbol" matcher? I would think that in many cases the regexp engine performs unnecessary work when it sees "\\_<" or "\\_>" because we often know in advance that the character we've already matched, or will have to match next, is a symbol constituent. But the engine has to check.

Most uses of `(regexp-opt '("boats" "boats" "boats") 'symbols)' would fall under this scenario.

> then, especially
if we can come up with a good regexp that distinguishes "method name"
from "local variable name"?

Not really. References to local variables, unlike instance and global ones, are indistinguishable from method calls if we judge only by name.

We could backtrack until the beginning of block or method, look for assignments, etc, but that's a lot of work for marginal gain: we can just assume that each such reference is a method calls, because otherwise it would be syntax error.






reply via email to

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