aboutsummaryrefslogtreecommitdiffstats
path: root/lua/alpha/plugins
diff options
context:
space:
mode:
authorAriel D'Alessandro <dalessandro.ariel@gmail.com>2023-01-17 23:53:34 +0100
committerAriel D'Alessandro <dalessandro.ariel@gmail.com>2023-01-18 09:03:37 +0100
commita04f9cd914055244f29e9ff17aa7a723f5db2405 (patch)
tree703edf280638e30fe77dd46a60a2e5442e8fd33a /lua/alpha/plugins
parentec9655746b21d5ffb01caf502cf9047f83fc3753 (diff)
downloadnvim-conf-a04f9cd914055244f29e9ff17aa7a723f5db2405.tar.gz
nvim-conf-a04f9cd914055244f29e9ff17aa7a723f5db2405.zip
feat: migration to lazy
Diffstat (limited to 'lua/alpha/plugins')
-rw-r--r--lua/alpha/plugins/colorscheme.lua9
-rw-r--r--lua/alpha/plugins/completition.lua19
-rw-r--r--lua/alpha/plugins/dap.lua14
-rw-r--r--lua/alpha/plugins/database.lua11
-rw-r--r--lua/alpha/plugins/dressing.lua161
-rw-r--r--lua/alpha/plugins/gitsigns.lua20
-rw-r--r--lua/alpha/plugins/harpoon.lua10
-rw-r--r--lua/alpha/plugins/init.lua54
-rw-r--r--lua/alpha/plugins/lsp.lua19
-rw-r--r--lua/alpha/plugins/lualine.lua38
-rw-r--r--lua/alpha/plugins/neotest.lua63
-rw-r--r--lua/alpha/plugins/refactoring.lua10
-rw-r--r--lua/alpha/plugins/rest.lua41
-rw-r--r--lua/alpha/plugins/snippets.lua135
-rw-r--r--lua/alpha/plugins/telescope.lua17
-rw-r--r--lua/alpha/plugins/transparent.lua20
-rw-r--r--lua/alpha/plugins/treesitter.lua71
17 files changed, 712 insertions, 0 deletions
diff --git a/lua/alpha/plugins/colorscheme.lua b/lua/alpha/plugins/colorscheme.lua
new file mode 100644
index 0000000..8b9bbbd
--- /dev/null
+++ b/lua/alpha/plugins/colorscheme.lua
@@ -0,0 +1,9 @@
+return {
+ "folke/tokyonight.nvim",
+ config = function()
+ require("tokyonight").setup({
+ style = "night"
+ })
+ vim.cmd.colorscheme("tokyonight")
+ end
+}
diff --git a/lua/alpha/plugins/completition.lua b/lua/alpha/plugins/completition.lua
new file mode 100644
index 0000000..0ab9b89
--- /dev/null
+++ b/lua/alpha/plugins/completition.lua
@@ -0,0 +1,19 @@
+return {
+ "hrsh7th/nvim-cmp",
+ dependencies = {
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-path",
+ "hrsh7th/cmp-nvim-lua",
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-cmdline",
+ "hrsh7th/cmp-git",
+ "rcarriga/cmp-dap",
+ "saadparwaiz1/cmp_luasnip",
+ "onsails/lspkind-nvim",
+ { "L3MON4D3/LuaSnip", version = "v1.*" },
+ "windwp/nvim-autopairs",
+ },
+ config = function ()
+ require("alpha.completition")
+ end
+}
diff --git a/lua/alpha/plugins/dap.lua b/lua/alpha/plugins/dap.lua
new file mode 100644
index 0000000..6f33484
--- /dev/null
+++ b/lua/alpha/plugins/dap.lua
@@ -0,0 +1,14 @@
+return {
+ "mfussenegger/nvim-dap",
+ dependencies = {
+ "theHamsta/nvim-dap-virtual-text",
+ "rcarriga/nvim-dap-ui",
+ "leoluz/nvim-dap-go",
+ "mxsdev/nvim-dap-vscode-js",
+ "anuvyklack/hydra.nvim",
+ },
+ keys = { { "<leader>d" } },
+ config = function()
+ require("alpha.dap")
+ end
+}
diff --git a/lua/alpha/plugins/database.lua b/lua/alpha/plugins/database.lua
new file mode 100644
index 0000000..39e42a5
--- /dev/null
+++ b/lua/alpha/plugins/database.lua
@@ -0,0 +1,11 @@
+return {
+ "kristijanhusak/vim-dadbod-ui",
+ dependencies = {
+ "tpope/vim-dadbod",
+ "kristijanhusak/vim-dadbod-completion",
+ "tpope/vim-dotenv",
+ },
+ config = function ()
+ require("alpha.database")
+ end
+}
diff --git a/lua/alpha/plugins/dressing.lua b/lua/alpha/plugins/dressing.lua
new file mode 100644
index 0000000..7d7e056
--- /dev/null
+++ b/lua/alpha/plugins/dressing.lua
@@ -0,0 +1,161 @@
+return {
+ "stevearc/dressing.nvim",
+ config = function()
+ require("dressing").setup({
+ input = {
+ -- Set to false to disable the vim.ui.input implementation
+ enabled = true,
+
+ -- Default prompt string
+ default_prompt = "Input:",
+
+ -- Can be 'left', 'right', or 'center'
+ prompt_align = "left",
+
+ -- When true, <Esc> will close the modal
+ insert_only = true,
+
+ -- When true, input will start in insert mode.
+ start_in_insert = true,
+
+ -- These are passed to nvim_open_win
+ anchor = "SW",
+ border = "rounded",
+ -- 'editor' and 'win' will default to being centered
+ relative = "cursor",
+
+ -- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
+ prefer_width = 40,
+ width = nil,
+ -- min_width and max_width can be a list of mixed types.
+ -- min_width = {20, 0.2} means "the greater of 20 columns or 20% of total"
+ max_width = { 140, 0.9 },
+ min_width = { 20, 0.2 },
+ win_options = {
+ -- Window transparency (0-100)
+ winblend = 10,
+ -- Disable line wrapping
+ wrap = false,
+ },
+
+ -- Set to `false` to disable
+ mappings = {
+ n = {
+ ["<Esc>"] = "Close",
+ ["<CR>"] = "Confirm",
+ },
+ i = {
+ ["<C-c>"] = "Close",
+ ["<CR>"] = "Confirm",
+ ["<Up>"] = "HistoryPrev",
+ ["<Down>"] = "HistoryNext",
+ },
+ },
+
+ override = function(conf)
+ -- This is the config that will be passed to nvim_open_win.
+ -- Change values here to customize the layout
+ return conf
+ end,
+
+ -- see :help dressing_get_config
+ get_config = nil,
+ },
+ select = {
+ -- Set to false to disable the vim.ui.select implementation
+ enabled = true,
+
+ -- Priority list of preferred vim.select implementations
+ backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" },
+
+ -- Trim trailing `:` from prompt
+ trim_prompt = true,
+
+ -- Options for telescope selector
+ -- These are passed into the telescope picker directly. Can be used like:
+ -- telescope = require('telescope.themes').get_ivy({...})
+ telescope = nil,
+
+ -- Options for fzf selector
+ fzf = {
+ window = {
+ width = 0.5,
+ height = 0.4,
+ },
+ },
+
+ -- Options for fzf_lua selector
+ fzf_lua = {
+ winopts = {
+ width = 0.5,
+ height = 0.4,
+ },
+ },
+
+ -- Options for nui Menu
+ nui = {
+ position = "50%",
+ size = nil,
+ relative = "editor",
+ border = {
+ style = "rounded",
+ },
+ buf_options = {
+ swapfile = false,
+ filetype = "DressingSelect",
+ },
+ win_options = {
+ winblend = 10,
+ },
+ max_width = 80,
+ max_height = 40,
+ min_width = 40,
+ min_height = 10,
+ },
+
+ -- Options for built-in selector
+ builtin = {
+ -- These are passed to nvim_open_win
+ anchor = "NW",
+ border = "rounded",
+ -- 'editor' and 'win' will default to being centered
+ relative = "editor",
+
+ win_options = {
+ -- Window transparency (0-100)
+ winblend = 10,
+ },
+
+ -- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
+ -- the min_ and max_ options can be a list of mixed types.
+ -- max_width = {140, 0.8} means "the lesser of 140 columns or 80% of total"
+ width = nil,
+ max_width = { 140, 0.8 },
+ min_width = { 40, 0.2 },
+ height = nil,
+ max_height = 0.9,
+ min_height = { 10, 0.2 },
+
+ -- Set to `false` to disable
+ mappings = {
+ ["<Esc>"] = "Close",
+ ["<C-c>"] = "Close",
+ ["<CR>"] = "Confirm",
+ },
+
+ override = function(conf)
+ -- This is the config that will be passed to nvim_open_win.
+ -- Change values here to customize the layout
+ return conf
+ end,
+ },
+
+ -- Used to override format_item. See :help dressing-format
+ format_item_override = {},
+
+ -- see :help dressing_get_config
+ get_config = nil,
+ },
+ })
+ end
+}
diff --git a/lua/alpha/plugins/gitsigns.lua b/lua/alpha/plugins/gitsigns.lua
new file mode 100644
index 0000000..12a1840
--- /dev/null
+++ b/lua/alpha/plugins/gitsigns.lua
@@ -0,0 +1,20 @@
+return {
+ "lewis6991/gitsigns.nvim",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ },
+ config = function()
+ local gitsigns = require("gitsigns")
+ gitsigns.setup({
+ on_attach = function(bufnr)
+ vim.keymap.set('n', '<leader>hs', gitsigns.stage_hunk, { buffer = bufnr })
+ vim.keymap.set('n', '<leader>hu', gitsigns.undo_stage_hunk, { buffer = bufnr })
+ vim.keymap.set('n', '<leader>hr', gitsigns.reset_hunk, { buffer = bufnr })
+ vim.keymap.set('n', '<leader>hp', gitsigns.preview_hunk, { buffer = bufnr })
+ vim.keymap.set('n', '<leader>hj', gitsigns.next_hunk, { buffer = bufnr })
+ vim.keymap.set('n', '<leader>hk', gitsigns.prev_hunk, { buffer = bufnr })
+ end,
+ max_file_length = 10000,
+ })
+ end
+}
diff --git a/lua/alpha/plugins/harpoon.lua b/lua/alpha/plugins/harpoon.lua
new file mode 100644
index 0000000..8a4ecc6
--- /dev/null
+++ b/lua/alpha/plugins/harpoon.lua
@@ -0,0 +1,10 @@
+return {
+ "ThePrimeagen/harpoon",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "nvim-lua/popup.nvim",
+ },
+ config = function ()
+ require("alpha.harpoon").setup()
+ end
+}
diff --git a/lua/alpha/plugins/init.lua b/lua/alpha/plugins/init.lua
new file mode 100644
index 0000000..334cb01
--- /dev/null
+++ b/lua/alpha/plugins/init.lua
@@ -0,0 +1,54 @@
+return {
+ "jwalton512/vim-blade",
+ { "junegunn/fzf.vim" },
+ {
+ "junegunn/fzf",
+ build = function()
+ vim.fn["fzf#install"]()
+ end,
+ },
+ {
+ "windwp/nvim-projectconfig",
+ config = function()
+ require("nvim-projectconfig").setup()
+ end,
+ },
+ {
+ "ThePrimeagen/git-worktree.nvim",
+ config = function()
+ require("git-worktree").setup({})
+ end,
+ },
+ {
+ "folke/trouble.nvim",
+ dependencies = "kyazdani42/nvim-web-devicons",
+ },
+ "vim-test/vim-test",
+ "rcarriga/nvim-notify",
+
+ "Raimondi/delimitMate",
+ "lukas-reineke/indent-blankline.nvim",
+
+ "tpope/vim-surround",
+ "tpope/vim-repeat",
+ "tpope/vim-fugitive",
+ "tpope/vim-rhubarb",
+ "tpope/vim-dotenv",
+ "tpope/vim-eunuch",
+ {
+ "numToStr/Comment.nvim",
+ config = function()
+ require("Comment").setup()
+ end,
+ },
+ {
+ "phaazon/mind.nvim",
+ branch = "v2.2",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ },
+
+ { "adalessa/laravel.nvim", dev = false },
+
+ "adalessa/composer.nvim",
+ "adalessa/php-code-actions.nvim",
+}
diff --git a/lua/alpha/plugins/lsp.lua b/lua/alpha/plugins/lsp.lua
new file mode 100644
index 0000000..ac07faf
--- /dev/null
+++ b/lua/alpha/plugins/lsp.lua
@@ -0,0 +1,19 @@
+return {
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ "hrsh7th/cmp-nvim-lsp-signature-help",
+ "jose-elias-alvarez/null-ls.nvim",
+ "williamboman/mason.nvim",
+ "williamboman/mason-lspconfig.nvim",
+ "WhoIsSethDaniel/mason-tool-installer.nvim",
+ {
+ "j-hui/fidget.nvim",
+ config = function()
+ require("fidget").setup()
+ end,
+ },
+ },
+ config = function ()
+ require("alpha.lsp")
+ end
+}
diff --git a/lua/alpha/plugins/lualine.lua b/lua/alpha/plugins/lualine.lua
new file mode 100644
index 0000000..e2ace98
--- /dev/null
+++ b/lua/alpha/plugins/lualine.lua
@@ -0,0 +1,38 @@
+return {
+ "nvim-lualine/lualine.nvim",
+ dependencies = { "kyazdani42/nvim-web-devicons" },
+ config = function()
+ require("lualine").setup({
+ options = {
+ theme = vim.g.alpha_lualine_color,
+ icons_enabled = true,
+ globalstatus = true,
+ },
+ extensions = { "quickfix", "fugitive" },
+ sections = {
+ lualine_a = { { "mode", upper = true } },
+ lualine_b = { { "branch", icon = "" }, "db_ui#statusline" },
+ lualine_c = { { "filename", file_status = true, path = 1 } },
+ lualine_x = { "diagnostics", "diff" },
+ lualine_y = { "filetype" },
+ lualine_z = { "location" },
+ },
+ winbar = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_c = { "filename" },
+ lualine_x = {},
+ lualine_y = {},
+ lualine_z = {},
+ },
+ inactive_winbar = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_c = { "filename" },
+ lualine_x = {},
+ lualine_y = {},
+ lualine_z = {},
+ },
+ })
+ end
+}
diff --git a/lua/alpha/plugins/neotest.lua b/lua/alpha/plugins/neotest.lua
new file mode 100644
index 0000000..2cecb60
--- /dev/null
+++ b/lua/alpha/plugins/neotest.lua
@@ -0,0 +1,63 @@
+return {
+ "nvim-neotest/neotest",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "nvim-treesitter/nvim-treesitter",
+ "antoinemadec/FixCursorHold.nvim",
+ "nvim-neotest/neotest-go",
+ "rouge8/neotest-rust",
+ "nvim-neotest/neotest-plenary",
+ "nvim-neotest/neotest-vim-test",
+ "anuvyklack/hydra.nvim",
+ },
+ config = function()
+ local neotest = require("neotest")
+ neotest.setup({
+ adapters = {
+ require("neotest-go"),
+ require("neotest-rust"),
+ require("neotest-plenary"),
+ require("neotest-vim-test")({
+ ignore_file_types = { "go", "lua", "rust", "php" },
+ }),
+ -- require("laravel.neotest"),
+ },
+ })
+
+ local hydra = require("hydra")
+
+ local hint = [[
+ NeoTest
+ _n_: Near test _f_: Current file _l_: Last Test _m_: Run Marked _s_: Toggle Summary ^
+ ^ ^ _<Esc>_
+ ]]
+
+ hydra({
+ name = "neotest",
+ hint = hint,
+ mode = "n",
+ config = {
+ color = "teal",
+ invoke_on_body = true,
+ hint = {
+ border = "rounded",
+ position = "bottom",
+ },
+ },
+ body = "<C-t>",
+ heads = {
+ { "n", neotest.run.run },
+ {
+ "f",
+ function()
+ neotest.run.run(vim.fn.expand("%"))
+ end,
+ },
+ { "l", neotest.run.run_last },
+ { "m", neotest.summary.run_marked },
+ { "s", neotest.summary.toggle },
+ { "<Esc>", nil, { exit = true } },
+ },
+ })
+ end
+}
diff --git a/lua/alpha/plugins/refactoring.lua b/lua/alpha/plugins/refactoring.lua
new file mode 100644
index 0000000..c8bf7fc
--- /dev/null
+++ b/lua/alpha/plugins/refactoring.lua
@@ -0,0 +1,10 @@
+return {
+ "ThePrimeagen/refactoring.nvim",
+ dependencies = {
+ { "nvim-lua/plenary.nvim" },
+ { "nvim-treesitter/nvim-treesitter" },
+ },
+ config = function()
+ require("refactoring").setup({})
+ end
+}
diff --git a/lua/alpha/plugins/rest.lua b/lua/alpha/plugins/rest.lua
new file mode 100644
index 0000000..a0ec729
--- /dev/null
+++ b/lua/alpha/plugins/rest.lua
@@ -0,0 +1,41 @@
+return {
+ "NTBBloodbath/rest.nvim",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ config = function()
+ local rest_nvim = require("rest-nvim")
+
+ rest_nvim.setup({
+ -- Open request results in a horizontal split
+ result_split_horizontal = false,
+ -- Skip SSL verification, useful for unknown certificates
+ skip_ssl_verification = false,
+ -- Highlight request on run
+ highlight = {
+ enabled = true,
+ timeout = 150,
+ },
+ result = {
+ -- toggle showing URL, HTTP info, headers at top the of result window
+ show_url = true,
+ show_http_info = true,
+ show_headers = true,
+ },
+ -- Jump to request line on run
+ jump_to_request = false,
+ env_file = ".env",
+ custom_dynamic_variables = {},
+ yank_dry_run = true,
+ })
+
+ vim.api.nvim_create_autocmd("FileType", {
+ pattern = "http",
+ callback = function()
+ local buff = tonumber(vim.fn.expand("<abuf>"), 10)
+ vim.keymap.set("n", "<leader>rn", rest_nvim.run, { noremap = true, buffer = buff })
+ vim.keymap.set("n", "<leader>rl", rest_nvim.last, { noremap = true, buffer = buff })
+ vim.keymap.set("n", "<leader>rp", function() rest_nvim.run(true) end, { noremap = true, buffer = buff })
+ end
+ })
+
+ end
+}
diff --git a/lua/alpha/plugins/snippets.lua b/lua/alpha/plugins/snippets.lua
new file mode 100644
index 0000000..dee004e
--- /dev/null
+++ b/lua/alpha/plugins/snippets.lua
@@ -0,0 +1,135 @@
+return {
+ "L3MON4D3/LuaSnip",
+ version = "v1.*",
+ config = function()
+ if vim.g.snippets ~= "luasnip" then
+ return
+ end
+
+ local ls = require("luasnip")
+ local types = require("luasnip.util.types")
+
+ ls.config.set_config({
+ -- This tells LuaSnip to remember to keep around the last snippet.
+ -- You can jump back into even if you move outside of the selection
+ history = true,
+
+ -- This one is cool cause if you have dynamic snippets, it updatesas you type!
+ updateevents = "TextChanged,TextChangedI",
+
+ -- Autosnippets:
+ enable_autosnippets = true,
+
+ ext_opts = {
+ [types.choiceNode] = {
+ active = {
+ virt_text = { { "<- Choice", "Error" } },
+ },
+ },
+ },
+ })
+
+ -- create snippet
+ -- s(context, nodes, condition, ...)
+ local snippet = ls.s
+
+ -- TODO: Write about this.
+ -- Useful for dynamic nodes and choice nodes
+ -- local snippet_from_nodes = ls.sn
+
+ -- This is the simplest node.
+ -- Creates a new text node. Places cursor after node by default.
+ -- t { "this will be inserted" }
+ --
+ -- Multiple lines are by passing a table of strings.
+ -- t { "line 1", "line 2" }
+ local t = ls.text_node
+
+ -- Insert Node
+ -- Creates a location for the cursor to jump to.
+ -- Possible options to jump to are 1 - N
+ -- If you use 0, that's the final place to jump to.
+ --
+ -- To create placeholder text, pass it as the second argument
+ -- i(2, "this is placeholder text")
+ local i = ls.insert_node
+
+ -- Function Node
+ -- Takes a function that returns text
+ -- local f = ls.function_node
+
+ -- This a choice snippet. You can move through with <c-l> (in my config)
+ -- c(1, { t {"hello"}, t {"world"}, }),
+ --
+ -- The first argument is the jump position
+ -- The second argument is a table of possible nodes.
+ -- Note, one thing that's nice is you don't have to include
+ -- the jump position for nodes that normally require one (can be nil)
+ -- local c = ls.choice_node
+
+ -- local d = ls.dynamic_node
+
+ -- TODO: Document what I've learned about lambda
+ -- local l = require("luasnip.extras").lambda
+
+ -- local events = require("luasnip.util.events")
+
+ local shortcut = function(val)
+ if type(val) == "string" then
+ return { t({ val }), i(0) }
+ end
+
+ if type(val) == "table" then
+ for k, v in ipairs(val) do
+ if type(v) == "string" then
+ val[k] = t({ v })
+ end
+ end
+ end
+
+ return val
+ end
+
+ local make = function(tbl)
+ local result = {}
+ for k, v in pairs(tbl) do
+ table.insert(result, (snippet({ trig = k, desc = v.desc }, shortcut(v))))
+ end
+
+ return result
+ end
+
+ ls.cleanup()
+ for _, ft_path in ipairs(vim.api.nvim_get_runtime_file("lua/alpha/snips/ft/*.lua", true)) do
+ local ft = vim.fn.fnamemodify(ft_path, ":t:r")
+ ls.add_snippets(ft, make(loadfile(ft_path)()))
+ end
+
+ -- <c-k> is my expansion key
+ -- this will expand the current item or jump to the next item within the snippet.
+ vim.keymap.set({ "i", "s" }, "<c-k>", function()
+ if ls.expand_or_jumpable() then
+ ls.expand_or_jump()
+ end
+ end, { silent = true })
+
+ -- <c-j> is my jump backwards key.
+ -- this always moves to the previous item within the snippet
+ vim.keymap.set({ "i", "s" }, "<c-j>", function()
+ if ls.jumpable(-1) then
+ ls.jump(-1)
+ end
+ end, { silent = true })
+
+ -- <c-l> is selecting within a list of options.
+ -- This is useful for choice nodes (introduced in the forthcoming episode 2)
+ vim.keymap.set("i", "<c-l>", function()
+ if ls.choice_active() then
+ ls.change_choice(1)
+ end
+ end)
+
+ -- shorcut to source my luasnips file again, which will reload my snippets
+ vim.keymap.set("n", "<leader><leader>s", "<cmd>source ~/.config/nvim/after/plugin/luasnip.lua<CR>")
+ end
+}
diff --git a/lua/alpha/plugins/telescope.lua b/lua/alpha/plugins/telescope.lua
new file mode 100644
index 0000000..ba6ae58
--- /dev/null
+++ b/lua/alpha/plugins/telescope.lua
@@ -0,0 +1,17 @@
+return {
+ "nvim-telescope/telescope.nvim",
+ dependencies = {
+ { "nvim-lua/plenary.nvim" },
+ { "nvim-lua/popup.nvim" },
+ { "nvim-telescope/telescope-fzy-native.nvim" },
+ { "kyazdani42/nvim-web-devicons" },
+ { "nvim-telescope/telescope-file-browser.nvim" },
+ { "nvim-telescope/telescope-dap.nvim" },
+ { "nvim-telescope/telescope-ui-select.nvim" },
+ { "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
+ },
+ config = function ()
+ require("alpha.telescope.setup")
+ require("alpha.telescope.mappings")
+ end
+}
diff --git a/lua/alpha/plugins/transparent.lua b/lua/alpha/plugins/transparent.lua
new file mode 100644
index 0000000..fa0b480
--- /dev/null
+++ b/lua/alpha/plugins/transparent.lua
@@ -0,0 +1,20 @@
+return {
+ "xiyaowong/nvim-transparent",
+ config = function()
+ require("transparent").setup({
+ enable = true, -- boolean: enable transparent
+ extra_groups = { -- table/string: additional groups that should be cleared
+ -- In particular, when you set it to 'all', that means all available groups
+
+ -- example of akinsho/nvim-bufferline.lua
+ "BufferLineTabClose",
+ "BufferlineBufferSelected",
+ "BufferLineFill",
+ "BufferLineBackground",
+ "BufferLineSeparator",
+ "BufferLineIndicatorSelected",
+ },
+ exclude = {}, -- table: groups you don't want to clear
+ })
+ end
+}
diff --git a/lua/alpha/plugins/treesitter.lua b/lua/alpha/plugins/treesitter.lua
new file mode 100644
index 0000000..8bb6026
--- /dev/null
+++ b/lua/alpha/plugins/treesitter.lua
@@ -0,0 +1,71 @@
+return {
+ "nvim-treesitter/nvim-treesitter",
+ build = ":TSUpdate",
+ dependencies = {
+ "nvim-treesitter/playground",
+ "nvim-treesitter/nvim-treesitter-refactor",
+ "nvim-treesitter/nvim-treesitter-textobjects",
+ },
+ config = function()
+ require "nvim-treesitter.configs".setup {
+ ensure_installed = { "php", "phpdoc", "vim", "go", "gomod", "css", "html", "javascript", "lua", "typescript" },
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+ indent = {
+ enable = true,
+ },
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = "gnn",
+ node_incremental = "grn",
+ scope_incremental = "grc",
+ node_decremental = "grm",
+ },
+ },
+ refactor = {
+ highlight_definitions = { enable = true },
+ smart_rename = {
+ enable = true,
+ keymaps = {
+ smart_rename = "trr",
+ },
+ },
+ },
+ textobjects = {
+ select = {
+ enable = true,
+ lookahead = true,
+ keymaps = {
+ ["af"] = "@function.outer",
+ ["if"] = "@function.inner",
+ ["ac"] = "@conditional.outer",
+ ["ic"] = "@conditional.inner",
+ ["al"] = "@loop.outer",
+ ["il"] = "@loop.inner",
+ }
+ }
+ },
+ playground = {
+ enable = true,
+ disable = {},
+ updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code
+ persist_queries = false, -- Whether the query persists across vim sessions
+ keybindings = {
+ toggle_query_editor = 'o',
+ toggle_hl_groups = 'i',
+ toggle_injected_languages = 't',
+ toggle_anonymous_nodes = 'a',
+ toggle_language_display = 'I',
+ focus_language = 'f',
+ unfocus_language = 'F',
+ update = 'R',
+ goto_node = '<cr>',
+ show_help = '?',
+ },
+ }
+ }
+ end
+}