From 9de84e5d15d6e7bafe5a2f519140f87000b43135 Mon Sep 17 00:00:00 2001 From: Mads Kristensen Date: Sun, 18 Jan 2015 21:38:17 -0800 Subject: [PATCH] Initial commit --- LICENSE | 13 +++ OpenCommandLine.sln | 27 +++++ src/Guids.cs | 19 ++++ src/OpenCommandLine.csproj | 177 ++++++++++++++++++++++++++++++ src/OpenCommandLine.vsct | 59 ++++++++++ src/OpenCommandLinePackage.cs | 83 ++++++++++++++ src/Properties/AssemblyInfo.cs | 36 ++++++ src/Resources/Images.png | Bin 0 -> 1036 bytes src/Resources/Package.ico | Bin 0 -> 2998 bytes src/Resources/icon.png | Bin 0 -> 2277 bytes src/Resources/preview.png | Bin 0 -> 3776 bytes src/VSPackage.resx | 140 +++++++++++++++++++++++ src/source.extension.vsixmanifest | 22 ++++ 13 files changed, 576 insertions(+) create mode 100644 LICENSE create mode 100644 OpenCommandLine.sln create mode 100644 src/Guids.cs create mode 100644 src/OpenCommandLine.csproj create mode 100644 src/OpenCommandLine.vsct create mode 100644 src/OpenCommandLinePackage.cs create mode 100644 src/Properties/AssemblyInfo.cs create mode 100644 src/Resources/Images.png create mode 100644 src/Resources/Package.ico create mode 100644 src/Resources/icon.png create mode 100644 src/Resources/preview.png create mode 100644 src/VSPackage.resx create mode 100644 src/source.extension.vsixmanifest diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5f65795 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright 2015 Mads Kristensen + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/OpenCommandLine.sln b/OpenCommandLine.sln new file mode 100644 index 0000000..4683ed7 --- /dev/null +++ b/OpenCommandLine.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenCommandLine", "src\OpenCommandLine.csproj", "{ADE3EF15-69C4-48AC-ABE1-9C645C992558}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6A2C86AE-EA03-427F-AA05-9403BA3A37A2}" + ProjectSection(SolutionItems) = preProject + LICENSE = LICENSE + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ADE3EF15-69C4-48AC-ABE1-9C645C992558}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADE3EF15-69C4-48AC-ABE1-9C645C992558}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADE3EF15-69C4-48AC-ABE1-9C645C992558}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADE3EF15-69C4-48AC-ABE1-9C645C992558}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/Guids.cs b/src/Guids.cs new file mode 100644 index 0000000..1449e5a --- /dev/null +++ b/src/Guids.cs @@ -0,0 +1,19 @@ +// Guids.cs +// MUST match guids.h +using System; + +namespace MadsKristensen.OpenCommandLine +{ + static class GuidList + { + public const string guidOpenCommandLinePkgString = "f4ab1e64-5d35-4f06-bad9-bf414f4b3bbb"; + public const string guidOpenCommandLineCmdSetString = "59c8a2ef-e017-4f2d-93ee-ca161749897d"; + + public static readonly Guid guidOpenCommandLineCmdSet = new Guid(guidOpenCommandLineCmdSetString); + } + + static class PkgCmdIDList + { + public const uint cmdidOpenCommandLine = 0x100; + } +} \ No newline at end of file diff --git a/src/OpenCommandLine.csproj b/src/OpenCommandLine.csproj new file mode 100644 index 0000000..2982ab2 --- /dev/null +++ b/src/OpenCommandLine.csproj @@ -0,0 +1,177 @@ + + + + 12.0 + 12.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + Debug + AnyCPU + 2.0 + {ADE3EF15-69C4-48AC-ABE1-9C645C992558} + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + MadsKristensen.OpenCommandLine + OpenCommandLine + false + + + v4.5 + Program + $(DevEnvDir)\devenv.exe + /rootsuffix Exp + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + true + + + true + + + + + + + + + + + + + + + + + {80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2} + 8 + 0 + 0 + primary + False + False + + + {26AD1324-4B7C-44BC-84F8-B86AED45729F} + 10 + 0 + 0 + primary + False + False + + + {1A31287A-4D7D-413E-8E32-3B374931BD89} + 8 + 0 + 0 + primary + False + False + + + {2CE2370E-D744-4936-A090-3FFFE667B0E1} + 9 + 0 + 0 + primary + False + False + + + {1CBA492E-7263-47BB-87FE-639000619B15} + 8 + 0 + 0 + primary + False + False + + + {00020430-0000-0000-C000-000000000046} + 2 + 0 + 0 + primary + False + False + + + + + + + + + + true + VSPackage + + + + + Resources\LICENSE + true + + + Designer + + + + + Menus.ctmenu + + + + + + + + true + + + + true + + + + true + + + + + \ No newline at end of file diff --git a/src/OpenCommandLine.vsct b/src/OpenCommandLine.vsct new file mode 100644 index 0000000..be02677 --- /dev/null +++ b/src/OpenCommandLine.vsct @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/OpenCommandLinePackage.cs b/src/OpenCommandLinePackage.cs new file mode 100644 index 0000000..749709b --- /dev/null +++ b/src/OpenCommandLinePackage.cs @@ -0,0 +1,83 @@ +using System; +using System.ComponentModel.Design; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using EnvDTE; +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; + +namespace MadsKristensen.OpenCommandLine +{ + [PackageRegistration(UseManagedResourcesOnly = true)] + [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] + [ProvideMenuResource("Menus.ctmenu", 1)] + [ProvideAutoLoad(UIContextGuids80.SolutionExists)] + [Guid(GuidList.guidOpenCommandLinePkgString)] + public sealed class OpenCommandLinePackage : Package + { + private static DTE2 _dte; + + protected override void Initialize() + { + base.Initialize(); + _dte = GetService(typeof(DTE)) as DTE2; + + OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService; + if (null != mcs) + { + CommandID menuCommandID = new CommandID(GuidList.guidOpenCommandLineCmdSet, (int)PkgCmdIDList.cmdidOpenCommandLine); + MenuCommand menuItem = new MenuCommand(OpenCmd, menuCommandID); + mcs.AddCommand(menuItem); + } + } + + private void OpenCmd(object sender, EventArgs e) + { + var path = GetPath(); + + if (string.IsNullOrEmpty(path)) + return; + + ProcessStartInfo start = new ProcessStartInfo("cmd", "/k") + { + WorkingDirectory = path + }; + + var p = new System.Diagnostics.Process(); + p.StartInfo = start; + p.Start(); + } + + private static string GetPath() + { + Project project = GetActiveProject(); + + if (project != null && !string.IsNullOrEmpty(project.FullName)) + return project.Properties.Item("FullPath").Value.ToString(); + + if (_dte.Solution != null && !string.IsNullOrEmpty(_dte.Solution.FullName)) + return Path.GetDirectoryName(_dte.Solution.FullName); + + return null; + } + + public static Project GetActiveProject() + { + try + { + Array activeSolutionProjects = _dte.ActiveSolutionProjects as Array; + + if (activeSolutionProjects != null && activeSolutionProjects.Length > 0) + return activeSolutionProjects.GetValue(0) as Project; + } + catch (Exception ex) + { + Debug.Write(ex.Message); + } + + return null; + } + } +} diff --git a/src/Properties/AssemblyInfo.cs b/src/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e00737c --- /dev/null +++ b/src/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System; +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Open Command Line")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Mads Kristensen")] +[assembly: AssemblyProduct("Open Command Line")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] +[assembly: CLSCompliant(false)] +[assembly: NeutralResourcesLanguage("en-US")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + + + diff --git a/src/Resources/Images.png b/src/Resources/Images.png new file mode 100644 index 0000000000000000000000000000000000000000..9916c8d9c672654aeebd1b3db151d817946e8b36 GIT binary patch literal 1036 zcmeAS@N?(olHy`uVBq!ia0vp^2|z5s!3-qtrF5NUU|=i^@Ck7Ra{vGT|Ni~^@87?F z`SJxwe*O9tLIN4zzI{U`ZES7UtX*qmWwmbodZ74+XHPyne+E=@bK~;o&!2}!L`KKN z#3v-CXJqE(LB0 zX+=dI+4YdcVxlatdzHC~{xK({S3mU(vml#HzG!$W(V>%M$=|B;1>rK+mR!oq@q zfoY?!<(a;wi?b&@c<_Lknf2+DXMxR6KfZh(H~G&R2d!%>=4(ao)zHxL_4NgM*EaXu zvBu(*l$4T^5*8LVFE4Kq5fL#lvB=0sCMK4oq-0q+xxCyw1qG#&5}a1 z`qk7ln3$MXuU@02teVlM#d(l zTwFXB7FOKc+zt+o+}u2`@7#R-`n7<7fV+o>r1CNxR@)BzW8AjCe}nMG zlv|(<9_zT<47WbgFPHhT{Hb`6dv z3W~Kmo_MjeZJztjT*{b;|{p{$&siQ&Q(x)?ys@ z;O!>Y9qcbyL^%HN`&6AgVKr~h#eA;Yo(vte8Lv!jYn{*8alDz{$na9X=P#?K^MmuR zk9qKvXVxunzc+6elh%VP=H3VIvWs$Q)QPn2S>l;-bJ5=#z6tjjJJ~}54xWs*7oGR6 zm8;j|P+&Z-jAE@nfn*A`8C8h0aF-*r>mdKI;Vst0D))r-2eap literal 0 HcmV?d00001 diff --git a/src/Resources/Package.ico b/src/Resources/Package.ico new file mode 100644 index 0000000000000000000000000000000000000000..449296f495af26f2b41bb1626a28de7432145472 GIT binary patch literal 2998 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Open Command Line + + + Opens a command line (cmd) at the root of the project + + + Resources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/src/source.extension.vsixmanifest b/src/source.extension.vsixmanifest new file mode 100644 index 0000000..2373591 --- /dev/null +++ b/src/source.extension.vsixmanifest @@ -0,0 +1,22 @@ + + + + + OpenCommandLine + Opens a command line (cmd) at the root of the project + Resources\LICENSE + Resources\icon.png + Resources\preview.png + + + + + + + + + + + + +