From 11dfad34f78e95aaaed8cf5314b120fd579cfcf8 Mon Sep 17 00:00:00 2001 From: Pratik Tripathy Date: Mon, 4 Aug 2025 11:11:10 +0530 Subject: [PATCH] feat(neovim): Custom snippet configuration for Docker & Rust - VS code format snippets for Docker & Rust - Blink.nvim configured to pick custom snippets automatically --- .../nvim/custom-snippets/dockerfile.json | 22 +++++++++++++++++++ .../.config/nvim/custom-snippets/package.json | 19 ++++++++++++++++ common/.config/nvim/custom-snippets/rust.json | 0 .../.config/nvim/lua/plugins/completion.lua | 12 ++++++++-- 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 common/.config/nvim/custom-snippets/dockerfile.json create mode 100644 common/.config/nvim/custom-snippets/package.json create mode 100644 common/.config/nvim/custom-snippets/rust.json diff --git a/common/.config/nvim/custom-snippets/dockerfile.json b/common/.config/nvim/custom-snippets/dockerfile.json new file mode 100644 index 0000000..14b2657 --- /dev/null +++ b/common/.config/nvim/custom-snippets/dockerfile.json @@ -0,0 +1,22 @@ +{ + "Add User in Debian": { + "prefix": "userd", + "description": "Add User to Debian Container", + "body": [ + "RUN groupadd -r ${1:username} && useradd -m -r -g ${1:username} ${1:username}", + "USER ${1:username}", + "WORKDIR \/${2:workdir}", + "RUN chown ${1:username}:${1:username} \/${2:workdir}" + ] + }, + "Add User in Alpine": { + "prefix": "usera", + "description": "Add User to Alpine Container", + "body": [ + "RUN addgroup -S ${1:username} && adduser -S ${1} -G ${1}", + "USER ${1}", + "WORKDIR \/${2:workdir}", + "RUN chown ${1}:${1} \/${2}" + ] + } +} diff --git a/common/.config/nvim/custom-snippets/package.json b/common/.config/nvim/custom-snippets/package.json new file mode 100644 index 0000000..2726ff7 --- /dev/null +++ b/common/.config/nvim/custom-snippets/package.json @@ -0,0 +1,19 @@ +{ + "name": "custom-snippets", + "contributes": { + "snippets": [ + { + "language": [ + "dockerfile" + ], + "path": "./dockerfile.json" + }, + { + "language": [ + "rust" + ], + "path": "./rust.json" + } + ] + } +} diff --git a/common/.config/nvim/custom-snippets/rust.json b/common/.config/nvim/custom-snippets/rust.json new file mode 100644 index 0000000..e69de29 diff --git a/common/.config/nvim/lua/plugins/completion.lua b/common/.config/nvim/lua/plugins/completion.lua index 81afbde..28108ed 100644 --- a/common/.config/nvim/lua/plugins/completion.lua +++ b/common/.config/nvim/lua/plugins/completion.lua @@ -67,7 +67,10 @@ return { signature = { enabled = true }, - snippets = { preset = "luasnip" }, + snippets = { + preset = "luasnip", + opts = { search_paths = { vim.fn.stdpath("config") .. "/custom-snippets" } }, + }, cmdline = { enabled = true, @@ -122,7 +125,7 @@ return { providers = { lsp = { score_offset = 1000 }, buffer = { score_offset = 950 }, - snippets = { score_offset = 1150 }, + snippets = { score_offset = 900 }, path = { score_offset = 750 }, conventional_commits = { name = "Conventional Commits", @@ -174,6 +177,11 @@ return { "rafamadriz/friendly-snippets", config = function() require("luasnip.loaders.from_vscode").lazy_load() + require("luasnip.loaders.from_vscode").lazy_load({ + paths = { + vim.fn.stdpath("config") .. "/custom-snippets", + }, + }) end, }, build = (function()