|
@@ -623,11 +623,11 @@ static String _make_arguments_hint(const GDScriptParser::FunctionNode *p_functio
|
|
|
}
|
|
|
|
|
|
static void _get_directory_contents(EditorFileSystemDirectory *p_dir, Map<String, ScriptCodeCompletionOption> &r_list) {
|
|
|
- const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", false) ? "'" : "\"";
|
|
|
+ const String quote_style = EDITOR_GET("text_editor/completion/use_single_quotes") ? "'" : "\"";
|
|
|
|
|
|
for (int i = 0; i < p_dir->get_file_count(); i++) {
|
|
|
ScriptCodeCompletionOption option(p_dir->get_file_path(i), ScriptCodeCompletionOption::KIND_FILE_PATH);
|
|
|
- option.insert_text = quote_style + option.display + quote_style;
|
|
|
+ option.insert_text = option.display.quote(quote_style);
|
|
|
r_list.insert(option.display, option);
|
|
|
}
|
|
|
|
|
@@ -641,20 +641,20 @@ static void _find_annotation_arguments(const GDScriptParser::AnnotationNode *p_a
|
|
|
if (p_argument == 3 || p_argument == 4) {
|
|
|
// Slider hint.
|
|
|
ScriptCodeCompletionOption slider1("or_greater", ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
|
|
|
- slider1.insert_text = p_quote_style + slider1.display + p_quote_style;
|
|
|
+ slider1.insert_text = slider1.display.quote(p_quote_style);
|
|
|
r_result.insert(slider1.display, slider1);
|
|
|
ScriptCodeCompletionOption slider2("or_lesser", ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
|
|
|
- slider2.insert_text = p_quote_style + slider2.display + p_quote_style;
|
|
|
+ slider2.insert_text = slider2.display.quote(p_quote_style);
|
|
|
r_result.insert(slider2.display, slider2);
|
|
|
}
|
|
|
} else if (p_annotation->name == "@export_exp_easing") {
|
|
|
if (p_argument == 0 || p_argument == 1) {
|
|
|
// Easing hint.
|
|
|
ScriptCodeCompletionOption hint1("attenuation", ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
|
|
|
- hint1.insert_text = p_quote_style + hint1.display + p_quote_style;
|
|
|
+ hint1.insert_text = hint1.display.quote(p_quote_style);
|
|
|
r_result.insert(hint1.display, hint1);
|
|
|
ScriptCodeCompletionOption hint2("inout", ScriptCodeCompletionOption::KIND_PLAIN_TEXT);
|
|
|
- hint2.insert_text = p_quote_style + hint2.display + p_quote_style;
|
|
|
+ hint2.insert_text = hint2.display.quote(p_quote_style);
|
|
|
r_result.insert(hint2.display, hint2);
|
|
|
}
|
|
|
} else if (p_annotation->name == "@export_node_path") {
|
|
@@ -2192,7 +2192,7 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c
|
|
|
Variant base = p_base.value;
|
|
|
GDScriptParser::DataType base_type = p_base.type;
|
|
|
|
|
|
- const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", false) ? "'" : "\"";
|
|
|
+ const String quote_style = EDITOR_GET("text_editor/completion/use_single_quotes") ? "'" : "\"";
|
|
|
|
|
|
while (base_type.is_set() && !base_type.is_variant()) {
|
|
|
switch (base_type.kind) {
|
|
@@ -2254,7 +2254,7 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c
|
|
|
}
|
|
|
String name = s.get_slice("/", 1);
|
|
|
ScriptCodeCompletionOption option("/root/" + name, ScriptCodeCompletionOption::KIND_NODE_PATH);
|
|
|
- option.insert_text = quote_style + option.display + quote_style;
|
|
|
+ option.insert_text = option.display.quote(quote_style);
|
|
|
r_result.insert(option.display, option);
|
|
|
}
|
|
|
}
|
|
@@ -2270,7 +2270,7 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c
|
|
|
}
|
|
|
String name = s.get_slice("/", 1);
|
|
|
ScriptCodeCompletionOption option(name, ScriptCodeCompletionOption::KIND_CONSTANT);
|
|
|
- option.insert_text = quote_style + option.display + quote_style;
|
|
|
+ option.insert_text = option.display.quote(quote_style);
|
|
|
r_result.insert(option.display, option);
|
|
|
}
|
|
|
}
|
|
@@ -2305,8 +2305,6 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c
|
|
|
}
|
|
|
|
|
|
static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, const GDScriptParser::Node *p_call, int p_argidx, Map<String, ScriptCodeCompletionOption> &r_result, bool &r_forced, String &r_arghint) {
|
|
|
- const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", false) ? "'" : "\"";
|
|
|
-
|
|
|
if (p_call->type == GDScriptParser::Node::PRELOAD) {
|
|
|
if (p_argidx == 0 && bool(EditorSettings::get_singleton()->get("text_editor/completion/complete_file_paths"))) {
|
|
|
_get_directory_contents(EditorFileSystem::get_singleton()->get_filesystem(), r_result);
|
|
@@ -2382,7 +2380,7 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c
|
|
|
}
|
|
|
|
|
|
::Error GDScriptLanguage::complete_code(const String &p_code, const String &p_path, Object *p_owner, List<ScriptCodeCompletionOption> *r_options, bool &r_forced, String &r_call_hint) {
|
|
|
- const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", false) ? "'" : "\"";
|
|
|
+ const String quote_style = EDITOR_GET("text_editor/completion/use_single_quotes") ? "'" : "\"";
|
|
|
|
|
|
GDScriptParser parser;
|
|
|
GDScriptAnalyzer analyzer(&parser);
|
|
@@ -2671,8 +2669,8 @@ static void _find_call_arguments(GDScriptParser::CompletionContext &p_context, c
|
|
|
Map<StringName, ProjectSettings::AutoloadInfo> autoloads = ProjectSettings::get_singleton()->get_autoload_list();
|
|
|
|
|
|
for (Map<StringName, ProjectSettings::AutoloadInfo>::Element *E = autoloads.front(); E; E = E->next()) {
|
|
|
- String name = E->key();
|
|
|
- ScriptCodeCompletionOption option(quote_style + "/root/" + name + quote_style, ScriptCodeCompletionOption::KIND_NODE_PATH);
|
|
|
+ String path = "/root/" + E->key();
|
|
|
+ ScriptCodeCompletionOption option(path.quote(quote_style), ScriptCodeCompletionOption::KIND_NODE_PATH);
|
|
|
options.insert(option.display, option);
|
|
|
}
|
|
|
}
|