/// <summary/> public HtmlFormat() { const string regJavaScript = @"(?<=<script(?:\s.*?)?>).+?(?=</script>)"; const string regComment = @"<!--.*?-->"; const string regAspTag = @"<%@.*?%>|<%=?|%>|<\?php|<\?|\?>"; const string regPhpCode = @"(?<=<\?).*?(?=\?>)|(?<=<\?php).*?(?=\?>)"; const string regAspCode = @"(?<=<%=?).*?(?=%>)"; const string regTagDelimiter = @"(?:</?!?\??(?!%)|(?<!%)/?>)+"; const string regTagName = @"(?<=</?!?\??(?!%))[\w\.:-]+(?=.*>)"; const string regAttributes = @"(?<=<(?!%)/?!?\??[\w:-]+).*?(?=(?<!%)/?>)"; const string regEntity = @"&\w+;"; const string regAttributeMatch = @"(=?"".*?""|=?'.*?')|([\w:-]+)"; string regAll = "(" + regJavaScript + ")|(" + regComment + ")|(" + regAspTag + ")|(" + regAspCode + ")|(" + regPhpCode + ")|(" + regTagDelimiter + ")|(" + regTagName + ")|(" + regAttributes + ")|(" + regEntity + ")"; CodeRegex = new Regex(regAll, RegexOptions.IgnoreCase | RegexOptions.Singleline); attribRegex = new Regex(regAttributeMatch, RegexOptions.Singleline); csf = new CSharpFormat(); jsf = new JavaScriptFormat(); phf = new PhpFormat(); }
/// <summary> /// TBD /// </summary> public static Tuple <bool, string> FormatCode(string lang, string code) { SourceFormat sf = null; switch (lang) { case "csharp": case "cs": sf = new FSharp.Formatting.CSharpFormat.CSharpFormat(); break; case "c++": case "cpp": sf = new CPlusPlusFormat(); break; case "js": case "javascript": sf = new JavaScriptFormat(); break; case "ts": case "typescript": sf = new TypeScriptFormat(); break; case "vb": case "basic": sf = new VisualBasicFormat(); break; case "sql": sf = new TsqlFormat(); break; case "msh": sf = new MshFormat(); break; case "haskell": sf = new HaskellFormat(); break; case "php": sf = new PhpFormat(); break; case "fsharp": case "fs": sf = new FSharpFormat(); break; case "html": case "xml": case "aspx": sf = new HtmlFormat(); break; case "paket": sf = new PaketFormat(); break; } if (sf == null) { return(Tuple.Create(false, SourceFormat.EscapeHtml(code, tabSpaces: 2))); } else { sf.TabSpaces = 2; return(Tuple.Create(true, sf.FormatCode(code))); } }