Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vs-editor-api.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Bockover <abock@microsoft.com>2019-06-12 22:02:35 +0300
committerAaron Bockover <abock@microsoft.com>2019-06-12 22:02:35 +0300
commitc000e60533de4389a78ab2b5fcd39f08e736f635 (patch)
tree88be11f91fa85e14826ce82d0c50146e2ffe973d
parent1bc2074f35ff1df5500d5b9d86de4f4417206e45 (diff)
Sync with vs-editor-core@e7e47480
-rw-r--r--src/Editor/Language/Def/Language/AsyncCompletion/Data/AsyncCompletionSessionDataSnapshot.cs34
-rw-r--r--src/Editor/Language/Def/Language/AsyncCompletion/Data/CompletionItem.cs52
-rw-r--r--src/Editor/Language/Impl/Language/AsyncCompletion/AsyncCompletionSession.cs2
-rw-r--r--src/Editor/Text/Def/TextUI/Commanding/Commands/GoToMatchingBraceCommandArgs.cs9
4 files changed, 80 insertions, 17 deletions
diff --git a/src/Editor/Language/Def/Language/AsyncCompletion/Data/AsyncCompletionSessionDataSnapshot.cs b/src/Editor/Language/Def/Language/AsyncCompletion/Data/AsyncCompletionSessionDataSnapshot.cs
index eeaeded..b6f1227 100644
--- a/src/Editor/Language/Def/Language/AsyncCompletion/Data/AsyncCompletionSessionDataSnapshot.cs
+++ b/src/Editor/Language/Def/Language/AsyncCompletion/Data/AsyncCompletionSessionDataSnapshot.cs
@@ -25,6 +25,11 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
public CompletionTrigger Trigger { get; }
/// <summary>
+ /// The <see cref="CompletionTrigger"/> that started this completion session.
+ /// </summary>
+ public CompletionTrigger InitialTrigger { get; }
+
+ /// <summary>
/// Filters, their availability and selection state.
/// </summary>
public ImmutableArray<CompletionFilterWithState> SelectedFilters { get; }
@@ -55,11 +60,40 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
ImmutableArray<CompletionFilterWithState> selectedFilters,
bool isSoftSelected,
bool displaySuggestionItem
+ ) : this(
+ initialSortedList,
+ snapshot,
+ trigger,
+ default,
+ selectedFilters,
+ isSoftSelected,
+ displaySuggestionItem)
+ {
+ }
+
+ /// <summary>
+ /// Constructs <see cref="AsyncCompletionSessionDataSnapshot"/>
+ /// </summary>
+ /// <param name="initialSortedList">Set of <see cref="CompletionItem"/>s to filter and sort, originally returned from <see cref="IAsyncCompletionItemManager.SortCompletionListAsync"/></param>
+ /// <param name="snapshot">The <see cref="ITextSnapshot"/> applicable for this computation. The snapshot comes from the view's data buffer</param>
+ /// <param name="trigger">The <see cref="CompletionTrigger"/> that caused this update</param>
+ /// <param name="selectedFilters">Filters, their availability and selection state</param>
+ /// <param name="isSoftSelected">Inidicates whether the session is using soft selection</param>
+ /// <param name="displaySuggestionItem">Inidicates whether the session has a suggestion item</param>
+ public AsyncCompletionSessionDataSnapshot(
+ ImmutableArray<CompletionItem> initialSortedList,
+ ITextSnapshot snapshot,
+ CompletionTrigger trigger,
+ CompletionTrigger initialTrigger,
+ ImmutableArray<CompletionFilterWithState> selectedFilters,
+ bool isSoftSelected,
+ bool displaySuggestionItem
)
{
InitialSortedList = initialSortedList;
Snapshot = snapshot;
Trigger = trigger;
+ InitialTrigger = initialTrigger;
SelectedFilters = selectedFilters;
IsSoftSelected = isSoftSelected;
DisplaySuggestionItem = displaySuggestionItem;
diff --git a/src/Editor/Language/Def/Language/AsyncCompletion/Data/CompletionItem.cs b/src/Editor/Language/Def/Language/AsyncCompletion/Data/CompletionItem.cs
index 4bbf5e7..51e1e8a 100644
--- a/src/Editor/Language/Def/Language/AsyncCompletion/Data/CompletionItem.cs
+++ b/src/Editor/Language/Def/Language/AsyncCompletion/Data/CompletionItem.cs
@@ -37,6 +37,11 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
public string FilterText { get; }
/// <summary>
+ /// Text used by narrator and other automation tools
+ /// </summary>
+ public string AutomationText { get; }
+
+ /// <summary>
/// Reference to the instance that will provide tooltip and custom commit method.
/// This should be the same instance as the one that created this <see cref="CompletionItem"/>
/// </summary>
@@ -76,7 +81,7 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
/// <param name="displayText">Text to use in the UI, when sorting, filtering and completing</param>
/// <param name="source">Reference to <see cref="IAsyncCompletionSource"/> that created this item</param>
public CompletionItem(string displayText, IAsyncCompletionSource source)
- : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText,
+ : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText, automationText: displayText,
source: source, filters: ImmutableArray<CompletionFilter>.Empty, icon: default(ImageElement),
suffix: string.Empty, attributeIcons: ImmutableArray<ImageElement>.Empty)
{
@@ -90,7 +95,7 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
/// <param name="source">Reference to <see cref="IAsyncCompletionSource"/> that created this item</param>
/// <param name="icon">Image displayed in the UI. Default is <c>default(ImageElement)</c></param>
public CompletionItem(string displayText, IAsyncCompletionSource source, ImageElement icon)
- : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText,
+ : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText, automationText: displayText,
source: source, filters: ImmutableArray<CompletionFilter>.Empty, icon: icon,
suffix: string.Empty, attributeIcons: ImmutableArray<ImageElement>.Empty)
{
@@ -105,7 +110,7 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
/// <param name="icon">Image displayed in the UI</param>
/// <param name="filters"><see cref="ImmutableArray"/> of references to <see cref="CompletionFilter"/>s applicable to this item. Default is <c>ImmutableArray<CompletionFilter>.Empty</c></param>
public CompletionItem(string displayText, IAsyncCompletionSource source, ImageElement icon, ImmutableArray<CompletionFilter> filters)
- : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText,
+ : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText, automationText: displayText,
source: source, filters: filters, icon: icon,
suffix: string.Empty, attributeIcons: ImmutableArray<ImageElement>.Empty)
{
@@ -121,14 +126,14 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
/// <param name="filters"><see cref="ImmutableArray"/> of references to <see cref="CompletionFilter"/>s applicable to this item</param>
/// <param name="suffix">Additional text to display in the UI. Default is <c>string.Empty</c></param>
public CompletionItem(string displayText, IAsyncCompletionSource source, ImageElement icon, ImmutableArray<CompletionFilter> filters, string suffix)
- : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText,
+ : this(displayText, insertText: displayText, sortText: displayText, filterText: displayText, automationText: displayText,
source: source, filters: filters, icon: icon,
suffix: suffix, attributeIcons: ImmutableArray<ImageElement>.Empty)
{
}
/// <summary>
- /// Creates a completion item, allowing customization of all of its properties.
+ /// Creates a completion item, allowing customization of all of its properties as of Visual Studio 16.0
/// </summary>
/// <param name="displayText">Text used in the UI</param>
/// <param name="source">Reference to <see cref="IAsyncCompletionSource"/> that created this item</param>
@@ -141,22 +146,35 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
/// <param name="attributeIcons">Additional images to display in the UI. Default is <c>ImmutableArray<ImageElement>.Empty</c></param>
public CompletionItem(string displayText, IAsyncCompletionSource source, ImageElement icon, ImmutableArray<CompletionFilter> filters,
string suffix, string insertText, string sortText, string filterText, ImmutableArray<ImageElement> attributeIcons)
+ : this(displayText, insertText: insertText, sortText: sortText, filterText: filterText, automationText: displayText,
+ source: source, filters: filters, icon: icon, suffix: suffix, attributeIcons: attributeIcons)
+ {
+ }
+
+ /// <summary>
+ /// Creates a completion item, allowing customization of all of its properties as of Visual Studio 16.1
+ /// </summary>
+ /// <param name="displayText">Text used in the UI</param>
+ /// <param name="source">Reference to <see cref="IAsyncCompletionSource"/> that created this item</param>
+ /// <param name="icon">Image displayed in the UI. Default is <c>default(ImageElement)</c></param>
+ /// <param name="filters"><see cref="ImmutableArray"/> of references to <see cref="CompletionFilter"/>s applicable to this item. Default is <c>ImmutableArray<CompletionFilter>.Empty</c></param>
+ /// <param name="suffix">Additional text to display in the UI. Default is <c>string.Empty</c></param>
+ /// <param name="insertText">Text inserted when completing this item. Default is <see cref="displayText"/></param>
+ /// <param name="sortText">Text used by <see cref="IAsyncCompletionItemManager"/> when sorting against other items. Default is <see cref="displayText"/></param>
+ /// <param name="filterText">Text used by <see cref="IAsyncCompletionItemManager"/> when matching against the applicable span. Default is <see cref="displayText"/></param>
+ /// <param name="automationText">Text spoken by the narrator when this item is selected</param>
+ /// <param name="attributeIcons">Additional images to display in the UI. Default is <c>ImmutableArray<ImageElement>.Empty</c></param>
+ public CompletionItem(string displayText, IAsyncCompletionSource source, ImageElement icon, ImmutableArray<CompletionFilter> filters,
+ string suffix, string insertText, string sortText, string filterText, string automationText, ImmutableArray<ImageElement> attributeIcons)
{
- if (displayText == null)
- displayText = string.Empty;
- if (insertText == null)
- insertText = string.Empty;
- if (sortText == null)
- sortText = string.Empty;
- if (filterText == null)
- filterText = string.Empty;
if (filters.IsDefault)
throw new ArgumentException("Array must be initialized", nameof(filters));
- DisplayText = displayText;
- InsertText = insertText;
- SortText = sortText;
- FilterText = filterText;
+ DisplayText = displayText ?? string.Empty;
+ InsertText = insertText ?? string.Empty;
+ SortText = sortText ?? string.Empty;
+ FilterText = filterText ?? string.Empty;
+ AutomationText = automationText ?? string.Empty;
Source = source ?? throw new ArgumentNullException(nameof(source));
Icon = icon;
Filters = filters;
diff --git a/src/Editor/Language/Impl/Language/AsyncCompletion/AsyncCompletionSession.cs b/src/Editor/Language/Impl/Language/AsyncCompletion/AsyncCompletionSession.cs
index 639f821..094c67d 100644
--- a/src/Editor/Language/Impl/Language/AsyncCompletion/AsyncCompletionSession.cs
+++ b/src/Editor/Language/Impl/Language/AsyncCompletion/AsyncCompletionSession.cs
@@ -991,6 +991,7 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Implement
model.InitialItems,
instantaneousSnapshot,
trigger,
+ InitialTrigger,
model.Filters,
model.UseSoftSelection,
model.DisplaySuggestionItem),
@@ -1166,6 +1167,7 @@ namespace Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Implement
model.InitialItems,
model.Snapshot,
new CompletionTrigger(CompletionTriggerReason.FilterChange, model.Snapshot),
+ InitialTrigger,
newFilters,
model.UseSoftSelection,
model.DisplaySuggestionItem),
diff --git a/src/Editor/Text/Def/TextUI/Commanding/Commands/GoToMatchingBraceCommandArgs.cs b/src/Editor/Text/Def/TextUI/Commanding/Commands/GoToMatchingBraceCommandArgs.cs
new file mode 100644
index 0000000..2af5ad3
--- /dev/null
+++ b/src/Editor/Text/Def/TextUI/Commanding/Commands/GoToMatchingBraceCommandArgs.cs
@@ -0,0 +1,9 @@
+namespace Microsoft.VisualStudio.Text.Editor.Commanding.Commands
+{
+ public class GoToMatchingBraceCommandArgs : EditorCommandArgs
+ {
+ public GoToMatchingBraceCommandArgs(ITextView textView, ITextBuffer subjectBuffer) : base(textView, subjectBuffer)
+ {
+ }
+ }
+} \ No newline at end of file