Compare commits

...

3 commits

Author SHA1 Message Date
9660893b91 feat: random beautification 2025-05-04 13:11:56 +02:00
18f7104625 feat: docker-compose improvements 2025-05-04 13:11:35 +02:00
a7776cb729 chore: update lazy plugins 2025-05-02 11:37:57 +02:00
18 changed files with 372 additions and 254 deletions

View file

@ -1,28 +1,30 @@
{
"blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" },
"catppuccin": { "branch": "main", "commit": "c9e205fe035d622b3c2d66ee42edf368c0c31fd5" },
"ccc.nvim": { "branch": "main", "commit": "af2cf5a963f401aad868c065222ee13d4bbc9050" },
"conform.nvim": { "branch": "master", "commit": "a6f5bdb78caa305496357d17e962bbc4c0b392e2" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"friendly-snippets": { "branch": "main", "commit": "fc8f183479a472df60aa86f00e295462f2308178" },
"gitsigns.nvim": { "branch": "main", "commit": "9cd665f46ab7af2e49d140d328b8e72ea1cf511b" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "ee28ba3e70ecea811b8f6d7b51d81976e94b121c" },
"kanagawa": { "branch": "master", "commit": "cc3b68b08e6a0cb6e6bf9944932940091e49bb83" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"mini.nvim": { "branch": "main", "commit": "088d67751584e4168f35bca89bad70ada7ea4636" },
"mini.nvim": { "branch": "main", "commit": "90ab64f944a5a63a9efebe6735e1f2c6d4db3613" },
"newpaper.nvim": { "branch": "main", "commit": "d8f2a29001f795a59e4f28713427c200c15449ea" },
"nvim-lint": { "branch": "master", "commit": "9dfb77ef6c5092a19502883c02dc5a02ec648729" },
"nvim-treesitter": { "branch": "master", "commit": "3b308861a8d7d7bfbe9be51d52e54dcfd9fe3d38" },
"nvim-treesitter": { "branch": "master", "commit": "94ea4f436d2b59c80f02e293466c374584f03b8c" },
"nvim-treesitter-context": { "branch": "master", "commit": "6daca3ad780f045550b820f262002f35175a6c04" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ed373482db797bbf71bdff37a15c7555a84dce47" },
"nvim-web-devicons": { "branch": "master", "commit": "50b5b06bff13a9b4eab946de7c7033649a6618a1" },
"nvim-web-devicons": { "branch": "master", "commit": "2c2b4eafce6cdd0cb165036faa17396eff18f847" },
"oil.nvim": { "branch": "master", "commit": "685cdb4ffa74473d75a1b97451f8654ceeab0f4a" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"pomo.nvim": { "branch": "main", "commit": "7e06e5221d8d1e596a0ab29dd4d7fcee5f3cd05a" },
"rose-pine": { "branch": "main", "commit": "96ff3993a67356ee85d1cdab9be652cdc1c5d1ac" },
"rose-pine": { "branch": "main", "commit": "614892e32e94378d976a238f287532cfe790c1fe" },
"snipe.nvim": { "branch": "main", "commit": "2a1b738dfae8502e6162eddfc774da65ed404142" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"tokyonight.nvim": { "branch": "main", "commit": "b262293ef481b0d1f7a14c708ea7ca649672e200" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },

8
lsp/bicep.lua Normal file
View file

@ -0,0 +1,8 @@
---@type vim.lsp.Config
local bicep_lsp_bin = "/Users/oliver.ladner/bicep-langserver/Bicep.LangServer.dll"
return {
cmd = { "/opt/homebrew/opt/dotnet@8/libexec/dotnet", bicep_lsp_bin },
root_markers = { ".git" },
filetypes = { "bicep" },
}

7
lsp/docker-compose.lua Normal file
View file

@ -0,0 +1,7 @@
---@type vim.lsp.Config
return {
cmd = { "docker-compose-langserver", "--stdio" },
root_markers = { "docker_compose*.yml", "docker-compose.yml" },
filetypes = { "yaml.docker-compose" },
single_file_support = true,
}

5
lsp/woke.lua Normal file
View file

@ -0,0 +1,5 @@
---@type vim.lsp.Config
return {
cmd = { "woke", "--stdin" },
filetypes = { "markdown", "text", "gitcommit", "plaintext" },
}

6
lsp/write-good.lua Normal file
View file

@ -0,0 +1,6 @@
---@type vim.lsp.Config
return {
cmd = { "write-good", "/dev/stdin" },
-- root_markers = { ".md" },
filetypes = { "markdown", "text", "gitcommit" },
}

View file

@ -61,3 +61,14 @@ vim.api.nvim_create_autocmd("FileType", {
vim.bo.commentstring = "# %s"
end,
})
-- Force correct filetype for Docker compose files
local ft_lsp_group = vim.api.nvim_create_augroup("ft_lsp_group", { clear = true })
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
pattern = { "docker_compose.yml", "docker_compose_*.yml" },
group = ft_lsp_group,
desc = "Force docker-compose ft",
callback = function()
vim.opt.filetype = "yaml.docker-compose"
end,
})

View file

@ -17,7 +17,9 @@ return {
html = { "prettier" },
json = { "prettier" },
yaml = { "prettier" },
-- yaml.docker-compose = { "prettier" },
markdown = { "prettier" },
text = { "woke" },
graphql = { "prettier" },
lua = { "stylua" },
python = { "isort", "black" },
@ -27,7 +29,8 @@ return {
},
stop_after_first = false,
format_on_save = {
lsp_fallback = true,
-- lsp_fallback = true,
lsp_format = "fallback",
async = false,
timeout_ms = 1000, -- default: 1000
},

View file

@ -1,32 +1,34 @@
return {
"mfussenegger/nvim-lint",
event = { "BufReadPre", "BufNewFile" },
config = function()
local lint = require("lint")
"mfussenegger/nvim-lint",
-- event = { "BufReadPre", "BufNewFile" },
event = "VeryLazy",
config = function()
local lint = require("lint")
lint.linters_by_ft = {
javascript = { "eslint_d" },
typescript = { "eslint_d" },
javascriptreact = { "eslint_d" },
typescriptreact = { "eslint_d" },
svelte = { "eslint_d" },
python = { "pylint" },
ansible = { "woke" },
markdown = { "woke" },
sh = { "woke" },
}
lint.linters_by_ft = {
javascript = { "eslint_d" },
typescript = { "eslint_d" },
javascriptreact = { "eslint_d" },
typescriptreact = { "eslint_d" },
svelte = { "eslint_d" },
python = { "pylint" },
ansible = { "woke" },
markdown = { "woke" },
text = { "woke" },
sh = { "woke" },
}
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
-- local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function()
lint.try_lint()
end,
})
vim.api.nvim_create_autocmd({ "BufEnter", "BufReadPost", "BufWritePost", "InsertLeave" }, {
-- group = lint_augroup,
callback = function()
lint.try_lint()
end,
})
vim.keymap.set("n", "<leader>l", function()
lint.try_lint()
end, { desc = "Trigger linting for current file" })
end,
vim.keymap.set("n", "<leader>l", function()
lint.try_lint()
end, { desc = "Trigger linting for current file" })
end,
}

View file

@ -2,78 +2,91 @@
-- Display attached LSP client
local function lsp_client_name()
local bufnr = vim.api.nvim_get_current_buf()
local bufnr = vim.api.nvim_get_current_buf()
-- local clients = vim.lsp.buf_get_clients(bufnr)
local clients = vim.lsp.get_clients({ bufnr = 0 })
if next(clients) == nil then
return "n/a"
end
-- local clients = vim.lsp.buf_get_clients(bufnr)
local clients = vim.lsp.get_clients({ bufnr = 0 })
if next(clients) == nil then
return "n/a"
end
local c = {}
for _, client in pairs(clients) do
table.insert(c, client.name)
-- table.insert(c, string.sub(client.name, 0, 8) .. "...")
end
return "\u{f085} " .. table.concat(c, ",")
local c = {}
for _, client in pairs(clients) do
table.insert(c, client.name)
-- table.insert(c, string.sub(client.name, 0, 8) .. "...")
end
return "\u{f085} " .. table.concat(c, ",")
end
-- hide content on narrow windows
local function hide_in_width()
return vim.fn.winwidth(0) > 80
return vim.fn.winwidth(0) > 80
end
local function clock()
local time = tostring(os.date()):sub(12, 16)
return time
local time = tostring(os.date()):sub(12, 16)
return time
end
return {
"nvim-lualine/lualine.nvim",
lazy = true,
event = { "BufReadPre", "BufNewFile" },
"nvim-lualine/lualine.nvim",
lazy = true,
event = { "BufReadPre", "BufNewFile" },
opts = {
options = {
globalstatus = false, -- true == single statusline
icons_enabled = true,
theme = "auto",
component_separators = "",
--section_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
},
sections = {
lualine_a = {
{
-- shorten mode names
-- https://github.com/nvim-lualine/lualine.nvim/issues/614#issuecomment-1072275099
"mode",
fmt = function(res)
return res:sub(1, 1)
end,
},
},
lualine_c = {
--{ "searchcount" },
{
"buffers",
show_filename_only = true,
--fmt = function(str)
-- return str:sub(1, 1)
--end,
--fmt = function()
-- return string.gsub(vim.api.nvim_buf_get_name(0), vim.loop.cwd(), "")
--end,
},
},
lualine_x = {
-- specify full list of elements when adding custom things
{ "encoding", cond = hide_in_width },
{ "fileformat" },
{ "filetype", cond = hide_in_width },
{ lsp_client_name, cond = hide_in_width },
--{ clock, cond = hide_in_width },
},
},
},
opts = {
options = {
globalstatus = false, -- true == single statusline
icons_enabled = true,
theme = "rose-pine",
component_separators = "",
--section_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
},
sections = {
lualine_a = {
{
-- shorten mode names
-- https://github.com/nvim-lualine/lualine.nvim/issues/614#issuecomment-1072275099
"mode",
fmt = function(res)
return res:sub(1, 1)
end,
},
},
lualine_c = {
--{ "searchcount" },
{
"buffers",
show_filename_only = true,
--fmt = function(str)
-- return str:sub(1, 1)
--end,
--fmt = function()
-- return string.gsub(vim.api.nvim_buf_get_name(0), vim.loop.cwd(), "")
--end,
},
},
lualine_x = {
-- specify full list of elements when adding custom things
{ "encoding", cond = hide_in_width },
{ "fileformat", cond = hide_in_width },
{ "filetype" },
{ lsp_client_name, cond = hide_in_width },
--{ clock, cond = hide_in_width },
function()
local ok, pomo = pcall(require, "pomo")
if not ok then
return ""
end
local timer = pomo.get_first_to_finish()
if timer == nil then
return ""
end
return "󰄉 " .. tostring(timer)
end,
},
},
},
}

View file

@ -1,9 +1,22 @@
-- Adds git related signs to the gutter, as well as utilities for managing changes
return {
"echasnovski/mini.nvim",
version = false,
config = function()
local icons = require("mini.icons")
icons.setup({})
end,
"echasnovski/mini.nvim",
version = false,
config = function()
require("mini.icons").setup()
require("mini.surround").setup({
mappings = {
add = "wq", -- Add surrounding in Normal and Visual modes
delete = "wd", -- Delete surrounding
-- find = "sf", -- Find surrounding (to the right)
-- find_left = "sF", -- Find surrounding (to the left)
highlight = "hs", -- Highlight surrounding
replace = "wc", -- Replace surrounding
-- update_n_lines = "sn", -- Update `n_lines`
-- suffix_last = "l", -- Suffix to search with "prev" method
-- suffix_next = "n", -- Suffix to search with "next" method
},
})
end,
}

View file

@ -1,41 +1,40 @@
-- File system operations for nerds
-- https://github.com/stevearc/oil.nvim
return {
"stevearc/oil.nvim",
lazy = true,
cmd = "Oil",
config = function()
local oil = require("oil")
oil.setup({
-- Leave netrw there, so we can open link with `gx`
--default_file_explorer = false,
default_file_explorer = true,
columns = {
--"size",
"icon",
},
view_options = {
show_hidden = true,
},
keymaps = {
-- This should be matched to the open action in remap.lua
["<leader>e"] = "actions.close",
["<C-v>"] = "actions.select_vsplit",
["<C-x>"] = "actions.select_split",
["<C-c>"] = "actions.close",
["q"] = "actions.close",
},
"stevearc/oil.nvim",
lazy = true,
cmd = "Oil",
config = function()
require("oil").setup({
default_file_explorer = true,
columns = {
-- "size",
"icon",
-- "mtime",
},
view_options = {
show_hidden = true,
},
keymaps = {
-- This should be matched to the open action in remap.lua
["<leader>e"] = "actions.close",
["<C-v>"] = "actions.select_vsplit",
["<C-x>"] = "actions.select_split",
["<C-c>"] = "actions.close",
["q"] = "actions.close",
["<Esc>"] = "actions.close",
},
float = {
-- Padding around the floating window
padding = 4,
max_width = 80,
max_height = 25,
border = "rounded",
win_options = {
winblend = 0,
},
},
})
end,
float = {
-- Padding around the floating window
padding = 4,
max_width = 80,
max_height = 25,
border = "rounded",
win_options = {
winblend = 0,
},
},
})
end,
}

View file

@ -0,0 +1,10 @@
return {
"epwalsh/pomo.nvim",
version = "*", -- Recommended, use latest release instead of latest commit
lazy = true,
cmd = { "TimerStart", "TimerRepeat", "TimerSession" },
opts = {
-- See below for full list of options 👇
update_interval = 20000,
},
}

View file

@ -1,52 +1,53 @@
return {
"nvim-telescope/telescope.nvim",
lazy = true,
--event = "VeryLazy",
cmd = "Telescope",
tag = "0.1.5",
dependencies = {
"nvim-lua/plenary.nvim",
},
--config = function(lazy, opts)
config = function()
local telescope = require("telescope")
telescope.load_extension("fzf")
--telescope.load_extension("file_browser")
telescope.setup({
defaults = {
sorting_strategy = "ascending",
wrap_result = true,
layout_strategy = "horizontal",
layout_config = {
horizontal = {
prompt_position = "top",
preview_width = 0.45,
width = 0.90,
height = 0.75,
preview_cutoff = 90,
},
},
},
pickers = {
find_files = {
hidden = true,
wrap_results = false, -- this is not about the preview
},
live_grep = {
additional_args = function()
return { "--hidden", "--glob", "!**/.git/*" }
end,
},
grep_string = {
additional_args = function()
return { "--hidden", "--glob", "!**/.git/*" }
end,
},
["lsp_references"] = { wrap_results = true },
["lsp_definitions"] = { wrap_results = true },
["diagnostics"] = { wrap_results = true },
["buffers"] = { sort_mru = true, sort_lastused = true, ignore_current_buffer = false },
},
})
end,
"nvim-telescope/telescope.nvim",
lazy = true,
--event = "VeryLazy",
cmd = "Telescope",
tag = "0.1.8",
dependencies = {
"nvim-lua/plenary.nvim",
},
--config = function(lazy, opts)
config = function()
local telescope = require("telescope")
telescope.load_extension("fzf")
--telescope.load_extension("file_browser")
telescope.setup({
defaults = {
border = false,
sorting_strategy = "ascending",
wrap_result = true,
layout_strategy = "horizontal",
layout_config = {
horizontal = {
prompt_position = "top",
preview_width = 0.45,
width = 0.90,
height = 0.75,
preview_cutoff = 90,
},
},
},
pickers = {
find_files = {
hidden = true,
wrap_results = false, -- this is not about the preview
},
live_grep = {
additional_args = function()
return { "--hidden", "--glob", "!**/.git/*" }
end,
},
grep_string = {
additional_args = function()
return { "--hidden", "--glob", "!**/.git/*" }
end,
},
["lsp_references"] = { wrap_results = true },
["lsp_definitions"] = { wrap_results = true },
["diagnostics"] = { wrap_results = true },
["buffers"] = { sort_mru = true, sort_lastused = true, ignore_current_buffer = false },
},
})
end,
}

View file

@ -3,57 +3,57 @@ return {
name = "catppuccin",
tag = "stable",
lazy = false,
enabled = false,
enabled = true,
priority = 1000,
opts = {},
-- config = function()
-- local tokyonight = require("tokyonight")
-- local util = require("tokyonight.util")
-- tokyonight.setup({
-- styles = {
-- comments = { italic = true },
-- },
-- on_colors = function(colors)
-- -- Brighten up comments a bit
-- colors.comment = "#888fac"
-- -- Better visible visual selection background color
-- colors.bg_visual = "#e82a86"
-- end,
-- on_highlights = function(hl, c)
-- -- Brighter line numbers
-- hl.LineNr = {
-- fg = util.darken(c.dark5, 0.6),
-- }
-- -- Remove borders from Telescope windows
-- local prompt = "#4e3e6c"
-- hl.TelescopeNormal = {
-- bg = c.bg_dark,
-- fg = c.fg_dark,
-- }
-- hl.TelescopeBorder = {
-- bg = c.bg_dark,
-- fg = c.bg_dark,
-- }
-- hl.TelescopePromptNormal = {
-- bg = prompt,
-- }
-- hl.TelescopePromptBorder = {
-- bg = prompt,
-- fg = prompt,
-- }
-- hl.TelescopePromptTitle = {
-- bg = prompt,
-- fg = prompt,
-- }
-- hl.TelescopePreviewTitle = {
-- bg = c.bg_dark,
-- fg = c.bg_dark,
-- }
-- hl.TelescopeResultsTitle = {
-- bg = c.bg_dark,
-- fg = c.bg_dark,
-- }
-- end,
-- })
-- end,
config = function()
require("catppuccin").setup({
flavour = "auto", -- latte, frappe, macchiato, mocha
background = { -- :h background
light = "latte",
dark = "mocha",
},
transparent_background = false, -- disables setting the background color.
show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
dim_inactive = {
enabled = false, -- dims the background color of inactive window
shade = "dark",
percentage = 0.15, -- percentage of the shade to apply to the inactive window
},
no_italic = false, -- Force no italic
no_bold = false, -- Force no bold
no_underline = false, -- Force no underline
styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
comments = { "italic" }, -- Change the style of comments
conditionals = { "italic" },
loops = {},
functions = {},
keywords = {},
strings = {},
variables = {},
numbers = {},
booleans = {},
properties = {},
types = {},
operators = {},
-- miscs = {}, -- Uncomment to turn off hard-coded styles
},
color_overrides = {},
custom_highlights = {},
default_integrations = true,
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
treesitter = true,
notify = false,
mini = {
enabled = true,
indentscope_color = "",
},
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
},
})
end,
}

View file

@ -0,0 +1,18 @@
return {
"rebelot/kanagawa.nvim",
name = "kanagawa",
branch = "master",
lazy = false,
enabled = false,
priority = 1000,
opts = {},
config = function()
require("kanagawa").setup({
theme = "lotus", -- Load "wave" theme
background = { -- map the value of 'background' option to a theme
dark = "wave", -- try "dragon" !
light = "lotus",
},
})
end,
}

View file

@ -21,6 +21,23 @@ return {
styles = {
transparency = false,
},
highlight_groups = {
-- TelescopeResultsNormal = { fg = "subtle", bg = "none" },
TelescopeBorder = { fg = "overlay", bg = "overlay" },
TelescopeNormal = { fg = "subtle", bg = "overlay" },
TelescopeSelection = { fg = "text", bg = "highlight_med" },
-- TelescopeSelectionCaret = { fg = "love", bg = "highlight_med" },
TelescopeSelectionCaret = { fg = "rose", bg = "rose" },
TelescopeMultiSelection = { fg = "text", bg = "highlight_high" },
TelescopeTitle = { fg = "base", bg = "love" },
TelescopePromptTitle = { fg = "base", bg = "pine" },
TelescopePreviewTitle = { fg = "base", bg = "iris" },
TelescopePromptNormal = { fg = "text", bg = "surface" },
TelescopePromptBorder = { fg = "surface", bg = "surface" },
},
})
end,
}

View file

@ -10,6 +10,7 @@ vim.lsp.enable({
"woke",
"tailwind",
"docker-compose",
"bicep",
})
-- Set highlight on search

View file

@ -1,4 +1,5 @@
-- keyboard shortcuts
--
-- Leader key. Base for any key combo
vim.g.mapleader = ";"
@ -43,13 +44,8 @@ vim.keymap.set("n", "<leader>gd", function()
else
vim.cmd("DiffviewClose")
end
end, { noremap = true, desc = "Toggle diff/stage UI " })
vim.keymap.set(
"n",
"<leader>gb",
":Gitsigns toggle_current_line_blame<CR>",
{ noremap = true, desc = "Toggle git blame" }
)
end, { noremap = true, desc = "Git diff/stage" })
vim.keymap.set("n", "<leader>gb", ":Gitsigns toggle_current_line_blame<CR>", { noremap = true, desc = "Git blame" })
-- Remapping of existing Vim key binds
vim.keymap.set("n", "w", "W") -- skip punctuation when moving to start of next word
@ -65,12 +61,12 @@ vim.keymap.set("n", "<C-d>", "<C-d>zz") -- eye-friendly down scrolling
vim.keymap.set("n", "<C-u>", "<C-u>zz") -- eye-friendly up scrolling
vim.keymap.set("n", "J", "mzJ`z") -- when merging lines, keep cursor at current position
vim.keymap.set(
"n",
"<leader>s",
[[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
{ noremap = true, desc = "Replace word below cursor" }
)
-- vim.keymap.set(
-- "n",
-- "<leader>s",
-- [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]],
-- { noremap = true, desc = "Replace word below cursor" }
-- )
-- Apply conform.nvim formatting on keypress (same as on save)
vim.keymap.set({ "n", "v" }, "<leader>o", function()
@ -83,19 +79,19 @@ vim.keymap.set({ "n", "v" }, "<leader>o", function()
end, { desc = "Format file or range (in visual mode)" })
-- Go to next diagnostic item (any severity)
vim.keymap.set({ "n", "v" }, "<leader>da", function()
vim.keymap.set("n", "<leader>da", function()
vim.diagnostic.get_next({})
vim.api.nvim_feedkeys("zz", "n", false)
end, { desc = "Go to next diagnostic" })
-- Go to next diagnostic item (error severity)
vim.keymap.set({ "n", "v" }, "<leader>de", function()
vim.keymap.set("n", "<leader>de", function()
vim.diagnostic.get_next({ severity = vim.diagnostic.severity.ERROR })
vim.api.nvim_feedkeys("zz", "n", false)
end, { desc = "Go to next error diagnostic" })
-- Go to next diagnostic item (warning severity)
vim.keymap.set({ "n", "v" }, "<leader>dw", function()
vim.keymap.set("n", "<leader>dw", function()
vim.diagnostic.get_next({ severity = vim.diagnostic.severity.WARN })
vim.api.nvim_feedkeys("zz", "n", false)
end, { desc = "Go to next warning diagnostic" })
@ -114,3 +110,9 @@ vim.keymap.set("n", "<leader>tdd", function()
virtual_text = not vim.diagnostic.config().virtual_text,
})
end, { desc = "Toggle diagnostic virtual lines and virtual text" })
-- Enclose word with double quotes
-- vim.keymap.set("n", "<leader>wq", 'ciw""<Esc>P', { desc = "Enclose in double quotes" })
-- Pomodoro timer
vim.keymap.set("n", "<leader>p", ":TimerStart 30m<CR>", { desc = "Pomodoro" })