init.lua 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. -- if not package.loaded['which-key'] then
  2. -- return
  3. -- end
  4. local status_ok, which_key = pcall(require, "which-key")
  5. if not status_ok then
  6. return
  7. end
  8. which_key.setup(O.plugin.which_key.setup)
  9. -- Set leader
  10. if O.leader_key == " " or O.leader_key == "space" then
  11. vim.api.nvim_set_keymap("n", "<Space>", "<NOP>", { noremap = true, silent = true })
  12. vim.g.mapleader = " "
  13. else
  14. vim.api.nvim_set_keymap("n", O.leader_key, "<NOP>", { noremap = true, silent = true })
  15. vim.g.mapleader = O.leader_key
  16. end
  17. local opts = {
  18. mode = "n", -- NORMAL mode
  19. prefix = "<leader>",
  20. buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings
  21. silent = true, -- use `silent` when creating keymaps
  22. noremap = true, -- use `noremap` when creating keymaps
  23. nowait = false, -- use `nowait` when creating keymaps
  24. }
  25. -- explorer
  26. vim.api.nvim_set_keymap(
  27. "n",
  28. "<Leader>e",
  29. ":lua require'lv-nvimtree'.toggle_tree()<CR>",
  30. { noremap = true, silent = true }
  31. )
  32. vim.api.nvim_set_keymap("n", "<Leader>f", ":Telescope find_files<CR>", { noremap = true, silent = true })
  33. -- dashboard
  34. vim.api.nvim_set_keymap("n", "<Leader>;", ":Dashboard<CR>", { noremap = true, silent = true })
  35. -- Comments
  36. vim.api.nvim_set_keymap("n", "<leader>/", ":CommentToggle<CR>", { noremap = true, silent = true })
  37. vim.api.nvim_set_keymap("v", "<leader>/", ":CommentToggle<CR>", { noremap = true, silent = true })
  38. -- Save
  39. vim.api.nvim_set_keymap("n", "<leader>w", ":w!<CR>", { noremap = true, silent = true })
  40. -- Quit
  41. vim.api.nvim_set_keymap("n", "<leader>q", ":q!<CR>", { noremap = true, silent = true })
  42. -- open lv-config
  43. vim.api.nvim_set_keymap(
  44. "n",
  45. "<leader>.",
  46. ":e " .. CONFIG_PATH .. "/lv-config.lua<CR>",
  47. { noremap = true, silent = true }
  48. )
  49. local mappings = O.plugin.which_key.mappings
  50. -- if O.plugin.ts_playground.active then
  51. -- vim.api.nvim_set_keymap("n", "<leader>Th", ":TSHighlightCapturesUnderCursor<CR>", { noremap = true, silent = true })
  52. -- mappings[""] = "Highlight Capture"
  53. -- end
  54. if O.plugin.zen.active then
  55. vim.api.nvim_set_keymap("n", "<leader>z", ":ZenMode<CR>", { noremap = true, silent = true })
  56. mappings["z"] = "Zen"
  57. end
  58. if O.plugin.telescope_project.active then
  59. -- open projects
  60. vim.api.nvim_set_keymap(
  61. "n",
  62. "<leader>P",
  63. ":lua require'telescope'.extensions.project.project{}<CR>",
  64. { noremap = true, silent = true }
  65. )
  66. mappings["P"] = "Projects"
  67. end
  68. if O.lushmode then
  69. mappings["L"] = {
  70. name = "+Lush",
  71. l = { ":Lushify<cr>", "Lushify" },
  72. x = { ":lua require('lush').export_to_buffer(require('lush_theme.cool_name'))", "Lush Export" },
  73. t = { ":LushRunTutorial<cr>", "Lush Tutorial" },
  74. q = { ":LushRunQuickstart<cr>", "Lush Quickstart" },
  75. }
  76. end
  77. if O.plugin.floatterm then
  78. vim.api.nvim_set_keymap("n", "<leader>gg", "<CMD>lua _G.__fterm_lazygit()<CR>", { noremap = true, silent = true })
  79. mappings["gg"] = "LazyGit"
  80. end
  81. for k, v in pairs(O.user_which_key) do
  82. mappings[k] = v
  83. end
  84. local wk = require "which-key"
  85. wk.register(mappings, opts)