completions: Sort completion items

This commit is contained in:
James Westman 2025-01-05 14:16:29 -06:00
parent 860580e560
commit d0394136cf
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6
12 changed files with 135 additions and 22 deletions

View file

@ -20,12 +20,28 @@
import typing as T
from dataclasses import dataclass
from enum import Enum
from .ast_utils import AstNode
from .lsp_utils import Completion
from .tokenizer import Token, TokenType
class CompletionPriority(Enum):
ENUM_MEMBER = "00"
NAMED_OBJECT = "01"
OBJECT_MEMBER = "02"
CLASS = "03"
NAMESPACE = "04"
KEYWORD = "05"
# An available namespace that hasn't been imported yet
IMPORT_NAMESPACE = "99"
def get_sort_key(priority: CompletionPriority, name: str):
return f"{priority.value} {name}"
@dataclass
class CompletionContext:
client_supports_completion_choice: bool