Add complete property

jh-changes
Shin'ya Ueoka 6 years ago
parent 1b77846382
commit bab8066af8
  1. 33
      src/background/usecases/completions.js
  2. 3
      src/shared/settings/default.js
  3. 3
      src/shared/settings/properties.js

@ -36,18 +36,29 @@ export default class CompletionsInteractor {
}
async queryOpen(name, keywords) {
let settings = await this.settingRepository.get();
let groups = [];
let engines = await this.querySearchEngineItems(name, keywords);
if (engines.length > 0) {
groups.push(new CompletionGroup('Search Engines', engines));
}
let histories = await this.queryHistoryItems(name, keywords);
if (histories.length > 0) {
groups.push(new CompletionGroup('History', histories));
}
let bookmarks = await this.queryBookmarkItems(name, keywords);
if (bookmarks.length > 0) {
groups.push(new CompletionGroup('Bookmarks', bookmarks));
for (let c of settings.properties.complete) {
if (c === 's') {
// eslint-disable-next-line no-await-in-loop
let engines = await this.querySearchEngineItems(name, keywords);
if (engines.length > 0) {
groups.push(new CompletionGroup('Search Engines', engines));
}
} else if (c === 'h') {
// eslint-disable-next-line no-await-in-loop
let histories = await this.queryHistoryItems(name, keywords);
if (histories.length > 0) {
groups.push(new CompletionGroup('History', histories));
}
} else if (c === 'b') {
// eslint-disable-next-line no-await-in-loop
let bookmarks = await this.queryBookmarkItems(name, keywords);
if (bookmarks.length > 0) {
groups.push(new CompletionGroup('Bookmarks', bookmarks));
}
}
}
return new Completions(groups);
}

@ -72,7 +72,8 @@ export default {
"properties": {
"hintchars": "abcdefghijklmnopqrstuvwxyz",
"smoothscroll": false,
"adjacenttab": true
"adjacenttab": true,
"complete": "sbh"
},
"blacklist": [
]

@ -6,6 +6,7 @@ const types = {
hintchars: 'string',
smoothscroll: 'boolean',
adjacenttab: 'boolean',
complete: 'string',
};
// describe default values of a property
@ -13,12 +14,14 @@ const defaults = {
hintchars: 'abcdefghijklmnopqrstuvwxyz',
smoothscroll: false,
adjacenttab: true,
complete: 'sbn',
};
const docs = {
hintchars: 'hint characters on follow mode',
smoothscroll: 'smooth scroll',
adjacenttab: 'open adjacent tabs',
complete: 'which are completed at the open page',
};
export { types, defaults, docs };