예제 #1
0
        /// <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);
        }
예제 #2
0
		/// <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();
        }