8 Commits

Author SHA1 Message Date
Natercio Moniz
41321a8818 optional backup when cleaning 2025-10-23 11:17:41 +01:00
Natercio Moniz
4d7c7b7c9e add a bunch of essential plugins 2025-08-26 20:19:13 +01:00
Natercio Moniz
a2d266132c add neoscroll plugin with circ easing 2025-08-13 10:22:28 +01:00
Natercio Moniz
9bb11a28e4 override quickfix and loclist to toggle instead of just show 2025-08-13 09:25:20 +01:00
Natercio Moniz
2f4095512a use tokyonight colorscheme 2025-08-12 13:36:38 +01:00
34ea1ee888 add mappings to move lines up and down 2025-08-12 09:56:51 +01:00
45458b78c1 only show cleanup actions that will apply 2025-08-12 09:46:40 +01:00
50dc0c9f93 add script to clean nvim stuff 2025-08-12 09:42:50 +01:00
7 changed files with 212 additions and 40 deletions

65
clean.sh Executable file
View File

@@ -0,0 +1,65 @@
#!/bin/bash
set -euo pipefail
SRC_DIRS=(
"$HOME/.local/share/nvim"
"$HOME/.local/state/nvim"
"$HOME/.cache/nvim"
)
# Ask if user wants to backup
printf "Do you want to backup before cleaning? [Y/n]: "
read -r BACKUP_CHOICE
case ${BACKUP_CHOICE:-} in
[nN]|[nN][oO])
BACKUP=false
;;
*)
BACKUP=true
TAG=.bak-$(date +%Y-%m-%d_%H-%M-%S)
;;
esac
# Show plan and confirm
printf "\n"
if [ "$BACKUP" = true ]; then
printf "This will back up and clean your Neovim directories.\n"
printf "Backup suffix to be appended: %s\n\n" "$TAG"
printf "Plan:\n"
for SRC in "${SRC_DIRS[@]}"; do
if [ -e "$SRC" ]; then
DEST="${SRC}${TAG}"
printf " %s ➡️ %s\n" "$SRC" "$DEST"
fi
done
else
printf "This will remove your Neovim directories WITHOUT backup.\n\n"
printf "Plan:\n"
for SRC in "${SRC_DIRS[@]}"; do
if [ -e "$SRC" ]; then
printf " %s ❌\n" "$SRC"
fi
done
fi
printf "\n"
read -r -p "Are you sure you want to proceed? [y/N]: " CONFIRM
case ${CONFIRM:-} in
[yY]|[yY][eE][sS]) ;;
*) printf "Aborted!\n"; exit 0;;
esac
# Perform action based on backup choice
for SRC in "${SRC_DIRS[@]}"; do
if [ -e "$SRC" ]; then
if [ "$BACKUP" = true ]; then
DEST="${SRC}${TAG}"
mv "$SRC" "$DEST"
else
rm -rf "$SRC"
fi
fi
done
printf "Done!"

View File

@@ -6,6 +6,13 @@
return { return {
'AstroNvim/astrocommunity', 'AstroNvim/astrocommunity',
{ import = 'astrocommunity.pack.lua' }, { import = 'astrocommunity.colorscheme.tokyonight-nvim' },
{ import = 'astrocommunity.editing-support.conform-nvim' },
{ import = 'astrocommunity.git.diffview-nvim' },
{ import = 'astrocommunity.pack.go' }, { import = 'astrocommunity.pack.go' },
{ import = 'astrocommunity.pack.lua' },
{ import = 'astrocommunity.test.neotest' },
} }

View File

@@ -5,7 +5,7 @@
---@type LazySpec ---@type LazySpec
return { return {
"AstroNvim/astrocore", 'AstroNvim/astrocore',
---@type AstroCoreOpts ---@type AstroCoreOpts
opts = { opts = {
-- Configure core features of AstroNvim -- Configure core features of AstroNvim
@@ -26,13 +26,13 @@ return {
filetypes = { filetypes = {
-- see `:h vim.filetype.add` for usage -- see `:h vim.filetype.add` for usage
extension = { extension = {
foo = "fooscript", foo = 'fooscript',
}, },
filename = { filename = {
[".foorc"] = "fooscript", ['.foorc'] = 'fooscript',
}, },
pattern = { pattern = {
[".*/etc/foo/.*"] = "fooscript", ['.*/etc/foo/.*'] = 'fooscript',
}, },
}, },
-- vim options can be configured here -- vim options can be configured here
@@ -41,7 +41,7 @@ return {
relativenumber = true, -- sets vim.opt.relativenumber relativenumber = true, -- sets vim.opt.relativenumber
number = true, -- sets vim.opt.number number = true, -- sets vim.opt.number
spell = false, -- sets vim.opt.spell spell = false, -- sets vim.opt.spell
signcolumn = "yes", -- sets vim.opt.signcolumn to yes signcolumn = 'yes', -- sets vim.opt.signcolumn to yes
wrap = false, -- sets vim.opt.wrap wrap = false, -- sets vim.opt.wrap
}, },
g = { -- vim.g.<key> g = { -- vim.g.<key>
@@ -58,17 +58,94 @@ return {
-- second key is the lefthand side of the map -- second key is the lefthand side of the map
-- navigate buffer tabs -- navigate buffer tabs
["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" }, [']b'] = {
["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" }, function()
require('astrocore.buffer').nav(vim.v.count1)
end,
desc = 'Next buffer',
},
['[b'] = {
function()
require('astrocore.buffer').nav(-vim.v.count1)
end,
desc = 'Previous buffer',
},
-- mappings seen under group name "Buffer" -- mappings seen under group name "Buffer"
["<Leader>bd"] = { ['<Leader>bd'] = {
function() function()
require("astroui.status.heirline").buffer_picker( require('astroui.status.heirline').buffer_picker(function(bufnr)
function(bufnr) require("astrocore.buffer").close(bufnr) end require('astrocore.buffer').close(bufnr)
) end)
end, end,
desc = "Close buffer from tabline", desc = 'Close buffer from tabline',
},
['<Leader>xq'] = {
function()
local win_id
for _, win in ipairs(vim.fn.getwininfo()) do
if win.quickfix == 1 then
win_id = win.winid
break
end
end
if win_id then
if vim.api.nvim_get_current_win() ~= win_id then
vim.api.nvim_set_current_win(win_id)
else
vim.cmd.cclose()
end
else
vim.cmd.copen()
end
end,
desc = 'Toggle Quickfix list',
},
['<Leader>xl'] = {
function()
local win_id
for _, win in ipairs(vim.fn.getwininfo()) do
if win.loclist == 1 then
win_id = win.winid
break
end
end
if win_id then
if vim.api.nvim_get_current_win() ~= win_id then
vim.api.nvim_set_current_win(win_id)
else
vim.cmd.lclose()
end
else
vim.cmd.lopen()
end
end,
desc = 'Toggle Local list',
},
['<Leader>tr'] = {
function()
require('neotest').run.run()
end,
desc = 'Test: run nearest test',
},
['<Leader>td'] = {
function()
require('neotest').run.run { strategy = 'dap' }
end,
desc = 'Test: debug nearest test',
},
['<Leader>ta'] = {
function()
require('neotest').run.run(vim.fn.expand '%')
end,
desc = 'Test: run all test in file',
}, },
-- tables with just a `desc` key will be registered with which-key if it's installed -- tables with just a `desc` key will be registered with which-key if it's installed
@@ -78,6 +155,11 @@ return {
-- setting a mapping to false will disable it -- setting a mapping to false will disable it
-- ["<C-S>"] = false, -- ["<C-S>"] = false,
}, },
v = {
['J'] = ":m '>+1<CR>gv=gv",
['K'] = ":m '<-2<CR>gv=gv",
},
}, },
}, },
} }

View File

@@ -5,7 +5,7 @@
---@type LazySpec ---@type LazySpec
return { return {
"AstroNvim/astrolsp", 'AstroNvim/astrolsp',
---@type AstroLSPOpts ---@type AstroLSPOpts
opts = { opts = {
-- Configuration table of features provided by AstroLSP -- Configuration table of features provided by AstroLSP
@@ -61,16 +61,18 @@ return {
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean` -- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
-- condition will be resolved for each client on each execution and if it ever fails for all clients, -- condition will be resolved for each client on each execution and if it ever fails for all clients,
-- the auto commands will be deleted for that buffer -- the auto commands will be deleted for that buffer
cond = "textDocument/codeLens", cond = 'textDocument/codeLens',
-- cond = function(client, bufnr) return client.name == "lua_ls" end, -- cond = function(client, bufnr) return client.name == "lua_ls" end,
-- list of auto commands to set -- list of auto commands to set
{ {
-- events to trigger -- events to trigger
event = { "InsertLeave", "BufEnter" }, event = { 'InsertLeave', 'BufEnter' },
-- the rest of the autocmd options (:h nvim_create_autocmd) -- the rest of the autocmd options (:h nvim_create_autocmd)
desc = "Refresh codelens (buffer)", desc = 'Refresh codelens (buffer)',
callback = function(args) callback = function(args)
if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end if require('astrolsp').config.features.codelens then
vim.lsp.codelens.refresh { bufnr = args.buf }
end
end, end,
}, },
}, },
@@ -80,19 +82,24 @@ return {
n = { n = {
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean -- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
gD = { gD = {
function() vim.lsp.buf.declaration() end, function()
desc = "Declaration of current symbol", vim.lsp.buf.declaration()
cond = "textDocument/declaration", end,
desc = 'Declaration of current symbol',
cond = 'textDocument/declaration',
}, },
["<Leader>uY"] = { ['<Leader>uY'] = {
function() require("astrolsp.toggles").buffer_semantic_tokens() end, function()
desc = "Toggle LSP semantic highlight (buffer)", require('astrolsp.toggles').buffer_semantic_tokens()
end,
desc = 'Toggle LSP semantic highlight (buffer)',
cond = function(client) cond = function(client)
return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil return client.supports_method 'textDocument/semanticTokens/full' and vim.lsp.semantic_tokens ~= nil
end, end,
}, },
}, },
}, },
-- A custom `on_attach` function to be run after the default `on_attach` function -- A custom `on_attach` function to be run after the default `on_attach` function
-- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`) -- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`)
on_attach = function(client, bufnr) on_attach = function(client, bufnr)

View File

@@ -1,15 +1,12 @@
-- AstroUI provides the basis for configuring the AstroNvim User Interface -- AstroUI provides the basis for configuring the AstroNvim User Interface
-- Configuration documentation can be found with `:h astroui` -- Configuration documentation can be found with `:h astroui`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec ---@type LazySpec
return { return {
"AstroNvim/astroui", 'AstroNvim/astroui',
---@type AstroUIOpts ---@type AstroUIOpts
opts = { opts = {
-- change colorscheme colorscheme = 'tokyonight-moon',
colorscheme = "astrodark",
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes -- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
highlights = { highlights = {
init = { -- this table overrides highlights in all themes init = { -- this table overrides highlights in all themes
@@ -19,19 +16,20 @@ return {
-- Normal = { bg = "#000000" }, -- Normal = { bg = "#000000" },
}, },
}, },
folding = false,
-- Icons can be configured throughout the interface -- Icons can be configured throughout the interface
icons = { icons = {
-- configure the loading of the lsp in the status line -- configure the loading of the lsp in the status line
LSPLoading1 = "", LSPLoading1 = '',
LSPLoading2 = "", LSPLoading2 = '',
LSPLoading3 = "", LSPLoading3 = '',
LSPLoading4 = "", LSPLoading4 = '',
LSPLoading5 = "", LSPLoading5 = '',
LSPLoading6 = "", LSPLoading6 = '',
LSPLoading7 = "", LSPLoading7 = '',
LSPLoading8 = "", LSPLoading8 = '',
LSPLoading9 = "", LSPLoading9 = '',
LSPLoading10 = "", LSPLoading10 = '',
}, },
}, },
} }

View File

@@ -0,0 +1,9 @@
return {
'greggh/claude-code.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
},
config = function()
require('claude-code').setup()
end,
}

View File

@@ -7,6 +7,10 @@ return {
opts = { opts = {
-- Make sure to use the names found in `:Mason` -- Make sure to use the names found in `:Mason`
ensure_installed = { ensure_installed = {
'jq',
'vacuum', -- openapi
'bash-language-server',
-- install any other package -- install any other package
'tree-sitter-cli', 'tree-sitter-cli',
}, },