diff --git a/ChangeLog.md b/ChangeLog.md
index 9217d54c48..ca1e34008f 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,24 @@
+### 3.0.0 (2020-06-16)
+
+* Update references to Roslyn API to 3.5.0
+* Release .NET Core Global Tool [Roslynator.DotNet.Cli](https://www.nuget.org/packages/roslynator.dotnet.cli)
+* Introduce concept of "[Analyzer Options](https://github.com/JosefPihrt/Roslynator/blob/master/docs/AnalyzerOptions.md)"
+* Reassign ID for some analyzers.
+ * See "[How to: Migrate Analyzers to Version 3.0](https://github.com/JosefPihrt/Roslynator/blob/master/docs/HowToMigrateAnalyzersToVersion3.md)"
+* Remove references to Roslynator assemblies from omnisharp.json on uninstall (VS Code)
+
+#### New Analyzers
+
+* [RCS0048](https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS0048.md) (Remove newlines from initializer with single\-line expression).
+* [RCS0049](https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS0049.md) (Add empty line after top comment).
+* [RCS0050](https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS0050.md) (Add empty line before top declaration).
+* [RCS0051](https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS0051.md) (Add newline between closing brace and 'while' keyword \(or vice versa\)).
+* [RCS1246](https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1246.md) (Use element access).
+
+#### New Refactorings
+
+* [RR0214](https://github.com/JosefPihrt/Roslynator/blob/master/docs/refactorings/RR0214.md) (Convert 'switch' expression to 'switch' statement).
+
### 2.9.0 (2020-03-13)
* Switch to Roslyn 3.x libraries
diff --git a/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj b/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj
index 4e29232695..e2cb5f966a 100644
--- a/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj
+++ b/src/Analyzers.CodeFixes/Analyzers.CodeFixes.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.CSharp.Analyzers.CodeFixes
Roslynator.CSharp
Roslynator.Analyzers.nuspec
diff --git a/src/Analyzers.CodeFixes/Roslynator.Analyzers.nuspec b/src/Analyzers.CodeFixes/Roslynator.Analyzers.nuspec
index 3424645f8a..721107b256 100644
--- a/src/Analyzers.CodeFixes/Roslynator.Analyzers.nuspec
+++ b/src/Analyzers.CodeFixes/Roslynator.Analyzers.nuspec
@@ -2,7 +2,7 @@
Roslynator.Analyzers
- 2.3.0
+ 3.0.0-rc
Josef Pihrt
Josef Pihrt
Apache-2.0
@@ -11,8 +11,8 @@
false
A collection of 200+ analyzers for C#, powered by Roslyn.
- - This package cannot be used with Visual Studio 2015.
- - This package is dependent on Microsoft.CodeAnalysis.CSharp.Workspaces 2.3.0.
+ - This package cannot be used with Visual Studio 2017.
+ - This package is dependent on Microsoft.CodeAnalysis.CSharp.Workspaces 3.5.0.
A collection of 200+ analyzers for C#, powered by Roslyn.
Copyright (c) 2016-2020 Josef Pihrt
Roslyn Analyzer Refactoring Productivity CodeAnalysis C# CSharp
@@ -20,7 +20,7 @@
-
+
diff --git a/src/Analyzers/Analyzers.csproj b/src/Analyzers/Analyzers.csproj
index e7f45ac8ba..a6ce5655f6 100644
--- a/src/Analyzers/Analyzers.csproj
+++ b/src/Analyzers/Analyzers.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.CSharp.Analyzers
Roslynator.CSharp
false
diff --git a/src/CSharp.Workspaces/CSharp.Workspaces.csproj b/src/CSharp.Workspaces/CSharp.Workspaces.csproj
index cc7dc70689..16e74ceec8 100644
--- a/src/CSharp.Workspaces/CSharp.Workspaces.csproj
+++ b/src/CSharp.Workspaces/CSharp.Workspaces.csproj
@@ -5,7 +5,7 @@
- 1.0.0.23
+ 1.0.0.24
Roslynator.CSharp.Workspaces
Roslynator
..\api.ruleset
diff --git a/src/CSharp/CSharp.csproj b/src/CSharp/CSharp.csproj
index f52f5a53e5..6457963390 100644
--- a/src/CSharp/CSharp.csproj
+++ b/src/CSharp/CSharp.csproj
@@ -5,7 +5,7 @@
- 1.0.0.23
+ 1.0.0.24
Roslynator.CSharp
Roslynator
..\api.ruleset
diff --git a/src/CodeAnalysis.Analyzers.CodeFixes/Roslynator.CodeAnalysis.Analyzers.nuspec b/src/CodeAnalysis.Analyzers.CodeFixes/Roslynator.CodeAnalysis.Analyzers.nuspec
index 5b9d763f5a..45843b5666 100644
--- a/src/CodeAnalysis.Analyzers.CodeFixes/Roslynator.CodeAnalysis.Analyzers.nuspec
+++ b/src/CodeAnalysis.Analyzers.CodeFixes/Roslynator.CodeAnalysis.Analyzers.nuspec
@@ -11,13 +11,13 @@
false
A collection of analyzers for Roslyn API.
A collection of analyzers for Roslyn API.
- Copyright (c) 2016-2019 Josef Pihrt
+ Copyright (c) 2016-2020 Josef Pihrt
Roslyn Analyzer CodeAnalysis C# CSharp
true
-
+
diff --git a/src/CodeFixes/CodeFixes.csproj b/src/CodeFixes/CodeFixes.csproj
index 9fcf05eae1..edc062a35b 100644
--- a/src/CodeFixes/CodeFixes.csproj
+++ b/src/CodeFixes/CodeFixes.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.CSharp.CodeFixes
Roslynator.CSharp.CodeFixes
Roslynator.CodeFixes.nuspec
diff --git a/src/Common/Common.csproj b/src/Common/Common.csproj
index 13fd0d15f8..03d935fbbb 100644
--- a/src/Common/Common.csproj
+++ b/src/Common/Common.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.Common
Roslynator
diff --git a/src/Core/Core.csproj b/src/Core/Core.csproj
index 364ff41699..4a689d5d5b 100644
--- a/src/Core/Core.csproj
+++ b/src/Core/Core.csproj
@@ -5,7 +5,7 @@
- 1.0.0.23
+ 1.0.0.24
Roslynator.Core
Roslynator
..\api.ruleset
diff --git a/src/Formatting.Analyzers.CodeFixes/Formatting.Analyzers.CodeFixes.csproj b/src/Formatting.Analyzers.CodeFixes/Formatting.Analyzers.CodeFixes.csproj
index cf1519ed55..be56c4889c 100644
--- a/src/Formatting.Analyzers.CodeFixes/Formatting.Analyzers.CodeFixes.csproj
+++ b/src/Formatting.Analyzers.CodeFixes/Formatting.Analyzers.CodeFixes.csproj
@@ -5,7 +5,7 @@
- 1.0.0.1
+ 1.0.0.2
Roslynator.Formatting.Analyzers.CodeFixes
Roslynator.Formatting
Roslynator.Formatting.Analyzers.nuspec
diff --git a/src/Formatting.Analyzers.CodeFixes/Roslynator.Formatting.Analyzers.nuspec b/src/Formatting.Analyzers.CodeFixes/Roslynator.Formatting.Analyzers.nuspec
index acb525b6cc..e9dc61c746 100644
--- a/src/Formatting.Analyzers.CodeFixes/Roslynator.Formatting.Analyzers.nuspec
+++ b/src/Formatting.Analyzers.CodeFixes/Roslynator.Formatting.Analyzers.nuspec
@@ -2,7 +2,7 @@
Roslynator.Formatting.Analyzers
- 1.0.0-rc
+ 1.0.0-rc2
Josef Pihrt
Josef Pihrt
Apache-2.0
@@ -11,13 +11,13 @@
false
A collection of formatting analyzers, powered by Roslyn.
A collection of formatting analyzers, powered by Roslyn.
- Copyright (c) 2016-2019 Josef Pihrt
+ Copyright (c) 2016-2020 Josef Pihrt
Roslyn Analyzer Formatting Productivity CodeAnalysis C# CSharp
true
-
+
diff --git a/src/Formatting.Analyzers/Formatting.Analyzers.csproj b/src/Formatting.Analyzers/Formatting.Analyzers.csproj
index f267d329e3..bcc8e306e9 100644
--- a/src/Formatting.Analyzers/Formatting.Analyzers.csproj
+++ b/src/Formatting.Analyzers/Formatting.Analyzers.csproj
@@ -5,7 +5,7 @@
- 1.0.0.1
+ 1.0.0.2
Roslynator.Formatting.Analyzers
Roslynator.Formatting
false
diff --git a/src/Refactorings/Refactorings.csproj b/src/Refactorings/Refactorings.csproj
index 0c0bab494b..c9196ac0ae 100644
--- a/src/Refactorings/Refactorings.csproj
+++ b/src/Refactorings/Refactorings.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.CSharp.Refactorings
Roslynator.CSharp.Refactorings
diff --git a/src/VisualBasic.Workspaces/VisualBasic.Workspaces.csproj b/src/VisualBasic.Workspaces/VisualBasic.Workspaces.csproj
index b6f323ba83..b020fb8876 100644
--- a/src/VisualBasic.Workspaces/VisualBasic.Workspaces.csproj
+++ b/src/VisualBasic.Workspaces/VisualBasic.Workspaces.csproj
@@ -5,7 +5,7 @@
- 1.0.0.23
+ 1.0.0.24
Roslynator.VisualBasic.Workspaces
Roslynator
..\api.ruleset
diff --git a/src/VisualBasic/VisualBasic.csproj b/src/VisualBasic/VisualBasic.csproj
index ed23b3a5a7..975e40c2ed 100644
--- a/src/VisualBasic/VisualBasic.csproj
+++ b/src/VisualBasic/VisualBasic.csproj
@@ -5,7 +5,7 @@
- 1.0.0.23
+ 1.0.0.24
Roslynator.VisualBasic
Roslynator
..\api.ruleset
diff --git a/src/VisualStudio.Common/Properties/AssemblyInfo.cs b/src/VisualStudio.Common/Properties/AssemblyInfo.cs
index 946e98d1e9..ed314a9aaf 100644
--- a/src/VisualStudio.Common/Properties/AssemblyInfo.cs
+++ b/src/VisualStudio.Common/Properties/AssemblyInfo.cs
@@ -36,5 +36,5 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("2.9.0.0")]
+[assembly: AssemblyVersion("3.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs b/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs
index 5e5af59655..125851495e 100644
--- a/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs
+++ b/src/VisualStudio.Refactorings/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
// Build Number
// Revision
//
-[assembly: AssemblyVersion("2.9.0.0")]
+[assembly: AssemblyVersion("3.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguage("en-US")]
diff --git a/src/VisualStudio.Refactorings/source.extension.vsixmanifest b/src/VisualStudio.Refactorings/source.extension.vsixmanifest
index eeffaf5232..46705e76e9 100644
--- a/src/VisualStudio.Refactorings/source.extension.vsixmanifest
+++ b/src/VisualStudio.Refactorings/source.extension.vsixmanifest
@@ -1,7 +1,7 @@
-
+
Roslynator Refactorings 2019
A collection of 300+ refactorings and fixes for C#, powered by Roslyn.
http://github.com/JosefPihrt/Roslynator
diff --git a/src/VisualStudio/Properties/AssemblyInfo.cs b/src/VisualStudio/Properties/AssemblyInfo.cs
index 1e22416073..6e5ff849dd 100644
--- a/src/VisualStudio/Properties/AssemblyInfo.cs
+++ b/src/VisualStudio/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@
// Build Number
// Revision
//
-[assembly: AssemblyVersion("2.9.0.0")]
+[assembly: AssemblyVersion("3.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguage("en-US")]
diff --git a/src/VisualStudio/source.extension.vsixmanifest b/src/VisualStudio/source.extension.vsixmanifest
index ea93a07f0a..e00302c5ee 100644
--- a/src/VisualStudio/source.extension.vsixmanifest
+++ b/src/VisualStudio/source.extension.vsixmanifest
@@ -1,7 +1,7 @@
-
+
Roslynator 2019
A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.
http://github.com/JosefPihrt/Roslynator
diff --git a/src/VisualStudioCode/VisualStudioCode.csproj b/src/VisualStudioCode/VisualStudioCode.csproj
index 15f5f0db88..113b868450 100644
--- a/src/VisualStudioCode/VisualStudioCode.csproj
+++ b/src/VisualStudioCode/VisualStudioCode.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.VisualStudioCode
Roslynator
false
diff --git a/src/VisualStudioCode/package/CHANGELOG.md b/src/VisualStudioCode/package/CHANGELOG.md
index 4a960641e2..38eac1f210 100644
--- a/src/VisualStudioCode/package/CHANGELOG.md
+++ b/src/VisualStudioCode/package/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 3.0.0 (2020-06-16)
+
+* Update references to Roslyn API to 3.5.0
+* Introduce concept of "[Analyzer Options](https://github.com/JosefPihrt/Roslynator/blob/master/docs/AnalyzerOptions.md)"
+* Reassign ID for some analyzers.
+ * See "[How to: Migrate Analyzers to Version 3.0](https://github.com/JosefPihrt/Roslynator/blob/master/docs/HowToMigrateAnalyzersToVersion3.md)"
+* Remove references to Roslynator assemblies from omnisharp.json on uninstall
+
## 2.9.0 (2020-03-13)
* Switch to Roslyn 3.x libraries
diff --git a/src/VisualStudioCode/package/package-lock.json b/src/VisualStudioCode/package/package-lock.json
index 542ef8dca5..67b1041cb5 100644
--- a/src/VisualStudioCode/package/package-lock.json
+++ b/src/VisualStudioCode/package/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "roslynator",
- "version": "2.9.0",
+ "version": "3.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/src/VisualStudioCode/package/package.json b/src/VisualStudioCode/package/package.json
index b5d8366d17..5e79b5fa9d 100644
--- a/src/VisualStudioCode/package/package.json
+++ b/src/VisualStudioCode/package/package.json
@@ -4,7 +4,7 @@
"displayName": "Roslynator",
"description": "A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.",
"icon": "images/icon.png",
- "version": "2.9.0",
+ "version": "3.0.0",
"author": "Josef Pihrt",
"license": "SEE LICENSE IN LICENSE.TXT",
"homepage": "https://github.com/josefpihrt/roslynator",
@@ -85,4 +85,4 @@
"dependencies": {
"json5": "^2.1.1"
}
-}
\ No newline at end of file
+}
diff --git a/src/Workspaces.Common/Workspaces.Common.csproj b/src/Workspaces.Common/Workspaces.Common.csproj
index ad0ebad5ae..ac723df5b5 100644
--- a/src/Workspaces.Common/Workspaces.Common.csproj
+++ b/src/Workspaces.Common/Workspaces.Common.csproj
@@ -5,7 +5,7 @@
- 2.9.0.0
+ 3.0.0.0
Roslynator.Workspaces.Common
Roslynator
diff --git a/src/Workspaces.Core/Workspaces.Core.csproj b/src/Workspaces.Core/Workspaces.Core.csproj
index f0a82b4535..2547100e01 100644
--- a/src/Workspaces.Core/Workspaces.Core.csproj
+++ b/src/Workspaces.Core/Workspaces.Core.csproj
@@ -5,7 +5,7 @@
- 1.0.0.23
+ 1.0.0.24
Roslynator.Workspaces.Core
Roslynator
..\api.ruleset
diff --git a/tools/build.cmd b/tools/build.cmd
index a4db0a2af6..540029eabe 100644
--- a/tools/build.cmd
+++ b/tools/build.cmd
@@ -2,10 +2,17 @@
set _msbuildPath="C:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild"
set _properties=Configuration=Release,Deterministic=true,TreatWarningsAsErrors=true,WarningsNotAsErrors=1591
-set _version=2.9.0
+set _outDir=..\out\Release
+set _version=3.0.0
+
+orang delete "..\src" -a d -n "bin,obj" l li e -i "packages,node_modules" l li e ne -t n --content-only -y su s
+
+echo.
dotnet restore --force "..\src\Roslynator.sln"
+dotnet restore "..\src\Tools\Tools.sln"
+
%_msbuildPath% "..\src\Tools\Tools.sln" ^
/t:Clean,Build ^
/p:%_properties% ^
@@ -96,7 +103,6 @@ if errorlevel 1 (
del /Q "..\src\Analyzers.CodeFixes\bin\Release\Roslynator.Analyzers.*.nupkg"
del /Q "..\src\CodeAnalysis.Analyzers.CodeFixes\bin\Release\Roslynator.CodeAnalysis.Analyzers.*.nupkg"
del /Q "..\src\Formatting.Analyzers.CodeFixes\bin\Release\Roslynator.Formatting.Analyzers.*.nupkg"
-del /Q "..\src\CodeFixes\bin\Release\Roslynator.CodeFixes.*.nupkg"
del /Q "..\src\Core\bin\Release\Roslynator.Core.*.nupkg"
del /Q "..\src\Workspaces.Core\bin\Release\Roslynator.Workspaces.Core.*.nupkg"
del /Q "..\src\CSharp\bin\Release\Roslynator.CSharp.*.nupkg"
@@ -105,7 +111,6 @@ del /Q "..\src\CSharp.Workspaces\bin\Release\Roslynator.CSharp.Workspaces.*.nupk
dotnet pack -c Release --no-build -v normal "..\src\Analyzers.CodeFixes\Analyzers.CodeFixes.csproj"
dotnet pack -c Release --no-build -v normal "..\src\CodeAnalysis.Analyzers.CodeFixes\CodeAnalysis.Analyzers.CodeFixes.csproj"
dotnet pack -c Release --no-build -v normal "..\src\Formatting.Analyzers.CodeFixes\Formatting.Analyzers.CodeFixes.csproj"
-dotnet pack -c Release --no-build -v normal "..\src\CodeFixes\CodeFixes.csproj"
dotnet pack -c Release --no-build -v normal "..\src\Core\Core.csproj"
dotnet pack -c Release --no-build -v normal "..\src\Workspaces.Core\Workspaces.Core.csproj"
dotnet pack -c Release --no-build -v normal "..\src\CSharp\CSharp.csproj"
@@ -114,5 +119,19 @@ dotnet pack -c Release --no-build -v normal "..\src\CSharp.Workspaces\CSharp.Wor
del /Q "..\src\VisualStudio\bin\Release\Roslynator.VisualStudio.*.vsix"
ren "..\src\VisualStudio\bin\Release\Roslynator.VisualStudio.vsix" "Roslynator.VisualStudio.%_version%.vsix"
+md "%_outDir%"
+
+del /Q "%_outDir%\*"
+
+copy "..\src\VisualStudio\bin\Release\Roslynator.VisualStudio.%_version%.vsix" "%_outDir%"
+
+copy "..\src\Analyzers.CodeFixes\bin\Release\Roslynator.Analyzers.*.nupkg" "%_outDir%"
+copy "..\src\CodeAnalysis.Analyzers.CodeFixes\bin\Release\Roslynator.CodeAnalysis.Analyzers.*.nupkg" "%_outDir%"
+copy "..\src\Formatting.Analyzers.CodeFixes\bin\Release\Roslynator.Formatting.Analyzers.*.nupkg" "%_outDir%"
+copy "..\src\Core\bin\Release\Roslynator.Core.*.nupkg" "%_outDir%"
+copy "..\src\Workspaces.Core\bin\Release\Roslynator.Workspaces.Core.*.nupkg" "%_outDir%"
+copy "..\src\CSharp\bin\Release\Roslynator.CSharp.*.nupkg" "%_outDir%"
+copy "..\src\CSharp.Workspaces\bin\Release\Roslynator.CSharp.Workspaces.*.nupkg" "%_outDir%"
+
echo OK
pause
diff --git a/tools/build.debug.cmd b/tools/build.debug.cmd
index 67afcc110d..e2dd4300b6 100644
--- a/tools/build.debug.cmd
+++ b/tools/build.debug.cmd
@@ -1,5 +1,7 @@
@echo off
+set _outDir=..\out\Debug
+
"C:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild" "..\src\VisualStudio.sln" ^
/t:Clean,Build ^
/p:Configuration=Debug,RunCodeAnalysis=false,DeployExtension=false ^
@@ -7,4 +9,10 @@
/v:normal ^
/m
+md "%_outDir%"
+
+del /Q "%_outDir%\*"
+
+copy "..\src\VisualStudio\bin\Debug\Roslynator.VisualStudio.vsix" "%_outDir%"
+
pause
\ No newline at end of file
diff --git a/tools/update_version.cmd b/tools/update_version.cmd
index 186a2ffa9a..095600edd0 100644
--- a/tools/update_version.cmd
+++ b/tools/update_version.cmd
@@ -2,9 +2,9 @@
rem dotnet install tool -g orang.dotnet.cli
-set _apiVersion=1.0.0.23
-set _version=2.9.0.0
-set _version3=2.9.0
+set _apiVersion=1.0.0.24
+set _version=3.0.0.0
+set _version3=3.0.0
set _root=..\src
set _options=from-file -t m r -y trim-line -v n -o "orang.log" v=di