[improvement] better auto-complete / suggestions
Open
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 80
- Forks
- 47
- PR merge metrics
- No merged PRs in 30d
Description
- autocomplete symbols from all namespaces, while suggesting the nearest symbols fist.
- autocomplete method/function parameter type with classnames, builtin types, type aliases, type definitions, and other "classish" symbols from all namespaces, while suggesting the nearest symbols fist.
- autocomplete
extends |/require extends |with classes / abstract classes ( no final classes should be suggested ) from all namespaces, while suggesting the nearest symbols fist. - autocomplete
implements |/require implements |with interfaces from all namespaces, while suggesting the nearest symbols fist. - autocomplete
uses |with traitnames from all namespaces, while suggesting the nearest symbols fist. - autocomplete type definition ( e.g :
type foo = |) with builtin types, classish symbols, type definitions from all namespaces, while suggesting the builtin types first, followed by the nearest symbols. - autocomplete variables ( e.g
foo($|) with variables form the current scoop first, followed by variables from the parent scoop if applicable ( e.g : inside a block, that being anasyncblock or lambda body. while insideconcurrentblock, local scoop variables should not be suggested. ) - suggest only variables with same type as right expression when dealing with strict compression ( e.g :
$string === $|) - only suggest variables of type
boolwhen dealing with boolean operators ( e.g$a || $|) - only suggest variables of type
numwhen dealing with mathematical operators ( e.g$a + $|)
Some of the features request above work perfectly when working on the global namespace, but as soon as namespaces are involved, the DX is not as pleasant.
note : | in the given samples refers to the cursor position.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not name files, tests, or entry points. Start by locating the autocomplete implementation and its existing namespace-related tests; the work is complete when the listed namespace, inheritance, variable, and type-aware suggestions behave as specified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100