diff --git a/lib/ace/mode/ruby_highlight_rules.js b/lib/ace/mode/ruby_highlight_rules.js index 27053507..373f1636 100644 --- a/lib/ace/mode/ruby_highlight_rules.js +++ b/lib/ace/mode/ruby_highlight_rules.js @@ -174,9 +174,15 @@ var RubyHighlightRules = function() { }, { stateName: "heredoc", token : function(value, currentState, stack) { - var next = value[0].length == 2 ? "heredoc" : "indentedHeredoc" - stack.push(next, value[2]) - return ["constant", "string", "support.class", "string"] + var next = value[3] == '-' ? "heredoc" : "indentedHeredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[3]); + return [ + {type:"constant", value: "<<"}, + {type:"string", value: tokens[2]}, + {type:"support.class", value: tokens[3]}, + {type:"string", value: tokens[4]} + ]; }, regex : "(<<-?)(['\"`]?)([\\w]+)(['\"`]?)", rules: {