public void Assimilate(TSqlFormattingState partialState) { //TODO: find a way out of the cross-dependent wrapping maze... CurrentLineLength = CurrentLineLength + partialState.CurrentLineLength; CurrentLineHasContent = CurrentLineHasContent || partialState.CurrentLineHasContent; _outBuilder.Append(partialState.DumpOutput()); }
public string FormatSQLTree(XmlDocument sqlTreeDoc) { //thread-safe - each call to FormatSQLTree() gets its own independent state object TSqlFormattingState state = new TSqlFormattingState(HTMLColoring, IndentString, SpacesPerTab, MaxLineWidth, 0); if (sqlTreeDoc.SelectSingleNode(string.Format("/{0}/@{1}[.=1]", SqlXmlConstants.ENAME_SQL_ROOT, SqlXmlConstants.ANAME_ERRORFOUND)) != null) { state.AddOutputContent(ErrorOutputPrefix); } XmlNodeList rootList = sqlTreeDoc.SelectNodes(string.Format("/{0}/*", SqlXmlConstants.ENAME_SQL_ROOT)); ProcessSqlNodeList(rootList, state); WhiteSpace_BreakAsExpected(state); return(state.DumpOutput()); }