Hi. This wasn't really a proposed fix but more a hint to help debugging. I haven't had time to really study the code. Thanks for the feedback. On Mon, Apr 4, 2011 at 9:23 AM, Stefan Monnier wrote: > > Could you help review Pål de Vibe's proposed fix to the following > > problem in Emacs ruby-mode? Thanks. > > His proposed fix is not correct: in ruby (like in Elisp) ? is used > for chars (including ?' and ?") and $' and $" are also special vars, so > his fix just disables the special treatment of ?. > For Emacs-24, we use a different chunk of code which doesn't suffer from > this problem (mostly calling syntax-ppss to determine if we're inside > a string). > > > Stefan > > > > Pål de Vibe writes: > > >>> ruby-mode will misunderstand a ruby double-quoted string literal which > >>> contains a single quote and ends with a question mark. It thinks that > >>> the string literal is unterminated, which contaminates the syntax > >>> highlighting for the remainder of the buffer. > >>> > >>> Example ruby code which will demonstrate the problem: > >>> > >>> ["Is 'this' a string?"], [:something, :else] > >>> > >>> If there's anything between the question mark and the terminating > >>> double-quote, the string will be correctly interpreted. > >> > >> Line 1185: > >> ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil)) > >> > >> A workaround (with, to me, uknown consequences) is to remove the > >> question mark from the line, like this: > >> > >> ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[$]\\([#\"'`]\\)" 3 (1 . nil)) > > > >