monaco-editor
monaco-editor copied to clipboard
[Bug] Can't use '$' and '.' as triggerCharacters in JSON Language
Reproducible in vscode.dev or in VS Code Desktop?
- [X] Not reproducible in vscode.dev or VS Code Desktop
Reproducible in the monaco editor playground?
- [ ] Not reproducible in the monaco editor playground
Monaco Editor Playground Link
https://microsoft.github.io/monaco-editor/playground.html?source=v0.45.0#XQAAAAL3AwAAAAAAAABBqQkHQ5NjdMjwa-jY7SIQ9S7DNlzs5W-mwj0fe1ZCDRFc9ws9XQE0SJE1jc2VKxhaLFIw9vEWSxW3yscw5EwHHzYFHaz32-gyIkvFg9IBdF4D6TxsvTg3aTukZ-SMnu1cti_b_tBcWfemMlzae8XEfpqzzq7p3_bAdim2j1CCEjciMpjylo-Vi_luKU0F8CcEMV2H64EyfakcvAlwdpafvU3hXUU0zimxN7pSnEUjS9kbo6Wkl0sid1i3UVJ-RkPIU15LBE8sciSXKLFoqf5eHLQD3zmHWZoehVpR2aJ31oYV-V31CFR1EBtIG3GSstKFgcllVB6FNvV6ohMg0dLI9TDngbIF2unBRvqPf0zMbsiM-2ezYJiZiWjWnhgY0zjfCtRCUVlAN4X3BR4dh73gq4t8OPLwZktbcsXGehSv4vWl8sCijVXcfQLWkMQYsyE11Dg8JakbhGpxl0NBMPOI3PaQAW8PKjSb5W6aAfrUgLDu_HGB_jq8VreVDCtOwZaZuoPD7SqtlVerdB3TPs29wGMfKfCFtA6IkjoTWhn8XgSkdfI2VYrmdVAINV-dUNMuN_GuJYwotPWxjtpagWN8fckeFuRAT5380jTCPEVebg1FVrldmSRnQmB2y-YH9mAFC7R951cy5kXHjEIhx3cekSM2HknxTqcp3CCMVudw5VFiDUvrsCVHobfIBLEz5hG3bygIM2ulndi1407n0DwzEkNjCG0aq8_YMlDLuZcaQPjpzBPpXL6fPVKV_8rzBMSUjKOoRH8jtzAtf3ST-tBlOw
Monaco Editor Playground Code
// Configures two JSON schemas, with references.
var jsonCode = ["{", ' "p1": "v3",', ' "p2": false', "}"].join("\n");
var modelUri = monaco.Uri.parse("a://b/foo.json"); // a made up unique URI for our model
var model = monaco.editor.createModel(jsonCode, "json", modelUri);
const triggerCharacters = ['.', '$', '', '1', ':'];
monaco.languages.registerCompletionItemProvider('json', {
triggerCharacters,
// @ts-ignore
provideCompletionItems: (model, position) => {
const wordInfo = model.getWordUntilPosition(position);
const { word, startColumn, endColumn } = wordInfo;
const suggestions = [
{
label: `${word}${word}`,
kind: monaco.languages.CompletionItemKind.Variable,
insertText: `${word}${word}`,
insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
},
];
return {
suggestions,
};
},
});
monaco.editor.create(document.getElementById("container"), {
model: model,
});
Reproduction Steps
Entering . or $ .
Actual (Problematic) Behavior
There will be an automatic completion prompt when entering the characters 1 and :, but there will be no prompts when entering the characters $ and .
Expected Behavior
Entering . and $ characters will prompt automatic completion.
Additional Context
i don't know how to fix it
### Tasks