Skip to content

Commit

Permalink
update separate setup and readme
Browse files Browse the repository at this point in the history
Temporarily comment the key mapping function of main
  • Loading branch information
jinzhongjia committed Aug 20, 2023
1 parent 30bd5f1 commit 669c77c
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 40 deletions.
27 changes: 15 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,20 @@ local default_reference_config = {
command_enable = true,
}

--- @type LspUI_pos_keybind_config
local default_pos_keybind_config = {
main = {
back = "q",
hide_secondary = "<leader>h",
},
secondary = {
jump = "o",
quit = "q",
hide_main = "<leader>h",
enter = "<leader>l",
},
}

-- default config
--- @type LspUI_config
local default_config = {
Expand All @@ -210,18 +224,7 @@ local default_config = {
declaration = default_declaration_config,
implemention = default_implemention_config,
reference = default_reference_config,
pos_keybind = {
main = {
back = "q",
hide_secondary = "<leader>h",
},
secondary = {
jump = "o",
quit = "q",
hide_main = "<leader>h",
enter = "<leader>l",
},
},
pos_keybind = default_pos_keybind_config,
}

```
Expand Down
4 changes: 2 additions & 2 deletions lua/LspUI/_meta.lua
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
--- @field key_binding { prev: string?, next: string?, quit: string? }? keybind for `hover`

-- this is just for some keybind like definition, type definition, declaration, reference, implemention
--- @alias pos_abstract_keybind { secondary: { jump: string?, quit:string?, hide_main:string?, enter: string? }?, main: { back: string?, hide_secondary: string? }? }
--- @alias LspUI_pos_keybind_config { secondary: { jump: string?, quit:string?, hide_main:string?, enter: string? }?, main: { back: string?, hide_secondary: string? }? }

--- @class LspUI_definition_config
--- @field enable boolean? whether enable `definition` module
Expand Down Expand Up @@ -59,4 +59,4 @@
--- @field declaration LspUI_declaration_config? `declaration` module
--- @field implemention LspUI_implemention_config? `implemention` module
--- @field reference LspUI_reference_config? `reference` module
--- @field pos_keybind pos_abstract_keybind? keybind for `definition`, `type definition`, `declaration`, `reference`, implemention
--- @field pos_keybind LspUI_pos_keybind_config? keybind for `definition`, `type definition`, `declaration`, `reference`, implemention
114 changes: 94 additions & 20 deletions lua/LspUI/config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,20 @@ local default_reference_config = {
command_enable = true,
}

--- @type LspUI_pos_keybind_config
local default_pos_keybind_config = {
main = {
back = "q",
hide_secondary = "<leader>h",
},
secondary = {
jump = "o",
quit = "q",
hide_main = "<leader>h",
enter = "<leader>l",
},
}

-- default config
--- @type LspUI_config
local default_config = {
Expand All @@ -95,25 +109,16 @@ local default_config = {
declaration = default_declaration_config,
implemention = default_implemention_config,
reference = default_reference_config,
pos_keybind = {
main = {
back = "q",
hide_secondary = "<leader>h",
},
secondary = {
jump = "o",
quit = "q",
hide_main = "<leader>h",
enter = "<leader>l",
},
},
pos_keybind = default_pos_keybind_config,
}

-- Prevent plugins from being initialized multiple times
local is_already_init = false

local M = {}

M.options = {}

-- LspUI plugin init function
-- you need to pass a table
--- @param config LspUI_config?
Expand All @@ -133,16 +138,22 @@ end
-- separate function for `rename` module
--- @param rename_config LspUI_rename_config
M.rename_setup = function(rename_config)
M.options.rename =
vim.tbl_deep_extend("force", default_rename_config, rename_config)
M.options.rename = vim.tbl_deep_extend(
"force",
M.options.rename or default_rename_config,
rename_config
)
end

-- separate function for `lightbulb` module
-- now this function can't use
--- @param lightbulb_config LspUI_lightbulb_config
M.lightbulb_setup = function(lightbulb_config)
M.options.lightbulb =
vim.tbl_deep_extend("force", default_lightbulb_config, lightbulb_config)
M.options.lightbulb = vim.tbl_deep_extend(
"force",
M.options.lightbulb or default_lightbulb_config,
lightbulb_config
)
vim.fn.sign_define(
global.lightbulb.sign_name,
{ text = M.options.lightbulb.icon }
Expand All @@ -154,7 +165,7 @@ end
M.code_action_setup = function(code_action_config)
M.options.code_action = vim.tbl_deep_extend(
"force",
default_code_action_config,
M.options.code_action or default_code_action_config,
code_action_config
)
end
Expand All @@ -164,16 +175,79 @@ end
M.diagnostic_setup = function(diagnostic_config)
M.options.diagnostic = vim.tbl_deep_extend(
"force",
default_diagnostic_config,
M.options.diagnostic or default_diagnostic_config,
diagnostic_config
)
end

-- separate function for `hover` module
--- @param hover_config LspUI_hover_config
M.hover_setup = function(hover_config)
M.options.hover =
vim.tbl_deep_extend("force", default_hover_config, hover_config)
M.options.hover = vim.tbl_deep_extend(
"force",
M.options.hover or default_hover_config,
hover_config
)
end

-- separate function for `definition` module
--- @param definition_config LspUI_definition_config
M.definition = function(definition_config)
M.options.definition = vim.tbl_deep_extend(
"force",
M.options.definition or default_definition_config,
definition_config
)
end

-- separate function for `type_definition` module
--- @param type_definition_config LspUI_type_definition_config
M.type_definition = function(type_definition_config)
M.options.type_definition = vim.tbl_deep_extend(
"force",
M.options.type_definition or default_type_definition_config,
type_definition_config
)
end

-- separate function for `declaration` module
--- @param declaration_config LspUI_declaration_config
M.declaration = function(declaration_config)
M.options.declaration = vim.tbl_deep_extend(
"force",
M.options.declaration or default_declaration_config,
declaration_config
)
end

-- separate function for `reference` module
--- @param reference_config LspUI_reference_config
M.reference = function(reference_config)
M.options.reference = vim.tbl_deep_extend(
"force",
M.options.reference or default_reference_config,
reference_config
)
end

-- separate function for `implemention` module
--- @param implemention_config LspUI_implemention_config
M.implemention = function(implemention_config)
M.options.implemention = vim.tbl_deep_extend(
"force",
M.options.implemention or default_implemention_config,
implemention_config
)
end

-- separate function for `pos_keybind` module
--- @param pos_keybind_config LspUI_pos_keybind_config
M.pos_keybind = function(pos_keybind_config)
M.options.pos_keybind = vim.tbl_deep_extend(
"force",
M.options.pos_keybind or default_pos_keybind_config,
pos_keybind_config
)
end

return M
12 changes: 6 additions & 6 deletions lua/LspUI/pos_abstract.lua
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ local secondary_clear_hl = function()
end

local main_view_clear_keybind = function()
for lhs, _ in pairs(config.options.pos_keybind.main) do
for _, lhs in pairs(config.options.pos_keybind.main) do
pcall(vim.api.nvim_buf_del_keymap, M.main_view_buffer(), "n", lhs)
end
end
Expand All @@ -169,7 +169,7 @@ local main_view_keybind = function()
callback = function()
if M.secondary_view_hide() then
lib_windows.close_window(M.main_view_window())
main_view_clear_keybind()
-- main_view_clear_keybind()
else
api.nvim_set_current_win(M.secondary_view_window())
end
Expand Down Expand Up @@ -270,7 +270,7 @@ local secondary_view_autocmd = function()
-- when seconday view close, clear main view highlight
main_clear_hl()
--try to clear main buffer keybind
main_view_clear_keybind()
-- main_view_clear_keybind()
end,
})
api.nvim_create_autocmd("CursorMoved", {
Expand Down Expand Up @@ -338,7 +338,7 @@ M.main_view_buffer = function(buffer_id)
-- remove old highlight
main_clear_hl()
-- try clear keybind
main_view_clear_keybind()
-- main_view_clear_keybind()
-- set new main view buffer
main_view.buffer = buffer_id
-- load main view buffer
Expand All @@ -357,7 +357,7 @@ M.main_view_buffer = function(buffer_id)
-- highlight new main_view_buffer
main_set_hl(M.datas()[current_item.uri])
-- add keybind
main_view_keybind()
-- main_view_keybind()
end
return main_view.buffer
end
Expand Down Expand Up @@ -496,7 +496,7 @@ end
--- @return integer width
--- @return integer height
local generate_secondary_view = function()
main_clear_hl()
secondary_clear_hl()
if not api.nvim_buf_is_valid(M.secondary_view_buffer()) then
M.secondary_view_buffer(api.nvim_create_buf(false, true))
end
Expand Down

0 comments on commit 669c77c

Please sign in to comment.