From 890d93fe773ea5cde41d19125d4bad626e54059e Mon Sep 17 00:00:00 2001
From: Shin'ya Ueoka <ueokande@i-beam.org>
Date: Sat, 21 Jul 2018 10:35:27 +0900
Subject: Buffer completion on Clean Architecture

---
 src/background/usecases/completions.js | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

(limited to 'src/background/usecases')

diff --git a/src/background/usecases/completions.js b/src/background/usecases/completions.js
index fc1ff52..21049d2 100644
--- a/src/background/usecases/completions.js
+++ b/src/background/usecases/completions.js
@@ -22,19 +22,39 @@ export default class CompletionsInteractor {
     if (items.length === 0) {
       return Promise.resolve(Completions.empty());
     }
-    return Promise.resolve(new Completions(
-      [new CompletionGroup('Console Command', items)]
-    ));
+    return Promise.resolve(
+      new Completions([new CompletionGroup('Console Command', items)])
+    );
   }
 
-  async queryBdeleteCommand(name, force, args) {
-    let tabs = await this.completionRepository.queryTabs(args);
+  queryOpen() {
+    return Promise.resolve(Completions.empty());
+  }
+
+  queryBuffer(name, keywords) {
+    return this.queryTabs(name, true, keywords);
+  }
+
+  queryBdelete(name, keywords) {
+    return this.queryTabs(name, true, keywords);
+  }
+
+  queryBdeleteForce(name, keywords) {
+    return this.queryTabs(name, false, keywords);
+  }
+
+  querySet() {
+    return Promise.resolve(Completions.empty());
+  }
+
+  async queryTabs(name, excludePinned, args) {
+    let tabs = await this.completionRepository.queryTabs(args, excludePinned);
     let items = tabs.map(tab => new CompletionItem({
       caption: tab.title,
       content: name + ' ' + tab.title,
       url: tab.url,
       icon: tab.favIconUrl
     }));
-    return [new CompletionGroup('Buffers', items)];
+    return new Completions([new CompletionGroup('Buffers', items)]);
   }
 }
-- 
cgit v1.2.3