Merge pull request #6 from ThePrimeagen/more_nil_work

More nil work
This commit is contained in:
ThePrimeagen 2021-02-22 10:43:36 -07:00 committed by GitHub
commit a48aa25640
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 12 deletions

View File

@ -30,21 +30,48 @@ local M = {}
--]]
harpoon_config = harpoon_config or {}
-- tbl_deep_extend does not work the way you would think
function merge_table_impl(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" then
if type(t1[k]) == "table" then
merge_table_impl(t1[k], v)
else
t1[k] = v
end
else
t1[k] = v
end
end
end
function merge_tables(...)
local out = {}
for i = 2, select("#",...) do
merge_table_impl(out, select(i, ...))
end
return out
end
function ensure_correct_config(config)
local projects = config.projects
if projects[cwd] == nil then
projects[cwd] = {
marks = {},
term = {},
mark = {
marks = {}
},
term = {
cmds = {}
},
}
end
if projects[cwd].marks == nil then
projects[cwd].marks = {}
if projects[cwd].mark == nil then
projects[cwd].mark = {marks = {}}
end
if projects[cwd].term == nil then
projects[cwd].term = {}
projects[cwd].term = {cmds = {}}
end
end
@ -95,7 +122,7 @@ M.setup = function(config)
end
local complete_config =
vim.tbl_deep_extend("force",
merge_tables(
{projects = {}},
expand_dir(c_config),
expand_dir(u_config),
@ -110,5 +137,13 @@ M.setup = function(config)
harpoon_config = complete_config
end
-- should only be called for debug purposes
M.print_config = function()
print(vim.inspect(harpoon_config))
end
-- Sets a default config with no values
M.setup({projects = {}})
return M

View File

@ -1,5 +0,0 @@
augroup THE_PRIMEAGEN_HARPOON
autocmd!
autocmd VimLeave * :lua require('harpoon').save()
autocmd BufLeave * :lua require('harpoon.mark').store_offset()
augroup END

View File

@ -1,5 +1,5 @@
augroup THE_PRIMEAGEN_HARPOON
autocmd!
autocmd VimLeave * :lua require('harpoon').save()
autocmd VimLeavePre * :lua require('harpoon').save()
autocmd BufLeave * :lua require('harpoon.mark').store_offset()
augroup END