diff options
-rw-r--r-- | QA.md | 14 | ||||
-rw-r--r-- | src/content/actions/setting.js | 7 | ||||
-rw-r--r-- | src/content/components/common/keymapper.js | 2 | ||||
-rw-r--r-- | src/content/reducers/setting.js | 3 | ||||
-rw-r--r-- | src/content/scrolls.js | 4 | ||||
-rw-r--r-- | test/content/actions/setting.test.js | 4 |
6 files changed, 24 insertions, 10 deletions
@@ -27,8 +27,11 @@ The behaviors of the console are tested in [Console section](#consoles). - [ ] <kbd>d</kbd>: delete current tab - [ ] <kbd>u</kbd>: reopen close tab - [ ] <kbd>K</kbd>, <kbd>J</kbd>: select prev and next tab +- [ ] <kbd>g0</kbd>, <kbd>g$</kbd>: select first and last tab - [ ] <kbd>r</kbd>: reload current tab - [ ] <kbd>R</kbd>: reload current tab without cache +- [ ] <kbd>zd</kbd>: duplicate current tab +- [ ] <kbd>zp</kbd>: toggle pin/unpin state on current tab #### Navigation @@ -141,6 +144,17 @@ The behaviors of the console are tested in [Console section](#consoles). - [ ] Fucus text box on Twitter or Slack, press <kbd>j</kbd>, then <kbd>j</kbd> is typed in the box - [ ] Focus the text box on Twitter or Slack on following mode +## Find mode + +- [ ] open console with <kbd>/</kbd> +- [ ] highlight a word on <kbd>Enter</kb> pressed in find console +- [ ] Search next/prev by <kbd>n</kbd>/<kbd>N</kbd> +- [ ] Wrap search by <kbd>n</kbd>/<kbd>N</kbd> +- [ ] Find with last keyword if keyword is empty + ## Misc - [ ] Work after plugin reload +- [ ] Work on `about:blank` +- [ ] Able to map `<A-Z>` key. +- [ ] Open file menu by <kbd>Alt</kbd>+<kbd>F</kbd> (Other than Mac OS) diff --git a/src/content/actions/setting.js b/src/content/actions/setting.js index 353dd24..0238c71 100644 --- a/src/content/actions/setting.js +++ b/src/content/actions/setting.js @@ -2,21 +2,20 @@ import actions from 'content/actions'; import * as keyUtils from 'shared/utils/keys'; const set = (value) => { - let maps = new Map(); + let entries = []; if (value.keymaps) { - let entries = Object.entries(value.keymaps).map((entry) => { + entries = Object.entries(value.keymaps).map((entry) => { return [ keyUtils.fromMapKeys(entry[0]), entry[1], ]; }); - maps = new Map(entries); } return { type: actions.SETTING_SET, value: Object.assign({}, value, { - keymaps: maps, + keymaps: entries, }) }; }; diff --git a/src/content/components/common/keymapper.js b/src/content/components/common/keymapper.js index 0abbc91..fb8fabe 100644 --- a/src/content/components/common/keymapper.js +++ b/src/content/components/common/keymapper.js @@ -25,7 +25,7 @@ export default class KeymapperComponent { let state = this.store.getState(); let input = state.input; - let keymaps = state.setting.keymaps; + let keymaps = new Map(state.setting.keymaps); let matched = Array.from(keymaps.keys()).filter((mapping) => { return mapStartsWith(mapping, input.keys); diff --git a/src/content/reducers/setting.js b/src/content/reducers/setting.js index a54f5a3..a23027f 100644 --- a/src/content/reducers/setting.js +++ b/src/content/reducers/setting.js @@ -1,7 +1,8 @@ import actions from 'content/actions'; const defaultState = { - keymaps: new Map(), + // keymaps is and arrays of key-binding pairs, which is entries of Map + keymaps: [], }; export default function reducer(state = defaultState, action = {}) { diff --git a/src/content/scrolls.js b/src/content/scrolls.js index d88320f..ef38273 100644 --- a/src/content/scrolls.js +++ b/src/content/scrolls.js @@ -104,14 +104,14 @@ const scrollBottom = (win) => { const scrollHome = (win) => { let target = scrollTarget(win); let x = 0; - let y = target.scrollLeft; + let y = target.scrollTop; target.scrollTo(x, y); }; const scrollEnd = (win) => { let target = scrollTarget(win); let x = target.scrollWidth; - let y = target.scrollLeft; + let y = target.scrollTop; target.scrollTo(x, y); }; diff --git a/test/content/actions/setting.test.js b/test/content/actions/setting.test.js index 0228fea..1248edf 100644 --- a/test/content/actions/setting.test.js +++ b/test/content/actions/setting.test.js @@ -20,8 +20,8 @@ describe("setting actions", () => { } }); let keymaps = action.value.keymaps; - - expect(action.value.keymaps).to.have.deep.all.keys( + let map = new Map(keymaps); + expect(map).to.have.deep.all.keys( [ [{ key: 'd', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }, { key: 'd', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }], |