slackhq / slackhq/vscode-hack

[improvement] better auto-complete / suggestions

Open
#60 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
80
Forks
47
PR merge metrics
No merged PRs in 30d

Description

  1. autocomplete symbols from all namespaces, while suggesting the nearest symbols fist.
  2. 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.
  3. autocomplete extends | / require extends | with classes / abstract classes ( no final classes should be suggested ) from all namespaces, while suggesting the nearest symbols fist.
  4. autocomplete implements | / require implements | with interfaces from all namespaces, while suggesting the nearest symbols fist.
  5. autocomplete uses | with traitnames from all namespaces, while suggesting the nearest symbols fist.
  6. 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.
  7. 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 an async block or lambda body. while inside concurrent block, local scoop variables should not be suggested. )
  8. suggest only variables with same type as right expression when dealing with strict compression ( e.g : $string === $| )
  9. only suggest variables of type bool when dealing with boolean operators ( e.g $a || $| )
  10. only suggest variables of type num when 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.