From 125872a157a9f76c4097db3f088a923246313d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Sun, 20 Sep 2026 16:46:27 +0200 Subject: [PATCH] Show popup when opening script and no IDE is configured --- GlitchyEditor/src/EditWindows/LogWindow.bf | 8 +++--- GlitchyEditor/src/Editor.bf | 32 ++++++++++++++++++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/GlitchyEditor/src/EditWindows/LogWindow.bf b/GlitchyEditor/src/EditWindows/LogWindow.bf index 4c9f4a8..fd8c44c 100644 --- a/GlitchyEditor/src/EditWindows/LogWindow.bf +++ b/GlitchyEditor/src/EditWindows/LogWindow.bf @@ -9,6 +9,7 @@ using GlitchyEngine.Renderer; using GlitchyEngine; using GlitchyEditor.CodeEditors; using System.IO; +using GlitchyEditor.Settings; namespace GlitchyEditor.EditWindows; @@ -316,8 +317,7 @@ class LogWindow : EditorWindow float width = ImGui.CalcTextSize(lineBuffer.CStr()).x; if (ImGui.Selectable(lineBuffer, false, .None, .(width, 0))) { - // TODO: Columns? - Editor.Instance.IdeAdapter.OpenScript(frameInfo.FileName, frameInfo.Line, frameInfo.Column); + Editor.Instance.OpenScript(frameInfo.FileName, frameInfo.Line, frameInfo.Column); } } @@ -336,13 +336,13 @@ class LogWindow : EditorWindow { if (message.Source.MessageOrigin != null) { - Editor.Instance.IdeAdapter.OpenScript(message.Source.MessageOrigin.FileName, message.Source.MessageOrigin.LineNumber); + Editor.Instance.OpenScript(message.Source.MessageOrigin.FileName, message.Source.MessageOrigin.LineNumber); } else if (message.Source.Exception != null) { // TODO: Column? let firstFrame = message.Source.Exception.StackTrace.Frames[0]; - Editor.Instance.IdeAdapter.OpenScript(firstFrame.FileName, firstFrame.Line); + Editor.Instance.OpenScript(firstFrame.FileName, firstFrame.Line); //message.Source.Exception.StackTrace } } diff --git a/GlitchyEditor/src/Editor.bf b/GlitchyEditor/src/Editor.bf index ddcadbc..3226ac2 100644 --- a/GlitchyEditor/src/Editor.bf +++ b/GlitchyEditor/src/Editor.bf @@ -177,5 +177,37 @@ namespace GlitchyEditor { _settingsWindow.Open = true; } + + /// Wrapper for IdeAdapter.OpenScript that check whether or not an IDE Adapter is configured. + /// If not, a popup will be show. + public void OpenScript(StringView fileName, int lineNumber = 0, int columnNumber = 0) + { + if (IdeAdapter == null) + { + PopupService.Instance.OpenPopup("No IDE configured.", new (close) => { + close = false; + + ImGui.TextUnformatted("In order to open a source file you need to configure an IDE to use."); + + if (ImGui.Button("Go to settings...")) + { + ShowSettings(); + SettingsWindow.HighlightSetting("Tools", "ide"); + close = true; + } + + ImGui.SameLine(); + + if (ImGui.Button("Cancel")) + { + close = true; + } + }); + } + else + { + IdeAdapter.OpenScript(fileName, lineNumber, columnNumber); + } + } } }