microsoft / microsoft/TypeScript
JSDoc property name is not parsed as expected when non-alphanumeric characters are present and intellisense not showing properties
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
TS Template added by @mjbvz
TypeScript Version: 3.8.0-dev.20200104
Search terms:
- jsdoc / jsdocs
- completionInfo
- VSCode Version: 1.41.1 (user setup)
- OS Version: Windows_NT x64 10.0.17134
Origin of this discovery:
I was trying to document my types which translate to XML classes. The syntax for which includes the "@class" as a property name of my object. This is not possible given the current syntax parsing in VSCode.
Steps to Reproduce:
- Place this code in the editor with the language as Javascript
Code:
/**
* @typedef Foo
* @property {string} bar Property shows in intellisense
* @property {string} @baz Property should show in intellisense but does not
* @property {string} test Property should show in intellisense but does not
* @property {string} @class Property name "@class" should be a possible property name that
* does not get interpreted as a JSDoc instruction.
* @property {string} even#ThisShouldBeAValidName! But the name is not parsed as expeted
*/
/**
* @type {Foo}
*/
const fooInstance = {
}
- Prompt the intellisense to show within the "fooInstance" object.
- Expected: The properties @ baz and @ class should be highlighted like normal property names
- Actual: The properties are shown as if they were JSDoc instructions
- Expected: The property "even#ThisShouldBeAValidName!" should be highlighted like a normal property name
- Actual: The property is highlighted as expected until the "#" symbol and then it seems to be treated like a comment
- Expected: Intellisense should show all the properties
- Actual: Only the first property "bar" is shown. An empty string "" is shown as if it were another property name.
- Expected: The properties @ baz and @ class should be highlighted like normal property names
Does this issue occur when all extensions are disabled?: Yes
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire le comportement de JSDoc typedef et completionInfo dans l’éditeur JavaScript à l’aide de l’exemple de code de cette issue. Suivez la façon dont les noms de @property sont analysés et dont les complétions sont produites ; le travail est terminé lorsque les noms contenant @, # et ! sont préservés et que toutes les propriétés listées apparaissent dans IntelliSense.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- compilers, devtools
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100