### 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
auto_brace_completion_pairs.clear();
	Array keys = p_auto_brace_completion_pairs.keys();
	for (int i = 0; i < keys.size(); i++) {
		add_auto_brace_completion_pair(keys[i], p_auto_brace_completion_pairs[keys[i]]);
	}
}
Dictionary CodeEdit::get_auto_brace_completion_pairs() const {
	Dictionary brace_pairs;
	for (int i = 0; i < auto_brace_completion_pairs.size(); i++) {
		brace_pairs[auto_brace_completion_pairs[i].open_key] = auto_brace_completion_pairs[i].close_key;
	}
	return brace_pairs;
}
bool CodeEdit::has_auto_brace_completion_open_key(const String &p_open_key) const {
	for (int i = 0; i < auto_brace_completion_pairs.size(); i++) {
		if (auto_brace_completion_pairs[i].open_key == p_open_key) {
			return true;
		}
	}
	return false;
}
bool CodeEdit::has_auto_brace_completion_close_key(const String &p_close_key) const {
	for (int i = 0; i < auto_brace_completion_pairs.size(); i++) {
		if (auto_brace_completion_pairs[i].close_key == p_close_key) {
			return true;
		}
	}
	return false;
}
String CodeEdit::get_auto_brace_completion_close_key(const String &p_open_key) const {