internal static void FormatSql() { Gateway.SetCurrentLanguage(LangType.L_SQL); var text = GetCurrentText(); var options = new TSqlStandardFormatterOptions { BreakJoinOnSections = _settings.BreakJoinOnSections, ExpandBetweenConditions = _settings.ExpandBetweenConditions, ExpandBooleanExpressions = _settings.ExpandBooleanExpressions, ExpandCaseStatements = _settings.ExpandCaseStatements, ExpandCommaLists = _settings.ExpandCommaList, ExpandInLists = false, HTMLColoring = false, IndentString = _settings.IndentString, KeywordStandardization = _settings.KeywordStandardization, MaxLineWidth = _settings.MaxLineWidth, NewClauseLineBreaks = 0, NewStatementLineBreaks = 0, SpaceAfterExpandedComma = _settings.SpaceAfterExpandedComma, SpacesPerTab = _settings.SpacesPerTab, TrailingCommas = _settings.TrailingCommas, UppercaseKeywords = _settings.UppercaseKeywords }; var innerFormatter = new TSqlStandardFormatter(options); var tokenizer = new TSqlStandardTokenizer(); var parser = new TSqlStandardParser(); var parsedSql = parser.ParseSQL(tokenizer.TokenizeSQL(text)); Editor.SetText(innerFormatter.FormatSQLTree(parsedSql)); }
public string PrettyPrint(string sql) { var tokenizer = new TSqlStandardTokenizer(); var tokenized = tokenizer.TokenizeSQL(sql); var parser = new TSqlStandardParser(); var parsedSql = parser.ParseSQL(tokenized); return(_formatter.FormatSQLTree(parsedSql)?.TrimEnd()); }
public void TestParseSqlWithNameKeyword() { var sql = @"select name from sometable"; TSqlStandardTokenizer tokenizer = new TSqlStandardTokenizer(); var tokenList = tokenizer.TokenizeSQL(sql); SybaseTSqlParser parser = new SybaseTSqlParser(); XmlDocument xml = parser.ParseSQL(tokenList); Assert.AreEqual(1, xml.SelectNodes("//Other[text()='name']").Count); }
public void TestParseSqlWithLeftRightJoins() { var sql = @"select a.a1, b.b1 from a, b where (a.k1*=b.k1 and a.k2=*b.k2) or (a.k3 =* b.k3 and a.k4 *= b.k4)"; TSqlStandardTokenizer tokenizer = new TSqlStandardTokenizer(); var tokenList = tokenizer.TokenizeSQL(sql); SybaseTSqlParser parser = new SybaseTSqlParser(); XmlDocument xml = parser.ParseSQL(tokenList); Assert.AreEqual(0, xml.SelectNodes("//Asterisk").Count); }
public void TestParseSqlWithInKeyword() { var sql = @"select a,b,c from k where a in ('a', 1, 'c')"; TSqlStandardTokenizer tokenizer = new TSqlStandardTokenizer(); var tokenList = tokenizer.TokenizeSQL(sql); SybaseTSqlParser parser = new SybaseTSqlParser(); XmlDocument xml = parser.ParseSQL(tokenList); Assert.AreEqual(1, xml.SelectNodes("//AlphaOperator[text()='in']").Count); }
public void TestParseSqlWithDateTypeKeywords() { var sql = @"select a.a, b.int, dAte, b.k1 as date, v.c as varchar from iNt..a, date..b, varchar v where a.Int=b.daTe"; TSqlStandardTokenizer tokenizer = new TSqlStandardTokenizer(); var tokenList = tokenizer.TokenizeSQL(sql); SybaseTSqlParser parser = new SybaseTSqlParser(); XmlDocument xml = parser.ParseSQL(tokenList); Assert.AreEqual(0, xml.SelectNodes("//DataTypeKeyword").Count); }
public void TestParseDataTypeDeclare() { var sql = @"declare varchar(10) a"; TSqlStandardTokenizer tokenizer = new TSqlStandardTokenizer(); var tokenList = tokenizer.TokenizeSQL(sql); SybaseTSqlParser parser = new SybaseTSqlParser(); XmlDocument xml = parser.ParseSQL(tokenList); Assert.AreEqual(2, xml.SelectNodes("//WhiteSpace").Count); }
internal SqlClassifier(ITagAggregator <StringTag> tagger, IClassificationTypeRegistryService classificationRegistry) { this.tagger = tagger; keywordType = classificationRegistry.GetClassificationType("sql-keyword"); operatorType = classificationRegistry.GetClassificationType("sql-operator"); stringType = classificationRegistry.GetClassificationType("sql-string"); functionType = classificationRegistry.GetClassificationType("sql-function"); numberType = classificationRegistry.GetClassificationType("sql-number"); parameterType = classificationRegistry.GetClassificationType("sql-parameter"); commentType = classificationRegistry.GetClassificationType("sql-comment"); formatter = new CustomFormatter(); tokenizer = new TSqlStandardTokenizer(); parser = new TSqlStandardParser(); }
public void TestParseSqlWithTxKeyword() { var sql = @"create proc test as select count(*) from CIS..order_header oh left outer join CIS..order_detail od on oh.order_no=od.order_no and oh.order_type=od.order_type where b.order_type is null begin tran commit tran return "; TSqlStandardTokenizer tokenizer = new TSqlStandardTokenizer(); var tokenList = tokenizer.TokenizeSQL(sql); SybaseTSqlParser parser = new SybaseTSqlParser(); XmlDocument xml = parser.ParseSQL(tokenList); Assert.AreEqual(2, xml.SelectNodes("//OtherKeyword[text()='tran']").Count); }