diff --git a/demo/kitchen-sink/docs/coffeescript.coffee b/demo/kitchen-sink/docs/coffeescript.coffee index 521fdc57..a7e50d08 100644 --- a/demo/kitchen-sink/docs/coffeescript.coffee +++ b/demo/kitchen-sink/docs/coffeescript.coffee @@ -17,4 +17,6 @@ do -> heregex # comment ///imgy this isnt: `just JavaScript` - undefined \ No newline at end of file + undefined + +sentence = "#{ 22 / 7 } is a decent approximation of π" \ No newline at end of file diff --git a/lib/ace/mode/coffee_highlight_rules.js b/lib/ace/mode/coffee_highlight_rules.js index 4f1be77b..ca5a0b9b 100644 --- a/lib/ace/mode/coffee_highlight_rules.js +++ b/lib/ace/mode/coffee_highlight_rules.js @@ -179,12 +179,14 @@ define(function(require, exports, module) { qstring : [{ token : "string", regex : "[^\\\\']*(?:\\\\.[^\\\\']*)*'", + merge : true, next : "start" }, stringfill], qqstring : [{ token : "string", regex : '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"', + merge : true, next : "start" }, stringfill], diff --git a/lib/ace/mode/coffee_tokenizer_test.js b/lib/ace/mode/coffee_tokenizer_test.js index 9eeb55a2..20f8146d 100644 --- a/lib/ace/mode/coffee_tokenizer_test.js +++ b/lib/ace/mode/coffee_tokenizer_test.js @@ -53,6 +53,13 @@ module.exports = { var tokens = this.tokenizer.getLineTokens("for", "start").tokens; assert.equal(tokens.length, 1); assert.equal(tokens[0].type, "keyword"); + }, + + "test tokenize string with interpolation": function() { + var tokens = this.tokenizer.getLineTokens('"#{ 22 / 7 } is a decent approximation of π"', "start").tokens; + console.log(tokens); + assert.equal(tokens.length, 12); + //assert.equal(tokens[0].type, "keyword"); } };