Ejemplo n.º 1
0
        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,
            });
        }