diff --git a/SonarLint.VisualStudio.Integration.sln b/SonarLint.VisualStudio.Integration.sln
index 47444fb35b..4d4efdb998 100644
--- a/SonarLint.VisualStudio.Integration.sln
+++ b/SonarLint.VisualStudio.Integration.sln
@@ -168,6 +168,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VsAnalyzerConfig", "VsAnaly
src\vs-threading.MainThreadSwitchingMethods.txt = src\vs-threading.MainThreadSwitchingMethods.txt
EndProjectSection
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SLCore", "SLCore", "{236587E8-62A7-4E4E-815D-A50433859DC7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SLCore", "src\SLCore\SLCore.csproj", "{4A5A716B-54E7-4F85-9340-2CB0827A6253}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SLCore.UnitTests", "src\SLCore.UnitTests\SLCore.UnitTests.csproj", "{72C861AC-2CAB-46C0-9A9E-06096F589395}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -496,6 +502,22 @@ Global
{4F5AE2A8-56DD-44EC-9872-B7884CC1C1DB}.Release|Any CPU.Build.0 = Release|Any CPU
{4F5AE2A8-56DD-44EC-9872-B7884CC1C1DB}.Release|x86.ActiveCfg = Release|Any CPU
{4F5AE2A8-56DD-44EC-9872-B7884CC1C1DB}.Release|x86.Build.0 = Release|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Debug|x86.Build.0 = Debug|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Release|x86.ActiveCfg = Release|Any CPU
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}.Release|x86.Build.0 = Release|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Debug|x86.Build.0 = Debug|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Release|x86.ActiveCfg = Release|Any CPU
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -546,6 +568,8 @@ Global
{EE7F939B-7127-433C-80CD-5DB278361229} = {32F0945C-72D0-4116-95D5-F9EE2177D51B}
{4F5AE2A8-56DD-44EC-9872-B7884CC1C1DB} = {32F0945C-72D0-4116-95D5-F9EE2177D51B}
{682C440B-E506-4811-9569-9734D8DF4620} = {A4C88C9A-7C47-47FE-8AB6-8D7588D05EF1}
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253} = {236587E8-62A7-4E4E-815D-A50433859DC7}
+ {72C861AC-2CAB-46C0-9A9E-06096F589395} = {236587E8-62A7-4E4E-815D-A50433859DC7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {DABC27C8-E761-4826-AD2D-056F677EF3C0}
diff --git a/src/CFamily.UnitTests/packages.lock.json b/src/CFamily.UnitTests/packages.lock.json
index 2de4eac355..cdbd31ded8 100644
--- a/src/CFamily.UnitTests/packages.lock.json
+++ b/src/CFamily.UnitTests/packages.lock.json
@@ -1554,6 +1554,7 @@
"SonarLint.VisualStudio.ProgressVS": "[1.0.0, )",
"SonarLint.VisualStudio.Roslyn.Suppressions": "[1.0.0, )",
"SonarLint.VisualStudio.Rules": "[1.0.0, )",
+ "SonarLint.VisualStudio.SLCore": "[1.0.0, )",
"SonarLint.VisualStudio.TypeScript": "[1.0.0, )",
"SonarQube.Client": "[1.0.0, )",
"System.IO.Abstractions": "[9.0.4, )",
@@ -1713,6 +1714,9 @@
"SonarLint.VisualStudio.Core": "[1.0.0, )"
}
},
+ "SonarLint.VisualStudio.SLCore": {
+ "type": "Project"
+ },
"SonarLint.VisualStudio.TypeScript": {
"type": "Project",
"dependencies": {
diff --git a/src/Integration.Vsix.UnitTests/packages.lock.json b/src/Integration.Vsix.UnitTests/packages.lock.json
index 6785bbf5c5..f1d786148f 100644
--- a/src/Integration.Vsix.UnitTests/packages.lock.json
+++ b/src/Integration.Vsix.UnitTests/packages.lock.json
@@ -1565,6 +1565,7 @@
"SonarLint.VisualStudio.ProgressVS": "[1.0.0, )",
"SonarLint.VisualStudio.Roslyn.Suppressions": "[1.0.0, )",
"SonarLint.VisualStudio.Rules": "[1.0.0, )",
+ "SonarLint.VisualStudio.SLCore": "[1.0.0, )",
"SonarLint.VisualStudio.TypeScript": "[1.0.0, )",
"SonarQube.Client": "[1.0.0, )",
"System.IO.Abstractions": "[9.0.4, )",
@@ -1724,6 +1725,9 @@
"SonarLint.VisualStudio.Core": "[1.0.0, )"
}
},
+ "SonarLint.VisualStudio.SLCore": {
+ "type": "Project"
+ },
"SonarLint.VisualStudio.TypeScript": {
"type": "Project",
"dependencies": {
diff --git a/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithStrongNames.txt b/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithStrongNames.txt
index 85c7e60fd1..e9b5c3d134 100644
--- a/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithStrongNames.txt
+++ b/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithStrongNames.txt
@@ -1,7 +1,7 @@
---
################################
# Assembly references report
-# Report date/time: 2023-12-19T13:38:36.4345675Z
+# Report date/time: 2023-12-22T12:01:41.1379104Z
################################
#
# Generated by Devtility CheckAsmRefs v0.11.0.223
@@ -19,12 +19,12 @@
#
################################
-# Base directory: D:\a\1\s\src\Integration.Vsix\bin\Release\VS2022\net472
+# Base directory: C:\Code\sonarlint-visualstudio\src\Integration.Vsix\bin\Release\VS2022\net472
Include patterns:
- 'Sonar*'
Exclude patterns:
- 'SonarLint.Secrets.DotNet*'
-# Number of matches: 21
+# Number of matches: 22
---
Assembly: 'SonarAnalyzer.CFG, Version=9.15.0.0, Culture=neutral, PublicKeyToken=c5b62af9de6d7244'
@@ -439,6 +439,14 @@ Referenced assemblies:
- 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
# Number of references: 7
+---
+Assembly: 'SonarLint.VisualStudio.SLCore, Version=7.6.0.0, Culture=neutral, PublicKeyToken=c5b62af9de6d7244'
+Relative path: 'SonarLint.VisualStudio.SLCore.dll'
+
+Referenced assemblies:
+- 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
+# Number of references: 1
+
---
Assembly: 'SonarLint.VisualStudio.TypeScript, Version=7.6.0.0, Culture=neutral, PublicKeyToken=c5b62af9de6d7244'
Relative path: 'SonarLint.VisualStudio.TypeScript.dll'
diff --git a/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithoutStrongNames.txt b/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithoutStrongNames.txt
index 218e3d51e3..09405f38df 100644
--- a/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithoutStrongNames.txt
+++ b/src/Integration.Vsix/AsmRef_Integration.Vsix_Baseline_WithoutStrongNames.txt
@@ -1,7 +1,7 @@
---
################################
# Assembly references report
-# Report date/time: 2023-12-19T13:38:36.4345675Z
+# Report date/time: 2023-12-22T12:01:41.1379104Z
################################
#
# Generated by Devtility CheckAsmRefs v0.11.0.223
@@ -19,12 +19,12 @@
#
################################
-# Base directory: D:\a\1\s\src\Integration.Vsix\bin\Release\VS2022\net472
+# Base directory: C:\Code\sonarlint-visualstudio\src\Integration.Vsix\bin\Release\VS2022\net472
Include patterns:
- 'Sonar*'
Exclude patterns:
- 'SonarLint.Secrets.DotNet*'
-# Number of matches: 21
+# Number of matches: 22
---
Assembly: 'SonarAnalyzer.CFG, Version=9.15.0.0, Culture=neutral, PublicKeyToken=c5b62af9de6d7244'
@@ -439,6 +439,14 @@ Referenced assemblies:
- 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
# Number of references: 7
+---
+Assembly: 'SonarLint.VisualStudio.SLCore, Version=7.6.0.0, Culture=neutral, PublicKeyToken=null'
+Relative path: 'SonarLint.VisualStudio.SLCore.dll'
+
+Referenced assemblies:
+- 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
+# Number of references: 1
+
---
Assembly: 'SonarLint.VisualStudio.TypeScript, Version=7.6.0.0, Culture=neutral, PublicKeyToken=null'
Relative path: 'SonarLint.VisualStudio.TypeScript.dll'
diff --git a/src/Integration.Vsix/Integration.Vsix.csproj b/src/Integration.Vsix/Integration.Vsix.csproj
index 9e93882d5a..4bdc5af474 100644
--- a/src/Integration.Vsix/Integration.Vsix.csproj
+++ b/src/Integration.Vsix/Integration.Vsix.csproj
@@ -247,6 +247,12 @@
BuiltProjectOutputGroup%3bBuiltProjectOutputGroupDependencies%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b
DebugSymbolsProjectOutputGroup%3b
+
+ {61B97D2B-8C79-41CD-AD7F-1F2E4AB6EED1}
+ SLCore
+ BuiltProjectOutputGroup%3bBuiltProjectOutputGroupDependencies%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b
+ DebugSymbolsProjectOutputGroup%3b
+
diff --git a/src/Integration.Vsix/packages.lock.json b/src/Integration.Vsix/packages.lock.json
index 3bdcbcb7c8..fc3eff6c80 100644
--- a/src/Integration.Vsix/packages.lock.json
+++ b/src/Integration.Vsix/packages.lock.json
@@ -1665,6 +1665,9 @@
"SonarLint.VisualStudio.Core": "[1.0.0, )"
}
},
+ "SonarLint.VisualStudio.SLCore": {
+ "type": "Project"
+ },
"SonarLint.VisualStudio.TypeScript": {
"type": "Project",
"dependencies": {
diff --git a/src/SLCore.UnitTests/SLCore.UnitTests.csproj b/src/SLCore.UnitTests/SLCore.UnitTests.csproj
new file mode 100644
index 0000000000..2ed713bcda
--- /dev/null
+++ b/src/SLCore.UnitTests/SLCore.UnitTests.csproj
@@ -0,0 +1,15 @@
+
+
+
+
+
+ {72C861AC-2CAB-46C0-9A9E-06096F589395}
+ SonarLint.VisualStudio.SLCore.UnitTests
+ SonarLint.VisualStudio.SLCore.UnitTests
+
+
+
+
+
+
+
diff --git a/src/SLCore.UnitTests/Usings.cs b/src/SLCore.UnitTests/Usings.cs
new file mode 100644
index 0000000000..9e32df6e25
--- /dev/null
+++ b/src/SLCore.UnitTests/Usings.cs
@@ -0,0 +1,23 @@
+/*
+ * SonarLint for Visual Studio
+ * Copyright (C) 2016-2023 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+global using Microsoft.VisualStudio.TestTools.UnitTesting;
+global using Moq;
+global using FluentAssertions;
diff --git a/src/SLCore.UnitTests/packages.lock.json b/src/SLCore.UnitTests/packages.lock.json
new file mode 100644
index 0000000000..f1c5d1acb7
--- /dev/null
+++ b/src/SLCore.UnitTests/packages.lock.json
@@ -0,0 +1,76 @@
+{
+ "version": 1,
+ "dependencies": {
+ ".NETFramework,Version=v4.8": {
+ "FluentAssertions": {
+ "type": "Direct",
+ "requested": "[5.9.0, )",
+ "resolved": "5.9.0",
+ "contentHash": "JZxb5DuspmuH4A5p9bfj060evQnwIUkxxfFMG9F/pa7gl1Ry2r2nuQbu5G4UWGQQTtpTxPpVowqNDdBkA0G2Mw=="
+ },
+ "FluentAssertions.Analyzers": {
+ "type": "Direct",
+ "requested": "[0.11.4, )",
+ "resolved": "0.11.4",
+ "contentHash": "zSCkwOgc5OyfMfEeMr9x0K7WCDf8i6VdF2RtCLN/4m6iebTtJQdeoJ9IS4/RyYHuLUYjrm0sd+siWbaSvSzRYQ=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[16.6.1, )",
+ "resolved": "16.6.1",
+ "contentHash": "zYAjfWzpxKb64P9ntReT1Xr8HdONZnpLVs12HIjXWo+UOCDpevP1UWRoaAgNysaD1/l3teBKvgbSeG9bRssfOQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "16.6.1"
+ }
+ },
+ "Moq": {
+ "type": "Direct",
+ "requested": "[4.18.2, )",
+ "resolved": "4.18.2",
+ "contentHash": "SjxKYS5nX6prcaT8ZjbkONh3vnh0Rxru09+gQ1a07v4TM530Oe/jq3Q4dOZPfo1wq0LYmTgLOZKrqRfEx4auPw==",
+ "dependencies": {
+ "Castle.Core": "5.1.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ }
+ },
+ "MSTest.TestAdapter": {
+ "type": "Direct",
+ "requested": "[1.4.0, )",
+ "resolved": "1.4.0",
+ "contentHash": "t2/rL9DG+cVAgPs98OGm2sbZ4FTgn+MGEan5P9NRAgqMV3+nYRKG7/5R0jY7lBMq9ISms+84MSqTHWs6QnPt4A=="
+ },
+ "MSTest.TestFramework": {
+ "type": "Direct",
+ "requested": "[1.4.0, )",
+ "resolved": "1.4.0",
+ "contentHash": "kV/yZ0XLiOElsVeLT0GnNrsoKcPvVNOP6Cv2zkAiceJY0rpro0L+3t54bRApLwTg1mxlo4rLziBG7X6X69KcrQ=="
+ },
+ "Castle.Core": {
+ "type": "Transitive",
+ "resolved": "5.1.0",
+ "contentHash": "31UJpTHOiWq95CDOHazE3Ub/hE/PydNWsJMwnEVTqFFP4WhAugwpaVGxzOxKgNeSUUeqS2W6lxV+q7u1pAOfXg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "16.6.1",
+ "contentHash": "nBYXDgAZCfjsOVzlhMB5olGvX4dTDWB/gWaYS/MhgXBcCz8XJuVGqkfK8LmwlBR/eeUPE9Q/NFZNwlJyMZf0vg=="
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "4.5.3",
+ "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw=="
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "4.5.3"
+ }
+ },
+ "SonarLint.VisualStudio.SLCore": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/SLCore/SLCore.csproj b/src/SLCore/SLCore.csproj
new file mode 100644
index 0000000000..b892a095f4
--- /dev/null
+++ b/src/SLCore/SLCore.csproj
@@ -0,0 +1,11 @@
+
+
+
+
+
+ {4A5A716B-54E7-4F85-9340-2CB0827A6253}
+ SonarLint.VisualStudio.SLCore
+ SonarLint.VisualStudio.SLCore
+
+
+
diff --git a/src/SLCore/packages.lock.json b/src/SLCore/packages.lock.json
new file mode 100644
index 0000000000..c3bb9b2bd7
--- /dev/null
+++ b/src/SLCore/packages.lock.json
@@ -0,0 +1,6 @@
+{
+ "version": 1,
+ "dependencies": {
+ ".NETFramework,Version=v4.7.2": {}
+ }
+}
\ No newline at end of file