### Godot version

c0d8d91

### System information

Windows 11

### Issue description

There's weird bug going on with the latest master branch. The auto completion in script editor is sorted in a wacky ways, putting sort of constants ahead of anything because it's ahead alphabetically
![image](https://github.com/godotengine/godot/assets/13846022/0f3e389e-f5d1-46b2-9f78-c215f3ad5abd)

Now compare it to my build about two weeks ago
![image](https://github.com/godotengine/godot/assets/13846022/37013cad-2e8f-4aa3-9270-0e8dfd9502ea)

Both are using the same content of 'editor_data' settings folder. And loading up the same project.

### Steps to reproduce

- Open a new blank project
- Make a new script
- Triggers any auto completion in Script Editor

### Minimal reproduction project

N/A
ERR_FAIL_INDEX_V(p_delimiter_idx, delimiters.size(), "");
	return delimiters[p_delimiter_idx].end_key;
}
Point2 CodeEdit::get_delimiter_start_position(int p_line, int p_column) const {
	if (delimiters.size() == 0) {
		return Point2(-1, -1);
	}
	ERR_FAIL_INDEX_V(p_line, get_line_count(), Point2(-1, -1));
	ERR_FAIL_COND_V(p_column - 1 > get_line(p_line).size(), Point2(-1, -1));
	Point2 start_position;
	start_position.y = -1;
	start_position.x = -1;
	bool in_region = ((p_line <= 0 || delimiter_cache[p_line - 1].size() < 1) ? -1 : delimiter_cache[p_line - 1].back()->get()) != -1;
	
	for (const KeyValue<int, int> &E : delimiter_cache[p_line]) {
		if (E.key > p_column) {
			break;
		}
		in_region = E.value != -1;
		start_position.x = in_region ? E.key : -1;
	}
	
	int line_length = get_line(p_line).length();
	if (start_position.x != -1 && line_length > 0 && start_position.x != line_length + 1) {
		start_position.y = p_line;
		return start_position;
	}
	
	if (!in_region) {
		return start_position;