microsoft / microsoft/TypeScript
TS Language Server: JSX Attribute types autocompletion
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
Search Terms
-
autocomplete
-
autocomplete proptypes
-
autocomplete jsx attribute types
-
proptypes
-
jsx intellisense
Suggestion
The TS Language Server should have proper insert text mechanisms to handle react props.
There are maybe 4 Scenarios in which we can type PropTypes in React/JSX
Use Cases
This would be used to make editing experiences much quicker, especially in react/JSX markup. Webstorm has this feature by default. I would like this feature added to VSCode so I can continue to use a snappier editor, while having just as important intellisense features in it. That and almost 100% of my coworkers also use VSCode, so I want to use the same tools they are.
Shortcomings with current Approach:
The current way would be to have auto complete suggest prop types as you type them, or with the ctrl + space key shortcut. You would have to do this for every required prop type, which is a significant slow down. If every required prop type is auto inserted I never have to worry about it (and won't have to worry about required props, even during compile time!)
Examples
-
const Component = (props: PropDefinition) => <JSX /> -
const Component: React.FC<PropDefinition> = (props) => <JSX /> -
class MyComponent extends React.Component<PropDefinition> -
MyComponent.propTypes = PropTypesObject
even though the fourth case would only ever occur in Vanilla JS files, I would expect the following behavior to be the same.
I would like the expected behavior to do the following
-
types:
<MyCompo... -
Auto Completes with a suggestion from the completion list
-
Completion Inserts:
<MyComponent requiredProp1={<cursor placed here>} requiredProp2={}while omitting optional props.

Checklist
My suggestion meets these guidelines:
- [ X ] This wouldn't be a breaking change in existing TypeScript/JavaScript code
- [ X ] This wouldn't change the runtime behavior of existing JavaScript code
- [ X ] This could be implemented without emitting different JS based on the types of the expressions
- [ X ] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- [ X ] This feature would agree with the rest of TypeScript's Design Goals.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
L’issue non indica alcun file sorgente, test o punto di ingresso specifico. Riproduci i quattro casi di prop React/JSX, quindi traccia il completamento degli attributi JSX nel server del linguaggio TypeScript e confronta il comportamento attuale con il testo di inserimento richiesto. Il lavoro è completato quando le prop obbligatorie vengono inserite con il posizionamento del cursore, mentre le prop opzionali vengono omesse nei casi indicati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, react, typescript
- Ambito
- developer-experience, tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 30/100