diff --git a/roles/nvim/files/lua/config/plugins/auto-session.lua b/roles/nvim/files/lua/config/plugins/auto-session.lua index 41ab516..d20dcac 100644 --- a/roles/nvim/files/lua/config/plugins/auto-session.lua +++ b/roles/nvim/files/lua/config/plugins/auto-session.lua @@ -29,12 +29,36 @@ return { local opts = { silent = true, noremap = true } + local function git_branch() + local branch = vim.trim(vim.fn.system('git branch --show-current 2>/dev/null')) + if vim.v.shell_error ~= 0 or branch == '' then return nil end + return branch + end + + local function session_save() + local branch = git_branch() + if branch then + vim.cmd('AutoSession save ' .. branch) + else + vim.cmd('AutoSession save') + end + end + + local function session_restore() + local branch = git_branch() + if branch then + vim.cmd('AutoSession restore ' .. branch) + else + vim.cmd('AutoSession restore') + end + end + local keymap = vim.keymap - keymap.set('n', 'ss', 'SessionSave', opts) - keymap.set('n', 'sq', 'SessionSavewaqa', opts) - keymap.set('n', 'sl', 'SessionSearch', opts) - keymap.set('n', 'sr', 'SessionRestore', opts) - keymap.set('n', 'sd', 'Autosession delete', opts) + keymap.set('n', 'ss', session_save, opts) + keymap.set('n', 'sq', function() session_save(); vim.cmd('wa | qa') end, opts) + keymap.set('n', 'sl', 'AutoSession search', opts) + keymap.set('n', 'sr', session_restore, opts) + keymap.set('n', 'sd', 'AutoSession delete', opts) local function named_save() vim.ui.input({ prompt = 'Enter Session name: ' }, function(input) diff --git a/roles/nvim/files/lua/config/plugins/lsp/lspconfig.lua b/roles/nvim/files/lua/config/plugins/lsp/lspconfig.lua index 11097f5..7d03f8f 100644 --- a/roles/nvim/files/lua/config/plugins/lsp/lspconfig.lua +++ b/roles/nvim/files/lua/config/plugins/lsp/lspconfig.lua @@ -85,7 +85,7 @@ return { -- Explicitly enable all mason-managed servers. -- This is belt-and-suspenders alongside mason-lspconfig's automatic_enable, -- ensuring servers start regardless of mason-lspconfig version. - vim.lsp.enable({ 'lua_ls', 'html', 'cssls', 'bashls', 'ts_ls', 'eslint' }) + vim.lsp.enable({ 'lua_ls', 'html', 'cssls', 'bashls', 'ts_ls', 'eslint', 'tailwindcss' }) -- hyprls: not managed by mason, enable manually vim.lsp.config('hyprls', { diff --git a/roles/nvim/files/lua/config/plugins/lsp/mason.lua b/roles/nvim/files/lua/config/plugins/lsp/mason.lua index 1285f90..4c7690a 100644 --- a/roles/nvim/files/lua/config/plugins/lsp/mason.lua +++ b/roles/nvim/files/lua/config/plugins/lsp/mason.lua @@ -32,7 +32,8 @@ return { -- 'emmet_ls', 'bashls', 'ts_ls', - 'eslint-lsp', + 'eslint', + 'tailwindcss', }, }) diff --git a/roles/nvim/files/lua/config/plugins/lsp/null-ls.lua b/roles/nvim/files/lua/config/plugins/lsp/null-ls.lua index 9bd2cb9..fca0bc1 100644 --- a/roles/nvim/files/lua/config/plugins/lsp/null-ls.lua +++ b/roles/nvim/files/lua/config/plugins/lsp/null-ls.lua @@ -33,7 +33,22 @@ return { local keymap = vim.keymap local fmt_func = function() - vim.lsp.buf.format({ async = true }) + local null_ls_active = false + for _, client in ipairs(vim.lsp.get_clients({ bufnr = 0 })) do + if client.name == "null-ls" then + null_ls_active = true + break + end + end + vim.lsp.buf.format({ + async = true, + filter = function(client) + if null_ls_active then + return client.name == "null-ls" + end + return true + end, + }) end keymap.set('n', 'ii', fmt_func, { noremap = true, silent = true }) diff --git a/roles/nvim/files/lua/config/plugins/telescope.lua b/roles/nvim/files/lua/config/plugins/telescope.lua index 969b793..657cac2 100644 --- a/roles/nvim/files/lua/config/plugins/telescope.lua +++ b/roles/nvim/files/lua/config/plugins/telescope.lua @@ -26,7 +26,7 @@ return { local keymap = vim.keymap local builtin = require('telescope.builtin') - keymap.set('n', 'ff', builtin.find_files, opts) + keymap.set('n', 'ff', function() builtin.find_files({ hidden = true }) end, opts) keymap.set('n', 'fh', builtin.oldfiles, opts) keymap.set('n', 'fs', builtin.live_grep, opts) keymap.set('n', 'fc', builtin.grep_string, opts) diff --git a/roles/zsh/files/.zshrc b/roles/zsh/files/.zshrc index c8e4998..724ab8b 100644 --- a/roles/zsh/files/.zshrc +++ b/roles/zsh/files/.zshrc @@ -50,3 +50,5 @@ fi alias drun='docker run -it --network=host --device=/dev/kfd --device=/dev/dri --group-add=video --ipc=host --cap-add=SYS_PTRACE --security-opt seccomp=unconfined' export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh" + +bindkey '^H' backward-kill-word