### Godot version

4.0.2

### System information

Windows 11

### Issue description

Double clicking on `$MyNode` in the script editor will select the whole name including the "$".

But double clicking on `%MyNode` (unique name) will select the name but will not include the "%".

Dragging a node from the scene tree into the script editor brings up the property/method hint list, even though a "." has not been typed. Pressing enter appends "new()" even though this makes no sense as there is no period so it is just appending it directly to the node name: `$MyNodenew()`


### Steps to reproduce

Type `%MyNode` in a script and double click on it.

Type `@onready var x =` in a script, drag a node from the scene tree, then press enter.


### Minimal reproduction project

N/A
int idx = _get_auto_brace_pair_open_at_pos(cl, cc);
			if (idx != -1) {
				prev_column = cc - auto_brace_completion_pairs[idx].open_key.length();
				if (_get_auto_brace_pair_close_at_pos(cl, cc) == idx) {
					remove_text(prev_line, prev_column, cl, cc + auto_brace_completion_pairs[idx].close_key.length());
				} else {
					remove_text(prev_line, prev_column, cl, cc);
				}
				set_caret_line(prev_line, false, true, 0, i);
				set_caret_column(prev_column, i == 0, i);
				adjust_carets_after_edit(i, prev_line, prev_column, cl, cc + auto_brace_completion_pairs[idx].close_key.length());
				continue;
			}
		}
		
		if (indent_using_spaces && cc != 0) {
			if (get_first_non_whitespace_column(cl) >= cc) {
				prev_column = cc - _calculate_spaces_till_next_left_indent(cc);
				prev_line = cl;
			}
		}
		remove_text(prev_line, prev_column, cl, cc);
		set_caret_line(prev_line, false, true, 0, i);
		set_caret_column(prev_column, i == 0, i);
		adjust_carets_after_edit(i, prev_line, prev_column, cl, cc);
	}
	merge_overlapping_carets();
	end_complex_operation();
}
void CodeEdit::set_indent_size(const int p_size) {