A Thrift language server, formatter, and linter.
lsp linter helix vim vscode thrift

completion: scope qualified type completion to the include master

"songs.|" in a type position completed as a qualified VALUE: the trailing dot (which the lexer drops) forced CtxFieldValue, so the list showed enum values and consts instead of the include's types. The type provider already scoped dotted prefixes to the include, but never got the slot. ResolveContext now recognizes the dropped dot (identifier token ending one byte before the cursor) and routes it by the token before the identifier: field modifiers, id colons, const/typedef keywords, and map/list/set openers are type slots — the dotted prefix stays so the provider suggests the include's types; everything else stays a qualified value. Dotted identifiers mid-typing ("songs.A") classify the same way. The type completion now covers field types, const types, and service return types, and keeps the dot: labels keep the include qualifier, the insert is the bare type, and the edit starts at the cursor.


Author karitham Date Commit 81e609b1 Parent 003381c8 Change ID wnookvpm