mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
AssetBrowser: Bad way to open scripts in Visual Studio
This commit is contained in:
@@ -206,17 +206,7 @@ namespace GlitchyEditor.EditWindows
|
|||||||
|
|
||||||
if (ImGui.MenuItem("Open C# Project..."))
|
if (ImGui.MenuItem("Open C# Project..."))
|
||||||
{
|
{
|
||||||
String solutionPath = scope .();
|
VisualStudioUtility.OpenScriptProject();
|
||||||
Editor.Instance.CurrentProject.PathInProject(solutionPath, scope $"{Editor.Instance.CurrentProject.Name}.sln");
|
|
||||||
|
|
||||||
ProcessStartInfo psi = scope .();
|
|
||||||
psi.SetFileName("devenv");
|
|
||||||
psi.SetArguments(solutionPath);
|
|
||||||
|
|
||||||
scope SpawnedProcess().Start(psi);
|
|
||||||
|
|
||||||
/*if (Path.OpenFolder(solutionPath) case .Err)
|
|
||||||
Log.EngineLogger.Error("Failed to open file.");*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -814,7 +804,13 @@ namespace GlitchyEditor.EditWindows
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Path.OpenFolder(entry->Path) case .Err)
|
// Special treatment for scripts, open them in Visual Studio.
|
||||||
|
if (entry->Path.EndsWith(".cs"))
|
||||||
|
{
|
||||||
|
// Obviously windows only
|
||||||
|
VisualStudioUtility.OpenScript(entry->Path);
|
||||||
|
}
|
||||||
|
else if (Path.OpenFolder(entry->Path) case .Err)
|
||||||
Log.EngineLogger.Error("Failed to open file.");
|
Log.EngineLogger.Error("Failed to open file.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using GlitchyEngine;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
namespace GlitchyEditor;
|
||||||
|
|
||||||
|
class VisualStudioUtility
|
||||||
|
{
|
||||||
|
public static bool IsRunning()
|
||||||
|
{
|
||||||
|
List<Process> processes = scope .();
|
||||||
|
|
||||||
|
if (Process.GetProcesses(processes) case .Err)
|
||||||
|
{
|
||||||
|
Log.EngineLogger.Error("Failed to get running processes.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Process process in processes)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ClearAndDeleteItems!(processes);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OpenScript(StringView fileName)
|
||||||
|
{
|
||||||
|
if (IsRunning())
|
||||||
|
{
|
||||||
|
ProcessStartInfo startInfo = scope .();
|
||||||
|
startInfo.SetFileName(Application.Instance.Settings.ScriptSettings.VisualStudioPath);
|
||||||
|
startInfo.SetArguments(scope $"/Edit {fileName}");
|
||||||
|
|
||||||
|
scope SpawnedProcess().Start(startInfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ProcessStartInfo startInfo = scope .();
|
||||||
|
startInfo.SetFileName(Application.Instance.Settings.ScriptSettings.VisualStudioPath);
|
||||||
|
startInfo.SetArguments(scope $"/Edit {fileName}");
|
||||||
|
|
||||||
|
scope SpawnedProcess().Start(startInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OpenScript(StringView fileName, int lineNumber)
|
||||||
|
{
|
||||||
|
OpenScript(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void OpenScriptProject()
|
||||||
|
{
|
||||||
|
String solutionPath = scope .();
|
||||||
|
Editor.Instance.CurrentProject.PathInProject(solutionPath, scope $"{Editor.Instance.CurrentProject.Name}.sln");
|
||||||
|
|
||||||
|
ProcessStartInfo psi = scope .();
|
||||||
|
psi.SetFileName("devenv");
|
||||||
|
psi.SetArguments(solutionPath);
|
||||||
|
|
||||||
|
scope SpawnedProcess().Start(psi);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user