Fixed a strange issue with the folding & indent. It wasn't properly matching escaped strings inside strings

This commit is contained in:
Thomas Aylott
2008-09-28 03:41:49 -04:00
parent e3c2594e12
commit 4d6df87768
3 changed files with 152 additions and 16 deletions
+8 -8
View File
@@ -12,17 +12,17 @@
</array>
<key>foldingStartMarker</key>
<string>(?x)^ \s* (?!//|/\*)([^\s].*)?
# Open (nothing | ( string | no parens )+ | (no parens? (nested parens ) no parens?)+ )
( \[ (?: | ( (?&lt;str&gt; '(\\'|[^'])*+' | "(\\"|[^"])*+" | /(\\/|[^/])*+/) | (?&lt;noR&gt;[^\[\]'"/]++) )++ | (\g&lt;noR&gt;? (?&lt;round&gt; \[ (?: \g&lt;str&gt; | \g&lt;noR&gt; | \g&lt;round&gt; )* \] ) \g&lt;noR&gt;? )++ )
| \( (?: | ( \g&lt;str&gt; | (?&lt;noS&gt;[^\(\)'"/]++) )++ | (\g&lt;noS&gt;? (?&lt;squar&gt; \( (?: \g&lt;str&gt; | \g&lt;noS&gt; | \g&lt;squar&gt; )* \) ) \g&lt;noS&gt;? )++ )
| \{ (?: | ( \g&lt;str&gt; | (?&lt;noC&gt;[^\{\}'"/]++) )++ | (\g&lt;noC&gt;? (?&lt;curly&gt; \{ (?: \g&lt;str&gt; | \g&lt;noC&gt; | \g&lt;curly&gt; )* \} ) \g&lt;noC&gt;? )++ )
# Open (nothing |( string | no parens/string )++ | (no parens? (nested parens ) no parens?)+ )
( \[ (?: |( (?&lt;str&gt; (?&lt;!\\)'(\\'|[^'])*+' | (?&lt;!\\)"(\\"|[^"])*+" | (?&lt;!\\)/(\\/|[^/])*+/) | (?&lt;noS&gt;[^\[\]'"/]++) )++ | (\g&lt;noS&gt;? (?&lt;squar&gt; \[ (?: \g&lt;str&gt; | \g&lt;noS&gt; | \g&lt;squar&gt; )* \] ) \g&lt;noS&gt;? )++ )
| \( (?: |( \g&lt;str&gt; | (?&lt;noR&gt;[^\(\)'"/]++) )++ | (\g&lt;noR&gt;? (?&lt;round&gt; \( (?: \g&lt;str&gt; | \g&lt;noR&gt; | \g&lt;round&gt; )* \) ) \g&lt;noR&gt;? )++ )
| \{ (?: |( \g&lt;str&gt; | (?&lt;noC&gt;[^\{\}'"/]++) )++ | (\g&lt;noC&gt;? (?&lt;curly&gt; \{ (?: \g&lt;str&gt; | \g&lt;noC&gt; | \g&lt;curly&gt; )* \} ) \g&lt;noC&gt;? )++ )
)$</string>
<key>foldingStopMarker</key>
<string>(?x)^ \s* (?!//|/\*)
# (nothing | ( string | no parens )+ | (no parens? (nested parens ) no parens?)+ ) Close
( (?: | ( (?&lt;str&gt; '(\\'|[^'])*+' | "(\\"|[^"])*+" | /(\\/|[^/])*+/) | (?&lt;noR&gt;[^\[\]'"/]++) )++ | (\g&lt;noR&gt;? (?&lt;round&gt; \[ (?: \g&lt;str&gt; | \g&lt;noR&gt; | \g&lt;round&gt; )* \] ) \g&lt;noR&gt;? )++ ) \]
| (?: | ( \g&lt;str&gt; | (?&lt;noS&gt;[^\(\)'"/]++) )++ | (\g&lt;noS&gt;? (?&lt;squar&gt; \( (?: \g&lt;str&gt; | \g&lt;noS&gt; | \g&lt;squar&gt; )* \) ) \g&lt;noS&gt;? )++ ) \)
| (?: | ( \g&lt;str&gt; | (?&lt;noC&gt;[^\{\}'"/]++) )++ | (\g&lt;noC&gt;? (?&lt;curly&gt; \{ (?: \g&lt;str&gt; | \g&lt;noC&gt; | \g&lt;curly&gt; )* \} ) \g&lt;noC&gt;? )++ ) \}
# (nothing |( string | no parens/string )++ | (no parens? (nested parens ) no parens?)+ ) Close
( (?: |( (?&lt;str&gt; (?&lt;!\\)'(\\'|[^'])*+' | (?&lt;!\\)"(\\"|[^"])*+" | (?&lt;!\\)/(\\/|[^/])*+/) | (?&lt;noS&gt;[^\[\]'"/]++) )++ | (\g&lt;noS&gt;? (?&lt;squar&gt; \[ (?: \g&lt;str&gt; | \g&lt;noS&gt; | \g&lt;squar&gt; )* \] ) \g&lt;noS&gt;? )++ ) \]
| (?: |( \g&lt;str&gt; | (?&lt;noR&gt;[^\(\)'"/]++) )++ | (\g&lt;noR&gt;? (?&lt;round&gt; \( (?: \g&lt;str&gt; | \g&lt;noR&gt; | \g&lt;round&gt; )* \) ) \g&lt;noR&gt;? )++ ) \)
| (?: |( \g&lt;str&gt; | (?&lt;noC&gt;[^\{\}'"/]++) )++ | (\g&lt;noC&gt;? (?&lt;curly&gt; \{ (?: \g&lt;str&gt; | \g&lt;noC&gt; | \g&lt;curly&gt; )* \} ) \g&lt;noC&gt;? )++ ) \}
)</string>
<key>keyEquivalent</key>
<string>^~J</string>