From 68a4da22b459e750ae28acf915756166cdfc0aa0 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 17:22:30 +0200 Subject: [PATCH 01/12] CM-36341 - Create plugin skeleton --- .gitignore | 2 + CHANGELOG.md | 3 + CODEOWNERS | 1 + Cycode.sln | 37 ++++++ Cycode/Commands/CycodeToolWindowCommand.cs | 11 ++ Cycode/Cycode.csproj | 117 ++++++++++++++++++ Cycode/CycodePackage.cs | 24 ++++ Cycode/LICENSE | 21 ++++ Cycode/Properties/AssemblyInfo.cs | 22 ++++ Cycode/Resources/ExtensionIcon.png | Bin 0 -> 7494 bytes Cycode/ToolWindows/CycodeToolWindow.cs | 29 +++++ .../ToolWindows/CycodeToolWindowControl.xaml | 28 +++++ .../CycodeToolWindowControl.xaml.cs | 18 +++ Cycode/VSCommandTable.cs | 25 ++++ Cycode/VSCommandTable.vsct | 29 +++++ Cycode/source.extension.cs | 20 +++ Cycode/source.extension.vsixmanifest | 29 +++++ LICENSE | 2 +- README.md | 16 ++- 19 files changed, 432 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 CODEOWNERS create mode 100644 Cycode.sln create mode 100644 Cycode/Commands/CycodeToolWindowCommand.cs create mode 100644 Cycode/Cycode.csproj create mode 100644 Cycode/CycodePackage.cs create mode 100644 Cycode/LICENSE create mode 100644 Cycode/Properties/AssemblyInfo.cs create mode 100644 Cycode/Resources/ExtensionIcon.png create mode 100644 Cycode/ToolWindows/CycodeToolWindow.cs create mode 100644 Cycode/ToolWindows/CycodeToolWindowControl.xaml create mode 100644 Cycode/ToolWindows/CycodeToolWindowControl.xaml.cs create mode 100644 Cycode/VSCommandTable.cs create mode 100644 Cycode/VSCommandTable.vsct create mode 100644 Cycode/source.extension.cs create mode 100644 Cycode/source.extension.vsixmanifest diff --git a/.gitignore b/.gitignore index 8a30d25..b73d943 100644 --- a/.gitignore +++ b/.gitignore @@ -386,6 +386,7 @@ FodyWeavers.xsd # Local History for Visual Studio Code .history/ +.vscode # Windows Installer files from build outputs *.cab @@ -396,3 +397,4 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml +.idea diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0ef1700 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ + + +# Cycode plugin for Visual Studio diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..3eacea9 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @MarshalX @elsape diff --git a/Cycode.sln b/Cycode.sln new file mode 100644 index 0000000..f1ea122 --- /dev/null +++ b/Cycode.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.34928.147 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cycode", "Cycode\Cycode.csproj", "{F43D8BB4-662D-4387-AAF7-0D0079446472}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|arm64 = Debug|arm64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|arm64 = Release|arm64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Debug|arm64.ActiveCfg = Debug|arm64 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Debug|arm64.Build.0 = Debug|arm64 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Debug|x86.ActiveCfg = Debug|x86 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Debug|x86.Build.0 = Debug|x86 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Release|Any CPU.Build.0 = Release|Any CPU + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Release|arm64.ActiveCfg = Release|arm64 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Release|arm64.Build.0 = Release|arm64 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Release|x86.ActiveCfg = Release|x86 + {F43D8BB4-662D-4387-AAF7-0D0079446472}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {87DFEC46-9D7D-4CFB-BBC9-C913F1D1325B} + EndGlobalSection +EndGlobal diff --git a/Cycode/Commands/CycodeToolWindowCommand.cs b/Cycode/Commands/CycodeToolWindowCommand.cs new file mode 100644 index 0000000..dc27145 --- /dev/null +++ b/Cycode/Commands/CycodeToolWindowCommand.cs @@ -0,0 +1,11 @@ +namespace Cycode +{ + [Command(PackageIds.CycodeCommand)] + internal sealed class CycodeToolWindowCommand : BaseCommand + { + protected override Task ExecuteAsync(OleMenuCmdEventArgs e) + { + return CycodeToolWindow.ShowAsync(); + } + } +} diff --git a/Cycode/Cycode.csproj b/Cycode/Cycode.csproj new file mode 100644 index 0000000..3a94062 --- /dev/null +++ b/Cycode/Cycode.csproj @@ -0,0 +1,117 @@ + + + + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + latest + + + + Debug + AnyCPU + 2.0 + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {F43D8BB4-662D-4387-AAF7-0D0079446472} + Library + Properties + Cycode + Cycode + v4.8 + true + true + true + true + false + true + true + Program + $(DevEnvDir)devenv.exe + /rootsuffix Exp + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + True + True + source.extension.vsixmanifest + + + True + True + VSCommandTable.vsct + + + + + Designer + VsixManifestGenerator + source.extension.cs + + + PreserveNewest + true + + + PreserveNewest + true + + + + + Menus.ctmenu + VsctGenerator + VSCommandTable.cs + + + + + + Designer + MSBuild:Compile + + + CycodeToolWindowControl.xaml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cycode/CycodePackage.cs b/Cycode/CycodePackage.cs new file mode 100644 index 0000000..e223a98 --- /dev/null +++ b/Cycode/CycodePackage.cs @@ -0,0 +1,24 @@ +global using Community.VisualStudio.Toolkit; +global using Microsoft.VisualStudio.Shell; +global using System; +global using Task = System.Threading.Tasks.Task; +using System.Runtime.InteropServices; +using System.Threading; + +namespace Cycode +{ + [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] + [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] + [ProvideToolWindow(typeof(CycodeToolWindow.Pane), Style = VsDockStyle.Tabbed, Window = WindowGuids.SolutionExplorer)] + [ProvideMenuResource("Menus.ctmenu", 1)] + [Guid(PackageGuids.CycodeString)] + public sealed class CycodePackage : ToolkitPackage + { + protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) + { + await this.RegisterCommandsAsync(); + + this.RegisterToolWindows(); + } + } +} \ No newline at end of file diff --git a/Cycode/LICENSE b/Cycode/LICENSE new file mode 100644 index 0000000..6c44cca --- /dev/null +++ b/Cycode/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Cycode Ltd. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Cycode/Properties/AssemblyInfo.cs b/Cycode/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2ba069d --- /dev/null +++ b/Cycode/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using Cycode; +using System.Reflection; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle(Vsix.Name)] +[assembly: AssemblyDescription(Vsix.Description)] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany(Vsix.Author)] +[assembly: AssemblyProduct(Vsix.Name)] +[assembly: AssemblyCopyright(Vsix.Author)] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +[assembly: AssemblyVersion(Vsix.Version)] +[assembly: AssemblyFileVersion(Vsix.Version)] + +namespace System.Runtime.CompilerServices +{ + public class IsExternalInit { } +} \ No newline at end of file diff --git a/Cycode/Resources/ExtensionIcon.png b/Cycode/Resources/ExtensionIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..72cedbf9b1417b6904038cfc38e155c841136cfd GIT binary patch literal 7494 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 literal 0 HcmV?d00001 diff --git a/Cycode/ToolWindows/CycodeToolWindow.cs b/Cycode/ToolWindows/CycodeToolWindow.cs new file mode 100644 index 0000000..302fe88 --- /dev/null +++ b/Cycode/ToolWindows/CycodeToolWindow.cs @@ -0,0 +1,29 @@ +using Microsoft.VisualStudio.Imaging; +using System.Runtime.InteropServices; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; + +namespace Cycode +{ + public class CycodeToolWindow : BaseToolWindow + { + public override string GetTitle(int toolWindowId) => "Cycode Tool Window"; + + public override Type PaneType => typeof(Pane); + + public override Task CreateAsync(int toolWindowId, CancellationToken cancellationToken) + { + return Task.FromResult(new CycodeToolWindowControl()); + } + + [Guid("df1eb4de-941c-47bc-b772-862331f0a68a")] + internal class Pane : ToolkitToolWindowPane + { + public Pane() + { + BitmapImageMoniker = KnownMonikers.ToolWindow; + } + } + } +} \ No newline at end of file diff --git a/Cycode/ToolWindows/CycodeToolWindowControl.xaml b/Cycode/ToolWindows/CycodeToolWindowControl.xaml new file mode 100644 index 0000000..d973557 --- /dev/null +++ b/Cycode/ToolWindows/CycodeToolWindowControl.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/Cycode/source.extension.cs b/Cycode/source.extension.cs new file mode 100644 index 0000000..ba78d63 --- /dev/null +++ b/Cycode/source.extension.cs @@ -0,0 +1,20 @@ +// ------------------------------------------------------------------------------ +// +// This file was generated by the extension VSIX Synchronizer +// +// ------------------------------------------------------------------------------ +namespace Cycode +{ + internal sealed partial class Vsix + { + public const string Id = "Cycode.f2c5020e-67a2-46f8-a888-609412fd59db"; + public const string Name = "Cycode"; + public const string Description = @"The Cycode Visual Studio Extension is a plugin for Visual Studio IDE that helps +users to adopt a shift-left strategy, by enabling code scanning early in the development lifecycle, which could +significantly help businesses avoid costly repairs and potential complications down the line."; + public const string Language = "en-US"; + public const string Version = "0.0.0"; + public const string Author = "Cycode"; + public const string Tags = ""; + } +} diff --git a/Cycode/source.extension.vsixmanifest b/Cycode/source.extension.vsixmanifest new file mode 100644 index 0000000..e8a272d --- /dev/null +++ b/Cycode/source.extension.vsixmanifest @@ -0,0 +1,29 @@ + + + + + Cycode + The Cycode Visual Studio Extension is a plugin for Visual Studio IDE that helps +users to adopt a shift-left strategy, by enabling code scanning early in the development lifecycle, which could +significantly help businesses avoid costly repairs and potential complications down the line. + https://github.com/cycodehq/visual-studio-extension + LICENSE + https://github.com/cycodehq/visual-studio-extensio/blob/main/CHANGELOG.md + Resources\ExtensionIcon.png + Resources\ExtensionIcon.png + + + + amd64 + + + arm64 + + + + + + + + + diff --git a/LICENSE b/LICENSE index 87960a7..6c44cca 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 Cycode +Copyright (c) 2024 Cycode Ltd. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 6ac4678..9a7f5d6 100644 --- a/README.md +++ b/README.md @@ -1 +1,15 @@ -# visual-studio-extension- \ No newline at end of file +# Cycode Visual Studio Extension + +The Cycode Visual Studio Extension is a plugin for Visual Studio IDE that helps +users to adopt a shift-left strategy, by enabling code scanning early in the development lifecycle, which could +significantly help businesses avoid costly repairs and potential complications down the line. + +## Support + +If you encounter any issues or have any questions about the Cycode Visual Studio Extension, please reach out to the +Cycode support team at support@cycode.com. + +## License + +The Cycode Visual Studio Extension is released under the MIT license. +See the [LICENSE](https://github.com/cycodehq/visual-studio-extension/blob/main/LICENSE) file for more details. From ea3b61bad2a30f042c4dc24b34b2a9fb1a5cc490 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 17:42:33 +0200 Subject: [PATCH 02/12] add build workflow --- .github/workflows/build.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..a2f4922 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,26 @@ +name: Build extension +on: + push: + branches: + - main + + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + name: Build + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v2 + + - name: Build extension for release + run: msbuild Cycode\Cycode.csproj -t:rebuild -verbosity:diag -property:Configuration=Release From 986a15b0bcedd95244dbf78836e1d4256a828c06 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 17:46:57 +0200 Subject: [PATCH 03/12] fix ci? --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2f4922..0b9f1a4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,6 +21,8 @@ jobs: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 + with: + vs-version: '[17.0, )' - name: Build extension for release run: msbuild Cycode\Cycode.csproj -t:rebuild -verbosity:diag -property:Configuration=Release From dcd6e0e808b2934ce02650109ef666c49fefced7 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 17:57:27 +0200 Subject: [PATCH 04/12] fix? --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0b9f1a4..97adbb4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,4 +25,4 @@ jobs: vs-version: '[17.0, )' - name: Build extension for release - run: msbuild Cycode\Cycode.csproj -t:rebuild -verbosity:diag -property:Configuration=Release + run: msbuild Cycode\Cycode.csproj -property:Configuration=Release From 4f74be7f142539e180d090e52586e62a456db535 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 18:14:15 +0200 Subject: [PATCH 05/12] add dotnet --- .github/workflows/build.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 97adbb4..0f81e90 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,11 +18,18 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + + - name: Setup .NET Core + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '3.1.x' - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 with: vs-version: '[17.0, )' - - name: Build extension for release - run: msbuild Cycode\Cycode.csproj -property:Configuration=Release + - name: Build extension + run: msbuild Cycode\Cycode.csproj /t:Rebuild + env: + DeployExtension: False From 91cff33806a0735e5bd8e7c027e02fca482d0164 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 18:20:47 +0200 Subject: [PATCH 06/12] fix ci? --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f81e90..5048bfb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,9 @@ jobs: with: vs-version: '[17.0, )' + - name: Restore NuGet packages + run: nuget restore Cycode\Cycode.csproj + - name: Build extension run: msbuild Cycode\Cycode.csproj /t:Rebuild env: From ae8e1dc4f615a143e79860a0b88865e35b5362a9 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 18:47:00 +0200 Subject: [PATCH 07/12] add nuget cache --- .github/workflows/build.yml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5048bfb..a204993 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,21 +18,29 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - - name: Setup .NET Core - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '3.1.x' - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v2 with: vs-version: '[17.0, )' + - uses: actions/cache@v4 + id: cache + with: + path: ~/.nuget/packages + key: nuget-${{ hashFiles('**/packages.lock.json') }} + - name: Restore NuGet packages + if: steps.cache.outputs.cache-hit != 'true' run: nuget restore Cycode\Cycode.csproj - name: Build extension - run: msbuild Cycode\Cycode.csproj /t:Rebuild + run: msbuild Cycode\Cycode.csproj /t:Rebuild /p:Configuration=Release env: DeployExtension: False + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: visual-studio-extension + path: bin/Release/Cycode.vsix From 3cc3947e0159858b73e5cf0bce220fb9558204cf Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 18:59:07 +0200 Subject: [PATCH 08/12] fix cache key --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a204993..75b5f10 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: id: cache with: path: ~/.nuget/packages - key: nuget-${{ hashFiles('**/packages.lock.json') }} + key: nuget-${{ hashFiles('**/*.csproj') }} - name: Restore NuGet packages if: steps.cache.outputs.cache-hit != 'true' @@ -43,4 +43,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: visual-studio-extension - path: bin/Release/Cycode.vsix + path: bin/** From 31f144823381d21842a769f3dffd553f104f0085 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 19:04:22 +0200 Subject: [PATCH 09/12] fix artifacts uploading --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 75b5f10..d696cee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,8 +39,9 @@ jobs: env: DeployExtension: False - - name: Upload artifact + - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: visual-studio-extension - path: bin/** + path: | + **/bin From c76b30ebb4e4d8290791d090cbd64679006011b8 Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Tue, 4 Jun 2024 19:10:21 +0200 Subject: [PATCH 10/12] fix cache usage --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d696cee..dbf31e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,13 +25,12 @@ jobs: vs-version: '[17.0, )' - uses: actions/cache@v4 - id: cache with: path: ~/.nuget/packages key: nuget-${{ hashFiles('**/*.csproj') }} + restore-keys: nuget- - name: Restore NuGet packages - if: steps.cache.outputs.cache-hit != 'true' run: nuget restore Cycode\Cycode.csproj - name: Build extension From c6449e1852bbe36b0876c6c71d2f992284b0785b Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Wed, 5 Jun 2024 17:07:28 +0200 Subject: [PATCH 11/12] fix icon requirements; fix codeowners; fix menu item; regen files with new extension version --- CODEOWNERS | 2 +- Cycode/Resources/ExtensionIcon.png | Bin 7494 -> 4555 bytes Cycode/VSCommandTable.cs | 8 ++++---- Cycode/source.extension.cs | 8 +++----- Cycode/source.extension.vsixmanifest | 4 +--- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 3eacea9..6e809c8 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @MarshalX @elsape +* @MarshalX @elsapet diff --git a/Cycode/Resources/ExtensionIcon.png b/Cycode/Resources/ExtensionIcon.png index 72cedbf9b1417b6904038cfc38e155c841136cfd..cb3ceaab2e87fd7e797601ffef8dbfecc4ce1c4d 100644 GIT binary patch literal 4555 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 literal 7494 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 diff --git a/Cycode/VSCommandTable.cs b/Cycode/VSCommandTable.cs index ef7f1a8..55616ca 100644 --- a/Cycode/VSCommandTable.cs +++ b/Cycode/VSCommandTable.cs @@ -1,12 +1,12 @@ -// ------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ // -// This file was generated by the free extension VSIX Synchronizer +// This file was generated by VSIX Synchronizer // // ------------------------------------------------------------------------------ -using System; - namespace Cycode { + using System; + /// /// Helper class that exposes all GUIDs used across VS Package. /// diff --git a/Cycode/source.extension.cs b/Cycode/source.extension.cs index ba78d63..b9ee388 100644 --- a/Cycode/source.extension.cs +++ b/Cycode/source.extension.cs @@ -1,6 +1,6 @@ -// ------------------------------------------------------------------------------ +// ------------------------------------------------------------------------------ // -// This file was generated by the extension VSIX Synchronizer +// This file was generated by VSIX Synchronizer // // ------------------------------------------------------------------------------ namespace Cycode @@ -9,9 +9,7 @@ internal sealed partial class Vsix { public const string Id = "Cycode.f2c5020e-67a2-46f8-a888-609412fd59db"; public const string Name = "Cycode"; - public const string Description = @"The Cycode Visual Studio Extension is a plugin for Visual Studio IDE that helps -users to adopt a shift-left strategy, by enabling code scanning early in the development lifecycle, which could -significantly help businesses avoid costly repairs and potential complications down the line."; + public const string Description = @"The Cycode Visual Studio Extension is a plugin for Visual Studio IDE"; public const string Language = "en-US"; public const string Version = "0.0.0"; public const string Author = "Cycode"; diff --git a/Cycode/source.extension.vsixmanifest b/Cycode/source.extension.vsixmanifest index e8a272d..d72128b 100644 --- a/Cycode/source.extension.vsixmanifest +++ b/Cycode/source.extension.vsixmanifest @@ -3,9 +3,7 @@ Cycode - The Cycode Visual Studio Extension is a plugin for Visual Studio IDE that helps -users to adopt a shift-left strategy, by enabling code scanning early in the development lifecycle, which could -significantly help businesses avoid costly repairs and potential complications down the line. + The Cycode Visual Studio Extension is a plugin for Visual Studio IDE https://github.com/cycodehq/visual-studio-extension LICENSE https://github.com/cycodehq/visual-studio-extensio/blob/main/CHANGELOG.md From 7c73c9a67ce08cd77f51dc2e6f156646ba62c7fd Mon Sep 17 00:00:00 2001 From: Ilya Siamionau Date: Wed, 5 Jun 2024 17:11:24 +0200 Subject: [PATCH 12/12] update tool window labels --- Cycode/ToolWindows/CycodeToolWindow.cs | 2 +- Cycode/ToolWindows/CycodeToolWindowControl.xaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cycode/ToolWindows/CycodeToolWindow.cs b/Cycode/ToolWindows/CycodeToolWindow.cs index 302fe88..1379ed8 100644 --- a/Cycode/ToolWindows/CycodeToolWindow.cs +++ b/Cycode/ToolWindows/CycodeToolWindow.cs @@ -8,7 +8,7 @@ namespace Cycode { public class CycodeToolWindow : BaseToolWindow { - public override string GetTitle(int toolWindowId) => "Cycode Tool Window"; + public override string GetTitle(int toolWindowId) => "Cycode"; public override Type PaneType => typeof(Pane); diff --git a/Cycode/ToolWindows/CycodeToolWindowControl.xaml b/Cycode/ToolWindows/CycodeToolWindowControl.xaml index d973557..a7c20be 100644 --- a/Cycode/ToolWindows/CycodeToolWindowControl.xaml +++ b/Cycode/ToolWindows/CycodeToolWindowControl.xaml @@ -17,7 +17,7 @@ + HorizontalAlignment="Center">Cycode main window