| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- local wk = require("which-key")
- local telescope = require("telescope.builtin")
- local gitsigns = require("gitsigns")
- function FormatBufferLines()
- local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
- local formatted_lines = {}
- for _, line in ipairs(lines) do
- if #line <= 80 then
- table.insert(formatted_lines, line)
- else
- local words = {}
- for word in line:gmatch("%S+") do
- table.insert(words, word)
- end
- local current_line = ""
- for _, word in ipairs(words) do
- if #current_line + #word + 1 > 80 then
- table.insert(formatted_lines, current_line)
- current_line = word
- else
- if current_line ~= "" then
- current_line = current_line .. " " .. word
- else
- current_line = word
- end
- end
- end
- if current_line ~= "" then
- table.insert(formatted_lines, current_line)
- end
- end
- end
- vim.api.nvim_buf_set_lines(0, 0, -1, false, formatted_lines)
- print("Buffer formatted: lines wrapped at 80 characters")
- end
- -- local tree = require "nvim-tree.api"
- function FormatBuffer()
- -- Save the current cursor position
- local cursor_position = vim.fn.getpos(".")
- FormatBufferLines();
- -- local command = "fmt"
- -- -- Run the formatter command on the current buffer
- -- vim.cmd(":%! " .. command)
- -- Restore the cursor position
- vim.fn.setpos(".", cursor_position)
- -- local current_file = vim.fn.expand("%:p")
- -- local cmd = string.format("typstyle -i %s", current_file)
- -- vim.fn.jobstart(cmd, {
- -- on_exit = function(_, exit_code)
- -- if exit_code == 0 then
- -- print("TypestStyle completed successfully")
- -- -- vim.cmd('edit!') -- Reload the buffer
- -- vim.fn.setpos(".", cursor_position)
- -- else
- -- print("TypestStyle failed with exit code: " .. exit_code)
- -- end
- -- end,
- -- })
- end
- function ToggleTree(source)
- require("neo-tree.command").execute({
- toggle = true,
- source = source,
- position = "left",
- })
- end
- wk.add({
- {
- mode = "n",
- -- telescope
- {
- "<leader>ff",
- function()
- telescope.find_files()
- end,
- desc = "Find file",
- },
- {
- "<leader>fg",
- function()
- telescope.live_grep()
- end,
- desc = "Live grep",
- },
- {
- "<leader>fb",
- function()
- telescope.buffers()
- end,
- desc = "List buffers",
- },
- {
- "<leader>fh",
- function()
- telescope.help_tags()
- end,
- desc = "Help",
- },
- {
- "<leader>fs",
- function()
- telescope.lsp_document_symbols()
- end,
- desc = "Find symbols",
- },
- {
- "zz",
- function()
- telescope.spell_suggest()
- end,
- desc = "Suggest spell",
- },
- {
- "zr",
- function()
- vim.lsp.buf.rename()
- end,
- desc = "Rename symbol",
- },
- {
- "<leader>ft",
- function()
- FormatBuffer()
- end,
- desc = "Typst fmt",
- },
- -- Centering cursor
- { "n", "nzzzv", desc = "Center cursor when n (next) during search" },
- { "N", "Nzzzv", desc = "Center cursor when n (next) during search" },
- -- tab
- { "<tab>", ":BufferLineCycleNext <CR>", desc = "Next tab" },
- { "<S-tab>", ":BufferLineCyclePrev<CR>", desc = "Previous tab" },
- -- Comment
- { "<leader>/", "gcc", desc = "comment toggle", remap = true },
- -- Format
- {
- "<leader>fm",
- function()
- require("conform").format({ async = true, lsp_fallback = true })
- end,
- desc = "format files",
- },
- -- nvim-tree
- -- { "<C-n>", function() tree.tree.toggle() end, desc = "Toggle file tree" },
- {
- "<C-n>",
- function()
- -- ToggleTree("filesystem")
- -- require("edgy").toggle("left")
- require("edgy-group").open_group_offset("left", 1)
- end,
- desc = "Toggle left panel",
- },
- {
- "<leader>el",
- function()
- require("trouble").open({
- mode = "lsp_document_symbols",
- focus = false,
- win = { position = "right" },
- })
- end,
- },
- {
- "<leader>uh",
- function()
- require("edgy").toggle("left")
- end,
- desc = "left",
- },
- -- Lsp
- {
- "K",
- function()
- vim.lsp.buf.hover()
- end,
- desc = "LSP toggle",
- },
- {
- "<leader>ca",
- function()
- vim.lsp.buf.code_action()
- end,
- desc = "LSP code action",
- },
- {
- "<leader>cd",
- "<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
- desc = "LSP code diagnostic",
- },
- -- Gitsigns
- {
- "<leader>nc",
- function()
- gitsigns.nav_hunk("next")
- end,
- desc = "Next change",
- },
- {
- "<leader>pc",
- function()
- gitsigns.nav_hunk("prev")
- end,
- desc = "Previous change",
- },
- -- increment/decrement numbers
- { "<leader>+", "<C-a>", desc = "Increment number" }, -- increment
- { "<leader>-", "<C-x>", desc = "Decrement number" }, -- decrement
- { "<leader>to", "<cmd>tabnew<CR>", desc = "Open new tab" }, -- open new tab
- { "<leader>tx", "<cmd>tabclose<CR>", desc = "Close current tab" }, -- close current tab
- { "<leader>tn", "<cmd>tabn<CR>", desc = "Go to next tab" }, -- go to next tab
- { "<leader>tp", "<cmd>tabp<CR>", desc = "Go to previous tab" }, -- go to previous tab
- { "<leader>tf", "<cmd>tabnew %<CR>", desc = "Open current buffer in new tab" }, -- move current buffer to new tab
- {
- "<ESC>",
- ":noh<CR>",
- desc = "clears search highlights",
- noremap = true,
- silent = true,
- },
- {
- "<leader>ib",
- function()
- print(vim.bo.filetype)
- end,
- desc = "Print the filetype of current buffer",
- },
- -- { "<leader>uh", function() require("edgy").select("left") end, desc = "focus left" },
- },
- {
- mode = "v",
- { "<S-j>", ":m '>+1<CR>gv=gv", desc = "Move selection down" },
- { "<S-k>", ":m '<-2<CR>gv=gv", desc = "Move selection up" },
- -- Comment
- { "<leader>/", "gc", desc = "comment toggle", remap = true },
- {
- "<ESC>",
- ":noh<CR>",
- desc = "clears search highlights",
- noremap = true,
- silent = true,
- },
- },
- })
|