mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 20:12:21 +02:00
Added an open in terminal dialogue
This commit is contained in:
parent
efb1a9c350
commit
8f7287b3dc
5 changed files with 69 additions and 0 deletions
|
@ -6514,6 +6514,20 @@ namespace IDE
|
|||
procInfo.UseShellExecute = true;
|
||||
procInfo.SetFileName(directory);
|
||||
|
||||
let process = scope SpawnedProcess();
|
||||
process.Start(procInfo).IgnoreError();
|
||||
});
|
||||
item = menu.AddItem("Open in Terminal");
|
||||
item.mOnMenuItemSelected.Add(new (menu) =>
|
||||
{
|
||||
let directory = scope String();
|
||||
Path.GetDirectoryPath(sourceViewPanel.mFilePath, directory);
|
||||
|
||||
ProcessStartInfo procInfo = scope ProcessStartInfo();
|
||||
procInfo.UseShellExecute = true;
|
||||
procInfo.SetFileName(gApp.mSettings.mEditorSettings.mDefaultConsole);
|
||||
procInfo.SetWorkingDirectory(directory);
|
||||
|
||||
let process = scope SpawnedProcess();
|
||||
process.Start(procInfo).IgnoreError();
|
||||
});
|
||||
|
|
|
@ -657,6 +657,7 @@ namespace IDE
|
|||
|
||||
public List<String> mFonts = new .() ~ DeleteContainerAndItems!(_);
|
||||
public float mFontSize = 12;
|
||||
public String mDefaultConsole = new .("powershell") ~ delete _;
|
||||
public AutoCompleteShowKind mAutoCompleteShowKind = .PanelIfVisible;
|
||||
public bool mAutoCompleteRequireControl = true;
|
||||
public bool mAutoCompleteRequireTab = false;
|
||||
|
@ -691,6 +692,7 @@ namespace IDE
|
|||
sd.Add(str);
|
||||
}
|
||||
sd.Add("FontSize", mFontSize);
|
||||
sd.Add("DefaultConsole", mDefaultConsole);
|
||||
sd.Add("AutoCompleteShowKind", mAutoCompleteShowKind);
|
||||
sd.Add("AutoCompleteRequireControl", mAutoCompleteRequireControl);
|
||||
sd.Add("AutoCompleteRequireTab", mAutoCompleteRequireTab);
|
||||
|
@ -728,6 +730,7 @@ namespace IDE
|
|||
}
|
||||
sd.Get("UIScale", ref gApp.mSettings.mUISettings.mScale); // Legacy
|
||||
sd.Get("FontSize", ref mFontSize);
|
||||
sd.Get("DefaultConsole", mDefaultConsole);
|
||||
sd.Get("AutoCompleteShowKind", ref mAutoCompleteShowKind);
|
||||
sd.Get("AutoCompleteRequireControl", ref mAutoCompleteRequireControl);
|
||||
sd.Get("AutoCompleteRequireTab", ref mAutoCompleteRequireTab);
|
||||
|
|
|
@ -2989,6 +2989,39 @@ namespace IDE.ui
|
|||
process.Start(psi).IgnoreError();
|
||||
}
|
||||
});
|
||||
|
||||
item = menu.AddItem("Open in Terminal");
|
||||
item.mOnMenuItemSelected.Add(new (menu) =>
|
||||
{
|
||||
let projectItem = GetSelectedProjectItem();
|
||||
String path = scope String();
|
||||
if (projectItem == null)
|
||||
{
|
||||
path.Set(gApp.mWorkspace.mDir);
|
||||
}
|
||||
else if (let projectFolder = projectItem as ProjectFolder)
|
||||
{
|
||||
if (projectFolder.mParentFolder == null)
|
||||
{
|
||||
path.Set(projectFolder.mProject.mProjectDir);
|
||||
}
|
||||
else
|
||||
projectFolder.GetFullImportPath(path);
|
||||
}
|
||||
else
|
||||
projectItem.mParentFolder.GetFullImportPath(path);
|
||||
|
||||
if (!path.IsWhiteSpace)
|
||||
{
|
||||
ProcessStartInfo psi = scope ProcessStartInfo();
|
||||
psi.SetFileName(gApp.mSettings.mEditorSettings.mDefaultConsole);
|
||||
psi.SetWorkingDirectory(path);
|
||||
psi.UseShellExecute = true;
|
||||
|
||||
var process = scope SpawnedProcess();
|
||||
process.Start(psi).IgnoreError();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (projectItem == null)
|
||||
|
|
|
@ -96,6 +96,7 @@ namespace IDE.ui
|
|||
category.mTextColor = Color.Mult(DarkTheme.COLOR_TEXT, cHeaderColor);
|
||||
AddPropertiesItem(category, "Font", "mFonts");
|
||||
AddPropertiesItem(category, "Font Size", "mFontSize");
|
||||
AddPropertiesItem(category, "Default Console", "mDefaultConsole");
|
||||
AddPropertiesItem(category, "Autocomplete", "mAutoCompleteShowKind");
|
||||
AddPropertiesItem(category, "Autocomplete Require Control", "mAutoCompleteRequireControl");
|
||||
AddPropertiesItem(category, "Autocomplete Require Tab", "mAutoCompleteRequireTab");
|
||||
|
|
|
@ -132,6 +132,7 @@ namespace IDE.ui
|
|||
menu.AddItem("Open").mOnMenuItemSelected.Add(new (menu) => { TryOpenWorkspace(); });
|
||||
menu.AddItem();
|
||||
menu.AddItem("Open Containing Folder").mOnMenuItemSelected.Add(new (menu) => { OpenContainingFolder(); });
|
||||
menu.AddItem("Open in Terminal").mOnMenuItemSelected.Add(new (menu) => { OpenInTerminal(); });
|
||||
menu.AddItem("Copy Path").mOnMenuItemSelected.Add(new (menu) => {
|
||||
gApp.SetClipboardData("text", mPath.CStr(), (int32)mPath.Length + 1, true);
|
||||
});
|
||||
|
@ -174,6 +175,23 @@ namespace IDE.ui
|
|||
process.Start(psi).IgnoreError();
|
||||
}
|
||||
|
||||
void OpenInTerminal()
|
||||
{
|
||||
if (!Directory.Exists(mPath))
|
||||
{
|
||||
ShowNotFoundDialog();
|
||||
return;
|
||||
}
|
||||
|
||||
ProcessStartInfo psi = scope ProcessStartInfo();
|
||||
psi.SetFileName(gApp.mSettings.mEditorSettings.mDefaultConsole);
|
||||
psi.UseShellExecute = true;
|
||||
psi.SetWorkingDirectory(mPath);
|
||||
|
||||
var process = scope SpawnedProcess();
|
||||
process.Start(psi).IgnoreError();
|
||||
}
|
||||
|
||||
void TryOpenWorkspace()
|
||||
{
|
||||
const String WORKSPACE_FILENAME = "BeefSpace.toml";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue