From bb04deaec858dac265e1df5dee82634f25103bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20La=C3=ADn?= Date: Sun, 3 Dec 2023 17:32:12 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(nvim):=20added=20new=20extras:?= =?UTF-8?q?=20treesitter=20context=20and=20text-case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/nvim/lazyvim.json | 2 + .../extras/coding/treesitter/text-case.lua | 57 +++++++++++++++++++ .../nvim/lua/plugins/extras/ui/context.lua | 17 ++++++ 3 files changed, 76 insertions(+) create mode 100644 .config/nvim/lua/plugins/extras/coding/treesitter/text-case.lua create mode 100644 .config/nvim/lua/plugins/extras/ui/context.lua diff --git a/.config/nvim/lazyvim.json b/.config/nvim/lazyvim.json index 91d8559f..fd5e5712 100644 --- a/.config/nvim/lazyvim.json +++ b/.config/nvim/lazyvim.json @@ -26,6 +26,7 @@ "plugins.extras.coding.treesitter.endwise", "plugins.extras.coding.treesitter.node-action", "plugins.extras.coding.treesitter.puppeteer", + "plugins.extras.coding.treesitter.text-case", "plugins.extras.dap.persistent-breakpoints", "plugins.extras.editor.color", "plugins.extras.editor.docs.devdocs", @@ -60,6 +61,7 @@ "plugins.extras.lsp.lightbulb", "plugins.extras.ui.alpha", "plugins.extras.ui.breadcrumbs", + "plugins.extras.ui.context", "plugins.extras.ui.highlight-undo", "plugins.extras.ui.number-toggle", "plugins.extras.ui.rainbow-delimeters", diff --git a/.config/nvim/lua/plugins/extras/coding/treesitter/text-case.lua b/.config/nvim/lua/plugins/extras/coding/treesitter/text-case.lua new file mode 100644 index 00000000..cb54b99f --- /dev/null +++ b/.config/nvim/lua/plugins/extras/coding/treesitter/text-case.lua @@ -0,0 +1,57 @@ +return { + { + "johmsalas/text-case.nvim", + opts = { + default_keymappings_enabled = false, + }, + -- stylua: ignore + keys = { + { "gCu", "lua require('textcase').current_word('to_upper_case')", mode = { "n", "v" }, desc = "UPPER CASE", }, + { "gCl", "lua require('textcase').current_word('to_lower_case')", mode = { "n", "v" }, desc = "lower case", }, + { "gCs", "lua require('textcase').current_word('to_snake_case')", mode = { "n", "v" }, desc = "snake_case", }, + { "gCd", "lua require('textcase').current_word('to_dash_case')", mode = { "n", "v" }, desc = "dash-case", }, + { "gCn", "lua require('textcase').current_word('to_constant_case')", mode = { "n", "v" }, desc = "CONSTANT_CASE", }, + { "gCd", "lua require('textcase').current_word('to_dot_case')", mode = { "n", "v" }, desc = "dot.case", }, + { "gCa", "lua require('textcase').current_word('to_phrase_case')", mode = { "n", "v" }, desc = "phrase case", }, + { "gCc", "lua require('textcase').current_word('to_camel_case')", mode = { "n", "v" }, desc = "camelCase", }, + { "gCp", "lua require('textcase').current_word('to_pascal_case')", mode = { "n", "v" }, desc = "PascalCase", }, + { "gCt", "lua require('textcase').current_word('to_title_case')", mode = { "n", "v" }, desc = "Title Case", }, + { "gCf", "lua require('textcase').current_word('to_path_case')", mode = { "n", "v" }, desc = "path/case", }, + + -- LSP + { "gCU", "lua require('textcase').lsp_rename('to_upper_case')", mode = { "n", "v" }, desc = "lsp - UPPER CASE", }, + { "gCL", "lua require('textcase').lsp_rename('to_lower_case')", mode = { "n", "v" }, desc = "lsp - lower case", }, + { "gCS", "lua require('textcase').lsp_rename('to_snake_case')", mode = { "n", "v" }, desc = "lsp - snake_case", }, + { "gCD", "lua require('textcase').lsp_rename('to_dash_case')", mode = { "n", "v" }, desc = "lsp - dash-case", }, + { "gCN", "lua require('textcase').lsp_rename('to_constant_case')", mode = { "n", "v" }, desc = "lsp - CONSTANT_CASE", }, + { "gCD", "lua require('textcase').lsp_rename('to_dot_case')", mode = { "n", "v" }, desc = "lsp - dot.case", }, + { "gCA", "lua require('textcase').lsp_rename('to_phrase_case')", mode = { "n", "v" }, desc = "lsp - phrase case", }, + { "gCC", "lua require('textcase').lsp_rename('to_camel_case')", mode = { "n", "v" }, desc = "lsp - camelCase", }, + { "gCP", "lua require('textcase').lsp_rename('to_pascal_case')", mode = { "n", "v" }, desc = "lsp - PascalCase", }, + { "gCT", "lua require('textcase').lsp_rename('to_title_case')", mode = { "n", "v" }, desc = "lsp - Title Case", }, + { "gCF", "lua require('textcase').lsp_rename('to_path_case')", mode = { "n", "v" }, desc = "lsp - path/case", }, + + -- Operator + { "gCou", "lua require('textcase').operator('to_upper_case')", mode = { "n", "v" }, desc = "UPPER CASE", }, + { "gCol", "lua require('textcase').operator('to_lower_case')", mode = { "n", "v" }, desc = "lower case", }, + { "gCos", "lua require('textcase').operator('to_snake_case')", mode = { "n", "v" }, desc = "snake_case", }, + { "gCod", "lua require('textcase').operator('to_dash_case')", mode = { "n", "v" }, desc = "dash-case", }, + { "gCon", "lua require('textcase').operator('to_constant_case')", mode = { "n", "v" }, desc = "CONSTANT_CASE", }, + { "gCod", "lua require('textcase').operator('to_dot_case')", mode = { "n", "v" }, desc = "dot.case", }, + { "gCoa", "lua require('textcase').operator('to_phrase_case')", mode = { "n", "v" }, desc = "phrase case", }, + { "gCoc", "lua require('textcase').operator('to_camel_case')", mode = { "n", "v" }, desc = "camelCase", }, + { "gCop", "lua require('textcase').operator('to_pascal_case')", mode = { "n", "v" }, desc = "PascalCase", }, + { "gCot", "lua require('textcase').operator('to_title_case')", mode = { "n", "v" }, desc = "Title Case", }, + { "gCof", "lua require('textcase').operator('to_path_case')", mode = { "n", "v" }, desc = "path/case", }, + }, + }, + { + "folke/which-key.nvim", + opts = { + defaults = { + ["gC"] = { name = "+text case" }, + ["gCo"] = { name = "+operator" }, + }, + }, + }, +} diff --git a/.config/nvim/lua/plugins/extras/ui/context.lua b/.config/nvim/lua/plugins/extras/ui/context.lua new file mode 100644 index 00000000..0ca1dabc --- /dev/null +++ b/.config/nvim/lua/plugins/extras/ui/context.lua @@ -0,0 +1,17 @@ +return { + "haringsrob/nvim_context_vt", + event = "LazyFile", + dependencies = "nvim-treesitter/nvim-treesitter", + opts = { + prefix = " 󱞷", + highlight = "NonText", + min_rows = 7, + disable_ft = { "markdown", "css" }, + -- Disable display of virtual text below blocks for indentation based + -- languages like Python + disable_virtual_lines_ft = { "yaml" }, + }, + keys = { + { "ux", "NvimContextVtToggle", desc = "Toggle Context" }, + }, +}