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

Unify completion commit characters between C# and VB

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