コード例 #1
0
        /// <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);
        }
コード例 #2
0
        public GherkinDialect GetCurrentDialect(string language)
        {
            var location = new Ast.Location();

            try
            {
                return(base.GetDialect(language, location));
            }
            catch
            {
                return(base.DefaultDialect);
            }
        }
コード例 #3
0
        private Token ToToken(string line)
        {
            var location = new Ast.Location(1);

            return(new Token(new GherkinLine(line, 1), location));
        }
コード例 #4
0
 protected virtual PickleLocation PickleLocation(Ast.Location location)
 {
     return(new PickleLocation(location.Line, location.Column));
 }