/// <summary> /// Get current Gherkin language setting by scanning first 5 lines /// </summary> /// <param name="document"></param> /// <returns>language defined in tag or English as default language</returns> public static string CurrentLanguage(ICSharpCode.AvalonEdit.Document.TextDocument document) { var location = new Ast.Location(); ICSharpCode.AvalonEdit.Document.DocumentLine line = document.GetLineByNumber(1); while (line != null) { string line_text = document.GetText(line.Offset, line.TotalLength); Token token = new Token(new GherkinLine(line_text, line.LineNumber), location); try { if (s_TokenMatcher.Match_Language(token) && IsSupported(token.MatchedText)) { return(token.MatchedText); } if (line.LineNumber > 5) { return(DEFAULT_LANGUAGE); } line = line.NextLine; } catch { return(DEFAULT_LANGUAGE); } } return(DEFAULT_LANGUAGE); }
public GherkinDialect GetCurrentDialect(string language) { var location = new Ast.Location(); try { return(base.GetDialect(language, location)); } catch { return(base.DefaultDialect); } }
private Token ToToken(string line) { var location = new Ast.Location(1); return(new Token(new GherkinLine(line, 1), location)); }
protected virtual PickleLocation PickleLocation(Ast.Location location) { return(new PickleLocation(location.Line, location.Column)); }