JSX/TSX expansion reverts to class instead of className when using multiplication operator
Open
Nobody has claimed this yet.
- Dominant language
- Vim Script
- Stars
- 6.5k
- Forks
- 414
- PR merge metrics
- No merged PRs in 30d
Description
Reproduction:
.vimrc:
Plug 'mattn/emmet-vim', { 'for': ['html', 'javascriptreact', 'typescriptreact'] }
autocmd BufNewFile,BufRead *.tsx set filetype=typescriptreact
autocmd BufNewFile,BufRead *.jsx set filetype=javascriptreact
foo.tsx:
.foo>.bar*5
results in
<div class="foo">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
Expected:
<div className="foo">
<div className="bar"></div>
<div className="bar"></div>
<div className="bar"></div>
<div className="bar"></div>
<div className="bar"></div>
</div>
When not using the multiplication operator, the correct expansion is observed:
.foo>.bar
results in
<div className="foo">
<div className="bar"></div>
</div>
Contributor guide
No contributing guide indexed for this repository
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
Start by reproducing the expansion in foo.tsx with the provided emmet-vim configuration, comparing .foo>.bar*5 with .foo>.bar. Trace the JSX/TSX expansion path and verify that multiplication produces className for every generated element, matching the expected output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript, vim
- Domain
- frontend, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100