-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Execution was success:
await highlightTreeSitter(`function () {console.log()}\n`.repeat(30), 'source.js')<span class="syntax--source syntax--js"><span class="syntax--storage syntax--type syntax--function">function</span> <span class="syntax--punctuation syntax--definition syntax--parameters syntax--begin syntax--bracket syntax--round">(</span><span class="syntax--punctuation syntax--definition syntax--parameters syntax--end syntax--bracket syntax--round">)</span> <span class="syntax--punctuation syntax--definition syntax--function syntax--body syntax--begin syntax--bracket syntax--curly">{</span><span class="syntax--support syntax--variable syntax--dom">console</span><span class="syntax--meta syntax--delimiter syntax--period">.</span><span class="syntax--entity syntax--name syntax--function">log</span><span class="syntax--punctuation syntax--definition syntax--parameters syntax--begin syntax--bracket syntax--round">(</span><span class="syntax--punctuation syntax--definition syntax--parameters syntax--end syntax--bracket syntax--round">)</span><span class="syntax--punctuation syntax--definition syntax--function syntax--body syntax--end syntax--bracket syntax--curly">}</span>
...
<span class="syntax--storage syntax--type syntax--function">function</span> <span class="syntax--punctuation syntax--definition syntax--parameters syntax--begin syntax--bracket syntax--round">(</span><span class="syntax--punctuation syntax--definition syntax--parameters syntax--end syntax--bracket syntax--round">)</span> <span class="syntax--punctuation syntax--definition syntax--function syntax--body syntax--begin syntax--bracket syntax--curly">{</span><span class="syntax--support syntax--variable syntax--dom">console</span><span class="syntax--meta syntax--delimiter syntax--period">.</span><span class="syntax--entity syntax--name syntax--function">log</span><span class="syntax--punctuation syntax--definition syntax--parameters syntax--begin syntax--bracket syntax--round">(</span><span class="syntax--punctuation syntax--definition syntax--parameters syntax--end syntax--bracket syntax--round">)</span><span class="syntax--punctuation syntax--definition syntax--function syntax--body syntax--end syntax--bracket syntax--curly">}</span>
</span>Randomly fail:
await highlightTreeSitter(`function () {console.log()}\n`.repeat(80), 'source.js')Completely fail:
await highlightTreeSitter(`function () {console.log()}\n`.repeat(120), 'source.js')<span class="syntax--source syntax--js">function () {console.log()}
function () {console.log()}
...
function () {console.log()}
</span>As far as I've tested locally, adding something like await delay (100) after buf.setText (sourceCode) in the implementation seems to work as expected.
atom-ide-markdown-service/src/highlighter.ts
Lines 33 to 35 in 6ef490f
| buf.setLanguageMode(lm) | |
| buf.setText(sourceCode) | |
| const end = buf.getEndPosition() |
const delay = ms => new Promise(resolve=>setTimeout(resolve, ms)) buf.setLanguageMode(lm)
buf.setText(sourceCode)
await delay(100) // <- add this line
const end = buf.getEndPosition()Metadata
Metadata
Assignees
Labels
No labels