aboutsummaryrefslogtreecommitdiff
path: root/src/background/usecases/command.js
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2018-07-29 13:34:10 +0900
committerGitHub <noreply@github.com>2018-07-29 13:34:10 +0900
commit8ea004f629021a0fb5fcbce9398f2cf2f952938a (patch)
treed35d37b1688aaf6a22389a6b761e2be2f98f85c7 /src/background/usecases/command.js
parent85e9b9da3714c0fa2998b0fab8f2a01c49d84d5a (diff)
parentb3672f0ffd82148716b38d133f35a5f9d2706ba8 (diff)
Merge pull request #442 from ueokande/search-on-paste
Buffer flags
Diffstat (limited to 'src/background/usecases/command.js')
-rw-r--r--src/background/usecases/command.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/background/usecases/command.js b/src/background/usecases/command.js
index 7fd2e57..f6ade43 100644
--- a/src/background/usecases/command.js
+++ b/src/background/usecases/command.js
@@ -34,13 +34,29 @@ export default class CommandIndicator {
return this.windowPresenter.create(url);
}
+ // eslint-disable-next-line max-statements
async buffer(keywords) {
if (keywords.length === 0) {
return;
}
+
if (!isNaN(keywords)) {
+ let tabs = await this.tabPresenter.getAll();
let index = parseInt(keywords, 10) - 1;
- return tabs.selectAt(index);
+ if (index < 0 || tabs.length <= index) {
+ throw new RangeError(`tab ${index + 1} does not exist`);
+ }
+ return this.tabPresenter.select(tabs[index].id);
+ } else if (keywords.trim() === '%') {
+ // Select current window
+ return;
+ } else if (keywords.trim() === '#') {
+ // Select last selected window
+ let lastId = await this.tabPresenter.getLastSelectedId();
+ if (typeof lastId === 'undefined' || lastId === null) {
+ throw new Error('No last selected tab');
+ }
+ return this.tabPresenter.select(lastId);
}
let current = await this.tabPresenter.getCurrent();