Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
e5c8870f
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,发现更多精彩内容 >>
提交
e5c8870f
编写于
12月 20, 2018
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify.
上级
990dde2b
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
43 addition
and
30 deletion
+43
-30
src/EditorFeatures/CSharp/Wrapping/BinaryExpression/CSharpBinaryExpressionWrapper.cs
...rapping/BinaryExpression/CSharpBinaryExpressionWrapper.cs
+1
-1
src/EditorFeatures/CSharp/Wrapping/ChainedExpression/CSharpChainedExpressionWrapper.cs
...pping/ChainedExpression/CSharpChainedExpressionWrapper.cs
+1
-1
src/EditorFeatures/Core/Wrapping/BinaryExpression/AbstractBinaryExpressionWrapper.cs
...pping/BinaryExpression/AbstractBinaryExpressionWrapper.cs
+8
-11
src/EditorFeatures/Core/Wrapping/BinaryExpression/BinaryExpressionCodeActionComputer.cs
...ng/BinaryExpression/BinaryExpressionCodeActionComputer.cs
+2
-2
src/EditorFeatures/Core/Wrapping/ChainedExpression/AbstractChainedExpressionWrapper.cs
...ing/ChainedExpression/AbstractChainedExpressionWrapper.cs
+8
-11
src/EditorFeatures/Core/Wrapping/ChainedExpression/ChainedExpressionCodeActionComputer.cs
.../ChainedExpression/ChainedExpressionCodeActionComputer.cs
+2
-2
src/EditorFeatures/VisualBasic/Wrapping/BinaryExpression/VisualBasicBinaryExpressionWrapper.vb
...ng/BinaryExpression/VisualBasicBinaryExpressionWrapper.vb
+1
-1
src/EditorFeatures/VisualBasic/Wrapping/ChainedExpression/VisualBasicChainedExpressionWrapper.vb
.../ChainedExpression/VisualBasicChainedExpressionWrapper.vb
+1
-1
src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxFactsService.cs
...arp/Portable/LanguageServices/CSharpSyntaxFactsService.cs
+6
-0
src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsService.cs
...anguageServices/SyntaxFactsService/ISyntaxFactsService.cs
+3
-0
src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxFactsService.vb
...ortable/LanguageServices/VisualBasicSyntaxFactsService.vb
+10
-0
未找到文件。
src/EditorFeatures/CSharp/Wrapping/BinaryExpression/CSharpBinaryExpressionWrapper.cs
浏览文件 @
e5c8870f
...
...
@@ -13,7 +13,7 @@ public CSharpBinaryExpressionWrapper()
{
}
p
ublic
override
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
)
p
rotected
override
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
)
=>
newLine
;
}
}
src/EditorFeatures/CSharp/Wrapping/ChainedExpression/CSharpChainedExpressionWrapper.cs
浏览文件 @
e5c8870f
...
...
@@ -14,7 +14,7 @@ public CSharpChainedExpressionWrapper()
{
}
p
ublic
override
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
)
p
rotected
override
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
)
=>
newLine
;
}
}
src/EditorFeatures/Core/Wrapping/BinaryExpression/AbstractBinaryExpressionWrapper.cs
浏览文件 @
e5c8870f
...
...
@@ -9,17 +9,7 @@
namespace
Microsoft.CodeAnalysis.Editor.Wrapping.BinaryExpression
{
internal
abstract
partial
class
AbstractBinaryExpressionWrapper
:
AbstractSyntaxWrapper
{
/// <summary>
/// Get's the language specific trivia that should be inserted before an operator if the
/// user wants to wrap the operator to the next line. For C# this is a simple newline-trivia.
/// For VB, this will be a line-continuation char (<c>_</c>), followed by a newline.
/// </summary>
public
abstract
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
);
}
internal
abstract
partial
class
AbstractBinaryExpressionWrapper
<
TBinaryExpressionSyntax
>
:
AbstractBinaryExpressionWrapper
internal
abstract
partial
class
AbstractBinaryExpressionWrapper
<
TBinaryExpressionSyntax
>
:
AbstractSyntaxWrapper
where
TBinaryExpressionSyntax
:
SyntaxNode
{
private
readonly
ISyntaxFactsService
_syntaxFacts
;
...
...
@@ -33,6 +23,13 @@ internal abstract partial class AbstractBinaryExpressionWrapper<TBinaryExpressio
_precedenceService
=
precedenceService
;
}
/// <summary>
/// Get's the language specific trivia that should be inserted before an operator if the
/// user wants to wrap the operator to the next line. For C# this is a simple newline-trivia.
/// For VB, this will be a line-continuation char (<c>_</c>), followed by a newline.
/// </summary>
protected
abstract
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
);
public
sealed
override
async
Task
<
ICodeActionComputer
>
TryCreateComputerAsync
(
Document
document
,
int
position
,
SyntaxNode
node
,
CancellationToken
cancellationToken
)
{
...
...
src/EditorFeatures/Core/Wrapping/BinaryExpression/BinaryExpressionCodeActionComputer.cs
浏览文件 @
e5c8870f
...
...
@@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.Editor.Wrapping.BinaryExpression
internal
partial
class
AbstractBinaryExpressionWrapper
<
TBinaryExpressionSyntax
>
{
private
class
BinaryExpressionCodeActionComputer
:
AbstractCodeActionComputer
<
AbstractBinaryExpressionWrapper
>
AbstractCodeActionComputer
<
AbstractBinaryExpressionWrapper
<
TBinaryExpressionSyntax
>
>
{
private
readonly
ImmutableArray
<
SyntaxNodeOrToken
>
_exprsAndOperators
;
private
readonly
OperatorPlacementWhenWrappingPreference
_preference
;
...
...
@@ -25,7 +25,7 @@ private class BinaryExpressionCodeActionComputer :
private
readonly
SyntaxTriviaList
_newlineBeforeOperatorTrivia
;
public
BinaryExpressionCodeActionComputer
(
AbstractBinaryExpressionWrapper
service
,
AbstractBinaryExpressionWrapper
<
TBinaryExpressionSyntax
>
service
,
Document
document
,
SourceText
originalSourceText
,
DocumentOptionSet
options
,
...
...
src/EditorFeatures/Core/Wrapping/ChainedExpression/AbstractChainedExpressionWrapper.cs
浏览文件 @
e5c8870f
...
...
@@ -9,16 +9,6 @@
namespace
Microsoft.CodeAnalysis.Editor.Wrapping.ChainedExpression
{
internal
abstract
partial
class
AbstractChainedExpressionWrapper
:
AbstractSyntaxWrapper
{
/// <summary>
/// Gets the language specific trivia that should be inserted before an operator if the
/// user wants to wrap the operator to the next line. For C# this is a simple newline-trivia.
/// For VB, this will be a line-continuation char (<c>_</c>), followed by a newline.
/// </summary>
public
abstract
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
);
}
/// <summary>
/// Finds and wraps 'chained' expressions. For the purpose of this feature, a chained
/// expression is built out of 'chunks' where each chunk is of the form
...
...
@@ -53,7 +43,7 @@ internal abstract partial class AbstractChainedExpressionWrapper : AbstractSynta
/// </summary>
internal
abstract
partial
class
AbstractChainedExpressionWrapper
<
TNameSyntax
,
TBaseArgumentListSyntax
>
:
Abstract
ChainedExpression
Wrapper
TBaseArgumentListSyntax
>
:
Abstract
Syntax
Wrapper
where
TNameSyntax
:
SyntaxNode
where
TBaseArgumentListSyntax
:
SyntaxNode
{
...
...
@@ -71,6 +61,13 @@ internal abstract partial class AbstractChainedExpressionWrapper<
_questionTokenKind
=
questionTokenKind
;
}
/// <summary>
/// Gets the language specific trivia that should be inserted before an operator if the
/// user wants to wrap the operator to the next line. For C# this is a simple newline-trivia.
/// For VB, this will be a line-continuation char (<c>_</c>), followed by a newline.
/// </summary>
protected
abstract
SyntaxTriviaList
GetNewLineBeforeOperatorTrivia
(
SyntaxTriviaList
newLine
);
public
sealed
override
async
Task
<
ICodeActionComputer
>
TryCreateComputerAsync
(
Document
document
,
int
position
,
SyntaxNode
node
,
CancellationToken
cancellationToken
)
{
...
...
src/EditorFeatures/Core/Wrapping/ChainedExpression/ChainedExpressionCodeActionComputer.cs
浏览文件 @
e5c8870f
...
...
@@ -34,7 +34,7 @@ internal abstract partial class AbstractChainedExpressionWrapper<
/// filter it out.
/// </summary>
private
class
CallExpressionCodeActionComputer
:
AbstractCodeActionComputer
<
AbstractChainedExpressionWrapper
>
AbstractCodeActionComputer
<
AbstractChainedExpressionWrapper
<
TNameSyntax
,
TBaseArgumentListSyntax
>
>
{
/// <summary>
/// The chunks to normalize and wrap. The first chunk will be normalized,
...
...
@@ -56,7 +56,7 @@ private class CallExpressionCodeActionComputer :
private
readonly
SyntaxTriviaList
_newlineBeforeOperatorTrivia
;
public
CallExpressionCodeActionComputer
(
AbstractChainedExpressionWrapper
service
,
AbstractChainedExpressionWrapper
<
TNameSyntax
,
TBaseArgumentListSyntax
>
service
,
Document
document
,
SourceText
originalSourceText
,
DocumentOptionSet
options
,
...
...
src/EditorFeatures/VisualBasic/Wrapping/BinaryExpression/VisualBasicBinaryExpressionWrapper.vb
浏览文件 @
e5c8870f
...
...
@@ -11,7 +11,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.Wrapping.BinaryExpression
MyBase
.
New
(
VisualBasicSyntaxFactsService
.
Instance
,
VisualBasicPrecedenceService
.
Instance
)
End
Sub
P
ublic
Overrides
Function
GetNewLineBeforeOperatorTrivia
(
newLine
As
SyntaxTriviaList
)
As
SyntaxTriviaList
P
rotected
Overrides
Function
GetNewLineBeforeOperatorTrivia
(
newLine
As
SyntaxTriviaList
)
As
SyntaxTriviaList
Return
newLine
.
InsertRange
(
0
,
{
SyntaxFactory
.
WhitespaceTrivia
(
" "
),
SyntaxFactory
.
LineContinuationTrivia
(
"_"
)})
End
Function
End
Class
...
...
src/EditorFeatures/VisualBasic/Wrapping/ChainedExpression/VisualBasicChainedExpressionWrapper.vb
浏览文件 @
e5c8870f
...
...
@@ -11,7 +11,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.Wrapping.ChainedExpression
MyBase
.
New
(
VisualBasicSyntaxFactsService
.
Instance
,
SyntaxKind
.
DotToken
,
SyntaxKind
.
QuestionToken
)
End
Sub
P
ublic
Overrides
Function
GetNewLineBeforeOperatorTrivia
(
newLine
As
SyntaxTriviaList
)
As
SyntaxTriviaList
P
rotected
Overrides
Function
GetNewLineBeforeOperatorTrivia
(
newLine
As
SyntaxTriviaList
)
As
SyntaxTriviaList
Return
newLine
.
InsertRange
(
0
,
{
SyntaxFactory
.
WhitespaceTrivia
(
" "
),
SyntaxFactory
.
LineContinuationTrivia
(
"_"
)})
End
Function
End
Class
...
...
src/Workspaces/CSharp/Portable/LanguageServices/CSharpSyntaxFactsService.cs
浏览文件 @
e5c8870f
...
...
@@ -625,6 +625,12 @@ public bool IsConditionalAccessExpression(SyntaxNode node)
whenNotNull
=
conditionalAccess
.
WhenNotNull
;
}
public
bool
IsPostfixUnaryExpression
(
SyntaxNode
node
)
=>
node
is
PostfixUnaryExpressionSyntax
;
public
bool
IsMemberBindingExpression
(
SyntaxNode
node
)
=>
node
is
MemberBindingExpressionSyntax
;
public
bool
IsPointerMemberAccessExpression
(
SyntaxNode
node
)
=>
(
node
as
MemberAccessExpressionSyntax
)?.
Kind
()
==
SyntaxKind
.
PointerMemberAccessExpression
;
...
...
src/Workspaces/Core/Portable/LanguageServices/SyntaxFactsService/ISyntaxFactsService.cs
浏览文件 @
e5c8870f
...
...
@@ -212,6 +212,9 @@ internal interface ISyntaxFactsService : ILanguageService
bool
IsConditionalAccessExpression
(
SyntaxNode
node
);
void
GetPartsOfConditionalAccessExpression
(
SyntaxNode
node
,
out
SyntaxNode
expression
,
out
SyntaxToken
operatorToken
,
out
SyntaxNode
whenNotNull
);
bool
IsMemberBindingExpression
(
SyntaxNode
node
);
bool
IsPostfixUnaryExpression
(
SyntaxNode
node
);
bool
IsParenthesizedExpression
(
SyntaxNode
node
);
SyntaxNode
GetExpressionOfParenthesizedExpression
(
SyntaxNode
node
);
...
...
src/Workspaces/VisualBasic/Portable/LanguageServices/VisualBasicSyntaxFactsService.vb
浏览文件 @
e5c8870f
...
...
@@ -1867,5 +1867,15 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
expression
=
invocation
.
Expression
argumentList
=
invocation
.
ArgumentList
End
Sub
Public
Function
IsPostfixUnaryExpression
(
node
As
SyntaxNode
)
As
Boolean
Implements
ISyntaxFactsService
.
IsPostfixUnaryExpression
' Does not exist in VB.
Return
False
End
Function
Public
Function
IsMemberBindingExpression
(
node
As
SyntaxNode
)
As
Boolean
Implements
ISyntaxFactsService
.
IsMemberBindingExpression
' Does not exist in VB.
Return
False
End
Function
End
Class
End
Namespace
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录