private static string MakeGherkinHighlightingContent(string xshd_template, GherkinLanguage language) { StringBuilder sb = new StringBuilder(); sb.AppendLine("<?xml version=\"1.0\"?>") .AppendLine("<SyntaxDefinition name=\"" + GherkinUtil.GherkinHighlightingName(language.key) + "\" xmlns=\"http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008\">") .AppendLine(xshd_template) .AppendLine(MakeGherkinKeyword(language)) .AppendLine() .AppendLine(MakeStepKeyword(language)) .AppendLine(" </RuleSet>") .AppendLine("</SyntaxDefinition>"); return(sb.ToString()); }
private static string MakeStepKeyword(GherkinLanguage language) { StringBuilder sb = new StringBuilder(); sb .AppendLine(" <Rule color=\"StepWord\">") .Append(" ^\\s*(") .Append(Keyword(language.given)) .Append(Keyword(language.when)) .Append(Keyword(language.then)) .Append(Keyword(language.and)) .Append(Keyword(language.but)); sb.Remove(sb.Length - 1, 1); // remove last "|" sb.AppendLine(")\\s+") .AppendLine(" </Rule>"); return(sb.ToString()); }
private static void GenerateKeywords(StringBuilder sb, GherkinLanguage language) { sb.AppendLine("======================================") .Append("#language: ") .AppendLine(language.key) .Append("Language: ") .AppendLine(language.name + ", " + language.native) .AppendLine("======================================") .AppendLine(GenerateKeywords("Feature", language.feature)) .AppendLine(GenerateKeywords("Background", language.background)) .AppendLine(GenerateKeywords("Scenario", language.scenario)) .AppendLine(GenerateKeywords("Scenario Outline", language.scenarioOutline)) .AppendLine(GenerateKeywords("Examples", language.examples)) .AppendLine(GenerateKeywords("Given", language.given)) .AppendLine(GenerateKeywords("When", language.when)) .AppendLine(GenerateKeywords("Then", language.then)) .AppendLine(GenerateKeywords("And", language.and)) .AppendLine(GenerateKeywords("But", language.but)) .AppendLine(); }
private static string MakeGherkinKeyword(GherkinLanguage language) { // Sample // \s*(Feature|Background|Scenario|Scenarios|Examples|Scenario\s+Outline|Scenario\s+Template)\s*: StringBuilder sb = new StringBuilder(); sb .AppendLine(" <Rule color=\"Keyword\">") .Append(" ^\\s*(") .Append(Keyword(language.feature)) .Append(Keyword(language.background)) .Append(Keyword(language.scenario)) .Append(Keyword(language.scenarioOutline)) .Append(Keyword(language.examples)); sb.Remove(sb.Length - 1, 1); // remove last "|" sb.AppendLine(")\\s*:") .AppendLine(" </Rule>"); return(sb.ToString()); }
public GherkinKeywordsCurrent(GherkinLanguage lang) { m_Language = lang; }