feat(nvim): migrate from toggleterm to slimux (#73)
Instead of using the native terminal available in `neovim` and the [toggleterm][0] extension, I'm migrating to [slimux][1] and `tmux` to share commands between terminals. Co-authored-by: Joao P Dubas <joao.dubas@gmail.com> Reviewed-on: #73 [0]: https://github.com/akinsho/toggleterm.nvim [1]: https://github.com/EvWilson/slimux.nvim Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com> Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
This commit is contained in:
parent
9f362ad837
commit
dcda21f824
@ -183,7 +183,7 @@ COPY ./patch/kickstart.nvim/updates.patch /tmp
|
|||||||
COPY ./config/nvim/lua/custom/plugins/init.lua /tmp
|
COPY ./config/nvim/lua/custom/plugins/init.lua /tmp
|
||||||
RUN git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME}"/nvim \
|
RUN git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME}"/nvim \
|
||||||
&& cd ${XDG_CONFIG_HOME}/nvim \
|
&& cd ${XDG_CONFIG_HOME}/nvim \
|
||||||
&& git reset --hard 186018483039b20dc39d7991e4fb28090dd4750e \
|
&& git reset --hard 7201dc480134f41dd1be1f8f9b8f8470aac82a3b \
|
||||||
&& git apply /tmp/updates.patch \
|
&& git apply /tmp/updates.patch \
|
||||||
&& cp /tmp/init.lua ${XDG_CONFIG_HOME}/nvim/lua/custom/plugins \
|
&& cp /tmp/init.lua ${XDG_CONFIG_HOME}/nvim/lua/custom/plugins \
|
||||||
&& nvim --headless "+Lazy! sync" +qa
|
&& nvim --headless "+Lazy! sync" +qa
|
||||||
|
@ -104,82 +104,19 @@ return {
|
|||||||
priority = 1000,
|
priority = 1000,
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
-- {
|
|
||||||
-- 'rest-nvim/rest.nvim',
|
|
||||||
-- dependencies = { 'luarocks.nvim' },
|
|
||||||
-- ft = {
|
|
||||||
-- 'http',
|
|
||||||
-- 'rest',
|
|
||||||
-- },
|
|
||||||
-- config = function()
|
|
||||||
-- require('rest-nvim').setup {
|
|
||||||
-- client = 'curl',
|
|
||||||
-- custom_dynamic_variables = {},
|
|
||||||
-- encode_url = true,
|
|
||||||
-- env_file = '.env',
|
|
||||||
-- skip_ssl_verification = false,
|
|
||||||
-- highlight = {
|
|
||||||
-- enable = true,
|
|
||||||
-- timeout = 15,
|
|
||||||
-- },
|
|
||||||
-- result = {
|
|
||||||
-- behavior = {
|
|
||||||
-- decode_url = true,
|
|
||||||
-- formatters = {
|
|
||||||
-- json = 'jq',
|
|
||||||
-- html = false,
|
|
||||||
-- },
|
|
||||||
-- show_info = {
|
|
||||||
-- curl_command = true,
|
|
||||||
-- headers = true,
|
|
||||||
-- http_info = true,
|
|
||||||
-- url = true,
|
|
||||||
-- },
|
|
||||||
-- statistics = {
|
|
||||||
-- enable = true,
|
|
||||||
-- stats = {
|
|
||||||
-- { 'total_time', title = 'Time taken:' },
|
|
||||||
-- { 'size_download_t', title = 'Download size:' },
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- split = {
|
|
||||||
-- horizontal = false,
|
|
||||||
-- in_place = false,
|
|
||||||
-- },
|
|
||||||
-- },
|
|
||||||
-- }
|
|
||||||
-- end,
|
|
||||||
-- keys = function()
|
|
||||||
-- local status_ok, which_key = pcall(require, 'which-key')
|
|
||||||
-- if status_ok then
|
|
||||||
-- which_key.register {
|
|
||||||
-- ['<leader>t'] = { name = 'Res[t]', _ = 'which_key_ignore' },
|
|
||||||
-- }
|
|
||||||
-- end
|
|
||||||
-- return {
|
|
||||||
-- { '<leader>tr', '<cmd>Rest run<cr>', desc = 'Run the request under cursor' },
|
|
||||||
-- {
|
|
||||||
-- '<leader>tp',
|
|
||||||
-- '<Plug>RestNvimPreview',
|
|
||||||
-- desc = 'Preview the curl command for the request under cursor',
|
|
||||||
-- },
|
|
||||||
-- { '<leader>tl', '<cmd>Rest run last<cr>', desc = 'Re-run the last request' },
|
|
||||||
-- }
|
|
||||||
-- end,
|
|
||||||
-- },
|
|
||||||
{
|
{
|
||||||
'akinsho/toggleterm.nvim',
|
'EvWilson/slimux.nvim',
|
||||||
opts = {
|
lazy = true,
|
||||||
size = vim.o.lines * 0.75,
|
opts = function()
|
||||||
open_mapping = [[<c-\>]],
|
local status_ok, slimux = pcall(require, 'slimux')
|
||||||
hide_numbers = true,
|
if not status_ok then
|
||||||
shade_filetypes = {},
|
return {}
|
||||||
shade_terminals = true,
|
end
|
||||||
shading_factor = 2,
|
return {
|
||||||
direction = 'horizontal',
|
target_socket = slimux.get_tmux_socket(),
|
||||||
shell = vim.o.shell,
|
target_pane = string.format('%s.1', slimux.get_tmux_window()),
|
||||||
},
|
}
|
||||||
|
end,
|
||||||
keys = function()
|
keys = function()
|
||||||
local status_ok, which_key = pcall(require, 'which-key')
|
local status_ok, which_key = pcall(require, 'which-key')
|
||||||
if status_ok then
|
if status_ok then
|
||||||
@ -187,38 +124,22 @@ return {
|
|||||||
{ '<leader>m', group = 'Toggle ter[m]inal' },
|
{ '<leader>m', group = 'Toggle ter[m]inal' },
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
vim.api.nvim_create_autocmd('TermOpen', {
|
local slimux_status_ok, slimux = pcall(require, 'slimux')
|
||||||
group = vim.api.nvim_create_augroup('kickstart-custom-term-open-mapping', { clear = true }),
|
if not slimux_status_ok then
|
||||||
callback = function(args)
|
return {}
|
||||||
local bufnr = args.buf
|
end
|
||||||
local opts = { buffer = bufnr }
|
|
||||||
vim.keymap.set('t', '<esc>', [[<C-\><C-n>]], opts)
|
|
||||||
vim.keymap.set('t', 'jk', [[<C-\><C-n>]], opts)
|
|
||||||
vim.keymap.set('t', '<C-h>', [[<cmd>wincmd h<cr>]], opts)
|
|
||||||
vim.keymap.set('t', '<C-j>', [[<cmd>wincmd j<cr>]], opts)
|
|
||||||
vim.keymap.set('t', '<C-k>', [[<cmd>wincmd k<cr>]], opts)
|
|
||||||
vim.keymap.set('t', '<C-l>', [[<cmd>wincmd l<cr>]], opts)
|
|
||||||
vim.keymap.set('t', '<C-w>', [[<C-\><C-n><C-w>]], opts)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
'<leader>mh',
|
'<leader>xr',
|
||||||
'<cmd>ToggleTerm direction=horizontal size=' .. tostring(vim.o.lines * 0.75) .. '<cr>',
|
slimux.send_highlighted_text,
|
||||||
desc = 'Open ter[m]inal [h]orizontally',
|
mode = 'v',
|
||||||
noremap = true,
|
desc = 'Send currently highlighted text to configured tmux pane',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'<leader>mv',
|
'<leader>r',
|
||||||
'<cmd>ToggleTerm direction=vertical size=' .. tostring(vim.o.columns * 0.5) .. '<cr>',
|
slimux.send_paragraph_text,
|
||||||
desc = 'Open ter[m]inal [v]ertically',
|
mode = 'n',
|
||||||
noremap = true,
|
desc = 'Send paragraph under cursor to configured tmux pane',
|
||||||
},
|
|
||||||
{
|
|
||||||
'<leader>mc',
|
|
||||||
'<cmd>ToggleTermSendCurrentLine<cr>',
|
|
||||||
desc = 'Send [c]urrent line under the cursor',
|
|
||||||
noremap = true,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
diff --git a/init.lua b/init.lua
|
diff --git a/init.lua b/init.lua
|
||||||
index 220d304..62a9702 100644
|
index ea86b79..93250ab 100644
|
||||||
--- a/init.lua
|
--- a/init.lua
|
||||||
+++ b/init.lua
|
+++ b/init.lua
|
||||||
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
||||||
@ -39,8 +39,8 @@ index 220d304..62a9702 100644
|
|||||||
-- [[ Basic Keymaps ]]
|
-- [[ Basic Keymaps ]]
|
||||||
-- See `:help vim.keymap.set()`
|
-- See `:help vim.keymap.set()`
|
||||||
|
|
||||||
@@ -582,6 +590,28 @@ require('lazy').setup({
|
@@ -618,6 +626,28 @@ require('lazy').setup({
|
||||||
-- tsserver = {},
|
-- ts_ls = {},
|
||||||
--
|
--
|
||||||
|
|
||||||
+ cuelsp = {},
|
+ cuelsp = {},
|
||||||
@ -68,7 +68,7 @@ index 220d304..62a9702 100644
|
|||||||
lua_ls = {
|
lua_ls = {
|
||||||
-- cmd = {...},
|
-- cmd = {...},
|
||||||
-- filetypes = { ...},
|
-- filetypes = { ...},
|
||||||
@@ -596,6 +626,33 @@ require('lazy').setup({
|
@@ -632,6 +662,33 @@ require('lazy').setup({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -76,7 +76,7 @@ index 220d304..62a9702 100644
|
|||||||
+ r_language_server = {},
|
+ r_language_server = {},
|
||||||
+ templ = {},
|
+ templ = {},
|
||||||
+ terraformls = {},
|
+ terraformls = {},
|
||||||
+ tsserver = {},
|
+ ts_ls = {},
|
||||||
+ yamlls = {
|
+ yamlls = {
|
||||||
+ settings = {
|
+ settings = {
|
||||||
+ yaml = {
|
+ yaml = {
|
||||||
@ -102,9 +102,9 @@ index 220d304..62a9702 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Ensure the servers and tools above are installed
|
-- Ensure the servers and tools above are installed
|
||||||
@@ -622,6 +679,33 @@ require('lazy').setup({
|
@@ -658,6 +715,33 @@ require('lazy').setup({
|
||||||
-- by the server configuration above. Useful when disabling
|
-- by the server configuration above. Useful when disabling
|
||||||
-- certain features of an LSP (for example, turning off formatting for tsserver)
|
-- certain features of an LSP (for example, turning off formatting for ts_ls)
|
||||||
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
|
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
|
||||||
+ -- overwrite elixirls for older versions of elixir
|
+ -- overwrite elixirls for older versions of elixir
|
||||||
+ -- * elixir 1.11 use version 0.12.0
|
+ -- * elixir 1.11 use version 0.12.0
|
||||||
@ -136,9 +136,9 @@ index 220d304..62a9702 100644
|
|||||||
require('lspconfig')[server_name].setup(server)
|
require('lspconfig')[server_name].setup(server)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
@@ -844,7 +928,39 @@ require('lazy').setup({
|
@@ -888,7 +972,39 @@ require('lazy').setup({
|
||||||
'nvim-treesitter/nvim-treesitter',
|
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||||
build = ':TSUpdate',
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
opts = {
|
opts = {
|
||||||
- ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
- ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
||||||
+ ensure_installed = {
|
+ ensure_installed = {
|
||||||
@ -177,7 +177,7 @@ index 220d304..62a9702 100644
|
|||||||
-- Autoinstall languages that are not installed
|
-- Autoinstall languages that are not installed
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
@@ -881,18 +997,18 @@ require('lazy').setup({
|
@@ -918,18 +1034,18 @@ require('lazy').setup({
|
||||||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||||
--
|
--
|
||||||
-- require 'kickstart.plugins.debug',
|
-- require 'kickstart.plugins.debug',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user