Pārlūkot izejas kodu

Don't call model.completionItems() multiple times

Edward Zhao 5 gadi atpakaļ
vecāks
revīzija
91ca362c7e
2 mainītis faili ar 9 papildinājumiem un 10 dzēšanām
  1. 2 3
      packages/completer/src/model.ts
  2. 7 7
      packages/completer/src/widget.ts

+ 2 - 3
packages/completer/src/model.ts

@@ -174,10 +174,9 @@ export class CompleterModel implements Completer.IModel {
    */
   completionItems?(): CompletionHandler.ICompletionItems {
     let query = this._query;
-    if (!query) {
-      return this._completionItems;
+    if (query) {
+      this._markup(query);
     }
-    this._markup(query);
     return this._completionItems;
   }
 

+ 7 - 7
packages/completer/src/widget.ts

@@ -228,9 +228,10 @@ export class Completer extends Widget {
     }
 
     let node: HTMLElement | null = null;
-
-    if (model.completionItems && model.completionItems().items.length) {
-      node = this._createCompletionItemNode(model);
+    let completionItemList =
+      model.completionItems && model.completionItems().items;
+    if (completionItemList && completionItemList.length) {
+      node = this._createCompletionItemNode(model, completionItemList);
     } else {
       node = this._createIItemNode(model);
     }
@@ -261,12 +262,11 @@ export class Completer extends Widget {
   }
 
   private _createCompletionItemNode(
-    model: Completer.IModel
+    model: Completer.IModel,
+    items: CompletionHandler.ICompletionItem[]
   ): HTMLElement | null {
-    let items = model.completionItems && model.completionItems().items;
-
     // If there are no items, reset and bail.
-    if (!items || !items.length) {
+    if (!items.length) {
       this._resetFlag = true;
       this.reset();
       if (!this.isHidden) {