aboutsummaryrefslogtreecommitdiff
path: root/src/background/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'src/background/controllers')
-rw-r--r--src/background/controllers/command.js89
-rw-r--r--src/background/controllers/completions.js43
2 files changed, 89 insertions, 43 deletions
diff --git a/src/background/controllers/command.js b/src/background/controllers/command.js
new file mode 100644
index 0000000..41057e0
--- /dev/null
+++ b/src/background/controllers/command.js
@@ -0,0 +1,89 @@
+import CompletionsInteractor from '../usecases/completions';
+import CommandInteractor from '../usecases/command';
+import Completions from '../domains/completions';
+
+export default class CommandController {
+ constructor() {
+ this.completionsInteractor = new CompletionsInteractor();
+ this.commandIndicator = new CommandInteractor();
+ }
+
+ getCompletions(line) {
+ let trimmed = line.trimStart();
+ let words = trimmed.split(/ +/);
+ let name = words[0];
+ if (words.length === 1) {
+ return this.completionsInteractor.queryConsoleCommand(name);
+ }
+ let keywords = trimmed.slice(name.length).trimStart();
+ switch (words[0]) {
+ case 'o':
+ case 'open':
+ case 't':
+ case 'tabopen':
+ case 'w':
+ case 'winopen':
+ return this.completionsInteractor.queryOpen(name, keywords);
+ case 'b':
+ case 'buffer':
+ return this.completionsInteractor.queryBuffer(name, keywords);
+ case 'bd':
+ case 'bdel':
+ case 'bdelete':
+ case 'bdeletes':
+ return this.completionsInteractor.queryBdelete(name, keywords);
+ case 'bd!':
+ case 'bdel!':
+ case 'bdelete!':
+ case 'bdeletes!':
+ return this.completionsInteractor.queryBdeleteForce(name, keywords);
+ case 'set':
+ return this.completionsInteractor.querySet(name, keywords);
+ }
+ return Promise.resolve(Completions.empty());
+ }
+
+ // eslint-disable-next-line complexity
+ exec(line) {
+ let trimmed = line.trimStart();
+ let words = trimmed.split(/ +/);
+ let name = words[0];
+ let keywords = trimmed.slice(name.length).trimStart();
+ switch (words[0]) {
+ case 'o':
+ case 'open':
+ return this.commandIndicator.open(keywords);
+ case 't':
+ case 'tabopen':
+ return this.commandIndicator.tabopen(keywords);
+ case 'w':
+ case 'winopen':
+ return this.commandIndicator.winopen(keywords);
+ case 'b':
+ case 'buffer':
+ return this.commandIndicator.buffer(keywords);
+ case 'bd':
+ case 'bdel':
+ case 'bdelete':
+ return this.commandIndicator.bdelete(false, keywords);
+ case 'bd!':
+ case 'bdel!':
+ case 'bdelete!':
+ return this.commandIndicator.bdelete(true, keywords);
+ case 'bdeletes':
+ return this.commandIndicator.bdeletes(false, keywords);
+ case 'bdeletes!':
+ return this.commandIndicator.bdeletes(true, keywords);
+ case 'addbookmark':
+ return this.commandIndicator.addbookmark(keywords);
+ case 'q':
+ case 'quit':
+ return this.commandIndicator.quit();
+ case 'qa':
+ case 'quitall':
+ return this.commandIndicator.quitAll();
+ case 'set':
+ return this.commandIndicator.set(keywords);
+ }
+ }
+}
diff --git a/src/background/controllers/completions.js b/src/background/controllers/completions.js
deleted file mode 100644
index f8eade9..0000000
--- a/src/background/controllers/completions.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import CompletionsInteractor from '../usecases/completions';
-import Completions from '../domains/completions';
-
-export default class ContentMessageController {
- constructor() {
- this.completionsInteractor = new CompletionsInteractor();
- }
-
- getCompletions(line) {
- let trimmed = line.trimStart();
- let words = trimmed.split(/ +/);
- let name = words[0];
- if (words.length === 1) {
- return this.completionsInteractor.queryConsoleCommand(name);
- }
- let keywords = trimmed.slice(name.length).trimStart();
- switch (words[0]) {
- case 'o':
- case 'open':
- case 't':
- case 'tabopen':
- case 'w':
- case 'winopen':
- return this.completionsInteractor.queryOpen(name, keywords);
- case 'b':
- case 'buffer':
- return this.completionsInteractor.queryBuffer(name, keywords);
- case 'bd':
- case 'bdel':
- case 'bdelete':
- case 'bdeletes':
- return this.completionsInteractor.queryBdelete(name, keywords);
- case 'bd!':
- case 'bdel!':
- case 'bdelete!':
- case 'bdeletes!':
- return this.completionsInteractor.queryBdeleteForce(name, keywords);
- case 'set':
- return this.completionsInteractor.querySet(name, keywords);
- }
- return Promise.resolve(Completions.empty());
- }
-}