54 Commits

Author SHA1 Message Date
8335cbbaec update parrot 2025-09-03 15:03:27 +03:00
9a15e2a905 add Gcm command 2025-09-03 14:53:17 +03:00
da47eb3177 install tabby for a nicer tab names 2025-09-01 10:49:31 +03:00
8b74702fb4 configure neotree a bit more 2025-09-01 10:49:18 +03:00
4aa3e696b8 install dadbod and neotree 2025-09-01 10:23:03 +03:00
0ba639e806 add on_attach to the gitsigns to get keymaps I need 2025-08-28 14:30:35 +03:00
ca193e334a update plugins, install illuminate 2025-08-28 14:30:19 +03:00
17abcf48ae update lspconfig to 2.3.0 2025-08-05 17:24:02 +03:00
552536e87b cosmetics: replace double-quotes with single-quotes 2025-08-05 17:23:38 +03:00
4baef6ee61 add types annotations to opts 2025-08-05 17:23:16 +03:00
c8e33adba0 update blink-cmp to 1.6, fix snippets jumps 2025-08-05 17:22:33 +03:00
28fb8bea85 add render-markdown plugin 2025-08-05 17:22:12 +03:00
bd09133cf6 update plugins 2025-08-05 17:22:02 +03:00
8650bc76a5 add replace full word 2025-07-18 16:03:10 +03:00
aede270a03 fix typo in lsp 2025-07-12 20:59:17 +03:00
ae6d8b81e3 adjust score for completion 2025-07-12 20:59:05 +03:00
72e01ce321 add pairs 2025-06-19 18:27:24 +03:00
08583ff839 add blink sources 2025-06-19 18:27:14 +03:00
09a7cda545 small changes 2025-06-19 18:27:08 +03:00
4f00972dec update parrot 2025-06-19 18:26:56 +03:00
7e3b1dd83e update treesitter 2025-06-19 18:26:49 +03:00
9951270d0b add parrot, use fzf for blink 2025-04-22 11:13:26 +03:00
f19091b3ec mason-lspconfig: disable automatic installation 2025-04-12 11:09:18 +03:00
350beee4f1 update blink cmp 2025-04-12 11:08:09 +03:00
a2c7c46185 update ufo (not sure if this did something) 2025-03-28 10:39:33 +02:00
c0545fd267 upgrade packages 2025-03-18 16:57:40 +02:00
cfec54bead remove mini pairs 2025-03-18 16:57:30 +02:00
952d016f70 update obsidian, update cprev and cnext keybinds 2025-03-18 16:51:48 +02:00
53339e0d19 enable blink completion for cmdline
seems to be working fine now without being overintrusive
2025-02-19 10:15:03 +02:00
8b114f4da0 update modules 2025-02-18 17:31:48 +02:00
66fd13ec25 update completion 2025-02-18 17:31:23 +02:00
f7ff3f6f4f cleanup and add yaml schema snippet to helm 2025-01-09 11:17:18 +02:00
78d14b79a7 add yaml schema snippet 2025-01-02 09:57:11 +02:00
0f0dafb773 add mini.pairs, revert to surround 2025-01-02 09:57:00 +02:00
b6471168fb replace nvim surround with mini surround 2024-12-24 11:15:50 +02:00
8bf693ba29 cleanup 2024-12-24 11:05:16 +02:00
b1ecff2e08 fix blink cmp completion mapping 2024-12-24 11:05:15 +02:00
8894b0ccdb replace cmp with blink-cmp 2024-12-24 11:04:40 +02:00
132e1aa78a update plugins 2024-12-18 17:08:29 +02:00
b92b8ed602 refactor remaps with leader instead of space 2024-12-18 17:07:52 +02:00
a947bcda9b make gruvbox sign symbols transparent, and leave everything else as is
config.transparent didn't work because it made fidget non-transparrent.
Apprently it has default colors as black
2024-12-18 11:36:49 +02:00
0325d883bc add maps for quickfix, use telescope for references 2024-12-18 11:36:49 +02:00
67c2b52e4d advent of neovim suggestions to telescope and some remaps 2024-12-18 11:36:49 +02:00
23cf6254ec update colors for gruvbox, use transparent mode 2024-12-18 11:36:49 +02:00
f53b5f6905 add ft for helm and yaml 2024-12-18 11:36:49 +02:00
cb80bb1750 switch from neodev to lazydev 2024-12-18 11:36:49 +02:00
68ea39094c cleanup and refactor autocmd 2024-12-18 11:36:49 +02:00
0334178b6e add make filetype 2024-12-18 11:36:49 +02:00
4a596c757b remove code action keymap 2024-12-18 11:36:49 +02:00
a6bf1207d7 add make ft settings 2024-12-18 11:36:49 +02:00
a93c15e29e add none-ls 2024-12-18 11:36:49 +02:00
bcc806d349 fix hl for the symbol columns 2024-12-18 11:36:49 +02:00
6871470b6c add gitsigns in blace of gitgutter and git-blame 2024-12-18 11:36:49 +02:00
c49b758e86 configure folding 2024-12-18 11:36:49 +02:00
44 changed files with 870 additions and 303 deletions

7
.luarc.json Normal file
View File

@@ -0,0 +1,7 @@
{
"diagnostics.disable": [
"undefined-global",
"unused-local"
]
}

View File

@@ -1,3 +1,4 @@
# My nvim configuration # My nvim configuration
This mostly copies ThePrimeagen configs with some changes because I don't use dvorak This mostly copies ThePrimeagen configs with some changes because I don't use dvorak

5
after/ftplugin/helm.lua Normal file
View File

@@ -0,0 +1,5 @@
vim.opt_local.tabstop = 2
vim.opt_local.shiftwidth = 2
vim.opt_local.softtabstop = 2
vim.opt_local.expandtab = true

12
after/ftplugin/make.lua Normal file
View File

@@ -0,0 +1,12 @@
vim.opt_local.tabstop = 4
vim.opt_local.shiftwidth = 4
vim.opt_local.softtabstop = 4
vim.opt_local.expandtab = false
vim.api.nvim_create_autocmd("FileType", {
pattern = "make",
callback = function()
print("Makefile detected and ftplugin loaded!")
end,
})

View File

@@ -0,0 +1,2 @@
vim.opt_local.conceallevel = 2

5
after/ftplugin/yaml.lua Normal file
View File

@@ -0,0 +1,5 @@
vim.opt_local.tabstop = 2
vim.opt_local.shiftwidth = 2
vim.opt_local.softtabstop = 2
vim.opt_local.expandtab = true

View File

@@ -1,42 +1,51 @@
{ {
"LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" }, "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "blink-ripgrep.nvim": { "branch": "main", "commit": "b035188bc6d8bcbf86c49ac230ee0bbadca7f7fb" },
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
"cmp-dotenv": { "branch": "main", "commit": "4dd53aab60982f1f75848aec5e6214986263325e" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "fidget.nvim": { "branch": "main", "commit": "4d5858bd4c471c895060e1b9f3575f1551184dc5" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "fzf-lua": { "branch": "main", "commit": "2dce48dac09cec8143820f1d33381fe6d03a3900" },
"dressing.nvim": { "branch": "master", "commit": "1b7921eecc65af1baf8ac1dc06f0794934cbcfb2" }, "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
"fidget.nvim": { "branch": "main", "commit": "d855eed8a06531a7e8fd0684889b2943f373c469" }, "gruvbox.nvim": { "branch": "main", "commit": "a56f758f9d3eed0b8afbab6ea3ee523887755aed" },
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" },
"git-blame.nvim": { "branch": "master", "commit": "2883a7460f611c2705b23f12d58d398d5ce6ec00" }, "hererocks": { "branch": "master", "commit": "d2e2b7ab1ce5b6d4e517619746a810159f0e18db" },
"gruvbox.nvim": { "branch": "main", "commit": "49d9c0b150ba70efcd831ec7b3cb8ee740067045" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"hererocks": { "branch": "master", "commit": "8bd2fcfdd65cfa7535ce39ea372a63b0bdb8e528" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"icon-picker.nvim": { "branch": "master", "commit": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3" }, "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
"indent-blankline.nvim": { "branch": "master", "commit": "e7a4442e055ec953311e77791546238d1eaae507" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "5e085efe67fccb13372d54331d849219662a7e93" },
"lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" }, "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, "mini.pairs": { "branch": "main", "commit": "6e1cc569130f25b2c6fa16d8b21b31ddb1420a4a" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "f1deac7ecec88c28a250d890ba7bb35843e69cbd" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "none-ls.nvim": { "branch": "main", "commit": "53ec77181d96494b9dc9457110dd62dc623cc78d" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-lspconfig": { "branch": "master", "commit": "056f569f71e4b726323b799b9cfacc53653bceb3" }, "nvim-lspconfig": { "branch": "master", "commit": "3db16ceeea947517f0dc1404c24dcb5ab0c91d26" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-navic": { "branch": "master", "commit": "f887d794a0f4594882814d7780980a949200a238" },
"nvim-sops": { "branch": "main", "commit": "cb2209562d00ef8c6c88bdec836d9edb8fbb96ef" }, "nvim-sops": { "branch": "main", "commit": "cb2209562d00ef8c6c88bdec836d9edb8fbb96ef" },
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" }, "nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" },
"nvim-treesitter": { "branch": "master", "commit": "5a2ff8b7ca5470b1011ed82ef3fdd53139ffc467" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" }, "nvim-ufo": { "branch": "main", "commit": "d31e2a9fd572a25a4d5011776677223a8ccb7e35" },
"oil.nvim": { "branch": "master", "commit": "ccab9d5e09e2d0042fbbe5b6bd05e82426247067" }, "nvim-web-devicons": { "branch": "master", "commit": "f66cdfef5e84112045b9ebc3119fee9bddb3c687" },
"plenary": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "obsidian.nvim": { "branch": "main", "commit": "705cc9b4f66eca1e54040ac819102e80a32896d3" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "oil.nvim": { "branch": "master", "commit": "07f80ad645895af849a597d1cac897059d89b686" },
"parrot.nvim": { "branch": "main", "commit": "dcae923c7070431c8cb628b19594ab640168684c" },
"plenary": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"render-markdown.nvim": { "branch": "main", "commit": "e76eb2e4262f0f0a1a7bd7a454dd7d44f1299afd" },
"search.nvim": { "branch": "main", "commit": "7b8f2315d031be73e14bc2d82386dfac15952614" }, "search.nvim": { "branch": "main", "commit": "7b8f2315d031be73e14bc2d82386dfac15952614" },
"telescope.nvim": { "branch": "master", "commit": "df534c3042572fb958586facd02841e10186707c" }, "statuscol.nvim": { "branch": "main", "commit": "c46172d0911aa5d49ba5f39f4351d1bb7aa289cc" },
"trouble.nvim": { "branch": "main", "commit": "254145ffd528b98eb20be894338e2d5c93fa02c2" }, "tabby.nvim": { "branch": "main", "commit": "b3affa6db7eab80fca2a2db5b73b473144507039" },
"undotree": { "branch": "master", "commit": "78b5241191852ffa9bb5da5ff2ee033160798c3b" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"vim-fugitive": { "branch": "master", "commit": "d4877e54cef67f5af4f950935b1ade19ed6b7370" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
"vim-gitgutter": { "branch": "main", "commit": "7b0b5098e3e57be86bb96cfbf2b8902381eef57c" }, "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"vim-helm": { "branch": "master", "commit": "ae1ebc160d2b9b90108477ab10df7a4fc501e358" } "undotree": { "branch": "master", "commit": "fe9a9d0645f0f5532360b5e5f5c550d7bb4f1869" },
"vim-dadbod": { "branch": "master", "commit": "e95afed23712f969f83b4857a24cf9d59114c2e6" },
"vim-dadbod-completion": { "branch": "master", "commit": "a8dac0b3cf6132c80dc9b18bef36d4cf7a9e1fe6" },
"vim-dadbod-ui": { "branch": "master", "commit": "e8b53c0f3aa6e6127ac2a2d2071d9aade6c6e373" },
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"vim-helm": { "branch": "master", "commit": "cc5ac22444332381f38084a6c7f023c25eef6201" },
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }
} }

View File

@@ -4,6 +4,8 @@ local augroup = vim.api.nvim_create_augroup
local CrentistGroup = augroup('Crentist', {}) local CrentistGroup = augroup('Crentist', {})
local OnSaveGroup = augroup('CrentistOnSave', {}) local OnSaveGroup = augroup('CrentistOnSave', {})
local builtin = require('telescope.builtin')
autocmd('LspAttach', { autocmd('LspAttach', {
group = CrentistGroup, group = CrentistGroup,
callback = function(e) callback = function(e)
@@ -13,17 +15,17 @@ autocmd('LspAttach', {
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts) vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts) vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts) vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts) vim.keymap.set("n", "<leader>vrr", function() builtin.lsp_references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts) vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts) vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts) vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<M-F>", "<cmd>lua vim.lsp.buf.format()<CR>") vim.keymap.set("n", "<M-F>", function() vim.lsp.buf.format() end, opts)
end end
}) })
-- Add new line to the end of the file -- Add new line to the end of the file
autocmd({ "BufWritePre" }, { autocmd({ 'BufWritePre' }, {
group = OnSaveGroup, group = OnSaveGroup,
pattern = '*', pattern = '*',
callback = function() callback = function()
@@ -37,7 +39,7 @@ autocmd({ "BufWritePre" }, {
}) })
-- Remove trailing spaces -- Remove trailing spaces
autocmd({ "BufWritePre" }, { autocmd({ 'BufWritePre' }, {
group = OnSaveGroup, group = OnSaveGroup,
pattern = { "*" }, pattern = { "*" },
callback = function() callback = function()
@@ -47,3 +49,11 @@ autocmd({ "BufWritePre" }, {
end, end,
}) })
autocmd({'FileType'}, {
group = CrentistGroup,
pattern = { 'json' },
callback = function (e)
vim.keymap.set("n", "<M-F>", function() vim.cmd('silent %!jq .') end, {buffer = e.buf})
end
})

View File

@@ -1,7 +1,8 @@
require("crentist.remap") require("crentist.remap")
require("crentist.set") require("crentist.set")
require("crentist.autocmd")
require("crentist.lazy_init") require("crentist.lazy_init")
require("crentist.autocmd")
require("crentist.filetype") require("crentist.filetype")
require("crentist.luasnip") require("crentist.luasnip")
require("crentist.null-ls")

View File

@@ -1,5 +0,0 @@
return {
'windwp/nvim-autopairs',
event = "InsertEnter",
config = true
}

View File

@@ -1,20 +1,44 @@
return { return {
{ {
"ellisonleao/gruvbox.nvim", 'ellisonleao/gruvbox.nvim',
priority = 1000, priority = 1000,
config = function() config = function()
require("gruvbox").setup({ local gruvbox = require('gruvbox')
---@module 'gruvbox'
---@type GruvboxConfig
local gruvbox_settings = {
transparent_mode = false,
italic = { italic = {
strings = false, strings = false,
emphasis = true,
comments = true,
operators = false,
folds = true,
},
overrides = {
FoldColumn = { bg = '#282828', fg = '#808080' },
GruvboxRedSign = { bg = '' },
GruvboxGreenSign = { bg = '' },
GruvboxYellowSign = { bg = '' },
GruvboxBlueSign = { bg = '' },
GruvboxPurpleSign = { bg = '' },
GruvboxAquaSign = { bg = '' },
GruvboxOrangeSign = { bg = '' },
} }
}) }
vim.cmd("colorscheme gruvbox")
gruvbox.setup(gruvbox_settings)
vim.cmd('colorscheme gruvbox')
vim.api.nvim_set_hl(0, 'SignColumn', { link = 'FoldColumn' })
end end
}, },
{ {
"norcalli/nvim-colorizer.lua", 'norcalli/nvim-colorizer.lua',
config = function() config = function()
require('colorizer').setup({ '*' }) require('colorizer').setup({ '*' })
end end
} }
} }

View File

@@ -0,0 +1,103 @@
return {
'saghen/blink.cmp',
-- optional: provides snippets for the snippet source
dependencies = {
'mikavilpas/blink-ripgrep.nvim',
'rafamadriz/friendly-snippets',
{ 'L3MON4D3/LuaSnip', version = 'v2.*' }
},
-- use a release tag to download pre-built binaries
version = 'v1.6.*',
---@module 'blink-cmp'
---@type blink.cmp.Config
opts = {
fuzzy = { implementation = 'prefer_rust_with_warning' },
snippets = {
preset = 'luasnip',
active = function(filter)
local snippet = require('luasnip')
local blink = require('blink.cmp')
if snippet.in_snippet() and not blink.is_visible() then
return true
else
if not snippet.in_snippet() and vim.fn.mode() == 'n' then snippet.unlink_current() end
return false
end
end
},
cmdline = {
keymap = { preset = 'cmdline' },
completion = {
list = { selection = { preselect = false, auto_insert = true } }
}
},
completion = { list = { selection = { preselect = false, auto_insert = true } } },
keymap = {
preset = 'enter',
['<Tab>'] = { 'select_next', 'snippet_forward', 'fallback' },
['<S-Tab>'] = { 'select_prev', 'snippet_backward', 'fallback' },
},
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = 'mono'
},
sources = {
default = { 'lazydev', 'lsp', 'snippets', 'ripgrep', 'path', 'buffer' },
per_filetype = {
sql = { 'snippets', 'dadbod', 'buffer', 'ripgrep' }
},
providers = {
lazydev = {
name = 'LazyDev',
module = 'lazydev.integrations.blink',
-- make lazydev completions top priority (see `:h blink.cmp`)
score_offset = 100,
},
ripgrep = {
module = 'blink-ripgrep',
name = 'Ripgrep',
score_offset = -5,
-- the options below are optional, some default values are shown
---@module 'blink-ripgrep'
---@type blink-ripgrep.Options
opts = {
backend = {
use = 'ripgrep',
},
ripgrep = {
ignore_paths = {},
additional_paths = {},
additional_rg_options = {},
max_filesize = '1M',
project_root_fallback = true,
search_casing = '--ignore-case',
},
project_root_marker = '.git',
fallback_to_regex_highlighting = true,
toggles = { debug = nil, },
},
transform_items = function(_, items)
for _, item in ipairs(items) do
-- example: append a description to easily distinguish rg results
item.labelDetails = {
description = '(rg)',
}
end
return items
end,
},
dadbod = {
name = 'Dadbod', module = 'vim_dadbod_completion.blink'
},
},
},
signature = { enabled = true }
},
}

View File

@@ -0,0 +1,20 @@
return {
'kristijanhusak/vim-dadbod-ui',
dependencies = {
{ 'tpope/vim-dadbod', lazy = true },
{ 'kristijanhusak/vim-dadbod-completion', ft = { 'sql', 'mysql', 'plsql' }, lazy = true }, -- Optional
},
cmd = {
'DBUI',
'DBUIToggle',
'DBUIAddConnection',
'DBUIFindBuffer',
},
init = function()
-- Your DBUI configuration
vim.g.db_ui_use_nerd_fonts = 1
vim.g.db_ui_auto_execute_table_helpers = 1
vim.g.db_ui_win_position = 'right'
end,
}

View File

@@ -1,4 +1,7 @@
return { return {
'stevearc/dressing.nvim', 'stevearc/dressing.nvim',
---@module 'dressing'
---@type dressing.InputConfig
opts = {}, opts = {},
} }

View File

@@ -1,34 +1,37 @@
return { return {
"tpope/vim-fugitive", 'tpope/vim-fugitive',
config = function() config = function()
vim.keymap.set("n", "<leader>gs", vim.cmd.Git) vim.keymap.set('n', "<leader>gs", vim.cmd.Git)
local Crentist_Fugitive = vim.api.nvim_create_augroup("Crentist_Fugitive", {}) vim.api.nvim_create_user_command('Gcm', function() vim.cmd.Git({ 'switch main' }) end, {})
local Crentist_Fugitive = vim.api.nvim_create_augroup('Crentist_Fugitive', {})
local autocmd = vim.api.nvim_create_autocmd local autocmd = vim.api.nvim_create_autocmd
autocmd("BufWinEnter", { autocmd('BufWinEnter', {
group = Crentist_Fugitive, group = Crentist_Fugitive,
pattern = "*", pattern = '*',
callback = function() callback = function()
if vim.bo.ft ~= "fugitive" then if vim.bo.ft ~= 'fugitive' then
return return
end end
local bufnr = vim.api.nvim_get_current_buf() local SwitchToMainbufnr = vim.api.nvim_get_current_buf()
local opts = { buffer = bufnr, remap = false } local opts = { buffer = bufnr, remap = false }
vim.keymap.set("n", "<leader>p", function() vim.keymap.set('n', "<leader>p", function()
vim.cmd.Git('push') vim.cmd.Git('push')
end, opts) end, opts)
-- rebase always -- rebase always
vim.keymap.set("n", "<leader>P", function() vim.keymap.set('n', "<leader>P", function()
vim.cmd.Git({ 'pull', '--rebase' }) vim.cmd.Git({ 'pull', '--rebase' })
end, opts) end, opts)
-- NOTE: It allows me to easily set the branch i am pushing and any tracking -- NOTE: It allows me to easily set the branch i am pushing and any tracking
-- needed if i did not set the branch up correctly -- needed if i did not set the branch up correctly
vim.keymap.set("n", "<leader>t", ":Git push -u origin ", opts); vim.keymap.set('n', "<leader>t", ":Git push -u origin ", opts);
end, end,
}) })
end end
} }

View File

@@ -1,22 +0,0 @@
return {
'f-person/git-blame.nvim',
config = function()
local gitblame = require('gitblame')
gitblame.setup({
enabled = true,
date_format = '%r'
})
vim.keymap.set("n", "<leader>gbt", function()
gitblame.toggle()
end)
local CrentistGitBlame = vim.api.nvim_create_augroup("CrentistGitBlame", {})
vim.api.nvim_create_autocmd({ "FileType" }, {
group = CrentistGitBlame,
pattern = "netrw",
callback = function()
gitblame.disable()
end,
})
end
}

View File

@@ -1,3 +0,0 @@
return {
"airblade/vim-gitgutter",
}

View File

@@ -0,0 +1,74 @@
return {
'lewis6991/gitsigns.nvim',
---@module 'gitsigns.config'
---@type Gitsigns.Config
opts = {
current_line_blame = true,
attach_to_untracked = true,
current_line_blame_opts = {
delay = 500,
ignore_whitespace = true,
virt_text_pos = 'right_align',
},
on_attach = function(bufnr)
local gitsigns = require('gitsigns')
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal({ ']c', bang = true })
else
gitsigns.nav_hunk('next')
end
end)
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal({ '[c', bang = true })
else
gitsigns.nav_hunk('prev')
end
end)
-- Actions
map('n', '<leader>hs', gitsigns.stage_hunk)
map('n', '<leader>hr', gitsigns.reset_hunk)
map('v', '<leader>hs', function()
gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end)
map('v', '<leader>hr', function()
gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end)
map('n', '<leader>hS', gitsigns.stage_buffer)
map('n', '<leader>hR', gitsigns.reset_buffer)
map('n', '<leader>hp', gitsigns.preview_hunk)
map('n', '<leader>hi', gitsigns.preview_hunk_inline)
map('n', '<leader>hd', gitsigns.diffthis)
map('n', '<leader>hD', function()
gitsigns.diffthis('~')
end)
map('n', '<leader>hQ', function() gitsigns.setqflist('all') end)
map('n', '<leader>hq', gitsigns.setqflist)
-- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame)
map('n', '<leader>tw', gitsigns.toggle_word_diff)
-- Text object
map({ 'o', 'x' }, 'ih', gitsigns.select_hunk)
end
}
}

View File

@@ -1,23 +1,23 @@
return { return {
"theprimeagen/harpoon", 'theprimeagen/harpoon',
branch = "harpoon2", branch = 'harpoon2',
dependencies = { "nvim-lua/plenary.nvim" }, dependencies = { 'nvim-lua/plenary.nvim' },
config = function() config = function()
local harpoon = require("harpoon") local harpoon = require('harpoon')
harpoon:setup() harpoon:setup()
-- basic telescope configuration -- basic telescope configuration
local conf = require("telescope.config").values local conf = require('telescope.config').values
local function toggle_telescope(harpoon_files) local function toggle_telescope(harpoon_files)
local file_paths = {} local file_paths = {}
for _, item in ipairs(harpoon_files.items) do for _, item in ipairs(harpoon_files.items) do
table.insert(file_paths, item.value) table.insert(file_paths, item.value)
end end
require("telescope.pickers").new({}, { require('telescope.pickers').new({}, {
prompt_title = "Harpoon", prompt_title = 'Harpoon',
finder = require("telescope.finders").new_table({ finder = require('telescope.finders').new_table({
results = file_paths, results = file_paths,
}), }),
previewer = conf.file_previewer({}), previewer = conf.file_previewer({}),
@@ -25,15 +25,15 @@ return {
}):find() }):find()
end end
vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end) vim.keymap.set('n', '<leader>a', function() harpoon:list():add() end)
vim.keymap.set("n", "<C-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end) vim.keymap.set('n', '<C-e>', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
vim.keymap.set("n", "<leader><C-e>", function() toggle_telescope(harpoon:list()) end, vim.keymap.set('n', '<leader><C-e>', function() toggle_telescope(harpoon:list()) end,
{ desc = "Open harpoon window" }) { desc = 'Open harpoon window' })
vim.keymap.set("n", "<C-h>", function() harpoon:list():select(1) end) vim.keymap.set('n', '<C-h>', function() harpoon:list():select(1) end)
vim.keymap.set("n", "<C-j>", function() harpoon:list():select(2) end) vim.keymap.set('n', '<C-j>', function() harpoon:list():select(2) end)
vim.keymap.set("n", "<C-k>", function() harpoon:list():select(3) end) vim.keymap.set('n', '<C-k>', function() harpoon:list():select(3) end)
vim.keymap.set("n", "<C-l>", function() harpoon:list():select(4) end) vim.keymap.set('n', '<C-l>', function() harpoon:list():select(4) end)
end end
} }

View File

@@ -1,13 +0,0 @@
return {
"ziontee113/icon-picker.nvim",
config = function()
require("icon-picker").setup({ disable_legacy_commands = true })
local opts = { noremap = true, silent = true }
vim.keymap.set("n", "<Leader><Leader>i", "<cmd>IconPickerNormal<cr>", opts)
vim.keymap.set("n", "<Leader><Leader>y", "<cmd>IconPickerYank<cr>", opts) --> Yank the selected icon into register
vim.keymap.set("i", "<C-i>", "<cmd>IconPickerInsert<cr>", opts)
end
}

View File

@@ -0,0 +1,8 @@
return {
'RRethy/vim-illuminate',
config = function ()
local illuminate = require('illuminate')
illuminate.configure()
end
}

View File

@@ -1 +1,2 @@
return { "lukas-reineke/indent-blankline.nvim", main = "ibl", opts = {} } return { 'lukas-reineke/indent-blankline.nvim', main = 'ibl', opts = {} }

View File

@@ -1,6 +1,7 @@
return { return {
{ {
"nvim-lua/plenary.nvim", 'nvim-lua/plenary.nvim',
name = "plenary" name = 'plenary'
}, },
} }

View File

@@ -1,34 +1,41 @@
return { return {
'neovim/nvim-lspconfig', 'neovim/nvim-lspconfig',
tag = "v1.0.0", version = '^2.3.0',
dependencies = { dependencies = {
'williamboman/mason.nvim', 'williamboman/mason.nvim',
'williamboman/mason-lspconfig.nvim', 'williamboman/mason-lspconfig.nvim',
'hrsh7th/nvim-cmp', 'saghen/blink.cmp',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'SergioRibera/cmp-dotenv',
'hrsh7th/cmp-cmdline',
'saadparwaiz1/cmp_luasnip',
'L3MON4D3/LuaSnip', 'L3MON4D3/LuaSnip',
'j-hui/fidget.nvim', 'j-hui/fidget.nvim',
'rafamadriz/friendly-snippets', 'rafamadriz/friendly-snippets',
{ 'towolf/vim-helm', ft = 'helm' }, { 'towolf/vim-helm', ft = 'helm' },
{
'folke/lazydev.nvim',
ft = 'lua', -- only load on lua files
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
},
},
},
}, },
config = function() config = function()
local lspconfig = require('lspconfig') vim.diagnostic.config({ virtual_text = false })
local cmp = require('cmp') local lspconfig = require('lspconfig')
local luasnip = require('luasnip')
-- load snippets from friendly-snippets -- load snippets from friendly-snippets
require('luasnip.loaders.from_vscode').lazy_load() require('luasnip.loaders.from_vscode').lazy_load()
require('fidget').setup({}) require('fidget').setup({})
require('mason').setup({}) require('mason').setup({})
---@module 'mason-lspconfig'
---@type MasonLspconfigSettings
require('mason-lspconfig').setup({ require('mason-lspconfig').setup({
automatic_enable = true,
-- Replace the language servers listed here -- Replace the language servers listed here
-- with the ones you want to install -- with the ones you want to install
ensure_installed = { ensure_installed = {
@@ -41,129 +48,61 @@ return {
'ansiblels', 'ansiblels',
'terraformls', 'terraformls',
'helm_ls', 'helm_ls',
'marksman',
}, },
handlers = {
function(server_name)
local capabilities = require('cmp_nvim_lsp').default_capabilities()
require('lspconfig')[server_name].setup({
capabilities = capabilities
})
end,
}
})
cmp.setup({
sources = {
{ name = 'path' },
{ name = 'nvim_lsp' },
{ name = 'luasnip', keyword_length = 2 },
{ name = 'buffer', keyword_length = 3 },
},
mapping = cmp.mapping.preset.insert({
-- `Enter` key to confirm completion
['<CR>'] = cmp.mapping({
i = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })
else
fallback()
end
end,
s = cmp.mapping.confirm({ select = true }),
c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
}),
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.locally_jumpable(1) then
luasnip.jump(1)
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
-- Ctrl+Space to trigger completion menu
['<C-Space>'] = cmp.mapping.complete(),
-- Scroll up and down in the completion documentation
['<C-u>'] = cmp.mapping.scroll_docs(-4),
['<C-d>'] = cmp.mapping.scroll_docs(4),
}),
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end,
},
}) })
local pythonLineLength = 95 local lazydev = require('lazydev')
lspconfig.pylsp.setup { lazydev.setup()
vim.lsp.config('lua_ls', {
root_dir = function(bufnr, on_dir) on_dir(lazydev.find_workspace(bufnr)) end
})
---@type lspconfig.Config
vim.lsp.config('pylsp', {
settings = { settings = {
pylsp = { ['pylsp'] = {
plugins = { plugins = {
autopep8 = {
enabled = false,
},
yapf = {
enabled = true,
},
pycodestyle = { pycodestyle = {
ignore = { 'W391' }, ignore = { 'W391' },
maxLineLength = pythonLineLength maxLineLength = 95,
} }
} }
} }
} }
}
lspconfig.ansiblels.setup {}
lspconfig.lua_ls.setup {
on_init = function(client)
local path = client.workspace_folders[1].name
if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then
return
end
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
runtime = {
-- Tell the language server which version of Lua you're using
-- (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT'
},
-- Make the server aware of Neovim runtime files
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME
-- Depending on the usage, you might want to add additional paths here.
-- '${3rd}/luv/library'
-- '${3rd}/busted/library',
}
-- or pull in all of 'runtimepath'. NOTE: this is a lot slower
-- library = vim.api.nvim_get_runtime_file('', true)
}
}) })
end,
settings = { -- leave it until it works with lsp.config
Lua = {}
}
}
lspconfig.helm_ls.setup { lspconfig.helm_ls.setup {
settings = { settings = {
['helm-ls'] = { ['helm-ls'] = {
yamlls = { yamlls = {
path = 'yaml-language-server', enabled = false,
path = "yaml-language-server",
} }
} }
} }
} }
lspconfig.terraformls.setup { -- vim.lsp.config('helm-ls', {
-- settings = {
-- ['helm-ls'] = {
-- yamlls = {
-- path = "yaml-language-server",
-- enabled = false,
-- }
-- }
-- }
-- })
vim.lsp.config('terraformls', {
filetypes = { 'terraform', 'terraform-vars', 'tf' } filetypes = { 'terraform', 'terraform-vars', 'tf' }
} })
end end
} }

View File

@@ -17,7 +17,8 @@ return {
lightgray = '#504945', lightgray = '#504945',
inactivegray = '#7c6f64', inactivegray = '#7c6f64',
} }
require('lualine').setup({ require('lualine').setup(
{
options = { options = {
theme = { theme = {
normal = { normal = {
@@ -56,7 +57,7 @@ return {
lualine_c = { lualine_c = {
{ {
'filename', 'filename',
path = 4, path = 1,
}, },
{ {
'navic', 'navic',

View File

@@ -0,0 +1,12 @@
return {
'MeanderingProgrammer/render-markdown.nvim',
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
---@module 'render-markdown'
---@type render.md.UserConfig
opts = {
completions = {
blink = { enabled = true }
}
},
}

View File

@@ -7,7 +7,8 @@ return {
local navic = require('nvim-navic') local navic = require('nvim-navic')
navic.setup({ navic.setup({
lsp = { lsp = {
auto_attach = true auto_attach = true,
preference = { 'helm_ls', 'yamlls' }
} }
}) })
end end

View File

@@ -1,3 +0,0 @@
return {
{ "folke/neodev.nvim", opts = {} }
}

View File

@@ -0,0 +1,27 @@
return {
{
'nvim-neo-tree/neo-tree.nvim',
branch = 'v3.x',
dependencies = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
'nvim-tree/nvim-web-devicons', -- optional, but recommended
},
lazy = false, -- neo-tree will lazily load itself
---@module 'neo-tree'
---@type neotree.Config
opts = {
filesystem = {
hijack_netrw_behavior = 'disabled',
filtered_items = {
hide_dotfiles = false,
never_show = {'.DS_Store'},
},
},
window = {
position = 'current',
}
},
}
}

View File

@@ -0,0 +1,11 @@
return {
'nvimtools/none-ls.nvim',
-- Optional dependencies
dependencies = { 'nvim-lua/plenary.nvim' },
opts = {},
config = function()
local null_ls = require('null-ls')
null_ls.setup({})
end
}

View File

@@ -0,0 +1,57 @@
return {
'obsidian-nvim/obsidian.nvim',
version = '*', -- recommended, use latest release instead of latest commit
dependencies = {
-- Required.
'nvim-lua/plenary.nvim',
},
keys = {
{ '<leader>ot', '<cmd>ObsidianToday<CR>', desc = "Open today's daily note" },
{ '<leader>os', '<cmd>ObsidianQuickSwitch<CR>', desc = 'Search notes in my vault and switch to selected' },
},
mappings = {
-- Overrides the 'gf' mapping to work on markdown/wiki links within your vault.
["gf"] = {
action = function()
return require("obsidian").util.gf_passthrough()
end,
opts = { noremap = false, expr = true, buffer = true },
},
-- Toggle check-boxes.
["<leader>ch"] = {
action = function()
return require("obsidian").util.toggle_checkbox()
end,
opts = { buffer = true },
},
-- Smart action depending on context, either follow link or toggle checkbox.
["<cr>"] = {
action = function()
return require("obsidian").util.smart_action()
end,
opts = { buffer = true, expr = true },
},
},
opts = {
workspaces = {
{
name = 'tech-work-hobby',
path = '/Users/rtim/Documents/Notes/tech-work-hobby/',
},
},
daily_notes = {
folder = 'Daily',
date_format = '%Y-%m-%d (%A)',
default_tags = { 'daily' },
template = 'Daily.md',
},
templates = {
folder = 'Templates',
},
completion = {
blink = true,
nvim_cmp = false,
}
},
}

View File

@@ -10,6 +10,9 @@ return {
}, },
keymaps = { keymaps = {
['<C-h>'] = false, ['<C-h>'] = false,
['<C-j>'] = false,
['<C-k>'] = false,
['<C-l>'] = false,
} }
}) })
end end

View File

@@ -0,0 +1,56 @@
return {
'echasnovski/mini.pairs',
event = 'VeryLazy',
opts = {
modes = { insert = true, command = true, terminal = false },
-- skip autopair when next character is one of these
skip_next = [=[[%w%%%'%[%"%.%`%$]]=],
-- skip autopair when the cursor is inside these treesitter nodes
skip_ts = { "string" },
-- skip autopair when next character is closing pair
-- and there are more closing pairs than opening pairs
skip_unbalanced = true,
-- better deal with markdown code blocks
markdown = true,
},
config = function(_, opts)
local pairs = require("mini.pairs")
pairs.setup(opts)
local open = pairs.open
pairs.open = function(pair, neigh_pattern)
if vim.fn.getcmdline() ~= "" then
return open(pair, neigh_pattern)
end
local o, c = pair:sub(1, 1), pair:sub(2, 2)
local line = vim.api.nvim_get_current_line()
local cursor = vim.api.nvim_win_get_cursor(0)
local next = line:sub(cursor[2] + 1, cursor[2] + 1)
local before = line:sub(1, cursor[2])
if opts.markdown and o == "`" and vim.bo.filetype == "markdown" and before:match("^%s*``") then
return "`\n```" .. vim.api.nvim_replace_termcodes("<up>", true, true, true)
end
if opts.skip_next and next ~= "" and next:match(opts.skip_next) then
return o
end
if opts.skip_ts and #opts.skip_ts > 0 then
local ok, captures = pcall(vim.treesitter.get_captures_at_pos, 0, cursor[1] - 1,
math.max(cursor[2] - 1, 0))
for _, capture in ipairs(ok and captures or {}) do
if vim.tbl_contains(opts.skip_ts, capture.capture) then
return o
end
end
end
if opts.skip_unbalanced and next == c and c ~= o then
local _, count_open = line:gsub(vim.pesc(pair:sub(1, 1)), "")
local _, count_close = line:gsub(vim.pesc(pair:sub(2, 2)), "")
if count_close > count_open then
return o
end
end
return open(pair, neigh_pattern)
end
end,
}

View File

@@ -0,0 +1,45 @@
return {
'frankroeder/parrot.nvim',
version = "2.3.0",
dependencies = { 'ibhagwan/fzf-lua', 'nvim-lua/plenary.nvim' },
opts = {
providers = {
anthropic = {
name = "anthropic",
endpoint = "https://api.anthropic.com/v1/messages",
model_endpoint = "https://api.anthropic.com/v1/models",
api_key = { "/usr/local/bin/sops", "--config", "/dev/null", "-d", vim.fn.expand("$HOME") .. "/.claude-api" },
headers = function(self)
return {
["Content-Type"] = "application/json",
["x-api-key"] = self.api_key,
["anthropic-version"] = "2023-06-01",
}
end,
params = {
chat = { max_tokens = 4096 },
command = { max_tokens = 4096 },
},
models = {
"claude-sonnet-4-20250514",
"claude-3-7-sonnet-20250219",
"claude-3-5-sonnet-20241022",
"claude-3-5-haiku-20241022",
},
preprocess_payload = function(payload)
for _, message in ipairs(payload.messages) do
message.content = message.content:gsub("^%s*(.-)%s*$", "%1")
end
if payload.messages[1] and payload.messages[1].role == "system" then
-- remove the first message that serves as the system prompt as anthropic
-- expects the system prompt to be part of the API call body and not the messages
payload.system = payload.messages[1].content
table.remove(payload.messages, 1)
end
return payload
end,
}
}
}
}

View File

@@ -1,13 +1,10 @@
return { return {
'lucidph3nx/nvim-sops', 'lucidph3nx/nvim-sops',
event = { 'BufEnter' }, event = { 'BufEnter' },
opts = { opts = { },
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = { keys = {
{ '<leader>ef', vim.cmd.SopsEncrypt, desc = '[E]ncrypt [F]ile' }, { '<leader>ef', vim.cmd.SopsEncrypt, desc = '[E]ncrypt [F]ile' },
{ '<leader>df', vim.cmd.SopsDecrypt, desc = '[D]ecrypt [F]ile' }, { '<leader>df', vim.cmd.SopsDecrypt, desc = '[D]ecrypt [F]ile' },
}, },
} }

View File

@@ -3,8 +3,7 @@ return {
version = "*", -- Use for stability; omit to use `main` branch for the latest features version = "*", -- Use for stability; omit to use `main` branch for the latest features
event = "VeryLazy", event = "VeryLazy",
config = function() config = function()
require("nvim-surround").setup({ require("nvim-surround").setup({})
-- Configuration here, or leave empty to use defaults
})
end end
} }

View File

@@ -0,0 +1,11 @@
-- I literally need this for Dadbod for a nicer name in tabs. I don't use tabs
-- in any other way
return {
'nanozuki/tabby.nvim',
---@module 'tabby'
---@type TabbyConfig
opts = {
-- configs...
},
}

View File

@@ -2,7 +2,12 @@ return {
'FabianWirth/search.nvim', 'FabianWirth/search.nvim',
dependencies = { dependencies = {
'nvim-lua/plenary.nvim', 'nvim-lua/plenary.nvim',
{
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
dependencies = {
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }
}
},
}, },
config = function() config = function()
@@ -19,15 +24,16 @@ return {
vimgrep_arguments = vimgrep_arguments, vimgrep_arguments = vimgrep_arguments,
file_ignore_patterns = { file_ignore_patterns = {
'node_modules', 'node_modules',
'.git/'
} }
}, },
pickers = { extensions = {
find_files = { fzf = {}
find_command = { 'rg', '--files', '--hidden', '--glob', '!**/.git/*' },
}
} }
}) })
telescope.load_extension('fzf')
local search = require('search') local search = require('search')
local builtin = require('telescope.builtin') local builtin = require('telescope.builtin')

View File

@@ -1,5 +1,6 @@
return { return {
"nvim-treesitter/nvim-treesitter", 'nvim-treesitter/nvim-treesitter',
branch='master',
build = ":TSUpdate", build = ":TSUpdate",
config = function() config = function()
require("nvim-treesitter.configs").setup({ require("nvim-treesitter.configs").setup({
@@ -28,3 +29,4 @@ return {
}) })
end end
} }

43
lua/crentist/lazy/ufo.lua Normal file
View File

@@ -0,0 +1,43 @@
return {
'kevinhwang91/nvim-ufo',
event = 'BufReadPost',
dependencies = {
'kevinhwang91/promise-async',
'nvim-treesitter/nvim-treesitter',
{
'luukvbaal/statuscol.nvim',
config = function()
local builtin = require('statuscol.builtin')
require('statuscol').setup({
relculright = true,
segments = {
{ text = { builtin.foldfunc }, sign = { colwidth = 1 }, click = 'v:lua.ScFa', },
{ text = { '%s' }, sign = { colwidth = 1 }, click = 'v:lua.ScSa', hl = 'FoldColumn' },
{ text = { builtin.lnumfunc, ' ' }, click = 'v:lua.ScLa', hl = 'FoldColumn' },
},
})
end
}
},
init = function()
vim.opt.foldenable = true
vim.opt.foldcolumn = '1'
vim.opt.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.opt.foldlevelstart = 99
vim.opt.fillchars = 'eob: ,fold: ,foldopen:,foldsep: ,foldclose:'
vim.opt.foldtext = ''
end,
opts = {
provider_selector = function(bufnr, filetype, buftype)
return { 'treesitter', 'indent' }
end
},
config = function()
require('ufo').setup({
provider_selector = function(bufnr, filetype, buftype)
return { 'treesitter', 'indent' }
end
})
end
}

View File

@@ -11,7 +11,9 @@ vim.keymap.set({ "i", "s" }, "<C-l>", function()
end end
end, { desc = "Snippet next argument", silent = true }) end, { desc = "Snippet next argument", silent = true })
-- nvim config --------------------
-- Snippets for LUA
--------------------
ls.add_snippets('lua', { ls.add_snippets('lua', {
s({ name = 'LuaSnip Snippet', trig = 'snipf' }, s({ name = 'LuaSnip Snippet', trig = 'snipf' },
fmt([[ fmt([[
@@ -44,7 +46,9 @@ ls.add_snippets('lua', {
), ),
}) })
-- Comment block --------------------
-- Generic snippets
--------------------
local function com_string(_, snip, to_multiply) local function com_string(_, snip, to_multiply)
local comment_string = vim.bo.commentstring local comment_string = vim.bo.commentstring
local repeats = snip.captures[1] local repeats = snip.captures[1]
@@ -78,3 +82,47 @@ ls.add_snippets('all', {
), ),
}) })
--------------------
-- Terraform
--------------------
ls.add_snippets('terraform', {
s({ name = 'data_assume', trig = 'tf_assume' },
fmt([[
data "aws_iam_policy_document" "<name>" {
statement {
actions = ["sts:AssumeRole"]
principals {
type = "Service"
identifiers = ["<service>.amazonaws.com"]
}
}
}
]],
{
name = i(1, 'assume'),
service = i(2, 'service')
},
{ delimiters = '<>' }
)
),
})
------------------------------
-- YAML
------------------------------
local yaml_schema_snippet = s(
{ name = 'yaml_schema', trig = 'yaml_schema' },
fmt([[
{comment} yaml-language-server: $schema={path}
]],
{
path = i(1, 'path'),
comment = f(com_string, {}, { user_args = { false } }),
}
)
)
ls.add_snippets('yaml', { yaml_schema_snippet })
ls.add_snippets('helm', { yaml_schema_snippet })

56
lua/crentist/null-ls.lua Normal file
View File

@@ -0,0 +1,56 @@
local null_ls = require('null-ls')
local plenary = require('plenary')
local kustomize_condition = function(node, params)
if node == nil then return false end
if vim.treesitter.get_node_text(node, params['bufnr']) ~= 'resources' then return false end
return true
end
---@module 'null-ls'
---@type
local kustomize_action = {
method = null_ls.methods.CODE_ACTION,
filetypes = { 'yaml' },
generator = {
fn = function(params)
local out = {}
local node = vim.treesitter.get_node()
if kustomize_condition(node, params) then
table.insert(out, {
title = '📁 Create resources',
action = function()
local node_below = vim.treesitter.get_node({ bufnr = 0, pos = { params['row'] + 1, 0 } })
if node_below == nil or node_below:type() ~= 'block_sequence' then
vim.api.nvim_echo({ { '❌Failed to get list items.', 'Normal' } }, false, {})
return
end
local checked_files = ''
for list_item, _ in node_below:iter_children() do
if list_item ~= nil then
local item_value_node = list_item:child(1) -- 0 is `-`, 1 is the actual value
if item_value_node ~= nil then
local file_name = vim.treesitter.get_node_text(item_value_node, params['bufnr'])
local file_name_path = plenary.path.new(file_name)
local current_file = plenary.path.new(vim.fn.expand('%'))
local parent = plenary.path.new(current_file:parents()[1])
local new_file = parent / file_name
new_file:touch({mode=644})
end
end
end
end,
})
end
return out
end,
},
}
-- null_ls.deregister(kustomize_action)
null_ls.register(kustomize_action)

View File

@@ -2,6 +2,8 @@ vim.g.mapleader = " "
vim.keymap.set("n", "<leader>Pv", ":Oil .<CR>") vim.keymap.set("n", "<leader>Pv", ":Oil .<CR>")
vim.keymap.set("n", "<leader>pv", ":Oil<CR>") vim.keymap.set("n", "<leader>pv", ":Oil<CR>")
vim.keymap.set("n", "<leader>pt", ":Neotree .<CR>")
vim.keymap.set("n", "<C-d>", "<C-d>zz") vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz") vim.keymap.set("n", "<C-u>", "<C-u>zz")
@@ -28,6 +30,14 @@ vim.keymap.set({"n", "v"}, "<leader>d", [["_d]])
vim.keymap.set("n", "Q", "<nop>") vim.keymap.set("n", "Q", "<nop>")
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]) vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
vim.keymap.set("n", "<leader>S", [[:%s/\<<C-r><C-a>\>/<C-r><C-a>/gI<Left><Left><Left>]])
vim.keymap.set("n", "<C-s>", "<cmd>silent !tmux neww tmux-sessionizer<CR>") vim.keymap.set("n", "<C-s>", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
vim.keymap.set("n", "<leader><leader>x", "<cmd>source %<CR>")
vim.keymap.set("n", "<leader>x", ":.lua<CR>")
vim.keymap.set("v", "<leader>x", ":lua<CR>")
vim.keymap.set("n", "<C-M-j>", "<cmd>cnext<CR>")
vim.keymap.set("n", "<C-M-k>", "<cmd>cprev<CR>")

View File

@@ -23,7 +23,7 @@ vim.opt.incsearch = true
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.opt.scrolloff = 8 vim.opt.scrolloff = 8
vim.opt.signcolumn = "yes" vim.opt.signcolumn = "yes:1"
vim.opt.isfname:append("@-@") vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50 vim.opt.updatetime = 50