File tree Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ export const registerEmmet = async () => {
15
15
16
16
const emmet = await import ( '@vscode/emmet-helper' )
17
17
const reactLangs = [ 'javascriptreact' , 'typescriptreact' ]
18
+ let lastStartOffset : number | undefined
18
19
vscode . languages . registerCompletionItemProvider (
19
20
reactLangs ,
20
21
{
@@ -23,10 +24,18 @@ export const registerEmmet = async () => {
23
24
const emmetConfig = vscode . workspace . getConfiguration ( 'emmet' )
24
25
if ( isEmmetEnabled && ! emmetConfig . excludeLanguages . includes ( document . languageId ) ) return
25
26
26
- const result = await sendCommand < EmmetResult > ( 'emmet-completions' , { document, position } )
27
- if ( ! result ) return
28
- const offset : number = document . offsetAt ( position )
29
- const sendToEmmet = document . getText ( ) . slice ( offset + result . emmetTextOffset , offset )
27
+ const curosrOffset : number = document . offsetAt ( position )
28
+
29
+ if ( context . triggerKind !== vscode . CompletionTriggerKind . TriggerForIncompleteCompletions || ! lastStartOffset ) {
30
+ const result = await sendCommand < EmmetResult > ( 'emmet-completions' , { document, position } )
31
+ if ( ! result ) {
32
+ lastStartOffset = undefined
33
+ return
34
+ }
35
+ lastStartOffset = curosrOffset + result . emmetTextOffset
36
+ }
37
+
38
+ const sendToEmmet = document . getText ( ) . slice ( lastStartOffset , curosrOffset )
30
39
const emmetCompletions = emmet . doComplete (
31
40
{
32
41
getText : ( ) => sendToEmmet ,
You can’t perform that action at this time.
0 commit comments