feat(nvim): tablines and potential for job management
parent
d58acd7bc2
commit
ba993d16f5
|
@ -62,11 +62,11 @@
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1683779844,
|
"lastModified": 1685948350,
|
||||||
"narHash": "sha256-sIeOU0GsCeQEn5TpqE/jFRN4EGsPsjqVRsPdrzIDABM=",
|
"narHash": "sha256-1FldJ059so0X/rScdbIiOlQbjjSNCCTdj2cUr5pHU4A=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "c80189917086e43d49eece2bd86f56813500a0eb",
|
"rev": "65211db63ba1199f09b4c9f27e5eba5ec50d76ac",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
-- What: Mono-file nvim configuration file Why: Easy to see through everything without needing to navigate thru files
|
-- What: Mono-file nvim configuration file Why: Easy to see through everything without needing to navigate thru files Features:
|
||||||
-- Features:
|
|
||||||
-- - LSP
|
-- - LSP
|
||||||
-- - Auto-complete (in insert mode: ctrl-space, navigate w/ Tab+S-Tab, confirm: Enter)
|
-- - Auto-complete (in insert mode: ctrl-space, navigate w/ Tab+S-Tab, confirm: Enter)
|
||||||
-- - <leader>df to format document
|
-- - <leader>df to format document
|
||||||
|
@ -174,6 +173,8 @@ vim.opt.backup = false
|
||||||
vim.opt.undodir = vim.fn.stdpath('state') .. '/.vim/undodir'
|
vim.opt.undodir = vim.fn.stdpath('state') .. '/.vim/undodir'
|
||||||
vim.opt.undofile = true
|
vim.opt.undofile = true
|
||||||
vim.opt.completeopt = 'menuone,noselect'
|
vim.opt.completeopt = 'menuone,noselect'
|
||||||
|
|
||||||
|
|
||||||
-- vim.opt.clipboard = "unnamedplus"
|
-- vim.opt.clipboard = "unnamedplus"
|
||||||
-- more aggressive swap file writing. ThePrimeagen believes higher number
|
-- more aggressive swap file writing. ThePrimeagen believes higher number
|
||||||
-- leads to low DX
|
-- leads to low DX
|
||||||
|
@ -356,6 +357,46 @@ remap('n', '<leader>zg', function()
|
||||||
vim.cmd(":ZkGrep")
|
vim.cmd(":ZkGrep")
|
||||||
end, { desc = '[Z]ettelkasten [G]rep' })
|
end, { desc = '[Z]ettelkasten [G]rep' })
|
||||||
|
|
||||||
|
-- tab management {{{
|
||||||
|
|
||||||
|
-- Jump to specific tab with <C-t>[number]
|
||||||
|
for i = 1, 9 do
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-t>' .. i, ':tabn ' .. i .. '<CR>', { noremap = true, silent = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Show tab number in tab display
|
||||||
|
vim.o.showtabline = 1
|
||||||
|
vim.o.tabline = '%!v:lua.my_tabline()'
|
||||||
|
|
||||||
|
function _G.my_tabline()
|
||||||
|
local s = ''
|
||||||
|
for i = 1, vim.fn.tabpagenr('$') do
|
||||||
|
if i == vim.fn.tabpagenr() then
|
||||||
|
s = s .. '%' .. i .. 'T%#TabLineSel#'
|
||||||
|
else
|
||||||
|
s = s .. '%' .. i .. 'T%#TabLine#'
|
||||||
|
end
|
||||||
|
local tab = vim.fn.gettabinfo(i)[1]
|
||||||
|
local tabbuf = tab.variables.buffers
|
||||||
|
local bufname = "<unknown>"
|
||||||
|
if tabbuf then
|
||||||
|
bufname = tabbuf[tab.curwin].name
|
||||||
|
end
|
||||||
|
-- Canonicalize tab/buf name
|
||||||
|
s = s .. ' ' .. i .. ' ' .. vim.fn.fnamemodify(bufname, ':t')
|
||||||
|
if i ~= vim.fn.tabpagenr('$') then
|
||||||
|
s = s .. '%#TabLine#|%#TabLine#'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return s .. '%T%#TabLineFill#%='
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Close all tabs except the first one
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-t>x', ':tabdo if tabpagenr() > 1 | tabclose | endif<CR>',
|
||||||
|
{ noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- }}}
|
||||||
|
|
||||||
-- treesitter
|
-- treesitter
|
||||||
require 'treesitter-context'
|
require 'treesitter-context'
|
||||||
require('nvim-treesitter.configs').setup {
|
require('nvim-treesitter.configs').setup {
|
||||||
|
@ -496,6 +537,7 @@ local on_attach = function(client, bufnr)
|
||||||
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
|
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
|
||||||
|
|
||||||
-- Lesser used LSP functionality
|
-- Lesser used LSP functionality
|
||||||
|
|
||||||
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||||
nmap('gtd', vim.lsp.buf.type_definition, '[G]oto [T]ype [D]efinition')
|
nmap('gtd', vim.lsp.buf.type_definition, '[G]oto [T]ype [D]efinition')
|
||||||
nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
|
nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
|
||||||
|
@ -622,8 +664,8 @@ require("mason").setup({
|
||||||
PATH = "append",
|
PATH = "append",
|
||||||
})
|
})
|
||||||
require('mason-lspconfig').setup({
|
require('mason-lspconfig').setup({
|
||||||
ensure_installed = servers,
|
-- ensure_installed = servers,
|
||||||
automatic_installation = true
|
automatic_installation = false
|
||||||
})
|
})
|
||||||
|
|
||||||
local inlay_hint_tsjs = {
|
local inlay_hint_tsjs = {
|
||||||
|
@ -661,7 +703,9 @@ require('mason-lspconfig').setup_handlers({
|
||||||
library = vim.api.nvim_get_runtime_file('', true)
|
library = vim.api.nvim_get_runtime_file('', true)
|
||||||
},
|
},
|
||||||
telemetry = { enable = false },
|
telemetry = { enable = false },
|
||||||
hint = { enable = true, },
|
hint = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
format = {
|
format = {
|
||||||
enable = true,
|
enable = true,
|
||||||
defaultConfig = {
|
defaultConfig = {
|
||||||
|
@ -783,7 +827,7 @@ require("rust-tools").setup {
|
||||||
-- default: true
|
-- default: true
|
||||||
auto = false,
|
auto = false,
|
||||||
-- Only show inlay hints for the current line
|
-- Only show inlay hints for the current line
|
||||||
only_current_line = false,
|
only_current_line = true,
|
||||||
-- whether to show parameter hints with the inlay hints or not
|
-- whether to show parameter hints with the inlay hints or not
|
||||||
-- default: true
|
-- default: true
|
||||||
show_parameter_hints = true,
|
show_parameter_hints = true,
|
||||||
|
@ -801,8 +845,8 @@ require("rust-tools").setup {
|
||||||
right_align = false,
|
right_align = false,
|
||||||
-- padding from the right if right_align is true
|
-- padding from the right if right_align is true
|
||||||
right_align_padding = 7,
|
right_align_padding = 7,
|
||||||
-- The color of the hints
|
-- The color of the hints use `:highlight` for a pick-and-choose menu
|
||||||
highlight = "Comment",
|
highlight = "NonText",
|
||||||
},
|
},
|
||||||
-- options same as lsp hover / vim.lsp.util.open_floating_preview()
|
-- options same as lsp hover / vim.lsp.util.open_floating_preview()
|
||||||
hover_actions = {
|
hover_actions = {
|
||||||
|
|
Loading…
Reference in New Issue