├── .gitattributes ├── .github └── FUNDING.yml ├── .gitignore ├── ExtensibilityTemplatePack.sln ├── LICENSE ├── README.md ├── appveyor.yml ├── art ├── add-new-items.png ├── add-new-items2.png ├── empty-vsix-project.png ├── npd.png ├── vsix-project-with-command.png ├── vsix-project-with-tool-window.png └── vsix-project.png └── src ├── 2019 ├── ExtensibilityTemplatePack2019.csproj ├── ItemTemplates │ ├── CustomCommandCommunity │ │ ├── Command.cs │ │ ├── Icon.png │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ ├── DialogWindowCommunity │ │ ├── Icon.png │ │ ├── MyDialogWindow.xaml │ │ ├── MyDialogWindow.xaml.cs │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ ├── EditorCommandBinding │ │ ├── EditorCommandBinding.cs │ │ ├── Icon.png │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ ├── EditorCommandHandler │ │ ├── EditorCommandHandler.cs │ │ ├── Icon.png │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ ├── OptionsPageCommunity │ │ ├── Icon.png │ │ ├── OptionsPage.cs │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ ├── Snippet │ │ ├── Icon.png │ │ ├── Snippet.snippet │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ ├── TextviewCreationListener │ │ ├── Icon.png │ │ ├── TextviewCreationListener.cs │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml │ └── ToolWindowCommunity │ │ ├── Icon.png │ │ ├── MyControl.xaml │ │ ├── MyControl.xaml.cs │ │ ├── ToolWindow.cs │ │ ├── _Definitions │ │ └── CSharp.vstemplate │ │ └── _preprocess.xml ├── ProjectTemplates │ ├── EmptyVsixProject │ │ ├── Icon.png │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ └── Icon.png │ │ ├── VSIXProject.csproj │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ ├── source.extension.cs │ │ └── vspkg.source.extension.vsixmanifest │ ├── VsixProject │ │ ├── Icon.png │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ └── Icon.png │ │ ├── VSCommandTable.cs │ │ ├── VSIXProject.csproj │ │ ├── VSPackage.vsct │ │ ├── VsPkg.cs │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ ├── source.extension.cs │ │ └── vspkg.source.extension.vsixmanifest │ ├── VsixProjectCommand │ │ ├── Commands │ │ │ └── Command.cs │ │ ├── Icon.png │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ └── Icon.png │ │ ├── VSCommandTable.cs │ │ ├── VSIXProject.csproj │ │ ├── VSPackage.vsct │ │ ├── VsPkg.cs │ │ ├── _Definitions │ │ │ └── CSharp.vstemplate │ │ ├── source.extension.cs │ │ └── vspkg.source.extension.vsixmanifest │ └── VsixProjectWindow │ │ ├── Commands │ │ └── MyCommand.cs │ │ ├── Icon.png │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ └── Icon.png │ │ ├── ToolWindows │ │ ├── Control.xaml │ │ ├── Control.xaml.cs │ │ └── ToolWindow.cs │ │ ├── VSCommandTable.cs │ │ ├── VSIXProject.csproj │ │ ├── VSPackage.vsct │ │ ├── VsPkg.cs │ │ ├── _Definitions │ │ └── CSharp.vstemplate │ │ ├── source.extension.cs │ │ └── vspkg.source.extension.vsixmanifest ├── Properties │ ├── AssemblyInfo.cs │ └── template-builder.props ├── Resources │ └── Icon.png ├── packages.config ├── registry.pkgdef ├── source.extension.cs ├── source.extension.vsixmanifest └── template-report.xml └── 2022 ├── ExtensibilityTemplatePack2022.csproj ├── ItemTemplates ├── CustomCommandCommunity │ ├── Command.cs │ ├── Icon.png │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml ├── DialogWindowCommunity │ ├── Icon.png │ ├── MyDialogWindow.xaml │ ├── MyDialogWindow.xaml.cs │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml ├── EditorCommandBinding │ ├── EditorCommandBinding.cs │ ├── Icon.png │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml ├── EditorCommandHandler │ ├── EditorCommandHandler.cs │ ├── Icon.png │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml ├── OptionsPageCommunity │ ├── Icon.png │ ├── OptionsPage.cs │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml ├── Snippet │ ├── Icon.png │ ├── Snippet.snippet │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml ├── TextviewCreationListener │ ├── Icon.png │ ├── TextviewCreationListener.cs │ ├── _Definitions │ │ └── CSharp.vstemplate │ └── _preprocess.xml └── ToolWindowCommunity │ ├── Icon.png │ ├── MyControl.xaml │ ├── MyControl.xaml.cs │ ├── ToolWindow.cs │ ├── _Definitions │ └── CSharp.vstemplate │ └── _preprocess.xml ├── ProjectTemplates ├── EmptyVsixProject │ ├── Icon.png │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Resources │ │ └── Icon.png │ ├── VSIXProject.csproj │ ├── _Definitions │ │ └── CSharp.vstemplate │ ├── source.extension.cs │ └── vspkg.source.extension.vsixmanifest ├── MyCompany │ ├── Commands │ │ └── UrlCommandFactory.cs │ ├── Icon.png │ ├── Icons │ │ ├── logo.16.16.png │ │ ├── logo.24.24.png │ │ └── logo.32.32.png │ ├── Monikers.imagemanifest │ ├── MyCompany.csproj │ ├── MyCompanyPackage.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Resources │ │ └── Icon.png │ ├── VSCommandTable.cs │ ├── VSCommandTable.vsct │ ├── _Definitions │ │ └── CSharp.vstemplate │ ├── feed.pkgdef │ ├── source.extension.cs │ └── source.extension.vsixmanifest ├── VsixProject │ ├── Icon.png │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Resources │ │ └── Icon.png │ ├── VSCommandTable.cs │ ├── VSIXProject.csproj │ ├── VSPackage.vsct │ ├── VsPkg.cs │ ├── _Definitions │ │ └── CSharp.vstemplate │ ├── source.extension.cs │ └── vspkg.source.extension.vsixmanifest ├── VsixProjectCommand │ ├── Commands │ │ └── Command.cs │ ├── Icon.png │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Resources │ │ └── Icon.png │ ├── VSCommandTable.cs │ ├── VSIXProject.csproj │ ├── VSPackage.vsct │ ├── VsPkg.cs │ ├── _Definitions │ │ └── CSharp.vstemplate │ ├── source.extension.cs │ └── vspkg.source.extension.vsixmanifest └── VsixProjectWindow │ ├── Commands │ └── MyCommand.cs │ ├── Icon.png │ ├── Properties │ └── AssemblyInfo.cs │ ├── Resources │ └── Icon.png │ ├── ToolWindows │ ├── Control.xaml │ ├── Control.xaml.cs │ └── ToolWindow.cs │ ├── VSCommandTable.cs │ ├── VSIXProject.csproj │ ├── VSPackage.vsct │ ├── VsPkg.cs │ ├── _Definitions │ └── CSharp.vstemplate │ ├── source.extension.cs │ └── vspkg.source.extension.vsixmanifest ├── Properties ├── AssemblyInfo.cs └── template-builder.props ├── Resources └── Icon.png ├── packages.config ├── registry.pkgdef ├── source.extension.cs ├── source.extension.vsixmanifest └── template-report.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: madskristensen 4 | -------------------------------------------------------------------------------- /ExtensibilityTemplatePack.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.0.31401.12 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtensibilityTemplatePack2019", "src\2019\ExtensibilityTemplatePack2019.csproj", "{1D133A3F-5202-4B2E-860B-53216BCAFB42}" 7 | EndProject 8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{79316542-8BBC-40B9-A947-600E5BFFE8CC}" 9 | ProjectSection(SolutionItems) = preProject 10 | appveyor.yml = appveyor.yml 11 | README.md = README.md 12 | EndProjectSection 13 | EndProject 14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtensibilityTemplatePack2022", "src\2022\ExtensibilityTemplatePack2022.csproj", "{1D133A3F-5202-4B2E-860B-53216BCAFB43}" 15 | EndProject 16 | Global 17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 18 | Debug|Any CPU = Debug|Any CPU 19 | Debug|x86 = Debug|x86 20 | Release|Any CPU = Release|Any CPU 21 | Release|x86 = Release|x86 22 | EndGlobalSection 23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 24 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 25 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Debug|Any CPU.Build.0 = Debug|Any CPU 26 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Debug|x86.ActiveCfg = Debug|x86 27 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Debug|x86.Build.0 = Debug|x86 28 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Release|Any CPU.ActiveCfg = Release|Any CPU 29 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Release|Any CPU.Build.0 = Release|Any CPU 30 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Release|x86.ActiveCfg = Release|x86 31 | {1D133A3F-5202-4B2E-860B-53216BCAFB42}.Release|x86.Build.0 = Release|x86 32 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 33 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Debug|Any CPU.Build.0 = Debug|Any CPU 34 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Debug|x86.ActiveCfg = Debug|x86 35 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Debug|x86.Build.0 = Debug|x86 36 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Release|Any CPU.ActiveCfg = Release|Any CPU 37 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Release|Any CPU.Build.0 = Release|Any CPU 38 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Release|x86.ActiveCfg = Release|x86 39 | {1D133A3F-5202-4B2E-860B-53216BCAFB43}.Release|x86.Build.0 = Release|x86 40 | EndGlobalSection 41 | GlobalSection(SolutionProperties) = preSolution 42 | HideSolutionNode = FALSE 43 | EndGlobalSection 44 | GlobalSection(ExtensibilityGlobals) = postSolution 45 | SolutionGuid = {D3555403-CF67-4A70-87AF-15DC7F7F9846} 46 | EndGlobalSection 47 | EndGlobal 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Extensibility Template Pack 2 | 3 | [![Build status](https://ci.appveyor.com/api/projects/status/opoy5kyysss7f851?svg=true)](https://ci.appveyor.com/project/madskristensen/extensibilitytemplatepack-dhpo7) 4 | 5 | A template pack for Visual Studio extension authors that provide useful project and item templates. 6 | 7 | Download this extension from the [Marketplace](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ExtensibilityItemTemplates2022) (or the [2019 version](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ExtensibilityItemTemplates)) 8 | or get the [CI build](https://www.vsixgallery.com/extension/88049e1e-62f2-4ea2-851f-9ddb2de37f41). 9 | 10 | ---------------------------------------------- 11 | 12 | ## Project Templates 13 | The project templates are simplified versions of the existing *VSIX Project* and *Empty VSIX Project* templates that ship with Visual Studio. They also include a reference to the [Community.VisualStudio.Toolkit](https://www.nuget.org/packages/Community.VisualStudio.Toolkit/) NuGet package, which makes extension development a lot easier. 14 | 15 | All templates can be found in the New Project Dialog. 16 | 17 | ![New Project Dialog](art/npd.png?) 18 | 19 | ### VSIX Project (Community) 20 | This template generates a VSIX project with an *AsyncPackage* class, an extension icon, and NuGet references to the VSSDK. 21 | 22 | ![VSIX Project](art/vsix-project.png) 23 | 24 | ### VSIX Project w/Command (Community) 25 | Same as the VSIX Project (Community) template, but also includes a custom command. 26 | 27 | ![VSIX Project](art/vsix-project-with-command.png) 28 | 29 | ### VSIX Project w/Tool Window (Community) 30 | Same as the VSIX Project (Community) template, but also includes a custom command and tool window. 31 | 32 | ![VSIX Project](art/vsix-project-with-tool-window.png) 33 | 34 | ### Empty VSIX Project (Community) 35 | This template generates an empty VSIX project with only an extension icon and NuGet references to the VSSDK. 36 | 37 | ![Empty VSIX Project](art/empty-vsix-project.png) 38 | 39 | ---------------------------------------------- 40 | 41 | ## Item Templates 42 | 43 | All templates can be found in the Add New Item Dialog. 44 | 45 | ![Add New Items](art/add-new-items.png) 46 | 47 | The templates marked `(Community)` can be used with the [Community.VisualStudio.Toolkit](https://www.nuget.org/packages/Community.VisualStudio.Toolkit/) NuGet package. 48 | 49 | * [Command (Community)](https://github.com/VsixCommunity/ExtensibilityTemplatePack/tree/master/src/2022/ItemTemplates/CustomCommandCommunity) 50 | * [Async Tool Window (Community)](https://github.com/VsixCommunity/ExtensibilityTemplatePack/tree/master/src/2022/ItemTemplates/ToolWindowCommunity) 51 | * [Options Page (Community)](https://github.com/VsixCommunity/ExtensibilityTemplatePack/tree/master/src/2022/ItemTemplates/OptionsPageCommunity) 52 | 53 | The templates marked `(Modern)` can be used with the regular Visual Studio SDK. They are a modern version of the original templates, but follow best practices and are much simpler. 54 | 55 | * [Async Package (modern)](https://github.com/madskristensen/VsixItemTemplates/blob/master/src/ItemTemplates/Package/VsPkg.cs) TODO: Fix link. 56 | * [Command (modern)](https://github.com/madskristensen/VsixItemTemplates/blob/master/src/ItemTemplates/CustomCommand/Command.cs) TODO: Fix link. 57 | * [Async Tool Window (modern)](https://github.com/madskristensen/VsixItemTemplates/tree/master/src/ItemTemplates/ToolWindow) TODO: Fix link. 58 | 59 | In addition, there are several other templates available. 60 | 61 | * [Editor Command Binding](https://github.com/VsixCommunity/ExtensibilityTemplatePack/tree/master/src/2022/ItemTemplates/EditorCommandBinding) 62 | * [Editor Command Handler](https://github.com/VsixCommunity/ExtensibilityTemplatePack/tree/master/src/2022/ItemTemplates/EditorCommandHandler) 63 | * [WPF TextView Creation Listener](https://github.com/VsixCommunity/ExtensibilityTemplatePack/tree/master/src/2022/ItemTemplates/TextviewCreationListener) 64 | * [Code Snippets](https://github.com/VsixCommunity/ExtensibilityTemplatePack/blob/master/src/2022/ItemTemplates/Snippet) 65 | 66 | ![Add New Items2](art/add-new-items2.png) 67 | 68 | ## License 69 | [Apache 2.0](LICENSE) 70 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | image: Visual Studio 2019 2 | 3 | install: 4 | - ps: (new-object Net.WebClient).DownloadString("https://raw.github.com/madskristensen/ExtensionScripts/master/AppVeyor/vsix.ps1") | iex 5 | 6 | before_build: 7 | - ps: Vsix-IncrementVsixVersion .\src\2019\source.extension.vsixmanifest | Vsix-UpdateBuildVersion 8 | - ps: Vsix-IncrementVsixVersion .\src\2022\source.extension.vsixmanifest 9 | #- ps: Vsix-TokenReplacement src\source.extension.cs 'Version = "([0-9\\.]+)"' 'Version = "{version}"' 10 | 11 | build_script: 12 | - nuget restore -Verbosity quiet 13 | - msbuild /p:configuration=Release /p:DeployExtension=false /p:ZipPackageCompressionLevel=normal /v:m 14 | 15 | test: off 16 | 17 | deploy_script: 18 | - ps: Vsix-PushArtifacts | Vsix-PublishToGallery -------------------------------------------------------------------------------- /art/add-new-items.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/add-new-items.png -------------------------------------------------------------------------------- /art/add-new-items2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/add-new-items2.png -------------------------------------------------------------------------------- /art/empty-vsix-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/empty-vsix-project.png -------------------------------------------------------------------------------- /art/npd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/npd.png -------------------------------------------------------------------------------- /art/vsix-project-with-command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/vsix-project-with-command.png -------------------------------------------------------------------------------- /art/vsix-project-with-tool-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/vsix-project-with-tool-window.png -------------------------------------------------------------------------------- /art/vsix-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/art/vsix-project.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/CustomCommandCommunity/Command.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Community.VisualStudio.Toolkit; 3 | using Microsoft.VisualStudio.Shell; 4 | using Task = System.Threading.Tasks.Task; 5 | 6 | namespace $rootnamespace$ 7 | { 8 | [Command("", 0x0100)] 9 | internal sealed class $safeitemname$ : BaseCommand<$safeitemname$> 10 | { 11 | protected override Task ExecuteAsync(OleMenuCmdEventArgs e) 12 | { 13 | VS.Notifications.ShowMessage("$safeitemname$", "Button clicked"); 14 | 15 | return Task.CompletedTask; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/CustomCommandCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/CustomCommandCommunity/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/CustomCommandCommunity/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Command (Community) 5 | Custom command in Tools menu hosted in a Visual Studio Package 6 | Icon.png 7 | Community.CSharp.VSIX.CustomCommandOptimized 8 | VSIX + CSharp 9 | false 10 | CSharp 11 | 2 12 | 4.6 13 | 1 14 | Command.cs 15 | 16 | 17 | 18 | 19 | 20 | System 21 | 22 | 23 | System.Design 24 | 25 | 26 | 27 | Command.cs 28 | 29 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/CustomCommandCommunity/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/DialogWindowCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/DialogWindowCommunity/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/DialogWindowCommunity/MyDialogWindow.xaml: -------------------------------------------------------------------------------- 1 |  14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/DialogWindowCommunity/MyDialogWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.PlatformUI; 2 | 3 | namespace $rootnamespace$ 4 | { 5 | public partial class $safeitemname$ : DialogWindow 6 | { 7 | public $safeitemname$() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/DialogWindowCommunity/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dialog Window (Community) 5 | Initializes a dialog that does not have a Help button. 6 | Icon.png 7 | Community.CSharp.VSIX.DialogWindow 8 | VSIX + CSharp 9 | false 10 | CSharp 11 | 4 12 | 4.6 13 | 1 14 | MyDialogWindow.xaml 15 | 16 | 17 | 18 | 19 | 20 | 21 | System 22 | 23 | 24 | System.Design 25 | 26 | 27 | PresentationCore 28 | 29 | 30 | PresentationFramework 31 | 32 | 33 | WindowsBase 34 | 35 | 36 | System.Xaml 37 | 38 | 39 | 40 | MyDialogWindow.xaml 41 | MyDialogWindow.xaml.cs 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/DialogWindowCommunity/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandBinding/EditorCommandBinding.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.Composition; 2 | using Microsoft.VisualStudio.Editor.Commanding; 3 | using Microsoft.VisualStudio.Text; 4 | using Microsoft.VisualStudio.Text.Editor; 5 | using Microsoft.VisualStudio.Text.Editor.Commanding; 6 | 7 | namespace $rootnamespace$ 8 | { 9 | [Export(typeof(CommandBindingDefinition))] 10 | [CommandBinding(CommandGuid, CommandID, typeof($safeitemname$))] 11 | public class $safeitemname$ : EditorCommandArgs 12 | { 13 | public const string CommandGuid = ""; 14 | public const int CommandID = 0x100; 15 | 16 | public $safeitemname$(ITextView textView, ITextBuffer textBuffer) 17 | : base(textView, textBuffer) 18 | { } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandBinding/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/EditorCommandBinding/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandBinding/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.EditorCommandBinding 5 | MyCommandArgs.cs 6 | Editor Command Binding 7 | Creates an EditorCommandArgs implemenatation used by an Editor Command Handler. 8 | 2021 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX + CSharp 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | EditorCommandBinding.cs 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandBinding/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandHandler/EditorCommandHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.Composition; 3 | using Microsoft.VisualStudio.Commanding; 4 | using Microsoft.VisualStudio.Text.Editor; 5 | using Microsoft.VisualStudio.Text.Editor.Commanding; 6 | using Microsoft.VisualStudio.Utilities; 7 | 8 | namespace $rootnamespace$ 9 | { 10 | [Export(typeof(ICommandHandler))] 11 | [Name(nameof($safeitemname$))] 12 | [ContentType("code")] 13 | [TextViewRole(PredefinedTextViewRoles.PrimaryDocument)] 14 | public class $safeitemname$ : ICommandHandler // Replace EditorCommandArgs with more specific CommandArgs class 15 | { 16 | public string DisplayName => nameof($safeitemname$); 17 | 18 | public bool ExecuteCommand(EditorCommandArgs args, CommandExecutionContext executionContext) 19 | { 20 | throw new NotImplementedException(); 21 | } 22 | 23 | public CommandState GetCommandState(EditorCommandArgs args) 24 | { 25 | return CommandState.Available; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandHandler/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/EditorCommandHandler/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandHandler/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.EditorCommandHandler 5 | EditorCommand.cs 6 | Editor Command Handler 7 | Creates a class that implements the ICommandHandler<T> interface. 8 | 2020 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX + CSharp 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | EditorCommandHandler.cs 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/EditorCommandHandler/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/OptionsPageCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/OptionsPageCommunity/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/OptionsPageCommunity/OptionsPage.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.InteropServices; 3 | using Community.VisualStudio.Toolkit; 4 | 5 | namespace $rootnamespace$ 6 | { 7 | internal partial class OptionsProvider 8 | { 9 | // Register the options with this attribute on your package class: 10 | // [ProvideOptionPage(typeof(OptionsProvider.$safeitemname$Options), "$rootnamespace$", "$safeitemname$", 0, 0, true, SupportsProfiles = true)] 11 | [ComVisible(true)] 12 | public class $safeitemname$Options : BaseOptionPage<$safeitemname$> { } 13 | } 14 | 15 | public class $safeitemname$ : BaseOptionModel<$safeitemname$> 16 | { 17 | [Category("My category")] 18 | [DisplayName("My Option")] 19 | [Description("An informative description.")] 20 | [DefaultValue(true)] 21 | public bool MyOption { get; set; } = true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/OptionsPageCommunity/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Options Page (Community) 5 | A custom user options page for the Tools -> Options dialog. 6 | Icon.png 7 | Community.CSharp.VSIX.OptionsPage 8 | VSIX + CSharp 9 | false 10 | CSharp 11 | 4 12 | 4.6 13 | 1 14 | General.cs 15 | 16 | 17 | 18 | 19 | 20 | System.ComponentModel.Composition 21 | 22 | 23 | 24 | OptionsPage.cs 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/OptionsPageCommunity/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/Snippet/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/Snippet/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/Snippet/Snippet.snippet: -------------------------------------------------------------------------------- 1 |  2 |
3 | $safeitemname$ 4 | $username$ 5 | ae 6 | Code snippet for "addEventListener" 7 | 8 | Expansion 9 | 10 |
11 | 12 | 13 | 14 | object 15 | Object to attach to 16 | window 17 | 18 | 19 | event 20 | Name of the event 21 | load 22 | 23 | 24 | body 25 | Body of event handler function 26 | // body 27 | 28 | 29 | 30 | 33 | 34 | 35 |
-------------------------------------------------------------------------------- /src/2019/ItemTemplates/Snippet/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.Snippet 5 | My.snippet 6 | Code Snippet 7 | Creates a new code snippet file. 8 | 2000 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | Snippet.snippet 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/Snippet/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/TextviewCreationListener/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/TextviewCreationListener/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/TextviewCreationListener/TextviewCreationListener.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.Composition; 2 | using Community.VisualStudio.Toolkit; 3 | using Microsoft.VisualStudio.Text; 4 | using Microsoft.VisualStudio.Text.Editor; 5 | using Microsoft.VisualStudio.Utilities; 6 | using Task = System.Threading.Tasks.Task; 7 | 8 | namespace $rootnamespace$ 9 | { 10 | [Export(typeof(IWpfTextViewCreationListener))] 11 | [ContentType(ContentTypes.Text)] 12 | [TextViewRole(PredefinedTextViewRoles.PrimaryDocument)] 13 | internal class $safeitemname$ : WpfTextViewCreationListener 14 | { 15 | protected override Task CreatedAsync(IWpfTextView textView, ITextDocument document) 16 | { 17 | // Do your async work here 18 | return Task.CompletedTask; 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/2019/ItemTemplates/TextviewCreationListener/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.TextviewCreationListener 5 | TextviewCreationListener.cs 6 | WPF Textview Creation Listener 7 | Creates a class that implements the IWpfTextviewCreationListener interface. 8 | 8 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX + CSharp 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | TextviewCreationListener.cs 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/TextviewCreationListener/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2019/ItemTemplates/ToolWindowCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ItemTemplates/ToolWindowCommunity/Icon.png -------------------------------------------------------------------------------- /src/2019/ItemTemplates/ToolWindowCommunity/MyControl.xaml: -------------------------------------------------------------------------------- 1 |  15 | 16 | 17 | $safeitemname$ 18 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectCommand/VsPkg.cs: -------------------------------------------------------------------------------- 1 | using Community.VisualStudio.Toolkit; 2 | using Microsoft.VisualStudio.Shell; 3 | using System; 4 | using System.Runtime.InteropServices; 5 | using System.Threading; 6 | using Task = System.Threading.Tasks.Task; 7 | 8 | namespace $safeprojectname$ 9 | { 10 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] 11 | [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] 12 | [ProvideMenuResource("Menus.ctmenu", 1)] 13 | [Guid(PackageGuids.$safeprojectname$String)] 14 | public sealed class $packageName$ : ToolkitPackage 15 | { 16 | protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) 17 | { 18 | await this.RegisterCommandsAsync(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectCommand/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | VSIX Project w/Command (Community) 4 | Community.CSharp.VSIX.VSIXProject.Command 5 | Build Visual Studio extensions using the Visual Studio SDK. Start with this template to create an extension project with an async package. Further extend functionality of Visual Studio by adding editor items, commands and tool windows. 6 | CSharp 7 | 510 8 | true 9 | VSIXProject 10 | true 11 | Enabled 12 | true 13 | Icon.png 14 | true 15 | CSharp 16 | Windows 17 | Extension 18 | 19 | 20 | 21 | vspkg.source.extension.vsixmanifest 22 | source.extension.cs 23 | VsPkg.cs 24 | VSPackage.vsct 25 | VSCommandTable.cs 26 | 27 | 28 | Command.cs 29 | 30 | 31 | 32 | AssemblyInfo.cs 33 | 34 | 35 | Icon.png 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Microsoft.VSSDK.TemplateWizard, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 45 | Microsoft.VSSDK.TemplateWizard.MEFExtensionWizard 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectCommand/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "$safeprojectname$.$guid2$"; 11 | public const string Name = "$safeprojectname$"; 12 | public const string Description = @"$description$"; 13 | public const string Language = "en-US"; 14 | public const string Version = "1.0"; 15 | public const string Author = "$registeredorganization$"; 16 | public const string Tags = ""; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectCommand/vspkg.source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $safeprojectname$ 6 | $description$ 7 | Resources\Icon.png 8 | Resources\Icon.png 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/Commands/MyCommand.cs: -------------------------------------------------------------------------------- 1 | using Community.VisualStudio.Toolkit; 2 | using Microsoft.VisualStudio.Shell; 3 | using Task = System.Threading.Tasks.Task; 4 | 5 | namespace $safeprojectname$ 6 | { 7 | [Command(PackageIds.MyCommand)] 8 | internal sealed class MyToolWindowCommand : BaseCommand 9 | { 10 | protected override Task ExecuteAsync(OleMenuCmdEventArgs e) 11 | { 12 | return MyToolWindow.ShowAsync(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ProjectTemplates/VsixProjectWindow/Icon.png -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using $safeprojectname$; 4 | 5 | [assembly: AssemblyTitle(Vsix.Name)] 6 | [assembly: AssemblyDescription(Vsix.Description)] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany(Vsix.Author)] 9 | [assembly: AssemblyProduct(Vsix.Name)] 10 | [assembly: AssemblyCopyright(Vsix.Author)] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion(Vsix.Version)] 17 | [assembly: AssemblyFileVersion(Vsix.Version)] 18 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/ProjectTemplates/VsixProjectWindow/Resources/Icon.png -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/ToolWindows/Control.xaml: -------------------------------------------------------------------------------- 1 |  15 | 16 | 17 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/VsPkg.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | using System.Threading; 4 | using Community.VisualStudio.Toolkit; 5 | using Microsoft.VisualStudio.Shell; 6 | using Task = System.Threading.Tasks.Task; 7 | 8 | namespace $safeprojectname$ 9 | { 10 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] 11 | [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] 12 | [ProvideToolWindow(typeof(MyToolWindow.Pane), Style = VsDockStyle.Tabbed, Window = WindowGuids.SolutionExplorer)] 13 | [ProvideMenuResource("Menus.ctmenu", 1)] 14 | [Guid(PackageGuids.$safeprojectname$String)] 15 | public sealed class $packageName$ : ToolkitPackage 16 | { 17 | protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) 18 | { 19 | await this.RegisterCommandsAsync(); 20 | 21 | this.RegisterToolWindows(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | VSIX Project w/Tool Window (Community) 4 | Community.CSharp.VSIX.VSIXProject.Window 5 | Build Visual Studio extensions using the Visual Studio SDK. Start with this template to create an extension project with an async package. Further extend functionality of Visual Studio by adding editor items, commands and tool windows. 6 | CSharp 7 | 520 8 | true 9 | VSIXProject 10 | true 11 | Enabled 12 | true 13 | Icon.png 14 | true 15 | CSharp 16 | Windows 17 | Extension 18 | 19 | 20 | 21 | vspkg.source.extension.vsixmanifest 22 | source.extension.cs 23 | VsPkg.cs 24 | VSPackage.vsct 25 | VSCommandTable.cs 26 | 27 | 28 | Control.xaml 29 | Control.xaml.cs 30 | ToolWindow.cs 31 | 32 | 33 | 34 | MyCommand.cs 35 | 36 | 37 | 38 | AssemblyInfo.cs 39 | 40 | 41 | Icon.png 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Microsoft.VSSDK.TemplateWizard, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 51 | Microsoft.VSSDK.TemplateWizard.MEFExtensionWizard 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "$safeprojectname$.$guid2$"; 11 | public const string Name = "$safeprojectname$"; 12 | public const string Description = @"$description$"; 13 | public const string Language = "en-US"; 14 | public const string Version = "1.0"; 15 | public const string Author = "$registeredorganization$"; 16 | public const string Tags = ""; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2019/ProjectTemplates/VsixProjectWindow/vspkg.source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $safeprojectname$ 6 | $description$ 7 | Resources\Icon.png 8 | Resources\Icon.png 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/2019/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using VsixItemTemplates; 4 | 5 | [assembly: AssemblyTitle(Vsix.Name)] 6 | [assembly: AssemblyDescription(Vsix.Description)] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany(Vsix.Author)] 9 | [assembly: AssemblyProduct(Vsix.Name)] 10 | [assembly: AssemblyCopyright(Vsix.Author)] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion(Vsix.Version)] 17 | [assembly: AssemblyFileVersion(Vsix.Version)] 18 | -------------------------------------------------------------------------------- /src/2019/Properties/template-builder.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 9 | 10 | 13 | 14 | 15 | Extensibility 16 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/2019/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2019/Resources/Icon.png -------------------------------------------------------------------------------- /src/2019/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/2019/registry.pkgdef: -------------------------------------------------------------------------------- 1 | [$RootKey$\ExtensionManager\Repositories\{31fa092f-eb72-46de-a0d6-4dd97b15fde1}] 2 | @="https://www.vsixgallery.com/feed/extension/88049e1e-62f2-4ea2-851f-9ddb2de37f41" 3 | "Priority"=dword:00000064 4 | "Protocol"="Atom Feed" 5 | "DisplayName"="Extensibility Template Pack" -------------------------------------------------------------------------------- /src/2019/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace VsixItemTemplates 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "88049e1e-62f2-4ea2-851f-9ddb2de37f41"; 11 | public const string Name = "Extensibility Template Pack"; 12 | public const string Description = @"A template pack for Visual Studio extension authors full of useful project- and item templates."; 13 | public const string Language = "en-US"; 14 | public const string Version = "2.2"; 15 | public const string Author = "Mads Kristensen"; 16 | public const string Tags = "vsix, extension, template"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2019/source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Extensibility Template Pack 2019 6 | A template pack for Visual Studio extension authors full of useful project- and item templates. 7 | https://github.com/VsixCommunity/ExtensibilityTemplatePack 8 | Resources\LICENSE 9 | Resources\Icon.png 10 | Resources\Icon.png 11 | vsix, extension, template 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/2019/template-report.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/CustomCommandCommunity/Command.cs: -------------------------------------------------------------------------------- 1 | namespace $rootnamespace$ 2 | { 3 | [Command("", 0x0100)] 4 | internal sealed class $safeitemname$ : BaseCommand<$safeitemname$> 5 | { 6 | protected override async Task ExecuteAsync(OleMenuCmdEventArgs e) 7 | { 8 | await VS.MessageBox.ShowWarningAsync("$safeitemname$", "Button clicked"); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/CustomCommandCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/CustomCommandCommunity/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/CustomCommandCommunity/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Command (Community) 5 | Custom command in Tools menu hosted in a Visual Studio Package 6 | Icon.png 7 | Community.CSharp.VSIX.CustomCommandOptimized 8 | VSIX + CSharp 9 | false 10 | CSharp 11 | 2 12 | 4.6 13 | 1 14 | Command.cs 15 | 16 | 17 | 18 | 19 | 20 | System 21 | 22 | 23 | System.Design 24 | 25 | 26 | 27 | Command.cs 28 | 29 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/CustomCommandCommunity/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/DialogWindowCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/DialogWindowCommunity/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/DialogWindowCommunity/MyDialogWindow.xaml: -------------------------------------------------------------------------------- 1 |  14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/DialogWindowCommunity/MyDialogWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.PlatformUI; 2 | 3 | namespace $rootnamespace$ 4 | { 5 | public partial class $safeitemname$ : DialogWindow 6 | { 7 | public $safeitemname$() 8 | { 9 | InitializeComponent(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/DialogWindowCommunity/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Dialog Window (Community) 5 | Initializes a dialog that does not have a Help button. 6 | Icon.png 7 | Community.CSharp.VSIX.DialogWindow 8 | VSIX + CSharp 9 | false 10 | CSharp 11 | 4 12 | 4.6 13 | 1 14 | MyDialogWindow.xaml 15 | 16 | 17 | 18 | 19 | 20 | 21 | System 22 | 23 | 24 | System.Design 25 | 26 | 27 | PresentationCore 28 | 29 | 30 | PresentationFramework 31 | 32 | 33 | WindowsBase 34 | 35 | 36 | System.Xaml 37 | 38 | 39 | 40 | MyDialogWindow.xaml 41 | MyDialogWindow.xaml.cs 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/DialogWindowCommunity/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandBinding/EditorCommandBinding.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.Composition; 2 | using Microsoft.VisualStudio.Editor.Commanding; 3 | using Microsoft.VisualStudio.Text; 4 | using Microsoft.VisualStudio.Text.Editor; 5 | using Microsoft.VisualStudio.Text.Editor.Commanding; 6 | 7 | namespace $rootnamespace$ 8 | { 9 | [Export(typeof(CommandBindingDefinition))] 10 | [CommandBinding(CommandGuid, CommandID, typeof($safeitemname$))] 11 | public class $safeitemname$ : EditorCommandArgs 12 | { 13 | public const string CommandGuid = ""; 14 | public const int CommandID = 0x100; 15 | 16 | public $safeitemname$(ITextView textView, ITextBuffer textBuffer) 17 | : base(textView, textBuffer) 18 | { } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandBinding/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/EditorCommandBinding/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandBinding/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.EditorCommandBinding 5 | MyCommandArgs.cs 6 | Editor Command Binding 7 | Creates an EditorCommandArgs implemenatation used by an Editor Command Handler. 8 | 2021 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX + CSharp 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | EditorCommandBinding.cs 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandBinding/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandHandler/EditorCommandHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.Composition; 3 | using Microsoft.VisualStudio.Commanding; 4 | using Microsoft.VisualStudio.Text.Editor; 5 | using Microsoft.VisualStudio.Text.Editor.Commanding; 6 | using Microsoft.VisualStudio.Utilities; 7 | 8 | namespace $rootnamespace$ 9 | { 10 | [Export(typeof(ICommandHandler))] 11 | [Name(nameof($safeitemname$))] 12 | [ContentType("code")] 13 | [TextViewRole(PredefinedTextViewRoles.PrimaryDocument)] 14 | public class $safeitemname$ : ICommandHandler // Replace EditorCommandArgs with more specific CommandArgs class 15 | { 16 | public string DisplayName => nameof($safeitemname$); 17 | 18 | public bool ExecuteCommand(EditorCommandArgs args, CommandExecutionContext executionContext) 19 | { 20 | throw new NotImplementedException(); 21 | } 22 | 23 | public CommandState GetCommandState(EditorCommandArgs args) 24 | { 25 | return CommandState.Available; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandHandler/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/EditorCommandHandler/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandHandler/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.EditorCommandHandler 5 | EditorCommand.cs 6 | Editor Command Handler 7 | Creates a class that implements the ICommandHandler<T> interface. 8 | 2020 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX + CSharp 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | EditorCommandHandler.cs 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/EditorCommandHandler/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/OptionsPageCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/OptionsPageCommunity/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/OptionsPageCommunity/OptionsPage.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace $rootnamespace$ 5 | { 6 | internal partial class OptionsProvider 7 | { 8 | // Register the options with this attribute on your package class: 9 | // [ProvideOptionPage(typeof(OptionsProvider.$safeitemname$Options), "$rootnamespace$", "$safeitemname$", 0, 0, true, SupportsProfiles = true)] 10 | [ComVisible(true)] 11 | public class $safeitemname$Options : BaseOptionPage<$safeitemname$> { } 12 | } 13 | 14 | public class $safeitemname$ : BaseOptionModel<$safeitemname$> 15 | { 16 | [Category("My category")] 17 | [DisplayName("My Option")] 18 | [Description("An informative description.")] 19 | [DefaultValue(true)] 20 | public bool MyOption { get; set; } = true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/OptionsPageCommunity/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Options Page (Community) 5 | A custom user options page for the Tools -> Options dialog. 6 | Icon.png 7 | Community.CSharp.VSIX.OptionsPage 8 | VSIX + CSharp 9 | false 10 | CSharp 11 | 4 12 | 4.6 13 | 1 14 | General.cs 15 | 16 | 17 | 18 | 19 | 20 | System.ComponentModel.Composition 21 | 22 | 23 | 24 | OptionsPage.cs 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/OptionsPageCommunity/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/Snippet/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/Snippet/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/Snippet/Snippet.snippet: -------------------------------------------------------------------------------- 1 |  2 |
3 | $safeitemname$ 4 | $username$ 5 | ae 6 | Code snippet for "addEventListener" 7 | 8 | Expansion 9 | 10 |
11 | 12 | 13 | 14 | object 15 | Object to attach to 16 | window 17 | 18 | 19 | event 20 | Name of the event 21 | load 22 | 23 | 24 | body 25 | Body of event handler function 26 | // body 27 | 28 | 29 | 30 | 33 | 34 | 35 |
-------------------------------------------------------------------------------- /src/2022/ItemTemplates/Snippet/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.Snippet 5 | My.snippet 6 | Code Snippet 7 | Creates a new code snippet file. 8 | 2000 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | Snippet.snippet 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/Snippet/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/TextviewCreationListener/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/TextviewCreationListener/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/TextviewCreationListener/TextviewCreationListener.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.Composition; 2 | using Microsoft.VisualStudio.Text; 3 | using Microsoft.VisualStudio.Text.Editor; 4 | using Microsoft.VisualStudio.Utilities; 5 | 6 | namespace $rootnamespace$ 7 | { 8 | [Export(typeof(IWpfTextViewCreationListener))] 9 | [ContentType(ContentTypes.Text)] 10 | [TextViewRole(PredefinedTextViewRoles.PrimaryDocument)] 11 | internal class $safeitemname$ : WpfTextViewCreationListener 12 | { 13 | protected override Task CreatedAsync(IWpfTextView textView, ITextDocument document) 14 | { 15 | // Do your async work here 16 | return Task.CompletedTask; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/2022/ItemTemplates/TextviewCreationListener/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vsix.TextviewCreationListener 5 | TextviewCreationListener.cs 6 | WPF Textview Creation Listener 7 | Creates a class that implements the IWpfTextviewCreationListener interface. 8 | 8 9 | 10 | 11 | icon.png 12 | 1 13 | VSIX + CSharp 14 | false 15 | 4.6 16 | CSharp 17 | 18 | 19 | 20 | 21 | 22 | System.ComponentModel.Composition 23 | 24 | 25 | 26 | TextviewCreationListener.cs 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/TextviewCreationListener/_preprocess.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/2022/ItemTemplates/ToolWindowCommunity/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ItemTemplates/ToolWindowCommunity/Icon.png -------------------------------------------------------------------------------- /src/2022/ItemTemplates/ToolWindowCommunity/MyControl.xaml: -------------------------------------------------------------------------------- 1 |  16 | 17 | 18 | 21 | 42 | 43 | 52 | 53 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/MyCompany/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | VSIX Project "My Company" (Community) 4 | Community.CSharp.VSIX.VSIXProject.MyCompany 5 | Creates an extension specific to a company, team, or organization. 6 | CSharp 7 | 520 8 | true 9 | VSIXProject 10 | true 11 | Enabled 12 | true 13 | Icon.png 14 | true 15 | CSharp 16 | Windows 17 | Extension 18 | 19 | 20 | 21 | source.extension.vsixmanifest 22 | source.extension.cs 23 | MyCompanyPackage.cs 24 | VSCommandTable.vsct 25 | VSCommandTable.cs 26 | feed.pkgdef 27 | Monikers.imagemanifest 28 | 29 | 30 | UrlCommandFactory.cs 31 | 32 | 33 | logo.16.16.png 34 | logo.24.24.png 35 | logo.32.32.png 36 | 37 | 38 | AssemblyInfo.cs 39 | 40 | 41 | Icon.png 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Microsoft.VSSDK.TemplateWizard, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 51 | Microsoft.VSSDK.TemplateWizard.MEFExtensionWizard 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/MyCompany/feed.pkgdef: -------------------------------------------------------------------------------- 1 | ; Replace URL with any local, UNC or URI path 2 | ; To create a custom gallery feed to host your extension, see https://github.com/madskristensen/PrivateGalleryCreator 3 | [$RootKey$\ExtensionManager\Repositories\{31fa092f-eb72-46de-a0d6-4dd97b15fde1}] 4 | @="https://www.vsixgallery.com/feed/extension/61a7ba6e-0cd8-4912-a6c0-ff3f86d79c2e" 5 | "Priority"=dword:00000064 6 | "Protocol"="Atom Feed" 7 | "DisplayName"="$safeprojectname$" -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/MyCompany/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "$safeprojectname$.$guid2$"; 11 | public const string Name = "$safeprojectname$"; 12 | public const string Description = @"$description$"; 13 | public const string Language = "en-US"; 14 | public const string Version = "1.0"; 15 | public const string Author = "$registeredorganization$"; 16 | public const string Tags = ""; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/MyCompany/source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $safeprojectname$ 6 | $description$ 7 | Resources\Icon.png 8 | Resources\Icon.png 9 | 10 | 11 | 12 | 13 | amd64 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ProjectTemplates/VsixProject/Icon.png -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using $safeprojectname$; 4 | 5 | [assembly: AssemblyTitle(Vsix.Name)] 6 | [assembly: AssemblyDescription(Vsix.Description)] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany(Vsix.Author)] 9 | [assembly: AssemblyProduct(Vsix.Name)] 10 | [assembly: AssemblyCopyright(Vsix.Author)] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion(Vsix.Version)] 17 | [assembly: AssemblyFileVersion(Vsix.Version)] 18 | 19 | namespace System.Runtime.CompilerServices 20 | { 21 | public class IsExternalInit { } 22 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ProjectTemplates/VsixProject/Resources/Icon.png -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/VSCommandTable.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the free extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | using System; 9 | 10 | /// 11 | /// Helper class that exposes all GUIDs used across VS Package. 12 | /// 13 | internal sealed partial class PackageGuids 14 | { 15 | public const string $safeprojectname$String = "$guid3$"; 16 | public static Guid $safeprojectname$ = new Guid($safeprojectname$String); 17 | } 18 | /// 19 | /// Helper class that encapsulates all CommandIDs uses across VS Package. 20 | /// 21 | internal sealed partial class PackageIds 22 | { 23 | } 24 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/VSIXProject.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 5 | latest 6 | 7 | 8 | 9 | Debug 10 | AnyCPU 11 | 2.0 12 | {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | $guid1$ 14 | Library 15 | Properties 16 | $safeprojectname$ 17 | $safeprojectname$ 18 | $if$ ($targetframeworkversion$ > 4.8) 19 | v$targetframeworkversion$ 20 | $else$ 21 | v4.8 22 | $endif$ 23 | true 24 | true 25 | true 26 | true 27 | false 28 | true 29 | true 30 | Program 31 | $(DevEnvDir)devenv.exe 32 | /rootsuffix Exp 33 | 34 | 35 | true 36 | full 37 | false 38 | bin\Debug\ 39 | DEBUG;TRACE 40 | prompt 41 | 4 42 | 43 | 44 | pdbonly 45 | true 46 | bin\Release\ 47 | TRACE 48 | prompt 49 | 4 50 | 51 | 52 | 53 | 54 | 55 | True 56 | True 57 | source.extension.vsixmanifest 58 | 59 | 60 | 61 | 62 | Menus.ctmenu 63 | VsctGenerator 64 | VSCommandTable.cs 65 | 66 | 67 | True 68 | True 69 | VSCommandTable.vsct 70 | 71 | 72 | 73 | 74 | Designer 75 | VsixManifestGenerator 76 | source.extension.cs 77 | 78 | 79 | PreserveNewest 80 | true 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 102 | 103 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/VSPackage.vsct: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/VsPkg.cs: -------------------------------------------------------------------------------- 1 | global using Task = System.Threading.Tasks.Task; 2 | global using Community.VisualStudio.Toolkit; 3 | global using Microsoft.VisualStudio.Shell; 4 | global using System; 5 | using System.Runtime.InteropServices; 6 | using System.Threading; 7 | 8 | namespace $safeprojectname$ 9 | { 10 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] 11 | [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] 12 | [ProvideMenuResource("Menus.ctmenu", 1)] 13 | [Guid(PackageGuids.$safeprojectname$String)] 14 | public sealed class $packageName$ : ToolkitPackage 15 | { 16 | protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) 17 | { 18 | await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | VSIX Project (Community) 4 | Community.CSharp.VSIX.VSIXProject 5 | Build Visual Studio extensions using the Visual Studio SDK. Start with this template to create an extension project with an async package. Further extend functionality of Visual Studio by adding editor items, commands and tool windows. 6 | CSharp 7 | 500 8 | true 9 | VSIXProject 10 | true 11 | Enabled 12 | true 13 | Icon.png 14 | true 15 | CSharp 16 | Windows 17 | Extension 18 | 19 | 20 | 21 | vspkg.source.extension.vsixmanifest 22 | source.extension.cs 23 | VsPkg.cs 24 | VSPackage.vsct 25 | VSCommandTable.cs 26 | 27 | 28 | AssemblyInfo.cs 29 | 30 | 31 | Icon.png 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | Microsoft.VSSDK.TemplateWizard, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 41 | Microsoft.VSSDK.TemplateWizard.MEFExtensionWizard 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "$safeprojectname$.$guid2$"; 11 | public const string Name = "$safeprojectname$"; 12 | public const string Description = @"$description$"; 13 | public const string Language = "en-US"; 14 | public const string Version = "1.0"; 15 | public const string Author = "$registeredorganization$"; 16 | public const string Tags = ""; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProject/vspkg.source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $safeprojectname$ 6 | $description$ 7 | Resources\Icon.png 8 | Resources\Icon.png 9 | 10 | 11 | 12 | amd64 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/Commands/Command.cs: -------------------------------------------------------------------------------- 1 | namespace $safeprojectname$ 2 | { 3 | [Command(PackageIds.MyCommand)] 4 | internal sealed class MyCommand : BaseCommand 5 | { 6 | protected override async Task ExecuteAsync(OleMenuCmdEventArgs e) 7 | { 8 | await VS.MessageBox.ShowWarningAsync("$safeprojectname$", "Button clicked"); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ProjectTemplates/VsixProjectCommand/Icon.png -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using $safeprojectname$; 4 | 5 | [assembly: AssemblyTitle(Vsix.Name)] 6 | [assembly: AssemblyDescription(Vsix.Description)] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany(Vsix.Author)] 9 | [assembly: AssemblyProduct(Vsix.Name)] 10 | [assembly: AssemblyCopyright(Vsix.Author)] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion(Vsix.Version)] 17 | [assembly: AssemblyFileVersion(Vsix.Version)] 18 | 19 | namespace System.Runtime.CompilerServices 20 | { 21 | public class IsExternalInit { } 22 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ProjectTemplates/VsixProjectCommand/Resources/Icon.png -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/VSCommandTable.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the free extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | using System; 9 | 10 | /// 11 | /// Helper class that exposes all GUIDs used across VS Package. 12 | /// 13 | internal sealed partial class PackageGuids 14 | { 15 | public const string $safeprojectname$String = "$guid3$"; 16 | public static Guid $safeprojectname$ = new Guid($safeprojectname$String); 17 | } 18 | /// 19 | /// Helper class that encapsulates all CommandIDs uses across VS Package. 20 | /// 21 | internal sealed partial class PackageIds 22 | { 23 | public const int MyMenuGroup = 0x0001; 24 | public const int MyCommand = 0x0100; 25 | } 26 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/VSIXProject.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 5 | latest 6 | 7 | 8 | 9 | Debug 10 | AnyCPU 11 | 2.0 12 | {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | $guid1$ 14 | Library 15 | Properties 16 | $safeprojectname$ 17 | $safeprojectname$ 18 | $if$ ($targetframeworkversion$ > 4.8) 19 | v$targetframeworkversion$ 20 | $else$ 21 | v4.8 22 | $endif$ 23 | true 24 | true 25 | true 26 | true 27 | false 28 | true 29 | true 30 | Program 31 | $(DevEnvDir)devenv.exe 32 | /rootsuffix Exp 33 | 34 | 35 | true 36 | full 37 | false 38 | bin\Debug\ 39 | DEBUG;TRACE 40 | prompt 41 | 4 42 | 43 | 44 | pdbonly 45 | true 46 | bin\Release\ 47 | TRACE 48 | prompt 49 | 4 50 | 51 | 52 | 53 | 54 | 55 | 56 | True 57 | True 58 | source.extension.vsixmanifest 59 | 60 | 61 | True 62 | True 63 | VSCommandTable.vsct 64 | 65 | 66 | 67 | 68 | Designer 69 | VsixManifestGenerator 70 | source.extension.cs 71 | 72 | 73 | PreserveNewest 74 | true 75 | 76 | 77 | 78 | 79 | Menus.ctmenu 80 | VsctGenerator 81 | VSCommandTable.cs 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 103 | 104 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/VSPackage.vsct: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/VsPkg.cs: -------------------------------------------------------------------------------- 1 | global using Task = System.Threading.Tasks.Task; 2 | global using Community.VisualStudio.Toolkit; 3 | global using Microsoft.VisualStudio.Shell; 4 | global using System; 5 | using System.Runtime.InteropServices; 6 | using System.Threading; 7 | 8 | namespace $safeprojectname$ 9 | { 10 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] 11 | [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] 12 | [ProvideMenuResource("Menus.ctmenu", 1)] 13 | [Guid(PackageGuids.$safeprojectname$String)] 14 | public sealed class $packageName$ : ToolkitPackage 15 | { 16 | protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) 17 | { 18 | await this.RegisterCommandsAsync(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | VSIX Project w/Command (Community) 4 | Community.CSharp.VSIX.VSIXProject.Command 5 | Build Visual Studio extensions using the Visual Studio SDK. Start with this template to create an extension project with an async package. Further extend functionality of Visual Studio by adding editor items, commands and tool windows. 6 | CSharp 7 | 510 8 | true 9 | VSIXProject 10 | true 11 | Enabled 12 | true 13 | Icon.png 14 | true 15 | CSharp 16 | Windows 17 | Extension 18 | 19 | 20 | 21 | vspkg.source.extension.vsixmanifest 22 | source.extension.cs 23 | VsPkg.cs 24 | VSPackage.vsct 25 | VSCommandTable.cs 26 | 27 | 28 | Command.cs 29 | 30 | 31 | 32 | AssemblyInfo.cs 33 | 34 | 35 | Icon.png 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Microsoft.VSSDK.TemplateWizard, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 45 | Microsoft.VSSDK.TemplateWizard.MEFExtensionWizard 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "$safeprojectname$.$guid2$"; 11 | public const string Name = "$safeprojectname$"; 12 | public const string Description = @"$description$"; 13 | public const string Language = "en-US"; 14 | public const string Version = "1.0"; 15 | public const string Author = "$registeredorganization$"; 16 | public const string Tags = ""; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectCommand/vspkg.source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $safeprojectname$ 6 | $description$ 7 | Resources\Icon.png 8 | Resources\Icon.png 9 | 10 | 11 | 12 | amd64 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/Commands/MyCommand.cs: -------------------------------------------------------------------------------- 1 | namespace $safeprojectname$ 2 | { 3 | [Command(PackageIds.MyCommand)] 4 | internal sealed class MyToolWindowCommand : BaseCommand 5 | { 6 | protected override Task ExecuteAsync(OleMenuCmdEventArgs e) 7 | { 8 | return MyToolWindow.ShowAsync(); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ProjectTemplates/VsixProjectWindow/Icon.png -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using $safeprojectname$; 4 | 5 | [assembly: AssemblyTitle(Vsix.Name)] 6 | [assembly: AssemblyDescription(Vsix.Description)] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany(Vsix.Author)] 9 | [assembly: AssemblyProduct(Vsix.Name)] 10 | [assembly: AssemblyCopyright(Vsix.Author)] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion(Vsix.Version)] 17 | [assembly: AssemblyFileVersion(Vsix.Version)] 18 | 19 | namespace System.Runtime.CompilerServices 20 | { 21 | public class IsExternalInit { } 22 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/ProjectTemplates/VsixProjectWindow/Resources/Icon.png -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/ToolWindows/Control.xaml: -------------------------------------------------------------------------------- 1 |  16 | 17 | 18 | 21 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/VsPkg.cs: -------------------------------------------------------------------------------- 1 | global using Task = System.Threading.Tasks.Task; 2 | global using Community.VisualStudio.Toolkit; 3 | global using Microsoft.VisualStudio.Shell; 4 | global using System; 5 | using System.Runtime.InteropServices; 6 | using System.Threading; 7 | 8 | namespace $safeprojectname$ 9 | { 10 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] 11 | [InstalledProductRegistration(Vsix.Name, Vsix.Description, Vsix.Version)] 12 | [ProvideToolWindow(typeof(MyToolWindow.Pane), Style = VsDockStyle.Tabbed, Window = WindowGuids.SolutionExplorer)] 13 | [ProvideMenuResource("Menus.ctmenu", 1)] 14 | [Guid(PackageGuids.$safeprojectname$String)] 15 | public sealed class $packageName$ : ToolkitPackage 16 | { 17 | protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) 18 | { 19 | await this.RegisterCommandsAsync(); 20 | 21 | this.RegisterToolWindows(); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/_Definitions/CSharp.vstemplate: -------------------------------------------------------------------------------- 1 | 2 | 3 | VSIX Project w/Tool Window (Community) 4 | Community.CSharp.VSIX.VSIXProject.Window 5 | Build Visual Studio extensions using the Visual Studio SDK. Start with this template to create an extension project with an async package. Further extend functionality of Visual Studio by adding editor items, commands and tool windows. 6 | CSharp 7 | 520 8 | true 9 | VSIXProject 10 | true 11 | Enabled 12 | true 13 | Icon.png 14 | true 15 | CSharp 16 | Windows 17 | Extension 18 | 19 | 20 | 21 | vspkg.source.extension.vsixmanifest 22 | source.extension.cs 23 | VsPkg.cs 24 | VSPackage.vsct 25 | VSCommandTable.cs 26 | 27 | 28 | Control.xaml 29 | Control.xaml.cs 30 | ToolWindow.cs 31 | 32 | 33 | 34 | MyCommand.cs 35 | 36 | 37 | 38 | AssemblyInfo.cs 39 | 40 | 41 | Icon.png 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | Microsoft.VSSDK.TemplateWizard, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 51 | Microsoft.VSSDK.TemplateWizard.MEFExtensionWizard 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by the extension VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace $safeprojectname$ 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "$safeprojectname$.$guid2$"; 11 | public const string Name = "$safeprojectname$"; 12 | public const string Description = @"$description$"; 13 | public const string Language = "en-US"; 14 | public const string Version = "1.0"; 15 | public const string Author = "$registeredorganization$"; 16 | public const string Tags = ""; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2022/ProjectTemplates/VsixProjectWindow/vspkg.source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $safeprojectname$ 6 | $description$ 7 | Resources\Icon.png 8 | Resources\Icon.png 9 | 10 | 11 | 12 | amd64 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/2022/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using VsixItemTemplates; 4 | 5 | [assembly: AssemblyTitle(Vsix.Name)] 6 | [assembly: AssemblyDescription(Vsix.Description)] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany(Vsix.Author)] 9 | [assembly: AssemblyProduct(Vsix.Name)] 10 | [assembly: AssemblyCopyright(Vsix.Author)] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion(Vsix.Version)] 17 | [assembly: AssemblyFileVersion(Vsix.Version)] 18 | -------------------------------------------------------------------------------- /src/2022/Properties/template-builder.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 9 | 10 | 13 | 14 | 15 | Extensibility 16 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/2022/Resources/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VsixCommunity/ExtensibilityTemplatePack/f8f51bdc91d6dac4b91a8e2ffa011ec925ea493c/src/2022/Resources/Icon.png -------------------------------------------------------------------------------- /src/2022/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/2022/registry.pkgdef: -------------------------------------------------------------------------------- 1 | [$RootKey$\ExtensionManager\Repositories\{31fa092f-eb72-46de-a0d6-4dd97b15fde1}] 2 | @="https://www.vsixgallery.com/feed/extension/88049e1e-62f2-4ea2-851f-9ddb2de37f41" 3 | "Priority"=dword:00000064 4 | "Protocol"="Atom Feed" 5 | "DisplayName"="Extensibility Template Pack" -------------------------------------------------------------------------------- /src/2022/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace VsixItemTemplates 7 | { 8 | internal sealed partial class Vsix 9 | { 10 | public const string Id = "88049e1e-62f2-4ea2-851f-9ddb2de37f42"; 11 | public const string Name = "Extensibility Template Pack 2022"; 12 | public const string Description = @"A template pack for Visual Studio extension authors full of useful project- and item templates."; 13 | public const string Language = "en-US"; 14 | public const string Version = "2.2"; 15 | public const string Author = "Mads Kristensen"; 16 | public const string Tags = "vsix, extension, template"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/2022/source.extension.vsixmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Extensibility Template Pack 2022 6 | A template pack for Visual Studio extension authors full of useful project- and item templates. 7 | https://github.com/VsixCommunity/ExtensibilityTemplatePack 8 | Resources\LICENSE 9 | Resources\Icon.png 10 | Resources\Icon.png 11 | vsix, extension, template 12 | 13 | 14 | 15 | amd64 16 | 17 | 18 | arm64 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/2022/template-report.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | --------------------------------------------------------------------------------