From aa2e1e9313a59caa658318719d6181d817055ad9 Mon Sep 17 00:00:00 2001 From: srdusr Date: Sun, 12 Feb 2023 16:52:00 +0200 Subject: New mapping for lazygit through toggleterm --- lua/user/keys.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lua/user/keys.lua b/lua/user/keys.lua index d92b642..4556510 100644 --- a/lua/user/keys.lua +++ b/lua/user/keys.lua @@ -216,7 +216,7 @@ map('n', '', 'NavigatorDown') --map("n", "tt", "ToggleTerm") -- LazyGit -map("n", "gg", ":LazyGit") +map({"n", "t"}, "gg", "lua Lazygit_toggle()") -- Fugitive git bindings map("n", "ga", ":Git add %:p") @@ -237,7 +237,6 @@ map("n", "gm", ":Gmove") --map("n", "gps", ":Dispatch! git push") --map("n", "gpl", ":Dispatch! git pull") -- map[""] = { "ToggleTerm", desc = "Toggle terminal" } --- map["gg"] = { function() toggle_term_cmd "lazygit" end, desc = "ToggleTerm lazygit" } -- map["tn"] = { function() toggle_term_cmd "node" end, desc = "ToggleTerm node" } -- map["tu"] = { function() toggle_term_cmd "ncdu" end, desc = "ToggleTerm NCDU" } -- map["tt"] = { function() toggle_term_cmd "htop" end, desc = "ToggleTerm htop" } -- cgit v1.2.3 From 565f74484110409e8bdc1269d4ef1953e61d98be Mon Sep 17 00:00:00 2001 From: srdusr Date: Sun, 12 Feb 2023 16:52:30 +0200 Subject: Add a function to determine if a value of any type is empty --- lua/user/utils.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lua/user/utils.lua b/lua/user/utils.lua index 07867a4..f70fac5 100644 --- a/lua/user/utils.lua +++ b/lua/user/utils.lua @@ -26,6 +26,20 @@ M.has = function(feat) end +-------------------------------------------------- + +---Determine if a value of any type is empty +---@param item any +---@return boolean? +function M.empty(item) + if not item then return true end + local item_type = type(item) + if item_type == 'string' then return item == '' end + if item_type == 'number' then return item <= 0 end + if item_type == 'table' then return vim.tbl_isempty(item) end + return item ~= nil +end + -------------------------------------------------- --- Create a dir if it does not exist -- cgit v1.2.3 From fd1a403f9e0507a861321eac3ff5b5bf8bd929f0 Mon Sep 17 00:00:00 2001 From: srdusr Date: Sun, 12 Feb 2023 16:53:18 +0200 Subject: Various fixes for lazygit including mappings and UI --- lua/plugins/toggleterm.lua | 71 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 12 deletions(-) diff --git a/lua/plugins/toggleterm.lua b/lua/plugins/toggleterm.lua index 0c3c45f..024c2f6 100644 --- a/lua/plugins/toggleterm.lua +++ b/lua/plugins/toggleterm.lua @@ -4,13 +4,13 @@ if not status_ok then end toggleterm.setup({ - size = function(term) - if term.direction == "horizontal" then - return 12 - elseif term.direction == "vertical" then - return vim.o.columns * 0.3 - end - end, + --size = function(term) + -- if term.direction == "horizontal" then + -- return 12 + -- elseif term.direction == "vertical" then + -- return vim.o.columns * 0.3 + -- end + --end, --size = 20, open_mapping = [[tt]], hide_numbers = true, @@ -31,7 +31,18 @@ toggleterm.setup({ Normal = { background = "#000000", }, - }, + --float_opts = { + -- border = as.style.current.border, + -- winblend = 3, + --}, + size = function(term) + if term.direction == 'horizontal' then + return 15 + elseif term.direction == 'vertical' then + return math.floor(vim.o.columns * 0.4) + end + end, + }, float_opts = { width = 70, height = 15, @@ -44,6 +55,14 @@ toggleterm.setup({ }, }, }) +local utils = require("user.utils") +local float_handler = function(term) + + if not utils.empty(vim.fn.mapcheck('jj', 't')) then + vim.keymap.del('t', 'jj', { buffer = term.bufnr }) + vim.keymap.del('t', '', { buffer = term.bufnr }) + end +end function _G.set_terminal_keymaps() local opts = { noremap = true } @@ -56,13 +75,40 @@ function _G.set_terminal_keymaps() vim.api.nvim_buf_set_keymap(0, "t", "", [[l]], opts) end -vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()") +-- if you only want these mappings for toggle term use term://*toggleterm#* instead +vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') +--vim.cmd("autocmd! TermOpen term://*toggleterm#* lua set_terminal_keymaps()") local Terminal = require("toggleterm.terminal").Terminal -local lazygit = Terminal:new({ cmd = "lazygit", hidden = true }) +local lazygit = Terminal:new({ + cmd = "lazygit", + count = 5, + dir = "git_dir", + direction = "float", + on_open = float_handler, + hidden = true, + float_opts = { + border = { '╒', '═', '╕', '│', '╛', '═', '╘', '│' }, + width = 150, + height = 40 + }, + ---- Function to run on opening the terminal + --on_open = function(term) + -- vim.api.nvim_buf_set_keymap(term.bufnr, 'n', 'q', 'close', + -- {noremap = true, silent = true}) + -- vim.api.nvim_buf_set_keymap(term.bufnr, 'n', '', 'close', + -- {noremap = true, silent = true}) + -- vim.api.nvim_buf_set_keymap(term.bufnr, 'n', '', 'close', + -- {noremap = true, silent = true}) + --end, + ---- Function to run on closing the terminal + --on_close = function(term) + -- vim.cmd("startinsert!") + --end +}) -function _LAZYGIT_TOGGLE() - lazygit:toggle() +function Lazygit_toggle() + lazygit:toggle() end local node = Terminal:new({ cmd = "node", hidden = true }) @@ -88,3 +134,4 @@ local python = Terminal:new({ cmd = "python", hidden = true }) function _PYTHON_TOGGLE() python:toggle() end + -- cgit v1.2.3 From b10c2f1a3c45abf96194d73d5d546eef225dc06d Mon Sep 17 00:00:00 2001 From: srdusr Date: Sun, 12 Feb 2023 16:54:07 +0200 Subject: Changed deprecated 'sumneko_lua' to 'lua_ls' --- lua/plugins/lsp.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 2d3944a..548df74 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -11,7 +11,7 @@ require('mason').setup() require("mason-lspconfig").setup({ ensure_installed = { "clangd", - "sumneko_lua", + "lua_ls", "pylsp", "pyright", }, @@ -223,7 +223,7 @@ if utils.executable("bash-language-server") then end if utils.executable("lua-language-server") then - lspconfig.sumneko_lua.setup({ + lspconfig.lua_ls.setup({ on_attach = on_attach, settings = { Lua = { -- cgit v1.2.3