/// <summary> /// Instantiates a TextAdornment1 manager when a textView is created. /// </summary> /// <param name="textView">The <see cref="IWpfTextView"/> upon which the adornment should be placed</param> public void TextViewCreated(IWpfTextView textView) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); // only CSharp files if (textView.TextBuffer.ContentType.TypeName != "CSharp") { return; } // if it's part of a project, it must be referencing Eto.dll. var project = textView.GetContainingProject(); if (project != null) { var vsproject = project.Object as VSLangProj.VSProject; if (vsproject != null) { var references = vsproject.References.OfType <VSLangProj.Reference>().ToList(); if (!references.Any(r => r.Name == "Eto")) { return; } } } new ColorAdornment(textView); }
/// <summary> /// Instantiates a TextAdornment1 manager when a textView is created. /// </summary> /// <param name="textView">The <see cref="IWpfTextView"/> upon which the adornment should be placed</param> public void TextViewCreated(IWpfTextView textView) { // only CSharp files if (textView.TextBuffer.ContentType.TypeName != "CSharp") return; // if it's part of a project, it must be referencing Eto.dll. var project = textView.GetContainingProject(); if (project != null) { var vsproject = project.Object as VSLangProj.VSProject; if (vsproject != null) { var references = vsproject.References.OfType<VSLangProj.Reference>().ToList(); if (!references.Any(r => r.Name == "Eto")) return; } } new ColorAdornment(textView); }
public PerspexEditorMargin(IWpfTextView textView) { _textView = textView; _targetExe = textView.GetContainingProject()?.GetAssemblyPath(); if (_targetExe == null) { Height = 0; return; } _designer = new PerspexDesigner() {TargetExe = _targetExe }; InitializeComponent(); DesignerContainer.Content = _designer; Height = 200; _designer.Xaml = textView.TextBuffer.CurrentSnapshot.GetText(); PerspexBuildEvents.Instance.BuildEnd += Restart; PerspexBuildEvents.Instance.ModeChanged += OnModeChanged; textView.TextBuffer.PostChanged += delegate { _designer.Xaml = textView.TextBuffer.CurrentSnapshot.GetText(); }; ReloadMetadata(); }