-
-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
721a3bc
commit 9de84e5
Showing
13 changed files
with
576 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0"> | ||
<PropertyGroup> | ||
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion> | ||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion> | ||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> | ||
</PropertyGroup> | ||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | ||
<PropertyGroup> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
<SchemaVersion>2.0</SchemaVersion> | ||
<ProjectGuid>{ADE3EF15-69C4-48AC-ABE1-9C645C992558}</ProjectGuid> | ||
<ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | ||
<OutputType>Library</OutputType> | ||
<AppDesignerFolder>Properties</AppDesignerFolder> | ||
<RootNamespace>MadsKristensen.OpenCommandLine</RootNamespace> | ||
<AssemblyName>OpenCommandLine</AssemblyName> | ||
<SignAssembly>false</SignAssembly> | ||
<AssemblyOriginatorKeyFile> | ||
</AssemblyOriginatorKeyFile> | ||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | ||
<StartAction>Program</StartAction> | ||
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram> | ||
<StartArguments>/rootsuffix Exp</StartArguments> | ||
<IncludeDebugSymbolsInVSIXContainer>true</IncludeDebugSymbolsInVSIXContainer> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||
<DebugSymbols>true</DebugSymbols> | ||
<DebugType>full</DebugType> | ||
<Optimize>false</Optimize> | ||
<OutputPath>bin\Debug\</OutputPath> | ||
<DefineConstants>DEBUG;TRACE</DefineConstants> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||
<DebugType>pdbonly</DebugType> | ||
<Optimize>true</Optimize> | ||
<OutputPath>bin\Release\</OutputPath> | ||
<DefineConstants>TRACE</DefineConstants> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
<RunCodeAnalysis>false</RunCodeAnalysis> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<Reference Include="Microsoft.CSharp" /> | ||
<Reference Include="Microsoft.VisualStudio.OLE.Interop" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Interop" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0"> | ||
<EmbedInteropTypes>true</EmbedInteropTypes> | ||
</Reference> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Interop.12.0"> | ||
<EmbedInteropTypes>true</EmbedInteropTypes> | ||
</Reference> | ||
<Reference Include="Microsoft.VisualStudio.TextManager.Interop" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.12.0" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0" /> | ||
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.12.0" /> | ||
<Reference Include="System" /> | ||
<Reference Include="System.Core" /> | ||
<Reference Include="System.Data" /> | ||
<Reference Include="System.Design" /> | ||
<Reference Include="System.Drawing" /> | ||
<Reference Include="System.Windows.Forms" /> | ||
<Reference Include="System.Xml" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<COMReference Include="EnvDTE"> | ||
<Guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</Guid> | ||
<VersionMajor>8</VersionMajor> | ||
<VersionMinor>0</VersionMinor> | ||
<Lcid>0</Lcid> | ||
<WrapperTool>primary</WrapperTool> | ||
<Isolated>False</Isolated> | ||
<EmbedInteropTypes>False</EmbedInteropTypes> | ||
</COMReference> | ||
<COMReference Include="EnvDTE100"> | ||
<Guid>{26AD1324-4B7C-44BC-84F8-B86AED45729F}</Guid> | ||
<VersionMajor>10</VersionMajor> | ||
<VersionMinor>0</VersionMinor> | ||
<Lcid>0</Lcid> | ||
<WrapperTool>primary</WrapperTool> | ||
<Isolated>False</Isolated> | ||
<EmbedInteropTypes>False</EmbedInteropTypes> | ||
</COMReference> | ||
<COMReference Include="EnvDTE80"> | ||
<Guid>{1A31287A-4D7D-413E-8E32-3B374931BD89}</Guid> | ||
<VersionMajor>8</VersionMajor> | ||
<VersionMinor>0</VersionMinor> | ||
<Lcid>0</Lcid> | ||
<WrapperTool>primary</WrapperTool> | ||
<Isolated>False</Isolated> | ||
<EmbedInteropTypes>False</EmbedInteropTypes> | ||
</COMReference> | ||
<COMReference Include="EnvDTE90"> | ||
<Guid>{2CE2370E-D744-4936-A090-3FFFE667B0E1}</Guid> | ||
<VersionMajor>9</VersionMajor> | ||
<VersionMinor>0</VersionMinor> | ||
<Lcid>0</Lcid> | ||
<WrapperTool>primary</WrapperTool> | ||
<Isolated>False</Isolated> | ||
<EmbedInteropTypes>False</EmbedInteropTypes> | ||
</COMReference> | ||
<COMReference Include="Microsoft.VisualStudio.CommandBars"> | ||
<Guid>{1CBA492E-7263-47BB-87FE-639000619B15}</Guid> | ||
<VersionMajor>8</VersionMajor> | ||
<VersionMinor>0</VersionMinor> | ||
<Lcid>0</Lcid> | ||
<WrapperTool>primary</WrapperTool> | ||
<Isolated>False</Isolated> | ||
<EmbedInteropTypes>False</EmbedInteropTypes> | ||
</COMReference> | ||
<COMReference Include="stdole"> | ||
<Guid>{00020430-0000-0000-C000-000000000046}</Guid> | ||
<VersionMajor>2</VersionMajor> | ||
<VersionMinor>0</VersionMinor> | ||
<Lcid>0</Lcid> | ||
<WrapperTool>primary</WrapperTool> | ||
<Isolated>False</Isolated> | ||
<EmbedInteropTypes>False</EmbedInteropTypes> | ||
</COMReference> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Compile Include="Guids.cs" /> | ||
<Compile Include="OpenCommandLinePackage.cs" /> | ||
<Compile Include="Properties\AssemblyInfo.cs" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<EmbeddedResource Include="VSPackage.resx"> | ||
<MergeWithCTO>true</MergeWithCTO> | ||
<ManifestResourceName>VSPackage</ManifestResourceName> | ||
</EmbeddedResource> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Content Include="..\LICENSE"> | ||
<Link>Resources\LICENSE</Link> | ||
<IncludeInVSIX>true</IncludeInVSIX> | ||
</Content> | ||
<None Include="source.extension.vsixmanifest"> | ||
<SubType>Designer</SubType> | ||
</None> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<VSCTCompile Include="OpenCommandLine.vsct"> | ||
<ResourceName>Menus.ctmenu</ResourceName> | ||
</VSCTCompile> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="Resources\Images.png" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Content Include="Resources\icon.png"> | ||
<IncludeInVSIX>true</IncludeInVSIX> | ||
</Content> | ||
<Content Include="Resources\Package.ico" /> | ||
<Content Include="Resources\preview.png"> | ||
<IncludeInVSIX>true</IncludeInVSIX> | ||
</Content> | ||
</ItemGroup> | ||
<PropertyGroup> | ||
<UseCodebase>true</UseCodebase> | ||
</PropertyGroup> | ||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> | ||
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" /> | ||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. | ||
Other similar extension points exist, see Microsoft.Common.targets. | ||
<Target Name="BeforeBuild"> | ||
</Target> | ||
<Target Name="AfterBuild"> | ||
</Target> | ||
--> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema"> | ||
|
||
<Extern href="stdidcmd.h"/> | ||
<Extern href="vsshlids.h"/> | ||
|
||
<Commands package="guidOpenCommandLinePkg"> | ||
|
||
<Groups> | ||
<Group guid="guidOpenCommandLineCmdSet" id="MyMenuGroup" priority="0x0600"> | ||
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/> | ||
</Group> | ||
</Groups> | ||
|
||
<Buttons> | ||
<Button guid="guidOpenCommandLineCmdSet" id="cmdidOpenCommandLine" priority="0x0100" type="Button"> | ||
<Parent guid="guidOpenCommandLineCmdSet" id="MyMenuGroup" /> | ||
<Icon guid="guidImages" id="bmpPic1" /> | ||
<Strings> | ||
<ButtonText>Open Command Line</ButtonText> | ||
</Strings> | ||
</Button> | ||
</Buttons> | ||
|
||
<Bitmaps> | ||
<Bitmap guid="guidImages" href="Resources\Images.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/> | ||
</Bitmaps> | ||
</Commands> | ||
|
||
<KeyBindings> | ||
<KeyBinding guid="guidOpenCommandLineCmdSet" id="cmdidOpenCommandLine" mod1="Alt" key1="VK_SPACE" editor="guidVSStd97"/> | ||
</KeyBindings> | ||
|
||
<CommandPlacements> | ||
<CommandPlacement guid="guidOpenCommandLineCmdSet" id="MyMenuGroup" priority="0x0600"> | ||
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_WEBPROJECT"/> | ||
</CommandPlacement> | ||
</CommandPlacements> | ||
|
||
<Symbols> | ||
<!-- This is the package guid. --> | ||
<GuidSymbol name="guidOpenCommandLinePkg" value="{f4ab1e64-5d35-4f06-bad9-bf414f4b3bbb}" /> | ||
|
||
<GuidSymbol name="guidOpenCommandLineCmdSet" value="{59c8a2ef-e017-4f2d-93ee-ca161749897d}"> | ||
<IDSymbol name="MyMenuGroup" value="0x1020" /> | ||
<IDSymbol name="cmdidOpenCommandLine" value="0x0100" /> | ||
</GuidSymbol> | ||
|
||
<GuidSymbol name="guidImages" value="{bc10dceb-1833-4dac-bc42-286a81241664}" > | ||
<IDSymbol name="bmpPic1" value="1" /> | ||
<IDSymbol name="bmpPic2" value="2" /> | ||
<IDSymbol name="bmpPicSearch" value="3" /> | ||
<IDSymbol name="bmpPicX" value="4" /> | ||
<IDSymbol name="bmpPicArrows" value="5" /> | ||
<IDSymbol name="bmpPicStrikethrough" value="6" /> | ||
</GuidSymbol> | ||
</Symbols> | ||
|
||
</CommandTable> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; | ||
} | ||
} | ||
} |
Oops, something went wrong.