From 2f41863150f9564e83f9c163cdb3e0818e56614d Mon Sep 17 00:00:00 2001 From: thegrb93 Date: Wed, 11 Mar 2026 10:13:28 -0400 Subject: [PATCH 1/2] Fix tabs not setting code when monaco finishes loading --- lua/starfall/editor/tabhandlers/tab_monaco.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/starfall/editor/tabhandlers/tab_monaco.lua b/lua/starfall/editor/tabhandlers/tab_monaco.lua index 812f510e8..d676cad96 100644 --- a/lua/starfall/editor/tabhandlers/tab_monaco.lua +++ b/lua/starfall/editor/tabhandlers/tab_monaco.lua @@ -109,7 +109,7 @@ function TabHandler:AddSession(tab) self.html:RunJavascript([[ { let uri="]]..tab.uri..[["; - let m=monaco.editor.createModel("", "lua", uri); + let m=monaco.editor.createModel("]]..string.JavascriptSafe(tab.code)..[[", "lua", uri); m.pushEOL(monaco.editor.EndOfLineSequence.LF); m.onDidChangeContent((event) => sf.updateCode(uri, m.getValue())); } @@ -380,8 +380,8 @@ local PANEL = {} function PANEL:Init() self:SetBackgroundColor(Color(39, 40, 34)) self:OnThemeChange(SF.Editor.Themes.CurrentTheme) - TabHandler:AddSession(self) self.code = "" + TabHandler:AddSession(self) end function PANEL:GetCode() From e9c13b41bb88e627d32669c87885adf61a9d1367 Mon Sep 17 00:00:00 2001 From: thegrb93 Date: Thu, 12 Mar 2026 21:26:56 -0400 Subject: [PATCH 2/2] Clean this up too --- .../editor/tabhandlers/tab_monaco.lua | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lua/starfall/editor/tabhandlers/tab_monaco.lua b/lua/starfall/editor/tabhandlers/tab_monaco.lua index d676cad96..b713fa253 100644 --- a/lua/starfall/editor/tabhandlers/tab_monaco.lua +++ b/lua/starfall/editor/tabhandlers/tab_monaco.lua @@ -67,10 +67,17 @@ MonacoSetting.settings = { MonacoSetting("wordBasedSuggestions", "sf_editor_monaco_wordsuggestion", "currentDocument"), MonacoSetting("wordWrap", "sf_editor_monaco_wordwrap", "off"), } -function MonacoSetting:concat() - local s = {} - for k, v in ipairs(self.settings) do s[k]=v.js end - return table.concat(s, ",\n") +function MonacoSetting:applyAll() + local settings = {} + for k, v in ipairs(self.settings) do settings[k]=v.js end + + TabHandler.html:RunJavascript([[ + sfeditor.updateOptions({ + autoDetectHighContrast: false, + detectIndentation: false, + insertSpaces: false, + ]]..table.concat(settings, ",\n")..[[ + });]]) end local ImageBackgroundSetting = { @@ -212,13 +219,7 @@ function TabHandler:FinishedLoading() TabHandler.ImageBackground:apply() end - self.html:RunJavascript([[ - sfeditor.updateOptions({ - autoDetectHighContrast: false, - detectIndentation: false, - insertSpaces: false, - ]]..MonacoSetting:concat()..[[ - });]]) + MonacoSetting:applyAll() for i = 1, SF.Editor.editor:GetNumTabs() do local tab = SF.Editor.editor:GetTabContent(i)