summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llfloaterluadebug.cpp4
-rw-r--r--indra/newview/llluamanager.cpp9
-rw-r--r--indra/newview/skins/default/xui/en/floater_lua_debug.xml11
4 files changed, 30 insertions, 5 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index d58ff17aaa..b11ba8955a 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4122,6 +4122,17 @@
<key>Value</key>
<array />
</map>
+ <key>LuaDebugShowSource</key>
+ <map>
+ <key>Comment</key>
+ <string>Show source info in Lua Debug Console output</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>GridStatusRSS</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llfloaterluadebug.cpp b/indra/newview/llfloaterluadebug.cpp
index 06877df816..f7f3b8d588 100644
--- a/indra/newview/llfloaterluadebug.cpp
+++ b/indra/newview/llfloaterluadebug.cpp
@@ -58,7 +58,9 @@ bool LLFloaterLUADebug::postBuild()
.listen("LLFloaterLUADebug",
[mResultOutput=mResultOutput](const LLSD& data)
{
- mResultOutput->pasteTextWithLinebreaks(data.asString());
+ LLCachedControl<bool> show_source_info(gSavedSettings, "LuaDebugShowSource", false);
+ std::string source_info = show_source_info ? data["source_info"].asString() : "";
+ mResultOutput->pasteTextWithLinebreaks(data["level"].asString() + source_info + data["msg"].asString());
mResultOutput->addLineBreakChar(true);
return false;
});
diff --git a/indra/newview/llluamanager.cpp b/indra/newview/llluamanager.cpp
index 7fe5c1ece0..4a65276384 100644
--- a/indra/newview/llluamanager.cpp
+++ b/indra/newview/llluamanager.cpp
@@ -72,9 +72,10 @@ std::string lua_print_msg(lua_State* L, std::string_view level)
lluau_checkstack(L, 2);
luaL_where(L, 1);
// start with the 'where' info at the top of the stack
- std::ostringstream out;
- out << lua_tostring(L, -1);
+ std::string source_info{ lua_tostring(L, -1) };
lua_pop(L, 1);
+
+ std::ostringstream out;
const char* sep = ""; // 'where' info ends with ": "
// now iterate over arbitrary args, calling Lua tostring() on each and
// concatenating with separators
@@ -101,10 +102,10 @@ std::string lua_print_msg(lua_State* L, std::string_view level)
// capture message string
std::string msg{ out.str() };
// put message out there for any interested party (*koff* LLFloaterLUADebug *koff*)
- LLEventPumps::instance().obtain("lua output").post(stringize(level, ": ", msg));
+ LLEventPumps::instance().obtain("lua output").post(llsd::map("msg", msg, "level", stringize(level, ": "), "source_info", source_info));
llcoro::suspend();
- return msg;
+ return source_info + msg;
}
lua_function(print_debug, "print_debug(args...): DEBUG level logging")
diff --git a/indra/newview/skins/default/xui/en/floater_lua_debug.xml b/indra/newview/skins/default/xui/en/floater_lua_debug.xml
index 15027f1647..5efe1c958a 100644
--- a/indra/newview/skins/default/xui/en/floater_lua_debug.xml
+++ b/indra/newview/skins/default/xui/en/floater_lua_debug.xml
@@ -25,6 +25,17 @@
width="100">
LUA string:
</text>
+ <check_box
+ control_name="LuaDebugShowSource"
+ follows="right|top"
+ height="15"
+ label="Show source info"
+ layout="topleft"
+ top="10"
+ right ="-70"
+ tool_tip="Show source info in Lua Debug Console output"
+ name="show_script_name"
+ width="70"/>
<line_editor
border_style="line"
border_thickness="1"