On 2015-01-19 03:27, Allan Odgaard wrote:
I don’t understand you here.
The problem is that TextMate grammars have nested rules that will match constructs that span multiple lines. Take e.g. this:
1 --- test.cc (saved version) 2 +++ (current document) 3 @@ -1,6 +1,6 @@ 4 int main (int argc, char const* argv[]) 5 { 6 - for(size_t i = 0; i < count; ++i) 7 +/* for(size_t i = 0; i < count; ++i) 8 fprintf(stderr, "%zu\n", i); 9 - return 0; 10 +*/ return 0; 11 }
How can you use the existing C++ grammar to figure out that line 9 should not be rendered as commented?
Oh, I see. I guess it can't. It would render everything after the line starting with "@@ ..." as C++. If possible, ignoring leading + or -.
GitHub produces the diff themselves from the two versions of the file, so they have the ability to style the two original versions.
TextMate generally just sees the resulting diff file.
Right.