From cf77cb4935d94478932571d583a9e69f7d823353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20La=C3=ADn?= Date: Thu, 4 Jan 2024 13:08:10 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(nvim):=20add=20extra=20for=20e?= =?UTF-8?q?asier=20management=20of=20custom=20snippets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/nvim/lazy-lock.json | 5 ++- .config/nvim/lazyvim.json | 4 +- .../lua/plugins/extras/coding/annotation.lua | 2 +- .../lua/plugins/extras/coding/snippets.lua | 25 ++++++++++++ .config/nvim/lua/plugins/lazyvim-extras.lua | 1 - .config/nvim/lua/plugins/lazyvim-included.lua | 2 - .config/nvim/lua/plugins/luasnip.lua | 10 +++++ .config/nvim/snippets/languages/css.json | 13 +++++++ .config/nvim/snippets/languages/global.json | 6 +++ .config/nvim/snippets/languages/markdown.json | 7 ++++ .config/nvim/snippets/package.json | 38 +++++++++++++++++++ 11 files changed, 106 insertions(+), 7 deletions(-) create mode 100644 .config/nvim/lua/plugins/extras/coding/snippets.lua create mode 100644 .config/nvim/lua/plugins/luasnip.lua create mode 100644 .config/nvim/snippets/languages/css.json create mode 100644 .config/nvim/snippets/languages/global.json create mode 100644 .config/nvim/snippets/languages/markdown.json create mode 100644 .config/nvim/snippets/package.json diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 866f4e36..c6897886 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -15,7 +15,7 @@ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "codeium.vim": { "branch": "main", "commit": "4063291e335e74e9ee2be04beb47d40b376312fa" }, - "compiler.nvim": { "branch": "main", "commit": "b2661965cc4a9603642ddb03fb766fd2bd8b2dc9" }, + "compiler.nvim": { "branch": "main", "commit": "e7a8b34e8a48d57d50882ada13ab409a00d20471" }, "conform.nvim": { "branch": "master", "commit": "c4b2efb8aee4af0ef179a9b49ba401de3c4ef5d2" }, "crates.nvim": { "branch": "main", "commit": "6d779c7b85139d89d92a4a0bcf0afbdcf0cd961a" }, "dashboard-nvim": { "branch": "master", "commit": "63df28409d940f9cac0a925df09d3dc369db9841" }, @@ -85,6 +85,7 @@ "nvim-numbertoggle": { "branch": "main", "commit": "9ab95e60ea5ec138e1b2332e0fc18b8e5de464c6" }, "nvim-puppeteer": { "branch": "main", "commit": "d7e1b2d67c89d32b6ecada88ff67b539ba09f2d7" }, "nvim-recorder": { "branch": "main", "commit": "daaae505862e816a7efe578e22d6f3d10cd7a2e6" }, + "nvim-scissors": { "branch": "main", "commit": "9da7c0f032631d6f48501ac3d43d017c988effcf" }, "nvim-spectre": { "branch": "master", "commit": "d8906855f1949ac97b1e77aaf8d3fe12ed158ddc" }, "nvim-treesitter": { "branch": "master", "commit": "0da349ed303bea955942f409d29059cdb89dbe2c" }, "nvim-treesitter-context": { "branch": "master", "commit": "652ec514d6ba8bc4a3c2de76c855fe668e2c7196" }, @@ -92,7 +93,7 @@ "nvim-treesitter-textobjects": { "branch": "master", "commit": "85b9d0cbd4ff901abcda862b50dbb34e0901848b" }, "nvim-ts-autotag": { "branch": "main", "commit": "8515e48a277a2f4947d91004d9aa92c29fdc5e18" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "1277b4a1f451b0f18c0790e1a7f12e1e5fdebfee" }, - "nvim-various-textobjs": { "branch": "main", "commit": "e7d4f3d00ebfd6f29fd46b837a09c19096176133" }, + "nvim-various-textobjs": { "branch": "main", "commit": "3d5fe55e79a7d7b64cd715e37b5db7252379f573" }, "nvim-web-devicons": { "branch": "master", "commit": "3e24abe1ae66532135cec911562f553fe247cb56" }, "nvim_context_vt": { "branch": "master", "commit": "a14f9292b4bd68ceed433fc513f287641816dc6d" }, "octo.nvim": { "branch": "master", "commit": "b5371003f209764c9d1cc43cf20b6dc52961f0e8" }, diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json index 467987e2..493528fd 100644 --- a/.config/nvim/lazyvim.json +++ b/.config/nvim/lazyvim.json @@ -13,6 +13,7 @@ "plugins.extras.coding.multicursor", "plugins.extras.coding.recorder", "plugins.extras.coding.refactoring", + "plugins.extras.coding.snippets", "plugins.extras.coding.sniprun", "plugins.extras.coding.treesitter.endwise", "plugins.extras.coding.treesitter.mini-align", @@ -87,4 +88,5 @@ "NEWS.md": "2123" }, "version": 2 -} \ No newline at end of file +} + diff --git a/.config/nvim/lua/plugins/extras/coding/annotation.lua b/.config/nvim/lua/plugins/extras/coding/annotation.lua index f5df9396..91417fb7 100644 --- a/.config/nvim/lua/plugins/extras/coding/annotation.lua +++ b/.config/nvim/lua/plugins/extras/coding/annotation.lua @@ -18,7 +18,7 @@ return { "folke/which-key.nvim", opts = { defaults = { - ["a"] = { name = " annotation" }, + ["a"] = { name = " annotation/snippets" }, }, }, }, diff --git a/.config/nvim/lua/plugins/extras/coding/snippets.lua b/.config/nvim/lua/plugins/extras/coding/snippets.lua new file mode 100644 index 00000000..e41e8f06 --- /dev/null +++ b/.config/nvim/lua/plugins/extras/coding/snippets.lua @@ -0,0 +1,25 @@ +return { + { + "chrisgrieser/nvim-scissors", + dependencies = { + "stevearc/dressing.nvim", + "rcarriga/nvim-notify", + }, + opts = { + jsonFormatter = "jq", + }, + -- stylua: ignore + keys = { + { "aS", function() require("scissors").editSnippet() end, desc = "Edit Snippets" }, + { "as", function() require("scissors").addNewSnippet() end, desc = "Add Snippets" }, + }, + }, + { + "folke/which-key.nvim", + opts = { + defaults = { + ["a"] = { name = " annotation/snippets" }, + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/lazyvim-extras.lua b/.config/nvim/lua/plugins/lazyvim-extras.lua index 1a56a3a6..65d478c0 100644 --- a/.config/nvim/lua/plugins/lazyvim-extras.lua +++ b/.config/nvim/lua/plugins/lazyvim-extras.lua @@ -74,7 +74,6 @@ return { { "echasnovski/mini.starter", optional = true }, -- Util - { "luckasRanarison/tree-sitter-hypr", optional = true }, { "echasnovski/mini.hipatterns", optional = true }, { "ahmedkhalf/project.nvim", optional = true }, } diff --git a/.config/nvim/lua/plugins/lazyvim-included.lua b/.config/nvim/lua/plugins/lazyvim-included.lua index 019b55c4..1829486f 100644 --- a/.config/nvim/lua/plugins/lazyvim-included.lua +++ b/.config/nvim/lua/plugins/lazyvim-included.lua @@ -2,8 +2,6 @@ return { -- Coding - { "L3MON4D3/LuaSnip" }, - { "rafamadriz/friendly-snippets" }, { "echasnovski/mini.surround" }, { "JoosepAlviste/nvim-ts-context-commentstring" }, { "echasnovski/mini.comment" }, diff --git a/.config/nvim/lua/plugins/luasnip.lua b/.config/nvim/lua/plugins/luasnip.lua new file mode 100644 index 00000000..d9231e35 --- /dev/null +++ b/.config/nvim/lua/plugins/luasnip.lua @@ -0,0 +1,10 @@ +return { + "L3MON4D3/LuaSnip", + dependencies = { + "rafamadriz/friendly-snippets", + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + require("luasnip.loaders.from_vscode").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets" }) + end, + }, +} diff --git a/.config/nvim/snippets/languages/css.json b/.config/nvim/snippets/languages/css.json new file mode 100644 index 00000000..835896fe --- /dev/null +++ b/.config/nvim/snippets/languages/css.json @@ -0,0 +1,13 @@ +{ + "ignore (prettier)": { + "body": "/* prettier-ignore */", + "prefix": "ignore (prettier)" + }, + "ignore range (stylelint)": { + "body": [ + "/* stylelint-disable ${1:no-duplicate-selectors} */", + "/* stylelint-enable ${1:no-duplicate-selectors} */" + ], + "prefix": "ignore range (stylelint)" + } +} diff --git a/.config/nvim/snippets/languages/global.json b/.config/nvim/snippets/languages/global.json new file mode 100644 index 00000000..96e7c982 --- /dev/null +++ b/.config/nvim/snippets/languages/global.json @@ -0,0 +1,6 @@ +{ + "nonbreaking space": { + "body": " ", + "prefix": "nonbreaking space" + } +} diff --git a/.config/nvim/snippets/languages/markdown.json b/.config/nvim/snippets/languages/markdown.json new file mode 100644 index 00000000..a8d9040e --- /dev/null +++ b/.config/nvim/snippets/languages/markdown.json @@ -0,0 +1,7 @@ +{ + "image": { + "body": "\"${2:alt", + "description": "HTML syntax for images used to display images with reduced size", + "prefix": "image" + } +} diff --git a/.config/nvim/snippets/package.json b/.config/nvim/snippets/package.json new file mode 100644 index 00000000..df42b0d4 --- /dev/null +++ b/.config/nvim/snippets/package.json @@ -0,0 +1,38 @@ +{ + "DOCS": [ + "https://code.visualstudio.com/api/language-extensions/snippet-guide", + "https://code.visualstudio.com/docs/editor/userdefinedsnippets", + "https://github.com/L3MON4D3/LuaSnip/blob/master/DOC.md#vs-code" + ], + "contributes": { + "snippets": [ + { + "language": [ + "plaintext", + "markdown", + "tex", + "html", + "global", + "all" + ], + "path": "./languages/global.json" + }, + { + "language": [ + "markdown" + ], + "path": "./languages/markdown.json" + }, + { + "language": [ + "css", + "scss", + "sass", + "less", + "stylus" + ], + "path": "./languages/css.json" + } + ] + } +}