From 449ef2c238a2b585431c63f28c45624f878c4db5 Mon Sep 17 00:00:00 2001 From: amedama41 Date: Sat, 29 Jul 2023 16:01:13 +0900 Subject: [PATCH] update: exclude current directory from history --- lua/vfiler/libs/history.lua | 6 ++++-- tests/vfiler/history_spec.lua | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lua/vfiler/libs/history.lua b/lua/vfiler/libs/history.lua index cae4e1b..7e90f1a 100644 --- a/lua/vfiler/libs/history.lua +++ b/lua/vfiler/libs/history.lua @@ -8,7 +8,8 @@ History.__index = History function History.new(max_size) return setmetatable({ _current_index = 1, - _max_size = max_size, + -- plus one is for current directory + _max_size = max_size + 1, _history = {}, }, History) end @@ -34,7 +35,8 @@ end --- Get the directory history function History:items() local history = {} - for i = 1, #self._history do + -- start 2 in order to exclude the current directory + for i = 2, #self._history do local index = self._current_index - i if index <= 0 then index = index + #self._history diff --git a/tests/vfiler/history_spec.lua b/tests/vfiler/history_spec.lua index 7d64e95..61f4fda 100644 --- a/tests/vfiler/history_spec.lua +++ b/tests/vfiler/history_spec.lua @@ -4,20 +4,24 @@ describe('History', function() describe('Save', function() it('for empty', function() local history = History.new(5) - history:save('path') + + history:save('path1') + history:save('current') local items = history:items() + assert.equal(#items, 1) - assert.equal(items[1], 'path') + assert.equal(items[1], 'path1') end) it('until full', function() local history = History.new(5) + history:save('path1') history:save('path2') history:save('path3') history:save('path4') history:save('path5') - + history:save('current') local items = history:items() assert.equal(#items, 5) @@ -36,6 +40,7 @@ describe('History', function() history:save('path3') history:save('path1') + history:save('current') local items = history:items() assert.equal(#items, 3) @@ -51,6 +56,7 @@ describe('History', function() history:save('path3') history:save('path3') + history:save('current') local items = history:items() assert.equal(#items, 3) @@ -68,6 +74,7 @@ describe('History', function() history:save('path5') history:save('path1') + history:save('current') local items = history:items() assert.equal(#items, 5) @@ -87,6 +94,7 @@ describe('History', function() history:save('path5') history:save('path3') + history:save('current') local items = history:items() assert.equal(#items, 5) @@ -106,6 +114,7 @@ describe('History', function() history:save('path5') history:save('path5') + history:save('current') local items = history:items() assert.equal(#items, 5) @@ -128,6 +137,7 @@ describe('History', function() history:save('path8') history:save('path4') + history:save('current') local items = history:items() assert.equal(#items, 5) @@ -150,6 +160,7 @@ describe('History', function() history:save('path8') history:save('path6') + history:save('current') local items = history:items() assert.equal(#items, 5) @@ -172,6 +183,7 @@ describe('History', function() history:save('path8') history:save('path8') + history:save('current') local items = history:items() assert.equal(#items, 5)