From ac0c3b2f56b2e21792ad4b47316dc08d8e4b231d Mon Sep 17 00:00:00 2001 From: subtlegradient Date: Sat, 5 Jul 2008 23:42:19 +0000 Subject: [PATCH] Improved String Literal syntax. Fixed the "bug" where an unclosed string extends past the closign script tag in html. String should end on \n with a syntax error String should end on \n with a syntax error String should mark as invalid git-svn-id: http://macromates.com/svn/Bundles/trunk/Review/Bundles/JavaScript.tmbundle@10170 dfb7d73b-c2ec-0310-8fea-fb051d288c6d --- Syntaxes/JavaScript Basic.tmLanguage | 45 ++++++++++++++++++++++++++-- Tests/Javascript Syntax Test.js | 4 +-- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/Syntaxes/JavaScript Basic.tmLanguage b/Syntaxes/JavaScript Basic.tmLanguage index 2b5a46c..283c571 100644 --- a/Syntaxes/JavaScript Basic.tmLanguage +++ b/Syntaxes/JavaScript Basic.tmLanguage @@ -356,7 +356,7 @@ end - ' + (?i)'|(?=</\s*script\s*>\s*\n)|(?<=[^\\]\n) endCaptures 0 @@ -375,6 +375,24 @@ name constant.character.escape.js + + match + \\\n + name + constant.character.escape.newline.js + + + match + \n + name + invalid.illegal.newline.js + + + match + (?i)</\s*script\s*> + name + invalid.deprecated.inconsistent.js + @@ -389,7 +407,7 @@ end - " + (?i)"|(?=</\s*script\s*>\s*\n)|(?<=[^\\]\n) endCaptures 0 @@ -408,6 +426,24 @@ name constant.character.escape.js + + match + \\\n + name + constant.character.escape.newline.js + + + match + \n + name + invalid.illegal.newline.js + + + match + (?i)</\s*script\s*> + name + invalid.deprecated.inconsistent.js + @@ -676,6 +712,11 @@ meta.complete.method + repository + + string-double + + scopeName source.js uuid diff --git a/Tests/Javascript Syntax Test.js b/Tests/Javascript Syntax Test.js index 763981a..e170168 100644 --- a/Tests/Javascript Syntax Test.js +++ b/Tests/Javascript Syntax Test.js @@ -226,9 +226,9 @@ Should NOT be scoped as string' // First newline SHOULD be scoped as invalid var stringName4 = "Lorem ipsum dolor sit amet"; -"" SHOULD be scoped as string & invalid.deprecated +// "" SHOULD be scoped as string & invalid.deprecated var stringName5 = "Lorem ipsum dolor sit amet -"" Should NOT be scoped as string +// "" Should NOT be scoped as string // WARNING: regular expressions should be preceded by a left parenthesis, assignment, colon, or comma