Skip to content

Commit 8d10355

Browse files
authored
Merge pull request #75 from DataFlowAnalysis/fix/multiple-completion-providers
Fix item appearing multiple times in autocompletion
2 parents deb070d + 2938236 commit 8d10355

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

frontend/webEditor/src/assignment/AssignmentEditUi.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export class AssignmentEditUi extends AbstractUIExtension {
2222

2323
private port?: DfdOutputPortImpl;
2424
private tree?: LanguageTreeNode<Word>[];
25+
private completionProvider?: DfdCompletionItemProvider;
2526
private editorContainer: HTMLDivElement = document.createElement("div") as HTMLDivElement;
2627
private validationLabel: HTMLDivElement = document.createElement("div") as HTMLDivElement;
2728
private unavailableInputsLabel: HTMLDivElement = document.createElement("div") as HTMLDivElement;
@@ -137,10 +138,13 @@ export class AssignmentEditUi extends AbstractUIExtension {
137138
containerElement.style.top = `${bounds.y}px`;
138139

139140
this.tree = AssignmentLanguageTreeBuilder.buildTree(port, this.labelTypeRegistry);
140-
monaco.languages.registerCompletionItemProvider(
141-
ASSIGNMENT_LANGUAGE_ID,
142-
new DfdCompletionItemProvider(this.tree),
143-
);
141+
if (this.completionProvider) {
142+
this.completionProvider.setTree(this.tree);
143+
} else {
144+
this.completionProvider = new DfdCompletionItemProvider(this.tree);
145+
monaco.languages.registerCompletionItemProvider(ASSIGNMENT_LANGUAGE_ID, this.completionProvider);
146+
}
147+
144148
if (!this.editor) {
145149
throw new Error("Expected editor to be initialized");
146150
}

frontend/webEditor/src/languages/autocomplete.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,8 @@ export class DfdCompletionItemProvider implements monaco.languages.CompletionIte
105105
suggestions: r,
106106
};
107107
}
108+
109+
public setTree(tree: CompletionLanguageTreeNode[]) {
110+
this.tree = tree;
111+
}
108112
}

0 commit comments

Comments
 (0)