Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
38f644f
Move IndentationService down to Feature layer.
CyrusNajmabadi Mar 8, 2019
c5fa15b
MOve to workspaces
CyrusNajmabadi Mar 8, 2019
6864d02
Cleanup
CyrusNajmabadi Mar 8, 2019
fcafe82
Fix.
CyrusNajmabadi Mar 8, 2019
da753dc
Merge branch 'simplifyEnterHandling' into mergeIdentation
CyrusNajmabadi Mar 9, 2019
461f342
Share more code
CyrusNajmabadi Mar 9, 2019
551f2ea
Remove unused methods
CyrusNajmabadi Mar 9, 2019
fa2c5d6
Rename method
CyrusNajmabadi Mar 9, 2019
ed863d0
Work
CyrusNajmabadi Mar 9, 2019
3aefaa9
work
CyrusNajmabadi Mar 9, 2019
5505579
move ISmartTokenFormatter down as well
CyrusNajmabadi Mar 9, 2019
07b913b
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi Mar 9, 2019
88d7ba0
Pass token all the way back out
CyrusNajmabadi Mar 9, 2019
ca7cf85
simplify
CyrusNajmabadi Mar 9, 2019
3b0b6b4
Move code from command handler into indentation service
CyrusNajmabadi Mar 9, 2019
c1ce379
apply and determine indentation
CyrusNajmabadi Mar 9, 2019
943afa2
Update tests
CyrusNajmabadi Mar 9, 2019
60b860e
correct offset
CyrusNajmabadi Mar 9, 2019
a226a9c
remove old code
CyrusNajmabadi Mar 9, 2019
028dfa9
Cleanup
CyrusNajmabadi Mar 9, 2019
9d28a1a
simplify
CyrusNajmabadi Mar 9, 2019
45fcb48
Merge remote-tracking branch 'upstream/master' into moveIndentationDown
CyrusNajmabadi Mar 9, 2019
c9c981e
Merge branch 'simplifyEnterHandling' into mergeIdentation
CyrusNajmabadi Mar 9, 2019
08a3e5e
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi Mar 9, 2019
0c09568
Restore
CyrusNajmabadi Mar 9, 2019
426070b
simplify
CyrusNajmabadi Mar 9, 2019
1ee0717
simplify
CyrusNajmabadi Mar 9, 2019
a380b21
Fix
CyrusNajmabadi Mar 9, 2019
7427ad3
Merge branch 'simplifyEnterHandling' into mergeIdentation
CyrusNajmabadi Mar 9, 2019
c429a5a
remove comment
CyrusNajmabadi Mar 9, 2019
c5a98f6
Merge branch 'simplifyEnterHandling' into mergeIdentation
CyrusNajmabadi Mar 10, 2019
677a073
Merge branch 'master' into moveIndentationDown
CyrusNajmabadi Apr 5, 2019
b4bcb1c
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi Apr 5, 2019
dd9bd7a
Merge branch 'master' into moveIndentationDown
CyrusNajmabadi May 12, 2019
2c98c1a
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi May 12, 2019
22c389e
Get building
CyrusNajmabadi May 12, 2019
937ca31
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi May 12, 2019
d01d75a
Update.
CyrusNajmabadi May 12, 2019
48d09c9
Merge branch 'master' into moveIndentationDown
CyrusNajmabadi May 21, 2019
90f15a2
Update
CyrusNajmabadi May 21, 2019
439e895
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi May 21, 2019
879201e
Move using inside
CyrusNajmabadi May 22, 2019
2babee5
Move using inside
CyrusNajmabadi May 22, 2019
3ce001a
Move using inside
CyrusNajmabadi May 22, 2019
0dc3b4f
Move using inside
CyrusNajmabadi May 22, 2019
ad99a7b
Add links
CyrusNajmabadi May 22, 2019
4479804
Merge branch 'master' into moveIndentationDown
CyrusNajmabadi May 22, 2019
773917d
Merge branch 'moveIndentationDown' into mergeIdentation
CyrusNajmabadi May 22, 2019
73e52bd
Remove file
CyrusNajmabadi May 22, 2019
c6986e2
Merge remote-tracking branch 'upstream/master' into mergeIdentation
CyrusNajmabadi May 28, 2019
54fee0f
Use SyntacticDocument
CyrusNajmabadi May 28, 2019
588392e
Docs
CyrusNajmabadi May 28, 2019
6079129
Do not try to handle indentation if we can't compute an offset.
CyrusNajmabadi May 28, 2019
e5dc318
Merge branch 'master' into mergeIdentation
CyrusNajmabadi Jun 9, 2019
10d806f
Merge branch 'master' into mergeIdentation
CyrusNajmabadi Jun 12, 2019
f11ad89
MakeLocalFunctionStatic - preserve original trivia
gnovack Jun 15, 2019
9760868
Removed previous changes to code fix provider; added a case for local…
gnovack Jun 19, 2019
39372a2
Added additional test cases for Make Local Function Static
gnovack Jun 22, 2019
79938ac
Added tests with blank space preceding comment
gnovack Jun 25, 2019
4745f40
Merge remote-tracking branch 'upstream/master' into mergeIdentation
CyrusNajmabadi Jul 1, 2019
c30fd2b
Revert "Fix couple of false positives in unused parameter analyzer" (…
RikkiGibson Jul 1, 2019
3699c84
Bring back "Fix couple of false positives in unused parameter analyze…
RikkiGibson Jul 2, 2019
939a213
Enable nullable for BoundNodes (#36896)
agocke Jul 2, 2019
90bdf25
Merge pull request #36493 from gnovack/local-function-static
sharwell Jul 2, 2019
c52002b
Merge pull request #33989 from CyrusNajmabadi/mergeIdentation
mavasani Jul 2, 2019
6ead316
Merge pull request #36919 from dotnet/merges/release/dev16.3-preview1…
Jul 2, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
235 changes: 116 additions & 119 deletions src/Compilers/CSharp/Portable/BoundTree/BoundNodes.xml

Large diffs are not rendered by default.

4,129 changes: 2,158 additions & 1,971 deletions src/Compilers/CSharp/Portable/Generated/BoundNodes.xml.Generated.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
using Microsoft.CodeAnalysis.CSharp.Indentation;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.CSharp.Utilities;
using Microsoft.CodeAnalysis.Editor.CSharp.Formatting.Indentation;
using Microsoft.CodeAnalysis.Editor.Implementation.Formatting.Indentation;
using Microsoft.CodeAnalysis.Editor.Shared.Options;
using Microsoft.CodeAnalysis.Editor.Shared.Utilities;
using Microsoft.CodeAnalysis.Formatting;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Indentation;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Editor.CSharp.Formatting.Indentation;
using Microsoft.CodeAnalysis.Editor.Implementation.Formatting.Indentation;
using Microsoft.CodeAnalysis.Editor.Implementation.SmartIndent;
using Microsoft.CodeAnalysis.Editor.Shared.Extensions;
using Microsoft.CodeAnalysis.Editor.UnitTests.Formatting;
using Microsoft.CodeAnalysis.Editor.UnitTests.Utilities;
using Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces;
Expand All @@ -21,13 +17,7 @@
using Microsoft.CodeAnalysis.Text;
using Microsoft.CodeAnalysis.Text.Shared.Extensions;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Text.Editor.Commanding.Commands;
using Microsoft.VisualStudio.Text.Operations;
using Microsoft.VisualStudio.Text.Projection;
using Moq;
using Xunit;
using static Microsoft.CodeAnalysis.Formatting.FormattingOptions;

namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.Formatting.Indentation
{
Expand All @@ -44,9 +34,6 @@ public class CSharpFormatterTestsBase : CoreFormatterTestsBase
internal override string GetLanguageName()
=> LanguageNames.CSharp;

internal override AbstractSmartTokenFormatterCommandHandler CreateSmartTokenFormatterCommandHandler(ITextUndoHistoryRegistry registry, IEditorOperationsFactoryService operations)
=> new SmartTokenFormatterCommandHandler(registry, operations);

protected static async Task<int> GetSmartTokenFormatterIndentationWorkerAsync(
TestWorkspace workspace,
ITextBuffer buffer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1367,7 +1367,7 @@ private async Task AssertIndentUsingSmartTokenFormatterAsync(
Assert.True(
CSharpIndentationService.ShouldUseSmartTokenFormatterInsteadOfIndenter(
Formatter.GetDefaultFormattingRules(workspace, root.Language),
root, line.AsTextLine(), await document.GetOptionsAsync(), CancellationToken.None));
root, line.AsTextLine(), await document.GetOptionsAsync(), out _));

var actualIndentation = await GetSmartTokenFormatterIndentationWorkerAsync(workspace, buffer, indentationLine, ch);
Assert.Equal(expectedIndentation.Value, actualIndentation);
Expand Down Expand Up @@ -1397,7 +1397,7 @@ private async Task AssertIndentNotUsingSmartTokenFormatterButUsingIndenterAsync(
Assert.False(
CSharpIndentationService.ShouldUseSmartTokenFormatterInsteadOfIndenter(
Formatter.GetDefaultFormattingRules(workspace, root.Language),
root, line.AsTextLine(), await document.GetOptionsAsync(), CancellationToken.None));
root, line.AsTextLine(), await document.GetOptionsAsync(), out _));

TestIndentation(
workspace, indentationLine,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ class Class
AssertSmartIndent(
code,
indentationLine: 6,
expectedIndentation: null,
expectedIndentation: 0,
expectedBlankLineIndentation: 0,
indentStyle: IndentStyle.None);
}
Expand Down Expand Up @@ -410,15 +410,10 @@ void Method()
code,
indentationLine: 6,
expectedIndentation: 12);

// This is the line after the method call. ISynchronousIndentationService will bail in
// this case as it thinks this is a case for "smart formatting". However,
// IBlankLineIndentationService appropriately picks 8 columns as the location to indent
// to.
AssertSmartIndent(
code,
indentationLine: 7,
expectedIndentation: null,
expectedIndentation: 4,
expectedBlankLineIndentation: 8);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CodeFixes;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Indentation;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.CSharp.Utilities;
using Microsoft.CodeAnalysis.Editor.CSharp.Formatting.Indentation;
using Microsoft.CodeAnalysis.Editor.Implementation.Formatting;
using Microsoft.CodeAnalysis.Editor.UnitTests.Utilities;
using Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces;
Expand All @@ -22,7 +20,6 @@
using Microsoft.CodeAnalysis.Text.Shared.Extensions;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor.Commanding.Commands;
using Microsoft.VisualStudio.Text.Operations;
using Roslyn.Test.Utilities;
using Xunit;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,222 @@ static async Task<int> fibonacci(int n)
}
}
}",
parseOptions: CSharp8ParseOptions);
}

[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsMakeLocalFunctionStatic)]
[InlineData("")]
[InlineData("\r\n")]
[InlineData("\r\n\r\n")]
public async Task TestLeadingTriviaAfterSemicolon(string leadingTrivia)
{
await TestInRegularAndScriptAsync(
$@"using System;

class C
{{
void M()
{{
int x;{leadingTrivia}
int [||]fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
@"using System;

class C
{
void M()
{
int x;

static int fibonacci(int n)
{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}
}
}",
parseOptions: CSharp8ParseOptions);
}

[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsMakeLocalFunctionStatic)]
[InlineData("")]
[InlineData("\r\n")]
[InlineData("\r\n\r\n")]
public async Task TestLeadingTriviaAfterOpenBrace(string leadingTrivia)
{
await TestInRegularAndScriptAsync(
$@"using System;

class C
{{
void M()
{{{leadingTrivia}
int [||]fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
@"using System;

class C
{
void M()
{
static int fibonacci(int n)
{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}
}
}",
parseOptions: CSharp8ParseOptions);
}

[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsMakeLocalFunctionStatic)]
[InlineData("")]
[InlineData("\r\n")]
[InlineData("\r\n\r\n")]
public async Task TestLeadingTriviaAfterLocalFunction(string leadingTrivia)
{
await TestInRegularAndScriptAsync(
$@"using System;

class C
{{
void M()
{{
bool otherFunction()
{{
return true;
}}{leadingTrivia}
int [||]fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
@"using System;

class C
{
void M()
{
bool otherFunction()
{
return true;
}

static int fibonacci(int n)
{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}
}
}",
parseOptions: CSharp8ParseOptions);
}

[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsMakeLocalFunctionStatic)]
[InlineData("")]
[InlineData("\r\n")]
[InlineData("\r\n\r\n")]
public async Task TestLeadingTriviaAfterExpressionBodyLocalFunction(string leadingTrivia)
{
await TestInRegularAndScriptAsync(
$@"using System;

class C
{{
void M()
{{
bool otherFunction() => true;{leadingTrivia}
int [||]fibonacci(int n) => n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}",
@"using System;

class C
{
void M()
{
bool otherFunction() => true;

static int fibonacci(int n) => n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}
}",
parseOptions: CSharp8ParseOptions);
}

[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsMakeLocalFunctionStatic)]
[InlineData("")]
[InlineData("\r\n")]
[InlineData("\r\n\r\n")]
public async Task TestLeadingTriviaAfterComment(string leadingTrivia)
{
await TestInRegularAndScriptAsync(
$@"using System;

class C
{{
void M()
{{
//Local function comment{leadingTrivia}
int [||]fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
$@"using System;

class C
{{
void M()
{{
//Local function comment{leadingTrivia}
static int fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
parseOptions: CSharp8ParseOptions);
}

[Theory, Trait(Traits.Feature, Traits.Features.CodeActionsMakeLocalFunctionStatic)]
[InlineData("\r\n")]
[InlineData("\r\n\r\n")]
public async Task TestLeadingTriviaBeforeComment(string leadingTrivia)
{
await TestInRegularAndScriptAsync(
$@"using System;

class C
{{
void M()
{{{leadingTrivia}
//Local function comment
int [||]fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
$@"using System;

class C
{{
void M()
{{{leadingTrivia}
//Local function comment
static int fibonacci(int n)
{{
return n <= 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}}
}}
}}",
parseOptions: CSharp8ParseOptions);
}
}
Expand Down
Loading