From 2428de10edb19ca8dfbe2ad8eed935773923c5a1 Mon Sep 17 00:00:00 2001 From: Patrick Nevels Date: Sat, 25 Jan 2014 19:32:40 -0600 Subject: [PATCH] add Gherkin highlighting --- lib/ace/mode/gherkin.js | 19 ++++++------------- lib/ace/mode/gherkin_highlight_rules.js | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/ace/mode/gherkin.js b/lib/ace/mode/gherkin.js index 8b9b58a5..4a29f971 100644 --- a/lib/ace/mode/gherkin.js +++ b/lib/ace/mode/gherkin.js @@ -16,14 +16,14 @@ oop.inherits(Mode, TextMode); this.getNextLineIndent = function(state, line, tab) { var indent = this.$getIndent(line); + var space2 = " "; var tokenizedLine = this.getTokenizer().getLineTokens(line, state); var tokens = tokenizedLine.tokens; console.log(state) - if(line.match("[ ]*\\|")) { - console.log(line.match("\|")); + if(line.match("[ ]*\\|")) { indent += "| "; } @@ -33,10 +33,10 @@ oop.inherits(Mode, TextMode); if (state == "start") { - if (line.match("Scenario:|Feature:")) { - indent = tab; - } else if(line.match("Given.+(:)$|Examples:")) { - indent += tab; + if (line.match("Scenario:|Feature:|Scenario\ Outline:")) { + indent += space2; + } else if(line.match("(Given|Then).+(:)$|Examples:")) { + indent += space2; } else if(line.match("\\*.+")) { indent += "* "; } @@ -45,13 +45,6 @@ oop.inherits(Mode, TextMode); return indent; }; - - this.checkOutdent = function(state, line, input) { - if(line.match("Feature:")) { - - } - } - // Extra logic goes here. (see below) }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/gherkin_highlight_rules.js b/lib/ace/mode/gherkin_highlight_rules.js index a902703d..13416d5b 100644 --- a/lib/ace/mode/gherkin_highlight_rules.js +++ b/lib/ace/mode/gherkin_highlight_rules.js @@ -16,7 +16,7 @@ var GherkinHighlightRules = function() { regex : "#.*$" }, { token : "keyword", - regex : "Feature:|Background:|Scenario:|Scenario Outline:|Examples:|Given|When|Then|And|But|\\*|Scenario\ Outline", + regex : "Feature:|Background:|Scenario:|Scenario\ Outline:|Examples:|Given|When|Then|And|But|\\*", }, { token : "string", // multi line """ string start regex : '"{3}',