### 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
}
				code_completion_scroll_rect.position = code_completion_rect.position + Vector2(code_completion_rect.size.width, 0);
				code_completion_scroll_rect.size = Vector2(scroll_width, code_completion_rect.size.height);
				code_completion_line_ofs = CLAMP((code_completion_force_item_center < 0 ? code_completion_current_selected : code_completion_force_item_center) - lines / 2, 0, code_completion_options_count - lines);
				RenderingServer::get_singleton()->canvas_item_add_rect(ci, Rect2(Point2(code_completion_rect.position.x, code_completion_rect.position.y + (code_completion_current_selected - code_completion_line_ofs) * row_height), Size2(code_completion_rect.size.width, row_height)), theme_cache.code_completion_selected_color);
				for (int i = 0; i < lines; i++) {
					int l = code_completion_line_ofs + i;
					ERR_CONTINUE(l < 0 || l >= code_completion_options_count);
					Ref<TextLine> tl;
					tl.instantiate();
					tl->add_string(code_completion_options[l].display, theme_cache.font, theme_cache.font_size);
					int yofs = (row_height - tl->get_size().y) / 2;
					Point2 title_pos(code_completion_rect.position.x, code_completion_rect.position.y + i * row_height + yofs);
					
					const Ref<Texture2D> &icon = code_completion_options[l].icon;
					Rect2 icon_area(code_completion_rect.position.x, code_completion_rect.position.y + i * row_height, icon_area_size.width, icon_area_size.height);
					if (icon.is_valid()) {
						Size2 icon_size = icon_area.size * 0.7;
						icon->draw_rect(ci, Rect2(icon_area.position + (icon_area.size - icon_size) / 2, icon_size));
					}
					title_pos.x = icon_area.position.x + icon_area.size.width + theme_cache.code_completion_icon_separation;
					tl->set_width(code_completion_rect.size.width - (icon_area_size.x + theme_cache.code_completion_icon_separation));
					if (rtl) {
						if (code_completion_options[l].default_value.get_type() == Variant::COLOR) {
							draw_rect(Rect2(Point2(code_completion_rect.position.x, icon_area.position.y), icon_area_size), (Color)code_completion_options[l].default_value);
						}
						tl->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_RIGHT);
					} else {
						if (code_completion_options[l].default_value.get_type() == Variant::COLOR) {
							draw_rect(Rect2(Point2(code_completion_rect.position.x + code_completion_rect.size.width - icon_area_size.x, icon_area.position.y), icon_area_size), (Color)code_completion_options[l].default_value);