feat: added excluded_filetypes option to avoid adding unwanted filetypes to the harpoon menu list.

This commit is contained in:
Alan Ciccotelli 2021-11-04 00:40:40 +00:00 committed by Alan
parent 22b2650315
commit e27f59e938
3 changed files with 18 additions and 0 deletions

View File

@ -146,6 +146,7 @@ require("harpoon").setup({
save_on_toggle = false, save_on_toggle = false,
save_on_change = true, save_on_change = true,
enter_on_sendcmd = false, enter_on_sendcmd = false,
excluded_filetypes = {"harpoon"}
}, },
... your other configs ... ... your other configs ...
}) })
@ -159,6 +160,7 @@ require("harpoon").setup({
what I have found). what I have found).
* `enter_on_sendcmd` will set harpoon to run the command immediately as it's * `enter_on_sendcmd` will set harpoon to run the command immediately as it's
passed to the terminal when calling `sendCommand`. passed to the terminal when calling `sendCommand`.
* `excluded_filetypes` filetypes that you want to prevent from adding to the harpoon list menu.
#### Preconfigured Terminal Commands #### Preconfigured Terminal Commands
These are project specific commands that you wish to execute on the regular. These are project specific commands that you wish to execute on the regular.

View File

@ -157,6 +157,7 @@ M.setup = function(config)
["save_on_toggle"] = false, ["save_on_toggle"] = false,
["save_on_change"] = true, ["save_on_change"] = true,
["enter_on_sendcmd"] = false, ["enter_on_sendcmd"] = false,
["excluded_filetypes"] = {"harpoon"}
}, },
}, expand_dir( }, expand_dir(
c_config c_config

View File

@ -115,6 +115,18 @@ local function validate_buf_name(buf_name)
end end
end end
local function filter_filetype()
local current_filetype = vim.bo.filetype
local excluded_filetypes = harpoon.get_global_settings().excluded_filetypes
for filetype = 1, #excluded_filetypes do
if(current_filetype == excluded_filetypes[filetype] or current_filetype == "harpoon") then
log.error('filter_filetype(): This filetype cannot be added or is included in the "excluded_filetypes" option')
error('This filetype cannot be added or is included in the "excluded_filetypes" option')
return
end
end
end
M.get_index_of = function(item) M.get_index_of = function(item)
log.trace("get_index_of():", item) log.trace("get_index_of():", item)
if item == nil then if item == nil then
@ -180,6 +192,7 @@ M.valid_index = function(idx)
end end
M.add_file = function(file_name_or_buf_id) M.add_file = function(file_name_or_buf_id)
filter_filetype();
local buf_name = get_buf_name(file_name_or_buf_id) local buf_name = get_buf_name(file_name_or_buf_id)
log.trace("add_file():", buf_name) log.trace("add_file():", buf_name)
@ -290,11 +303,13 @@ M.get_length = function()
end end
M.set_current_at = function(idx) M.set_current_at = function(idx)
filter_filetype()
local buf_name = get_buf_name() local buf_name = get_buf_name()
log.trace("set_current_at(): Setting id", idx, buf_name) log.trace("set_current_at(): Setting id", idx, buf_name)
local config = harpoon.get_mark_config() local config = harpoon.get_mark_config()
local current_idx = M.get_index_of(buf_name) local current_idx = M.get_index_of(buf_name)
-- Remove it if it already exists -- Remove it if it already exists
if M.valid_index(current_idx) then if M.valid_index(current_idx) then
config.marks[current_idx] = create_mark("") config.marks[current_idx] = create_mark("")