private async Task LoadFromFileAsync(StorageFile file) { try { CodeSourceTextBox.Text = await FileIO.ReadTextAsync(file); HighlightLanguage language = HighlightLanguage.PlainText; switch (file.FileType) { case ".js": case ".jsx": language = HighlightLanguage.JavaScript; break; case ".json": language = HighlightLanguage.JSON; break; case ".cs": language = HighlightLanguage.CSharp; break; case ".html": case ".htm": case ".xml": case ".xaml": case ".xsd": case ".xhtml": language = HighlightLanguage.XML; break; case ".py": language = HighlightLanguage.Python; break; case ".java": language = HighlightLanguage.Java; break; case ".css": language = HighlightLanguage.CSS; break; case ".php": language = HighlightLanguage.PHP; break; case ".rb": language = HighlightLanguage.Ruby; break; case ".cpp": language = HighlightLanguage.CPlusPlus; break; case ".sql": language = HighlightLanguage.SQL; break; } LanguageSelectionComboBox.SelectedIndex = LanguageOptions.ToList().IndexOf(language); } catch (Exception ex) { CodeSourceTextBox.Text = $"Unable to read the file: <em>{ex.Message}</em>"; } }
private UIElement GeneratePreformattedCodeBlock(IHtmlElement node) { string language = node.GetAttribute("class"); HighlightLanguage highlightLanguage = HighlightLanguage.PlainText; switch (language) { case "python": highlightLanguage = HighlightLanguage.Python; break; case "javascript": case "js": case "jsx": highlightLanguage = HighlightLanguage.JavaScript; break; case "json": highlightLanguage = HighlightLanguage.JSON; break; case "cs": case "csharp": highlightLanguage = HighlightLanguage.CSharp; break; case "c": case "c++": case "cc": case "cpp": highlightLanguage = HighlightLanguage.CPlusPlus; break; case "css": highlightLanguage = HighlightLanguage.CSS; break; case "php": highlightLanguage = HighlightLanguage.PHP; break; case "ruby": case "rb": highlightLanguage = HighlightLanguage.Ruby; break; case "html": case "xml": case "xhtml": case "rss": highlightLanguage = HighlightLanguage.XML; break; case "java": case "jsp": highlightLanguage = HighlightLanguage.Java; break; case "sql": highlightLanguage = HighlightLanguage.SQL; break; default: break; } return(new CodeHighlightedTextBlock() { Code = CleanText(node.InnerHtml), HighlightLanguage = highlightLanguage, }); }