draivin / hsnips

HyperSnips: a powerful snippet engine for VS Code, inspired by vim's UltiSnips
MIT License
148 stars 23 forks source link

Autocomplete failure if no language field exist in tokens/scopes #176

Open Easyoakland opened 10 months ago

Easyoakland commented 10 months ago
  1. Install vscode
  2. Install typst-lsp and hsnips
  3. Create new snippet all.hsnips or typst.hsnips (error even if file is blank and either works to produce error)
  4. Create new file named file.typ and open it.
  5. Type anything and instead of autocompletion this error is created every time a character is entered:
    error log 2023-08-24 14:31:55.047 [error] TypeError: Cannot read properties of null (reading 'scopes') at Object.getCompletions (c:\Users\WDAGUtilityAccount\.vscode\extensions\draivin.hsnips-0.2.8\out\completion.js:58:56) at r.value (c:\Users\WDAGUtilityAccount\.vscode\extensions\draivin.hsnips-0.2.8\out\extension.js:127:40) at f.w (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1902) at f.x (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1972) at f.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2188) at $.$acceptModelChanged (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:104:10065) at t.N (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:7983) at t.M (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:7749) at t.H (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:6830) at t.G (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:5906) at r.value (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:4736) at f.w (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1902) at f.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2119) at y.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:79:13931) at r.value (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:130:30355) at f.w (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1902) at f.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2119) at y.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:79:13931) at MessagePortMain. (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:130:28635) at MessagePortMain.emit (node:events:513:28) at MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:2:367) 2023-08-24 14:31:55.061 [error] [draivin.hsnips] provider FAILED 2023-08-24 14:31:55.061 [error] TypeError: Cannot read properties of null (reading 'scopes') at Object.getCompletions (c:\Users\WDAGUtilityAccount\.vscode\extensions\draivin.hsnips-0.2.8\out\completion.js:58:56) at Object.provideCompletionItems (c:\Users\WDAGUtilityAccount\.vscode\extensions\draivin.hsnips-0.2.8\out\extension.js:160:44) at ce.provideCompletionItems (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:104:50201) at c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:104:70866 at le.s (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:104:62744) at le.$provideCompletionItems (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:104:70852) at t.N (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:7983) at t.M (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:7749) at t.H (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:6791) at t.G (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:5906) at r.value (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:114:4736) at f.w (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1902) at f.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2119) at y.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:79:13931) at r.value (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:130:30355) at f.w (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:1902) at f.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:63:2119) at y.fire (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:79:13931) at MessagePortMain. (c:\Users\WDAGUtilityAccount\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:130:28635) at MessagePortMain.emit (node:events:513:28) at MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:2:367)

This can also be reproduced by using toml with the Python extension installed as the only provider of toml.

In the toml case the Developer: Inspect Editor Tokens and Scopes always says No grammar or semantic tokens available. which might be related. In the typst case it switches between No grammar or semantic tokens available. and a description with a blank language field.

Why would the textmate token/scope language need to be queried for all.hsnips? or a language specific typst.hsnips? Is the active language mode not queryable?

gRox167 commented 9 months ago

I have the same issue with you and tried on both macOS and Windows11. I set up a new issue in typst-lsp repo too. ref https://github.com/nvarner/typst-lsp/issues/312