Trigger completion suggestions on dot (#1784)

This commit is contained in:
Jonatan Kłosko 2023-03-14 15:13:52 +01:00 committed by GitHub
parent a9ea50f01a
commit 070a11932f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -85,14 +85,29 @@ document.fonts.addEventListener("loadingdone", (event) => {
* See cell/live_editor.js for more details. * See cell/live_editor.js for more details.
*/ */
monaco.languages.registerCompletionItemProvider("elixir", { let completionItemProvider = null;
provideCompletionItems: (model, position, context, token) => {
if (model.__getCompletionItems__) { settingsStore.getAndSubscribe((settings) => {
return model.__getCompletionItems__(model, position); // We replace the completion provider to always reflect the settings
} else { if (completionItemProvider) {
return null; completionItemProvider.dispose();
}
completionItemProvider = monaco.languages.registerCompletionItemProvider(
"elixir",
{
// Trigger characters always open the popup, so we add dot only
// when completion while typing is enabled
triggerCharacters: settings.editor_auto_completion ? ["."] : [],
provideCompletionItems: (model, position, context, token) => {
if (model.__getCompletionItems__) {
return model.__getCompletionItems__(model, position);
} else {
return null;
}
},
} }
}, );
}); });
monaco.languages.registerHoverProvider("elixir", { monaco.languages.registerHoverProvider("elixir", {