✨ feat(nvim): added floaterm as extra instead of default terminal
This commit is contained in:
parent
84c4f999c4
commit
fd1d904641
7 changed files with 32 additions and 175 deletions
|
@ -59,6 +59,7 @@ vim.api.nvim_create_autocmd("FileType", {
|
||||||
"neo-tree-popup",
|
"neo-tree-popup",
|
||||||
"TelescopePrompt",
|
"TelescopePrompt",
|
||||||
"notify",
|
"notify",
|
||||||
|
"floaterm",
|
||||||
},
|
},
|
||||||
callback = function(event)
|
callback = function(event)
|
||||||
vim.keymap.set("n", "<leader>", "<nop>", { buffer = event.buf, desc = "" })
|
vim.keymap.set("n", "<leader>", "<nop>", { buffer = event.buf, desc = "" })
|
||||||
|
@ -66,6 +67,7 @@ vim.api.nvim_create_autocmd("FileType", {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Delete number column on terminals
|
||||||
vim.api.nvim_create_autocmd("TermOpen", {
|
vim.api.nvim_create_autocmd("TermOpen", {
|
||||||
callback = function()
|
callback = function()
|
||||||
vim.cmd("setlocal listchars= nonumber norelativenumber")
|
vim.cmd("setlocal listchars= nonumber norelativenumber")
|
||||||
|
|
|
@ -26,7 +26,6 @@ map("x", "<leader>?", function()
|
||||||
google(vim.fn.getreg("g"), false)
|
google(vim.fn.getreg("g"), false)
|
||||||
end, { desc = "Google" })
|
end, { desc = "Google" })
|
||||||
|
|
||||||
map("n", "<leader>ft", "<Nop>")
|
|
||||||
map("n", "<leader>fT", "<Nop>")
|
map("n", "<leader>fT", "<Nop>")
|
||||||
|
|
||||||
map("n", "<C-d>", "<C-d>zz")
|
map("n", "<C-d>", "<C-d>zz")
|
||||||
|
|
|
@ -93,6 +93,7 @@ return {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"voldikss/vim-floaterm",
|
"voldikss/vim-floaterm",
|
||||||
|
optional = true,
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
"<leader>CT",
|
"<leader>CT",
|
||||||
|
|
|
@ -36,6 +36,7 @@ return {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"voldikss/vim-floaterm",
|
"voldikss/vim-floaterm",
|
||||||
|
optional = true,
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
"<leader>pp",
|
"<leader>pp",
|
||||||
|
|
|
@ -26,7 +26,6 @@ return {
|
||||||
{ "<S-Left>", "<Esc><Esc><cmd>FloatermPrev<CR>", mode = { "t" }, desc = "Prev Terminal" },
|
{ "<S-Left>", "<Esc><Esc><cmd>FloatermPrev<CR>", mode = { "t" }, desc = "Prev Terminal" },
|
||||||
{ "<A-Right>", "<Esc><Esc><cmd>FloatermLast<CR>", mode = { "t" }, desc = "Last Terminal" },
|
{ "<A-Right>", "<Esc><Esc><cmd>FloatermLast<CR>", mode = { "t" }, desc = "Last Terminal" },
|
||||||
{ "<A-Left>", "<Esc><Esc><cmd>FloatermFirst<CR>", mode = { "t" }, desc = "First Terminal" },
|
{ "<A-Left>", "<Esc><Esc><cmd>FloatermFirst<CR>", mode = { "t" }, desc = "First Terminal" },
|
||||||
{ "<leader>st", "<cmd>Telescope floaterm<cr>", desc = "Terminals" },
|
|
||||||
{ [[<c-\>]], "<cmd>FloatermToggle<cr>", mode = { "n", "t" }, desc = "Toggle Terminal" },
|
{ [[<c-\>]], "<cmd>FloatermToggle<cr>", mode = { "n", "t" }, desc = "Toggle Terminal" },
|
||||||
{ "<leader>ftf", "<cmd>FloatermNew --name=floatroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd=<root><cr>", desc = "Floating (root dir)" },
|
{ "<leader>ftf", "<cmd>FloatermNew --name=floatroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd=<root><cr>", desc = "Floating (root dir)" },
|
||||||
{ "<leader>ftF", "<cmd>FloatermNew --name=floatbuffer --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd=<buffer><cr>", desc = "Floating (cwd)" },
|
{ "<leader>ftF", "<cmd>FloatermNew --name=floatbuffer --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd=<buffer><cr>", desc = "Floating (cwd)" },
|
||||||
|
@ -43,6 +42,9 @@ return {
|
||||||
require("telescope").load_extension("floaterm")
|
require("telescope").load_extension("floaterm")
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
|
keys = {
|
||||||
|
{ "<leader>st", "<cmd>Telescope floaterm<cr>", desc = "Terminals" },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"folke/which-key.nvim",
|
"folke/which-key.nvim",
|
||||||
|
@ -54,4 +56,29 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"folke/edgy.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.bottom, {
|
||||||
|
ft = "floaterm",
|
||||||
|
title = "Floaterm",
|
||||||
|
size = { height = 0.4 },
|
||||||
|
filter = function(buf, win)
|
||||||
|
return vim.api.nvim_win_get_config(win).relative == ""
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"goolord/alpha-nvim",
|
||||||
|
opts = function(_, dashboard)
|
||||||
|
-- stylua: ignore
|
||||||
|
local button = dashboard.button("G", " " .. " Git", "<cmd>FloatermNew --disposable --name=lazygitroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd=<root> lazygit<CR>")
|
||||||
|
button.opts.hl = "AlphaButtons"
|
||||||
|
button.opts.hl_shortcut = "AlphaShortcut"
|
||||||
|
table.insert(dashboard.section.buttons.val, 7, button)
|
||||||
|
return dashboard
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
|
@ -16,11 +16,6 @@ return {
|
||||||
]]
|
]]
|
||||||
|
|
||||||
dashboard.section.header.val = vim.split(logo, "\n")
|
dashboard.section.header.val = vim.split(logo, "\n")
|
||||||
-- stylua: ignore
|
|
||||||
local button = dashboard.button("G", " " .. " Git", "<cmd>FloatermNew --disposable --name=lazygitroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd=<root> lazygit<CR>")
|
|
||||||
button.opts.hl = "AlphaButtons"
|
|
||||||
button.opts.hl_shortcut = "AlphaShortcut"
|
|
||||||
table.insert(dashboard.section.buttons.val, 7, button)
|
|
||||||
return dashboard
|
return dashboard
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,168 +0,0 @@
|
||||||
return {
|
|
||||||
-- edgy
|
|
||||||
{
|
|
||||||
"folke/edgy.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>uE",
|
|
||||||
function()
|
|
||||||
require("edgy").select()
|
|
||||||
end,
|
|
||||||
desc = "Edgy Select Window",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
opts = function()
|
|
||||||
local opts = {
|
|
||||||
bottom = {
|
|
||||||
{
|
|
||||||
ft = "floaterm",
|
|
||||||
title = "Floaterm",
|
|
||||||
size = { height = 0.4 },
|
|
||||||
filter = function(buf, win)
|
|
||||||
return vim.api.nvim_win_get_config(win).relative == ""
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ft = "noice",
|
|
||||||
size = { height = 0.4 },
|
|
||||||
filter = function(buf, win)
|
|
||||||
return vim.api.nvim_win_get_config(win).relative == ""
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
"Trouble",
|
|
||||||
{
|
|
||||||
ft = "trouble",
|
|
||||||
filter = function(buf, win)
|
|
||||||
return vim.api.nvim_win_get_config(win).relative == ""
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ ft = "qf", title = "QuickFix" },
|
|
||||||
{
|
|
||||||
ft = "help",
|
|
||||||
size = { height = 20 },
|
|
||||||
-- don't open help files in edgy that we're editing
|
|
||||||
filter = function(buf)
|
|
||||||
return vim.bo[buf].buftype == "help"
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{ title = "Spectre", ft = "spectre_panel", size = { height = 0.4 } },
|
|
||||||
{ title = "Neotest Output", ft = "neotest-output-panel", size = { height = 15 } },
|
|
||||||
},
|
|
||||||
left = {
|
|
||||||
{
|
|
||||||
title = "Neo-Tree",
|
|
||||||
ft = "neo-tree",
|
|
||||||
filter = function(buf)
|
|
||||||
return vim.b[buf].neo_tree_source == "filesystem"
|
|
||||||
end,
|
|
||||||
pinned = true,
|
|
||||||
open = function()
|
|
||||||
vim.api.nvim_input("<esc><space>e")
|
|
||||||
end,
|
|
||||||
size = { height = 0.5 },
|
|
||||||
},
|
|
||||||
{ title = "Neotest Summary", ft = "neotest-summary" },
|
|
||||||
{
|
|
||||||
title = "Neo-Tree Git",
|
|
||||||
ft = "neo-tree",
|
|
||||||
filter = function(buf)
|
|
||||||
return vim.b[buf].neo_tree_source == "git_status"
|
|
||||||
end,
|
|
||||||
pinned = true,
|
|
||||||
open = "Neotree position=right git_status",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title = "Neo-Tree Buffers",
|
|
||||||
ft = "neo-tree",
|
|
||||||
filter = function(buf)
|
|
||||||
return vim.b[buf].neo_tree_source == "buffers"
|
|
||||||
end,
|
|
||||||
pinned = true,
|
|
||||||
open = "Neotree position=top buffers",
|
|
||||||
},
|
|
||||||
"neo-tree",
|
|
||||||
},
|
|
||||||
animate = {
|
|
||||||
enabled = false,
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
-- increase width
|
|
||||||
["<c-Right>"] = function(win)
|
|
||||||
win:resize("width", 2)
|
|
||||||
end,
|
|
||||||
-- decrease width
|
|
||||||
["<c-Left>"] = function(win)
|
|
||||||
win:resize("width", -2)
|
|
||||||
end,
|
|
||||||
-- increase height
|
|
||||||
["<c-Up>"] = function(win)
|
|
||||||
win:resize("height", 2)
|
|
||||||
end,
|
|
||||||
-- decrease height
|
|
||||||
["<c-Down>"] = function(win)
|
|
||||||
win:resize("height", -2)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return opts
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- use edgy's selection window
|
|
||||||
{
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
optional = true,
|
|
||||||
opts = {
|
|
||||||
defaults = {
|
|
||||||
get_selection_window = function()
|
|
||||||
require("edgy").goto_main()
|
|
||||||
return 0
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- prevent neo-tree from opening files in edgy windows
|
|
||||||
{
|
|
||||||
"nvim-neo-tree/neo-tree.nvim",
|
|
||||||
optional = true,
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.open_files_do_not_replace_types = opts.open_files_do_not_replace_types
|
|
||||||
or { "terminal", "Trouble", "qf", "Outline", "trouble" }
|
|
||||||
table.insert(opts.open_files_do_not_replace_types, "edgy")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Fix bufferline offsets when edgy is loaded
|
|
||||||
{
|
|
||||||
"akinsho/bufferline.nvim",
|
|
||||||
optional = true,
|
|
||||||
opts = function()
|
|
||||||
local Offset = require("bufferline.offset")
|
|
||||||
if not Offset.edgy then
|
|
||||||
local get = Offset.get
|
|
||||||
Offset.get = function()
|
|
||||||
if package.loaded.edgy then
|
|
||||||
local layout = require("edgy.config").layout
|
|
||||||
local ret = { left = "", left_size = 0, right = "", right_size = 0 }
|
|
||||||
for _, pos in ipairs({ "left", "right" }) do
|
|
||||||
local sb = layout[pos]
|
|
||||||
if sb and #sb.wins > 0 then
|
|
||||||
local title = " Sidebar" .. string.rep(" ", sb.bounds.width - 8)
|
|
||||||
ret[pos] = "%#EdgyTitle#" .. title .. "%*" .. "%#WinSeparator#│%*"
|
|
||||||
ret[pos .. "_size"] = sb.bounds.width
|
|
||||||
end
|
|
||||||
end
|
|
||||||
ret.total_size = ret.left_size + ret.right_size
|
|
||||||
if ret.total_size > 0 then
|
|
||||||
return ret
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return get()
|
|
||||||
end
|
|
||||||
Offset.edgy = true
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue