[SVN] Erlang.tmbundle: tildes in strings highlight incorrectly

Alain O'Dea alain.odea at gmail.com
Fri Jan 25 19:33:57 UTC 2008


I wrote the following Erlang statement to split a tilde-delimited line:
{ok, Fields} = regexp:split(Line, "~").

The "~" is not highlighted correctly. It displays as a malformed  
string. If I put my cursor right before the closing bracket and check  
the scope I get:
source.erlang
meta.function.erlang
meta.function-call.erlang
string.quoted.double.erlang
invalid.illegal.string.erlang

The tilde (~) in Erlang is like the percent (%) in C/C++ printf. It is  
only parsed by formatting functions. It is not an inherent part of the  
string data structure. So instead of being a compile-time error in all  
strings it is a runtime error when passed as to a formatting function.

Erlang.tmbundle's language could be extended to treat strings in the  
scope of known formatting function calls with the format string syntax  
rules. I am not sure off the top of my head how to do this, but I will  
try.

In the meantime I will get around the highlighting by using an  
alternative syntax:
{ok, Fields} = regexp:split(Line, $~)

I would imagine the thought behind the current language rules is that  
static strings are primarily written as the arguments of formatting  
functions. In my experience this seems to be a legitimate conclusion.



More information about the textmate-dev mailing list