From 575b9ab4252ae10b8f8f271df560788283942a28 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 24 Feb 2020 12:09:30 +0200 Subject: [PATCH] refactor(vim) move -> moveNext, movePrevious --- client/key/vim/index.js | 17 ++++++++++++----- client/key/vim/vim.js | 39 +++++++++++++++++++++++---------------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/client/key/vim/index.js b/client/key/vim/index.js index 7658add0..bc8e5b41 100644 --- a/client/key/vim/index.js +++ b/client/key/vim/index.js @@ -29,10 +29,17 @@ const getOperations = (event) => { DOM.toggleSelectedFile(current); }, paste: DOM.Buffer.paste, - move: (sibling, {count, visual, isDelete}) => { - setCurrent(sibling, { + moveNext: ({count, isVisual, isDelete}) => { + setCurrent('next', { count, - visual, + isVisual, + isDelete, + }); + }, + movePrevious: ({count, isVisual, isDelete}) => { + setCurrent('previous', { + count, + isVisual, isDelete, }); }, @@ -70,9 +77,9 @@ function selectFile(current) { DOM.selectFile(current); } -function setCurrent(sibling, {count, visual, isDelete}) { +function setCurrent(sibling, {count, isVisual, isDelete}) { let current = Info.element; - const select = visual() ? selectFile : DOM.unselectFile; + const select = isVisual ? selectFile : DOM.unselectFile; select(current); diff --git a/client/key/vim/vim.js b/client/key/vim/vim.js index 38d3e22d..17ef9fa1 100644 --- a/client/key/vim/vim.js +++ b/client/key/vim/vim.js @@ -23,10 +23,12 @@ const noop = () => {}; module.exports = (key, operations) => { const prevStore = store(); + const isVisual = visual(); const value = store(prevStore.concat(key)); const { escape = noop, - move = noop, + moveNext = noop, + movePrevious = noop, remove = noop, copy = noop, paste = noop, @@ -46,25 +48,23 @@ module.exports = (key, operations) => { } if (key === 'j') { - const [prev, isDelete] = handleDelete(prevStore); - const count = getNumber(prev); + const {count, isDelete, isVisual} = handleDelete(prevStore); - !isNaN(count) && move('next', { - isDelete, + !isNaN(count) && moveNext({ count, - visual, + isVisual, + isDelete, }); return end(); } if (key === 'k') { - const [prev, isDelete] = handleDelete(prevStore); - const count = getNumber(prev); + const {count, isDelete, isVisual} = handleDelete(prevStore); - !isNaN(count) && move('previous', { + !isNaN(count) && movePrevious({ count, - visual, + isVisual, isDelete, }); @@ -72,11 +72,11 @@ module.exports = (key, operations) => { } if (/^gg$/.test(value)) { - const [, isDelete] = handleDelete(prevStore); + const {count, isDelete, isVisual} = handleDelete(prevStore); - move('previous', { + movePrevious({ count: Infinity, - visual, + isVisual, isDelete, }); @@ -90,9 +90,9 @@ module.exports = (key, operations) => { } if (key === 'G') { - move('next', { + moveNext({ count: Infinity, - visual, + isVisual, }); return end(); @@ -142,7 +142,14 @@ function handleDelete(prevStore) { prevStore = rmFirst(prevStore); } - return [prevStore, isDelete]; + const count = getNumber(prevStore); + const isVisual = visual(); + + return { + count, + isDelete, + isVisual, + }; } function getNumber(value) {