提交 37c163a1 编写于 作者: D Dustin Campbell

Unify completion commit characters between C# and VB

上级 baf1380c
......@@ -2,7 +2,6 @@
using Microsoft.CodeAnalysis.Completion;
using Microsoft.CodeAnalysis.Options;
using Microsoft.CodeAnalysis.Shared.Extensions;
namespace Microsoft.CodeAnalysis.CSharp.Completion
{
......@@ -13,19 +12,6 @@ public CSharpCompletionRules(AbstractCompletionService completionService)
{
}
protected override bool IsCommitCharacterCore(CompletionItem completionItem, char ch, string textTypedSoFar)
{
// TODO(cyrusn): Don't hardcode this in. Suck this out of the user options.
var commitCharacters = new[]
{
' ', '{', '}', '[', ']', '(', ')', '.', ',', ':',
';', '+', '-', '*', '/', '%', '&', '|', '^', '!',
'~', '=', '<', '>', '?', '@', '#', '\'', '\"', '\\'
};
return commitCharacters.Contains(ch);
}
protected override bool SendEnterThroughToEditorCore(CompletionItem completionItem, string textTypedSoFar, OptionSet options)
{
// If the text doesn't match, no reason to even check the options
......
......@@ -2,6 +2,7 @@
using System.Collections.Generic;
using Microsoft.CodeAnalysis.Options;
using Microsoft.CodeAnalysis.Shared.Extensions;
using Microsoft.CodeAnalysis.Shared.Utilities;
using Microsoft.CodeAnalysis.Text;
......@@ -9,6 +10,13 @@ namespace Microsoft.CodeAnalysis.Completion
{
internal class CompletionRules
{
private readonly static char[] s_defaultCommitCharacters = new[]
{
' ', '{', '}', '[', ']', '(', ')', '.', ',', ':',
';', '+', '-', '*', '/', '%', '&', '|', '^', '!',
'~', '=', '<', '>', '?', '@', '#', '\'', '\"', '\\'
};
private readonly object _gate = new object();
private readonly AbstractCompletionService _completionService;
private readonly Dictionary<string, PatternMatcher> _patternMatcherMap = new Dictionary<string, PatternMatcher>();
......@@ -180,7 +188,7 @@ public TextChange GetTextChange(CompletionItem selectedItem, char? ch = null, st
protected virtual bool IsCommitCharacterCore(CompletionItem completionItem, char ch, string textTypedSoFar)
{
return false;
return s_defaultCommitCharacters.Contains(ch);
}
/// <summary>
......
......@@ -3,7 +3,6 @@
Imports Microsoft.CodeAnalysis.Completion
Imports Microsoft.CodeAnalysis.Completion.Providers
Imports Microsoft.CodeAnalysis.Options
Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
Namespace Microsoft.CodeAnalysis.VisualBasic.Completion
......@@ -11,8 +10,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion
Private NotInheritable Class VisualBasicCompletionRules
Inherits CompletionRules
Private ReadOnly s_commitChars As Char() = {" "c, ";"c, "("c, ")"c, "["c, "]"c, "{"c, "}"c, "."c, ","c, ":"c, "+"c, "-"c, "*"c, "/"c, "\"c, "^"c, "<"c, ">"c, "'"c, "="c, "?"c}
Public Sub New(service As AbstractCompletionService)
MyBase.New(service)
End Sub
......@@ -138,10 +135,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion
(item1.Glyph.Value = item2.Glyph.Value)
End Function
Protected Overrides Function IsCommitCharacterCore(completionItem As CompletionItem, ch As Char, textTypedSoFar As String) As Boolean
Return s_commitChars.Contains(ch)
End Function
Protected Overrides Function SendEnterThroughToEditorCore(completionItem As CompletionItem, textTypedSoFar As String, options As OptionSet) As Boolean
' In VB we always send enter through to the editor.
Return True
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册