do simple completion

This commit is contained in:
Shin'ya Ueoka 2017-09-05 13:44:21 +09:00
parent 1383b8c12d
commit 73a4fe0bb1
4 changed files with 47 additions and 11 deletions

View file

@ -84,8 +84,20 @@ browser.runtime.onMessage.addListener((request, sender) => {
return keyPressHandle(request, sender);
case 'event.cmd.enter':
return cmdEnterHandle(request, sender);
case 'event.cmd.suggest':
// TODO make suggestion and return
case 'event.cmd.tabs.completion':
return tabs.getCompletions(request.text).then((tabs) => {
let items = tabs.map((tab) => {
return {
caption: tab.title,
content: tab.title,
url: tab.url
}
});
return {
name: "Buffers",
items: items
};
});
break;
}
return Promise.resolve();

View file

@ -49,6 +49,15 @@ const selectByKeyword = (current, keyword) => {
});
}
const getCompletions = (keyword) => {
return browser.tabs.query({ currentWindow: true }).then((tabs) => {
let matched = tabs.filter((t) => {
return t.url.includes(keyword) || t.title.includes(keyword)
})
return matched;
});
};
const selectPrevTab = (current, count) => {
return browser.tabs.query({ currentWindow: true }, (tabs) => {
if (tabs.length < 2) {
@ -78,4 +87,4 @@ const reload = (current, cache) => {
);
};
export { closeTab, reopenTab, selectAt, selectByKeyword, selectNextTab, selectPrevTab, reload };
export { closeTab, reopenTab, selectAt, selectByKeyword, getCompletions, selectPrevTab, selectNextTab, reload };