@@ -5154,23 +5154,55 @@ ::Error GDScriptLanguage::refactor_rename_symbol_code(const String &p_code, cons
51545154 REFACTOR_RENAME_RETURN (ERR_CANT_RESOLVE);
51555155 }
51565156
5157- if (context.identifier != nullptr ) {
5158- RefactorRenameSymbolDefinintionType enum_type = context.identifier_is_enum_value
5159- ? RefactorRenameSymbolDefinintionType::REFACTOR_RENAME_SYMBOL_DEFINITION_TYPE_ENUM_VALUE
5160- : RefactorRenameSymbolDefinintionType::REFACTOR_RENAME_SYMBOL_DEFINITION_TYPE_ENUM;
5161- Error enum_err = _refactor_rename_symbol_match_from_class (context, symbol, p_path, base_type.script_path , p_unsaved_scripts_source_code, r_result, enum_type, context.node );
5162- REFACTOR_RENAME_RETURN (enum_err);
5157+ if (context.identifier == nullptr ) {
5158+ if (context.node ->get_start () == context.token .get_start ()) {
5159+ // The user tried to refactor the enum keyword.
5160+ REFACTOR_RENAME_OUTSIDE_GDSCRIPT (REFACTOR_RENAME_SYMBOL_RESULT_KEYWORD);
5161+ REFACTOR_RENAME_RETURN (OK);
5162+ }
5163+
5164+ // The user tried to refactor the enum braces.
5165+ REFACTOR_RENAME_OUTSIDE_GDSCRIPT (REFACTOR_RENAME_SYMBOL_RESULT_SYMBOL);
5166+ REFACTOR_RENAME_RETURN (OK);
51635167 }
51645168
5165- if (context.node ->start_line == context.token .start_line && context.node ->start_column == context.token .start_column ) {
5166- // The user tried to refactor the enum keyword.
5167- REFACTOR_RENAME_OUTSIDE_GDSCRIPT (REFACTOR_RENAME_SYMBOL_RESULT_KEYWORD);
5169+ GDScriptParser::EnumNode *enum_node = static_cast <GDScriptParser::EnumNode *>(context.node );
5170+ RefactorRenameSymbolDefinintionType enum_type = context.identifier_is_enum_value
5171+ ? RefactorRenameSymbolDefinintionType::REFACTOR_RENAME_SYMBOL_DEFINITION_TYPE_ENUM_VALUE
5172+ : RefactorRenameSymbolDefinintionType::REFACTOR_RENAME_SYMBOL_DEFINITION_TYPE_ENUM;
5173+ Error enum_err = _refactor_rename_symbol_match_from_class (context, symbol, p_path, base_type.script_path , p_unsaved_scripts_source_code, r_result, enum_type, enum_node);
5174+ REFACTOR_RENAME_RETURN (enum_err);
5175+ } break ;
5176+ case GDScriptParser::REFACTOR_RENAME_TYPE_SIGNAL: {
5177+ GDScriptParser::DataType base_type;
5178+ if (context.current_class ) {
5179+ if (context.type != GDScriptParser::REFACTOR_RENAME_TYPE_SUPER_METHOD) {
5180+ base_type = context.current_class ->get_datatype ();
5181+ } else {
5182+ base_type = context.current_class ->base_type ;
5183+ }
5184+ } else {
5185+ REFACTOR_RENAME_RETURN (ERR_CANT_RESOLVE);
5186+ }
5187+
5188+ if (context.identifier == nullptr ) {
5189+ if (context.node ->get_start () == context.token .get_start ()) {
5190+ // The user tried to refactor the signal keyword.
5191+ REFACTOR_RENAME_OUTSIDE_GDSCRIPT (REFACTOR_RENAME_SYMBOL_RESULT_KEYWORD);
5192+ REFACTOR_RENAME_RETURN (OK);
5193+ }
5194+ // The user tried to refactor the symbols.
5195+ REFACTOR_RENAME_OUTSIDE_GDSCRIPT (REFACTOR_RENAME_SYMBOL_RESULT_SYMBOL);
51685196 REFACTOR_RENAME_RETURN (OK);
51695197 }
51705198
5171- // The user tried to refactor the enum braces.
5172- REFACTOR_RENAME_OUTSIDE_GDSCRIPT (REFACTOR_RENAME_SYMBOL_RESULT_SYMBOL);
5173- REFACTOR_RENAME_RETURN (OK);
5199+ GDScriptParser::SignalNode *signal_node = static_cast <GDScriptParser::SignalNode *>(context.node );
5200+ if (context.identifier != signal_node->identifier ) {
5201+ REFACTOR_RENAME_RETURN (ERR_CANT_RESOLVE);
5202+ }
5203+
5204+ Error signal_err = _refactor_rename_symbol_match_from_class (context, symbol, p_path, base_type.script_path , p_unsaved_scripts_source_code, r_result, RefactorRenameSymbolDefinintionType::REFACTOR_RENAME_SYMBOL_DEFINITION_TYPE_SIGNAL, signal_node);
5205+ REFACTOR_RENAME_RETURN (signal_err);
51745206 } break ;
51755207 default : {
51765208 REFACTOR_RENAME_RETURN (ERR_CANT_RESOLVE);
0 commit comments