/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/VisualStudio/Core/Def/DocumentOutline/DocumentOutlineViewModel.DocumentOutlineViewState.cs
57 строк
2 KB
Cyrus Najmabadi
Rename top level types
05 июн 2024, 21:20
05 июн 2024, 21:20
7ac2e11
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Collections.Immutable; using Microsoft.CodeAnalysis.Shared.Collections; using Microsoft.VisualStudio.Text; namespace Microsoft.VisualStudio.LanguageServices.DocumentOutline; internal sealed partial class DocumentOutlineViewModel { /// <summary> /// Snapshot of all state used to compute and present our models. Used when we produce new models to both /// transfer state over from the old ones, and to efficiently tell what is different between the last results /// and the new ones. /// </summary> private sealed class DocumentOutlineViewState { /// <summary> /// The snapshot of the document used to compute this state. /// </summary> public readonly ITextSnapshot TextSnapshot; /// <summary> /// The text string that was used to filter the original LSP results down to the set of <see /// cref="DocumentSymbolData"/> we have. /// </summary> public readonly string SearchText; /// <summary> /// The view items we created from <see cref="DocumentSymbolData"/>. Note: these values are a bit odd in /// that they represent mutable UI state. Docs on DocumentSymbolDataViewModel indicate that it likely /// should be as the only mutable state is <see cref="DocumentSymbolDataViewModel.IsExpanded"/>/<see /// cref="DocumentSymbolDataViewModel.IsSelected"/>, both of which are threadsafe. /// </summary> public readonly ImmutableArray<DocumentSymbolDataViewModel> ViewModelItems; /// <summary> /// Interval-tree view over <see cref="ViewModelItems"/> so that we can quickly determine which of them /// intersect with a particular position in the document. /// </summary> public readonly ImmutableIntervalTree<DocumentSymbolDataViewModel> ViewModelItemsTree; public DocumentOutlineViewState( ITextSnapshot textSnapshot, string searchText, ImmutableArray<DocumentSymbolDataViewModel> viewModelItems, ImmutableIntervalTree<DocumentSymbolDataViewModel> viewModelItemsTree) { TextSnapshot = textSnapshot; SearchText = searchText; ViewModelItems = viewModelItems; ViewModelItemsTree = viewModelItemsTree; } } }