summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/error/error_macros.h10
-rw-r--r--core/object/script_language.cpp12
-rw-r--r--core/object/script_language.h1
3 files changed, 23 insertions, 0 deletions
diff --git a/core/error/error_macros.h b/core/error/error_macros.h
index 016c963e04..ab7dbcbd44 100644
--- a/core/error/error_macros.h
+++ b/core/error/error_macros.h
@@ -730,6 +730,16 @@ void _err_flush_stdout();
} else \
((void)0)
+/**
+ * Warns about `m_msg` only when verbose mode is enabled.
+ */
+#define WARN_VERBOSE(m_msg) \
+ { \
+ if (is_print_verbose_enabled()) { \
+ WARN_PRINT(m_msg); \
+ } \
+ }
+
// Print deprecated warning message macros.
/**
diff --git a/core/object/script_language.cpp b/core/object/script_language.cpp
index 0b2d5e41cf..3b9b1f9094 100644
--- a/core/object/script_language.cpp
+++ b/core/object/script_language.cpp
@@ -168,6 +168,18 @@ ScriptLanguage *ScriptServer::get_language(int p_idx) {
return _languages[p_idx];
}
+ScriptLanguage *ScriptServer::get_language_for_extension(const String &p_extension) {
+ MutexLock lock(languages_mutex);
+
+ for (int i = 0; i < _language_count; i++) {
+ if (_languages[i] && _languages[i]->get_extension() == p_extension) {
+ return _languages[i];
+ }
+ }
+
+ return nullptr;
+}
+
Error ScriptServer::register_language(ScriptLanguage *p_language) {
MutexLock lock(languages_mutex);
ERR_FAIL_NULL_V(p_language, ERR_INVALID_PARAMETER);
diff --git a/core/object/script_language.h b/core/object/script_language.h
index bb714d5bc3..294231a3e7 100644
--- a/core/object/script_language.h
+++ b/core/object/script_language.h
@@ -75,6 +75,7 @@ public:
static bool is_scripting_enabled();
_FORCE_INLINE_ static int get_language_count() { return _language_count; }
static ScriptLanguage *get_language(int p_idx);
+ static ScriptLanguage *get_language_for_extension(const String &p_extension);
static Error register_language(ScriptLanguage *p_language);
static Error unregister_language(const ScriptLanguage *p_language);