Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
70c5d5b5
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
70c5d5b5
编写于
10月 23, 2019
作者:
I
Ivan Basov
提交者:
GitHub
10月 23, 2019
浏览文件
操作
浏览文件
下载
差异文件
Completion: support local language identifiers and en-us keywords
上级
085990f1
c932d4d3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
417 addition
and
10 deletion
+417
-10
src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb
...Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb
+170
-0
src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests.vb
.../IntelliSense/VisualBasicCompletionCommandHandlerTests.vb
+229
-0
src/Features/Core/Portable/Completion/CompletionHelper.cs
src/Features/Core/Portable/Completion/CompletionHelper.cs
+18
-10
未找到文件。
src/EditorFeatures/Test2/IntelliSense/CSharpCompletionCommandHandlerTests.vb
浏览文件 @
70c5d5b5
...
...
@@ -3018,6 +3018,176 @@ class C
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround3
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
TARIFE
{
}
class
C
{
void
goo
(
int
x
)
{
var
t
=
new
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"tarif"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"TARIFE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround4
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
IFADE
{}
class
ifTest
{}
class
C
{
void
goo
(
int
x
)
{
IFADE
ifade
=
null
;
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"if"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"if"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround5
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
İ
FADE
{}
class
ifTest
{}
class
C
{
void
goo
(
int
x
)
{
İ
FADE
ifade
=
null
;
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"if"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"if"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround6
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
TAR
İ
FE
{
}
class
C
{
void
goo
(
int
x
)
{
var
obj
=
new
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"tarif"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"TARİFE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround7
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
İ
FADE
{}
class
ifTest
{}
class
C
{
void
goo
(
int
x
)
{
var
obj
=
new
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"ifad"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"İFADE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround8
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
IFADE
{}
class
ifTest
{}
class
C
{
void
goo
(
int
x
)
{
var
obj
=
new
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"ifad"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"IFADE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround9
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
IFADE
{}
class
ifTest
{}
class
C
{
void
goo
(
int
x
)
{
IFADE
ifade
=
null
;
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"IF"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"if"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround10
()
As
Task
Using
New
CultureContext
(
New
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
<
Document
><
!
[
CDATA
[
class
İ
FADE
{}
class
ifTest
{}
class
C
{
void
goo
(
int
x
)
{
İ
FADE
ifade
=
null
;
$$]]
></
Document
>
,
extraExportedTypes
:
=
{
GetType
(
CSharpEditorFormattingService
)}.
ToList
())
state
.
SendTypeChars
(
"IF"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"if"
)
End
Using
End
Using
End
Function
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TargetTypePreselection1
()
As
Task
Using
state
=
TestStateFactory
.
CreateCSharpTestState
(
...
...
src/EditorFeatures/Test2/IntelliSense/VisualBasicCompletionCommandHandlerTests.vb
浏览文件 @
70c5d5b5
...
...
@@ -3008,6 +3008,235 @@ End Class
End
Using
End
Function
<
WorkItem
(
588
,
"https://github.com/dotnet/roslyn/issues/588"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround1
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
C
Sub
goo
(
x
As
Integer
)
String
.
$$
]]></
Document
>
)
state
.
SendTypeChars
(
"is"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"IsInterned"
)
End
Using
End
Using
End
Function
<
WorkItem
(
588
,
"https://github.com/dotnet/roslyn/issues/588"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround2
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
C
Sub
goo
(
x
As
Integer
)
String
.
$$]]></
Document
>
)
state
.
SendTypeChars
(
"ı"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
()
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround3
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
TARIFE
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
t
As
$$
]]
></
Document
>
)
state
.
SendTypeChars
(
"tarif"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"TARIFE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround4
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
IFADE
End
Class
Class
ifTest
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
ifade
As
IFADE
$$]]
></
Document
>
)
state
.
SendTypeChars
(
"if"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"If"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround5
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
İ
FADE
End
Class
Class
ifTest
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
ifade
As
İ
FADE
$$
]]
></
Document
>
)
state
.
SendTypeChars
(
"if"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"If"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround6
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
TAR
İ
FE
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
obj
As
$$
]]
></
Document
>
)
state
.
SendTypeChars
(
"tarif"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"TARİFE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround7
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
İ
FADE
End
Class
Class
ifTest
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
obj
As
$$
]]
></
Document
>
)
state
.
SendTypeChars
(
"ifad"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"İFADE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround8
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
IFADE
End
Class
Class
ifTest
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
obj
As
$$
]]
></
Document
>
)
state
.
SendTypeChars
(
"ifad"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"IFADE"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround9
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
IFADE
End
Class
Class
ifTest
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
ifade_
As
İ
FADE
$$]]
></
Document
>
)
state
.
SendTypeChars
(
"IF"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"If"
)
End
Using
End
Using
End
Function
<
WorkItem
(
29938
,
"https://github.com/dotnet/roslyn/issues/29938"
)
>
<
WpfFact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
Completion
)
>
Public
Async
Function
TestMatchWithTurkishIWorkaround10
()
As
Task
Using
New
CultureContext
(
New
Globalization
.
CultureInfo
(
"tr-TR"
,
useUserOverride
:
=
False
))
Using
state
=
TestStateFactory
.
CreateVisualBasicTestState
(
<
Document
><
!
[
CDATA
[
Class
İ
FADE
End
Class
Class
ifTest
End
Class
Class
C
Sub
goo
(
x
As
Integer
)
Dim
ifade
As
İ
FADE
$$
]]
></
Document
>
)
state
.
SendTypeChars
(
"IF"
)
Await
state
.
WaitForAsynchronousOperationsAsync
()
Await
state
.
AssertSelectedCompletionItem
(
"If"
)
End
Using
End
Using
End
Function
<
ExportLanguageService
(
GetType
(
ISnippetInfoService
),
LanguageNames
.
VisualBasic
),
System
.
Composition
.
Shared
>
Friend
Class
MockSnippetInfoService
Implements
ISnippetInfoService
...
...
src/Features/Core/Portable/Completion/CompletionHelper.cs
浏览文件 @
70c5d5b5
...
...
@@ -87,24 +87,32 @@ public bool MatchesPattern(string text, string pattern, CultureInfo culture)
var
patternMatcher
=
GetPatternMatcher
(
pattern
,
culture
,
includeMatchSpans
);
var
match
=
patternMatcher
.
GetFirstMatch
(
completionItemText
);
if
(
match
!=
null
)
// We still have making checks for language having different to English capitalization,
// for example, for Turkish with dotted and dotless i capitalization totally diferent from English.
// Now we escaping from the second check for English languages.
// Maybe we can escape as well for more similar languages in case if we meet performance issues.
if
(
culture
.
ThreeLetterWindowsLanguageName
.
Equals
(
EnUSCultureInfo
.
ThreeLetterWindowsLanguageName
))
{
return
match
;
}
// Start with the culture-specific comparison, and fall back to en-US.
if
(!
culture
.
Equals
(
EnUSCultureInfo
))
// Keywords in .NET are always in En-US.
// Identifiers can be in user language.
// Try to get matches for both and return the best of them.
patternMatcher
=
GetPatternMatcher
(
pattern
,
EnUSCultureInfo
,
includeMatchSpans
);
var
enUSCultureMatch
=
patternMatcher
.
GetFirstMatch
(
completionItemText
);
if
(
match
==
null
)
{
patternMatcher
=
GetPatternMatcher
(
pattern
,
EnUSCultureInfo
,
includeMatchSpans
)
;
match
=
patternMatcher
.
GetFirstMatch
(
completionItemText
);
return
enUSCultureMatch
;
}
if
(
match
!=
null
)
{
return
match
;
}
if
(
enUSCultureMatch
==
null
)
{
return
match
;
}
return
null
;
return
match
.
Value
.
CompareTo
(
enUSCultureMatch
.
Value
)
<
0
?
match
.
Value
:
enUSCultureMatch
.
Value
;
}
private
PatternMatcher
GetPatternMatcher
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录