godotengine / godotengine/godot-vscode-plugin

Make completion list sorting match the built-in godot order

Open
#1,041 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
2.1k
Forks
257
PR merge metrics
No merged PRs in 30d

Description

### Godot version

4.7

### VS Code version

1.125

### Godot Tools VS Code extension version

2.7.1

### System information

Windows 11

### Problem statement

The completion list is my one gripe when using the vscode extension over the built in godot editor.
VScode's default alphabetical sorting means the same functions and attributes which are common to most classes will be first on the list, so the auto complete loses some of it's efficacy.

### The current extension ordering vs. godot's version:


Image
Image

### Proposed solution

I wrote this issue in this repository although I am not 100% certain if it is a client-side or server-side LSP issue, so I would appreciate any corrections.

From what I could gather, GDCompletionProvider is currently unused in the code, and the default provider behavior is being used instead, but I won't pretend to know enough about this codebase or extensions to know what the proper solution would be.

Here is how it would look if the completion items were shown in the order they are recieved from the LSP:
Image
(I did this with a hacky fix incrementing the sortText of each item directly in the languageserver module, just as a hotfix for my own use)

Contributor guide

Open the contributing guide

Research direction

Start by reading the referenced GDCompletionProvider and the languageserver module to trace where completion items receive their ordering. Compare the existing LSP response order with VS Code's displayed order, then verify that the completion list follows Godot's ordering without losing completion functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
godot, typescript, vscode
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.