Example #1
0
        public DocumentId Initialize(IRoslynHost roslynHost, IClassificationHighlightColors highlightColors, string workingDirectory, string documentText)
        {
            _roslynHost = roslynHost ?? throw new ArgumentNullException(nameof(roslynHost));
            _classificationHighlightColors = highlightColors ?? throw new ArgumentNullException(nameof(highlightColors));

            _braceMatcherHighlighter = new BraceMatcherHighlightRenderer(TextArea.TextView, _classificationHighlightColors);

            _quickInfoProvider    = _roslynHost.GetService <IQuickInfoProvider>();
            _braceMatchingService = _roslynHost.GetService <IBraceMatchingService>();

            var avalonEditTextContainer = new AvalonEditTextContainer(Document)
            {
                Editor = this
            };

            _documentId = roslynHost.AddDocument(avalonEditTextContainer, workingDirectory,
                                                 args => _syncContext.Post(o => ProcessDiagnostics(args), null),
                                                 text => avalonEditTextContainer.UpdateText(text));

            AppendText(documentText);
            Document.UndoStack.ClearAll();
            AsyncToolTipRequest = OnAsyncToolTipRequest;

            TextArea.TextView.LineTransformers.Insert(0, new RoslynHighlightingColorizer(_documentId, _roslynHost, _classificationHighlightColors));

            _contextActionsRenderer = new ContextActionsRenderer(this, _textMarkerService);
            _contextActionsRenderer.Providers.Add(new RoslynContextActionProvider(_documentId, _roslynHost));

            CompletionProvider = new RoslynCodeEditorCompletionProvider(_documentId, _roslynHost);

            return(_documentId);
        }
 private AvalonEditSourceText(AvalonEditTextContainer container, SourceText sourceText)
 {
     _container  = container;
     _sourceText = sourceText;
 }
 public AvalonEditSourceText(AvalonEditTextContainer container, string text) : this(container, From(text))
 {
 }