diff --git a/lua/harpoon/config.lua b/lua/harpoon/config.lua index 10af4d2..3c12713 100644 --- a/lua/harpoon/config.lua +++ b/lua/harpoon/config.lua @@ -77,6 +77,9 @@ function M.get_default_config() }, default = { + --- ui_nav_wrap allows the ability to enable(true) or disable(false) wrapping on prev and next list calls. + ui_nav_wrap = true, + --- select_with_nill allows for a list to call select even if the provided item is nil select_with_nil = false, diff --git a/lua/harpoon/list.lua b/lua/harpoon/list.lua index ef9dca8..0c5c281 100644 --- a/lua/harpoon/list.lua +++ b/lua/harpoon/list.lua @@ -179,8 +179,10 @@ end function HarpoonList:next() self._index = self._index + 1 - if self._index > #self.items then + if self._index > #self.items and self.config.ui_nav_wrap then self._index = 1 + elseif self._index > #self.items and not self.config.ui_nav_wrap then + self._index = #self.items end self:select(self._index) @@ -188,8 +190,10 @@ end function HarpoonList:prev() self._index = self._index - 1 - if self._index < 1 then + if self._index < 1 and self.config.ui_nav_wrap then self._index = #self.items + elseif self._index < 1 and not self.config.ui_nav_wrap then + self._index = 1 end self:select(self._index) diff --git a/lua/harpoon/test/logger_spec.lua b/lua/harpoon/test/logger_spec.lua index 4d95a49..d97054d 100644 --- a/lua/harpoon/test/logger_spec.lua +++ b/lua/harpoon/test/logger_spec.lua @@ -1,4 +1,4 @@ -local utils = require("harpoon.test.utils") +--local utils = require("harpoon.test.utils") local Logger = require("harpoon.logger") local eq = assert.are.same diff --git a/lua/harpoon/utils.lua b/lua/harpoon/utils.lua index f99df98..de632c3 100644 --- a/lua/harpoon/utils.lua +++ b/lua/harpoon/utils.lua @@ -1,7 +1,7 @@ local M = {} function M.trim(str) - return str:gsub("^%s+", ""):gsub("%s+$", "") + return str:gsub("^%s+", ""):gsub("%s+$", "") end function M.remove_duplicate_whitespace(str) return str:gsub("%s+", " ") @@ -11,8 +11,8 @@ function M.split(str, sep) if sep == nil then sep = "%s" end - local t={} - for s in string.gmatch(str, "([^"..sep.."]+)") do + local t = {} + for s in string.gmatch(str, "([^" .. sep .. "]+)") do table.insert(t, s) end return t