public void ClosePopup()
		{
			if (popup != null) {
				editor.TextArea.TextView.VisualLinesChanged -= textView_VisualLinesChanged;
				popup.IsOpenIfFocused = false;
				popup = null;
			}
		}
		public void Show(BracketSearchResult bracketSearchResult)
		{
			ClosePopup();
			
			if (bracketSearchResult == null || bracketSearchResult.DefinitionHeaderLength == 0)
				return;
			
			int startOffset = bracketSearchResult.DefinitionHeaderOffset;
			int endOffset = startOffset + bracketSearchResult.DefinitionHeaderLength;
			// show whole line even if the definition is only a part:
			DocumentLine firstLine = editor.Document.GetLineByOffset(startOffset);
			DocumentLine lastLine = editor.Document.GetLineByOffset(endOffset);
			
			TextEditor popupEditor = new TextEditor();
			popupEditor.IsReadOnly = true;
			popupEditor.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
			popupEditor.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
			popupEditor.CopySettingsFrom(editor);
			
			IHighlighter oldHighlighter = editor.GetRequiredService<IHighlighter>();
			FixedHighlighter newHighlighter = FixedHighlighter.CreateView(oldHighlighter, firstLine.Offset, lastLine.EndOffset);
			popupEditor.Document = (TextDocument)newHighlighter.Document;
			popupEditor.TextArea.TextView.LineTransformers.Add(new HighlightingColorizer(newHighlighter));
			
			popup = new ExtendedPopup(editor.TextArea);
			const double borderThickness = 1;
			popup.Child = new Border() {
				Child = popupEditor,
				BorderBrush = editor.TextArea.Foreground,
				BorderThickness = new Thickness(borderThickness)
			};
			popup.HorizontalOffset = -borderThickness - editor.TextArea.TextView.ScrollOffset.X;
			popup.Placement = PlacementMode.Top;
			popup.PlacementTarget = editor.TextArea.TextView;
			this.currentStartOffset = firstLine.Offset;
			editor.TextArea.TextView.VisualLinesChanged += textView_VisualLinesChanged;
			if (editor.TextArea.TextView.VisualLinesValid)
				textView_VisualLinesChanged(null, null); // open popup if necessary
		}