Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit36e0ec8

Browse files
enricosadaKevinRansom
authored andcommitted
add menu entry "Open folder in File Explorer" on Folder nodes
1 parentac85db7 commit36e0ec8

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

‎vsintegration/src/vs/FsPkgs/FSharp.Project/Common.Source.CSharp/Project/FolderNode.cs‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,12 @@ internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText
267267
result|=QueryStatusResult.SUPPORTED|QueryStatusResult.ENABLED;
268268
returnVSConstants.S_OK;
269269
}
270+
if((VsCommands2K)cmd==VsMenus.OpenFolderInExplorerCmdId)
271+
{
272+
result|=QueryStatusResult.SUPPORTED;
273+
result|=CanOpenFolderInExplorer()?QueryStatusResult.ENABLED:QueryStatusResult.INVISIBLE;
274+
returnVSConstants.S_OK;
275+
}
270276
}
271277
else
272278
{
@@ -275,6 +281,31 @@ internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText
275281
returnbase.QueryStatusOnNode(cmdGroup,cmd,pCmdText,refresult);
276282
}
277283

284+
publicboolCanOpenFolderInExplorer()
285+
{
286+
returnDirectory.Exists(this.Url);
287+
}
288+
289+
publicvoidOpenFolderInExplorer()
290+
{
291+
if(CanOpenFolderInExplorer())
292+
Process.Start(this.Url);
293+
}
294+
295+
publicoverrideintExecCommandOnNode(GuidcmdGroup,uintcmd,uintnCmdexecopt,IntPtrpvaIn,IntPtrpvaOut)
296+
{
297+
if(cmdGroup==VsMenus.guidStandardCommandSet2K)
298+
{
299+
if((VsCommands2K)cmd==VsMenus.OpenFolderInExplorerCmdId)
300+
{
301+
OpenFolderInExplorer();
302+
returnVSConstants.S_OK;
303+
}
304+
}
305+
306+
returnbase.ExecCommandOnNode(cmdGroup,cmd,nCmdexecopt,pvaIn,pvaOut);
307+
}
308+
278309
public/*protected, but public for FSharp.Project.dll*/overrideboolCanDeleteItem(__VSDELETEITEMOPERATIONdeleteOperation)
279310
{
280311
if(deleteOperation==__VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage)

‎vsintegration/src/vs/FsPkgs/FSharp.Project/Common.Source.CSharp/Project/VsCommands.cs‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ internal class VsMenus
2323

2424
publicstaticGuidguidVSUISet=newGuid("60481700-078b-11d1-aaf8-00a0c9055a90");
2525

26+
//"Open Folder in Windows Explorer" command ID.
27+
//Don't change this! This is Visual Studio constant.
28+
publicconstVSConstants.VSStd2KCmdIDOpenFolderInExplorerCmdId=(VSConstants.VSStd2KCmdID)1635;
29+
2630
[SuppressMessage("Microsoft.Naming","CA1704:IdentifiersShouldBeSpelledCorrectly",MessageId="Cmds")]
2731
publicstaticGuidguidVsUIHierarchyWindowCmds=newGuid("60481700-078B-11D1-AAF8-00A0C9055A90");
2832

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp