├── src ├── Templates │ ├── .json.txt │ ├── .md.txt │ ├── .bowerrc.txt │ ├── gulpfile.js.txt │ ├── .vb.txt │ ├── .razor.txt │ ├── .vb-interface.txt │ ├── gruntfile.js.txt │ ├── .cs-enum.txt │ ├── bower.json.txt │ ├── .html.txt │ ├── package.json.txt │ ├── .cs-controller.txt │ ├── .cs.txt │ ├── .cs-interface.txt │ └── .linq.txt ├── Resources │ ├── icon.png │ └── logo.png ├── Properties │ └── AssemblyInfo.cs ├── source.extension.cs ├── Helpers │ ├── Logger.cs │ ├── VsTheme.cs │ └── ProjectHelpers.cs ├── AddAnyFile.cs ├── FileNameDialog.xaml ├── source.extension.vsixmanifest ├── AddAnyFile.vsct ├── FileNameDialog.xaml.cs ├── NewItemTarget.cs ├── Templatemap.cs ├── AddAnyFile.csproj └── AddAnyFilePackage.cs ├── art ├── menu.png └── dialog.png ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE.md ├── workflows │ └── build.yaml ├── CODE_OF_CONDUCT.md └── CONTRIBUTING.md ├── vs-publish.json ├── .gitattributes ├── AddAnyFile.sln ├── README.md ├── .editorconfig ├── .gitignore └── LICENSE /src/Templates/.json.txt: -------------------------------------------------------------------------------- 1 | { 2 | $ 3 | } -------------------------------------------------------------------------------- /src/Templates/.md.txt: -------------------------------------------------------------------------------- 1 | # Markdown File 2 | 3 | $ -------------------------------------------------------------------------------- /src/Templates/.bowerrc.txt: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib"$ 3 | } -------------------------------------------------------------------------------- /src/Templates/gulpfile.js.txt: -------------------------------------------------------------------------------- 1 | var gulp = require("gulp"); 2 | 3 | $ -------------------------------------------------------------------------------- /src/Templates/.vb.txt: -------------------------------------------------------------------------------- 1 | Public Class {itemname} 2 | $ 3 | End Class 4 | -------------------------------------------------------------------------------- /art/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madskristensen/AddAnyFile/master/art/menu.png -------------------------------------------------------------------------------- /src/Templates/.razor.txt: -------------------------------------------------------------------------------- 1 |

{itemname}

2 | 3 | $ 4 | 5 | @code { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /art/dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madskristensen/AddAnyFile/master/art/dialog.png -------------------------------------------------------------------------------- /src/Templates/.vb-interface.txt: -------------------------------------------------------------------------------- 1 | Public Interface {itemname} 2 | $ 3 | End Interface 4 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: madskristensen 4 | -------------------------------------------------------------------------------- /src/Resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madskristensen/AddAnyFile/master/src/Resources/icon.png -------------------------------------------------------------------------------- /src/Resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madskristensen/AddAnyFile/master/src/Resources/logo.png -------------------------------------------------------------------------------- /src/Templates/gruntfile.js.txt: -------------------------------------------------------------------------------- 1 | module.exports = function (grunt) { 2 | grunt.initConfig({ 3 | $ 4 | }); 5 | }; -------------------------------------------------------------------------------- /src/Templates/.cs-enum.txt: -------------------------------------------------------------------------------- 1 | namespace {namespace} 2 | { 3 | public enum {itemname} 4 | { 5 | $ 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Templates/bower.json.txt: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mypackage", 3 | "private": true, 4 | "dependencies": { 5 | $ 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Templates/.html.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {itemname} 5 | 6 | 7 | $ 8 | 9 | -------------------------------------------------------------------------------- /src/Templates/package.json.txt: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "name": "mypackage", 4 | "private": true, 5 | "devDependencies": { 6 | $ 7 | } 8 | } -------------------------------------------------------------------------------- /src/Templates/.cs-controller.txt: -------------------------------------------------------------------------------- 1 | using {mvcprojectnamespace}; 2 | 3 | namespace {namespace} 4 | { 5 | public class {itemname} : Controller 6 | { 7 | $ 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/Templates/.cs.txt: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace {namespace} 8 | { 9 | public class {itemname} 10 | { 11 | $ 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Templates/.cs-interface.txt: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace {namespace} 8 | { 9 | public interface {itemname} 10 | { 11 | $ 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | [Description of the bug or feature] 3 | 4 | ### Steps to reproduce 5 | 1. [First Step] 6 | 2. [Second Step] 7 | 3. [and so on...] 8 | 9 | **Expected behavior:** [What you expected to happen] 10 | 11 | **Actual behavior:** [What actually happened] -------------------------------------------------------------------------------- /src/Templates/.linq.txt: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace {namespace} 9 | { 10 | public class {itemname} 11 | { 12 | $ 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /vs-publish.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/vsix-publish", 3 | "categories": [ "other", "coding" ], 4 | "identity": { 5 | "internalName": "AddNewFile64" 6 | }, 7 | "assetFiles": [ 8 | { 9 | "pathOnDisk": "art/dialog.png", 10 | "targetPath": "art/dialog.png" 11 | }, 12 | { 13 | "pathOnDisk": "art/menu.png", 14 | "targetPath": "art/menu.png" 15 | } 16 | ], 17 | "overview": "README.md", 18 | "publisher": "MadsKristensen", 19 | "repo": "https://github.com/madskristensen/AddAnyFile" 20 | } -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /src/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Resources; 4 | using System.Runtime.InteropServices; 5 | using MadsKristensen.AddAnyFile; 6 | 7 | [assembly: AssemblyTitle(Vsix.Name)] 8 | [assembly: AssemblyDescription(Vsix.Description)] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany(Vsix.Author)] 11 | [assembly: AssemblyProduct(Vsix.Name)] 12 | [assembly: AssemblyCopyright(Vsix.Author)] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | [assembly: ComVisible(false)] 16 | [assembly: CLSCompliant(false)] 17 | [assembly: NeutralResourcesLanguage(Vsix.Language)] 18 | 19 | [assembly: AssemblyVersion(Vsix.Version)] 20 | [assembly: AssemblyFileVersion(Vsix.Version)] -------------------------------------------------------------------------------- /src/source.extension.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by VSIX Synchronizer 4 | // Available from https://marketplace.visualstudio.com/items?itemName=MadsKristensen.VsixSynchronizer64 5 | // 6 | // ------------------------------------------------------------------------------ 7 | namespace MadsKristensen.AddAnyFile 8 | { 9 | internal sealed partial class Vsix 10 | { 11 | public const string Id = "d48e8f25-661b-4970-8b66-03f051ba5fc3"; 12 | public const string Name = "Add New File (64-bit)"; 13 | public const string Description = @"The fastest and easiest way to add new files to any project - including files that start with a dot"; 14 | public const string Language = "en-US"; 15 | public const string Version = "4.6"; 16 | public const string Author = "Mads Kristensen"; 17 | public const string Tags = "file, add, template"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Helpers/Logger.cs: -------------------------------------------------------------------------------- 1 | using Microsoft; 2 | using Microsoft.VisualStudio.Shell.Interop; 3 | 4 | using System; 5 | 6 | internal static class Logger 7 | { 8 | private static string _name; 9 | private static IVsOutputWindowPane _pane; 10 | private static IVsOutputWindow _output; 11 | 12 | public static void Initialize(IServiceProvider provider, string name) 13 | { 14 | _output = (IVsOutputWindow)provider.GetService(typeof(SVsOutputWindow)); 15 | Assumes.Present(_output); 16 | _name = name; 17 | } 18 | 19 | public static void Log(object message) 20 | { 21 | try 22 | { 23 | if (EnsurePane()) 24 | { 25 | _pane.OutputString(DateTime.Now.ToString() + ": " + message + Environment.NewLine); 26 | } 27 | } 28 | catch (Exception ex) 29 | { 30 | System.Diagnostics.Debug.Write(ex); 31 | } 32 | } 33 | 34 | private static bool EnsurePane() 35 | { 36 | if (_pane == null) 37 | { 38 | Guid guid = Guid.NewGuid(); 39 | _output.CreatePane(ref guid, _name, 1, 1); 40 | _output.GetPane(ref guid, out _pane); 41 | } 42 | 43 | return _pane != null; 44 | } 45 | } -------------------------------------------------------------------------------- /src/AddAnyFile.cs: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------------ 2 | // 3 | // This file was generated by VSIX Synchronizer 4 | // 5 | // ------------------------------------------------------------------------------ 6 | namespace MadsKristensen.AddAnyFile 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 guidAddAnyFilePkgString = "27dd9dea-6dd2-403e-929d-3ff20d896c5e"; 16 | public static Guid guidAddAnyFilePkg = new Guid(guidAddAnyFilePkgString); 17 | 18 | public const string guidAddAnyFileCmdSetString = "32af8a17-bbbc-4c56-877e-fc6c6575a8cf"; 19 | public static Guid guidAddAnyFileCmdSet = new Guid(guidAddAnyFileCmdSetString); 20 | } 21 | /// 22 | /// Helper class that encapsulates all CommandIDs uses across VS Package. 23 | /// 24 | internal sealed partial class PackageIds 25 | { 26 | public const int cmdidMyCommand = 0x0100; 27 | } 28 | } -------------------------------------------------------------------------------- /src/FileNameDialog.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |