Esempio n. 1
0
        private void SetupSyntaxHighlighting()
        {
            var colorizer = new MarkdownHighlightingColorizer();
            var blockBackgroundRenderer = new BlockBackgroundRenderer();

            TextChanged += (s, e) =>
            {
                try
                {
                    AbstractSyntaxTree = GenerateAbstractSyntaxTree(Text);
                    colorizer.UpdateAbstractSyntaxTree(AbstractSyntaxTree);
                    blockBackgroundRenderer.UpdateAbstractSyntaxTree(AbstractSyntaxTree);
                    // The block nature of markdown causes edge cases in the syntax hightlighting.
                    // This is the nuclear option but it doesn't seem to cause issues.
                    EditBox.TextArea.TextView.Redraw();
                }
                catch (Exception ex)
                {
                    // See #159
                    Notify.Alert($"Abstract Syntax Tree generation failed: {ex.ToString()}");
                }
            };

            ThemeChanged += (s, e) =>
            {
                colorizer.OnThemeChanged(e.Theme);
                blockBackgroundRenderer.OnThemeChanged(e.Theme);
            };

            EditBox.TextArea.TextView.LineTransformers.Add(colorizer);
            EditBox.TextArea.TextView.BackgroundRenderers.Add(blockBackgroundRenderer);
        }
Esempio n. 2
0
        private void SetupSyntaxHighlighting()
        {
            var colorizer = new MarkdownHighlightingColorizer();

            TextChanged  += (s, e) => colorizer.OnTextChanged(Text);
            ThemeChanged += (s, e) => colorizer.OnThemeChanged(e.Theme);
            EditBox.TextArea.TextView.LineTransformers.Add(colorizer);
        }
Esempio n. 3
0
        public MarkdownEditorViewModel(WorkspaceItemViewModel item) : base(item)
        {
            var theme = Theme.Get("Markdown");

            folding       = new MarkdownFoldingStrategy();
            colorizer     = new MarkdownHighlightingColorizer(theme);
            blockRenderer = new BlockBackgroundRenderer(theme);
            issueRenderer = new IssueBackgroundRenderer(theme);
        }
Esempio n. 4
0
        private void SetupSyntaxHighlighting()
        {
            var colorizer = new MarkdownHighlightingColorizer();
            var blockBackgroundRenderer = new BlockBackgroundRenderer();

            TextChanged += (s, e) =>
            {
                AbstractSyntaxTree = Markdown.GenerateAbstractSyntaxTree(Text);
                colorizer.UpdateAbstractSyntaxTree(AbstractSyntaxTree);
                blockBackgroundRenderer.UpdateAbstractSyntaxTree(AbstractSyntaxTree);
            };
            ThemeChanged += (s, e) =>
            {
                colorizer.OnThemeChanged(e.Theme);
                blockBackgroundRenderer.OnThemeChanged(e.Theme);
            };
            EditBox.TextArea.TextView.LineTransformers.Add(colorizer);
            EditBox.TextArea.TextView.BackgroundRenderers.Add(blockBackgroundRenderer);
        }