load settiongs from form

This commit is contained in:
Shin'ya Ueoka 2017-11-25 18:03:15 +09:00
parent 5070006193
commit f27d21908a
4 changed files with 83 additions and 40 deletions

View file

@ -66,29 +66,29 @@ export default {
'form': {
'keymaps': {
'scroll.vertically?{count:-1}': 'j',
'scroll.vertically?{count:1}': 'k',
'scroll.horizonally?{count:-1}': 'h',
'scroll.horizonally?{count:1}': 'l',
'scroll.vertically?{"count":1}': 'j',
'scroll.vertically?{"count":-1}': 'k',
'scroll.horizonally?{"count":-1}': 'h',
'scroll.horizonally?{"count":1}': 'l',
'scroll.home': '0',
'scroll.end': '$',
'scroll.pages?{count:-0.5}': '<C-U>',
'scroll.pages?{count:0.5}': '<C-D>',
'scroll.pages?{count:-1}': '<C-B>',
'scroll.pages?{count:1}': '<C-F>',
'scroll.pages?{"count":-0.5}': '<C-U>',
'scroll.pages?{"count":0.5}': '<C-D>',
'scroll.pages?{"count":-1}': '<C-B>',
'scroll.pages?{"count":1}': '<C-F>',
'tabs.close': 'd',
'tabs.reopen': 'u',
'tabs.next?{count:1}': 'J',
'tabs.prev?{count:1}': 'K',
'tabs.next?{"count":1}': 'J',
'tabs.prev?{"count":1}': 'K',
'tabs.first': 'g0',
'tabs.last': 'g$',
'tabs.reload?{cache:true}': 'r',
'tabs.reload?{"cache":true}': 'r',
'tabs.pin.toggle': 'zp',
'tabs.duplicate': 'zd',
'follow.start?{newTab:false}': 'f',
'follow.start?{newTab:true}': 'F',
'follow.start?{"newTab":false}': 'f',
'follow.start?{"newTab":true}': 'F',
'navigate.histories.prev': 'H',
'navigate.histories.next': 'L',
'navigate.link.next': ']]',
@ -101,12 +101,12 @@ export default {
'find.prev': 'N',
'command.show': ':',
'command.show.open?{alter:false}': 'o',
'command.show.open?{alter:true}': 'O',
'command.show.tabopen?{alter:false}': 't',
'command.show.tabopen?{alter:true}': 'T',
'command.show.winopen?{alter:false}': 'w',
'command.show.winopen?{alter:true}': 'W',
'command.show.open?{"alter":false}': 'o',
'command.show.open?{"alter":true}': 'O',
'command.show.tabopen?{"alter":false}': 't',
'command.show.tabopen?{"alter":true}': 'T',
'command.show.winopen?{"alter":false}': 'w',
'command.show.winopen?{"alter":true}': 'W',
'command.show.buffer': 'b',
'addon.toggle.enabled': '<S-Esc>',

View file

@ -0,0 +1,35 @@
const operationFromName = (name) => {
let [type, argStr] = name.split('?');
let args = {};
if (argStr) {
args = JSON.parse(argStr);
}
return Object.assign({ type }, args);
};
const fromJson = (json) => {
return JSON.parse(json);
};
const fromForm = (form) => {
let keymaps = {};
for (let name of Object.keys(form.keymaps)) {
let keys = form.keymaps[name];
keymaps[keys] = operationFromName(name);
}
let engines = {};
for (let { name, url } of form.search.engines) {
engines[name] = url;
}
let search = {
default: form.search.default,
engines,
};
let blacklist = form.blacklist;
return { keymaps, search, blacklist };
};
export { fromJson, fromForm };