51ddc385c426568de76cc900c88ce4c960ff545b

Author
Pavle Portic <git@theedgeofrage.com>
Committer
Pavle Portic <git@theedgeofrage.com>
Date

Message

Update nvim config

Diff

This diff is truncated to protect this page.

  1diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua
  2index 402314beb8aaeed5a9d3a3bb0a3faaa2037a5c3d..a3e7b1cbf4e0abedfc9f05812b9d96b60f7b6d7b 100644
  3--- a/dot_config/nvim/init.lua
  4+++ b/dot_config/nvim/init.lua
  5@@ -1,4 +1,5 @@
  6-require("sets")
  7+vim.g.mapleader = " "
  8+
  9 
 10 -- Lazy.nvim
 11 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 12@@ -25,11 +26,12 @@ require("lazy").setup("plugins", {
 13 
 14 vim.cmd([[colorscheme gruvbox]])
 15 
 16-require('telescope').load_extension('projects')
 17-require('project_nvim').setup({})
 18-
 19 -- Import additional config files
 20+require("sets")
 21 require("mappings")
 22 require("git")
 23 require("lsp")
 24 require("line")
 25+
 26+require('telescope').load_extension('projects')
 27+require('project_nvim').setup({})
 28diff --git a/dot_config/nvim/lazy-lock.json b/dot_config/nvim/lazy-lock.json
 29index 85851be30ad8a5829f16972cce13b1056d3c2667..f4ae0709b32a5c575b82b3bc7f9de5d27e639714 100644
 30--- a/dot_config/nvim/lazy-lock.json
 31+++ b/dot_config/nvim/lazy-lock.json
 32@@ -1,25 +1,30 @@
 33 {
 34   "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
 35-  "LuaSnip": { "branch": "master", "commit": "0df29db3543837f8b41597f2640397c5ec792b7b" },
 36+  "LuaSnip": { "branch": "master", "commit": "80a8528f084a97b624ae443a6f50ff8074ba486b" },
 37   "bufferline.nvim": { "branch": "main", "commit": "6ecd37e0fa8b156099daedd2191130e083fb1490" },
 38   "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
 39   "copilot.vim": { "branch": "release", "commit": "998cf5ab1b85e844c7e8edb864a997e590df7182" },
 40   "diffview.nvim": { "branch": "main", "commit": "d38c1b5266850f77f75e006bcc26213684e1e141" },
 41-  "gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" },
 42+  "gitsigns.nvim": { "branch": "main", "commit": "5a9a6ac29a7805c4783cda21b80a1e361964b3f2" },
 43+  "go.nvim": { "branch": "master", "commit": "d73ea5bc00f0d7b726b0ddfc29cea17a544459ba" },
 44   "gruvbox.nvim": { "branch": "main", "commit": "477c62493c82684ed510c4f70eaf83802e398898" },
 45-  "lazy.nvim": { "branch": "main", "commit": "276e572f645430bcfd6fd25faa301ea9077f6ab1" },
 46+  "guihua.lua": { "branch": "master", "commit": "5ad8dba19ce9b9fd8965598984dfdc9c119f97e4" },
 47+  "lazy.nvim": { "branch": "main", "commit": "4c75c8eeb957a99aa44ce8e526c04340ab358c5e" },
 48   "lsp-zero.nvim": { "branch": "v3.x", "commit": "22d2186bee730d68f6fd3bb2d19a389784c37a96" },
 49-  "lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
 50-  "mason-lspconfig.nvim": { "branch": "main", "commit": "397273083f988c1a17acf3816947cd198338e700" },
 51+  "lualine.nvim": { "branch": "master", "commit": "7533b0ead663d80452210c0c089e5105089697e5" },
 52+  "mason-lspconfig.nvim": { "branch": "main", "commit": "e7b64c11035aa924f87385b72145e0ccf68a7e0a" },
 53   "mason.nvim": { "branch": "main", "commit": "cd7835b15f5a4204fc37e0aa739347472121a54c" },
 54-  "neodev.nvim": { "branch": "main", "commit": "24b403eabde652904077f84fd55441744e77a109" },
 55-  "nvim-autopairs": { "branch": "master", "commit": "748e72c05495a3d30e88a6ef04b21697019a9aa9" },
 56-  "nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
 57+  "neodev.nvim": { "branch": "main", "commit": "b094a663ccb71733543d8254b988e6bebdbdaca4" },
 58+  "nvim-autopairs": { "branch": "master", "commit": "f6c71641f6f183427a651c0ce4ba3fb89404fa9e" },
 59+  "nvim-cmp": { "branch": "main", "commit": "d3a3056204e1a9dbb7c7fe36c114dc43b681768c" },
 60   "nvim-cursorword": { "branch": "master", "commit": "c0f2958ec729b47be2dba0d79ef43d005dac9f4e" },
 61-  "nvim-lspconfig": { "branch": "master", "commit": "bb8e3dfbe10d80c294bb609c4bb4bba3ecdfbfe2" },
 62-  "nvim-treesitter": { "branch": "master", "commit": "0d5c611e3fd36353b11b412661ff4f07bcc8e5c6" },
 63-  "nvim-treesitter-textobjects": { "branch": "master", "commit": "76c7a89b41de77a4f83fb77fa072c5ad7605fe3b" },
 64-  "nvim-web-devicons": { "branch": "master", "commit": "a1e6268779411048a87f767a27380089362a0ce2" },
 65+  "nvim-dap": { "branch": "master", "commit": "b595c820018a15b6d54bf53b5cbeaa6f2d7a27e2" },
 66+  "nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" },
 67+  "nvim-lspconfig": { "branch": "master", "commit": "e49b1e90c1781ce372013de3fa93a91ea29fc34a" },
 68+  "nvim-surround": { "branch": "main", "commit": "0d6882635817a2677749a330127d12ac30a4f3c8" },
 69+  "nvim-treesitter": { "branch": "master", "commit": "afa103385a2b5ef060596ed822ef63276ae88016" },
 70+  "nvim-web-devicons": { "branch": "master", "commit": "3af745113ea537f58c4b1573b64a429fefad9e07" },
 71+  "playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
 72   "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" },
 73   "project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
 74   "suda.vim": { "branch": "master", "commit": "8b0fc3711760195aba104e2d190cff9af8267052" },
 75@@ -29,7 +34,6 @@
 76   "vim-fugitive": { "branch": "master", "commit": "cbe9dfa162c178946afa689dd3f42d4ea8bf89c1" },
 77   "vim-matchup": { "branch": "master", "commit": "6dbe108230c7dbbf00555b7d4d9f6a891837ef07" },
 78   "vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" },
 79-  "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
 80-  "which-key.nvim": { "branch": "main", "commit": "6962dae3565369363b59dd51fb206051555fcb4d" },
 81+  "which-key.nvim": { "branch": "main", "commit": "ce741eb559c924d72e3a67d2189ad3771a231414" },
 82   "whitespace.nvim": { "branch": "master", "commit": "f0fc9e9c4ce3f7d2166e9e5a069b64b9ca4a3f15" }
 83 }
 84diff --git a/dot_config/nvim/lua/git.lua b/dot_config/nvim/lua/git.lua
 85index a424ae4f280617c97f01a359122e81b9caf20df0..af6794fcaff9235094807e272f58baa2c312d8c0 100644
 86--- a/dot_config/nvim/lua/git.lua
 87+++ b/dot_config/nvim/lua/git.lua
 88@@ -1,7 +1,7 @@
 89 require('gitsigns').setup{
 90     signs = {
 91         add          = { text = '+' },
 92-        change       = { text = '│' },
 93+        change       = { text = '~' },
 94         delete       = { text = '_' },
 95         topdelete    = { text = '‾' },
 96         changedelete = { text = '~' },
 97@@ -15,14 +15,14 @@ require('gitsigns').setup{
 98         follow_files = true
 99     },
100     attach_to_untracked = true,
101-    current_line_blame = true, -- :Gitsigns toggle_current_line_blame
102+    current_line_blame = true,
103     current_line_blame_opts = {
104         virt_text = true,
105         virt_text_pos = 'right_align', -- 'eol' | 'overlay' | 'right_align'
106         delay = 100,
107         ignore_whitespace = false,
108     },
109-    current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
110+    current_line_blame_formatter = '<abbrev_sha> - <author> <author_time:%Y-%m-%d>',
111     sign_priority = 6,
112     update_debounce = 100,
113     status_formatter = nil, -- Use default
114diff --git a/dot_config/nvim/lua/lsp.lua b/dot_config/nvim/lua/lsp.lua
115index 78efd7980ac1f00d591dc951a84a66aea1cb78eb..de678f023dd8109954ab626c40a85121c2e76bad 100644
116--- a/dot_config/nvim/lua/lsp.lua
117+++ b/dot_config/nvim/lua/lsp.lua
118@@ -1,9 +1,11 @@
119 -- Load default lsp-zero keymaps
120-local lsp_zero = require('lsp-zero')
121+local lsp_zero = require("lsp-zero")
122+local telescope = require("telescope.builtin")
123+require("mason").setup()
124+require("mason-lspconfig").setup({ automatic_installation = true })
125 
126 lsp_zero.on_attach(function(_, bufnr)
127-    -- see :help lsp-zero-keybindings
128-    -- to learn the available actions
129+    -- see :help lsp-zero-keybindings to learn the available actions
130     lsp_zero.default_keymaps({buffer = bufnr})
131 
132     local opts = {buffer = bufnr, remap = false}
133@@ -14,6 +16,20 @@ lsp_zero.on_attach(function(_, bufnr)
134     vim.keymap.set("n", "<leader>en", function() vim.diagnostic.goto_next() end, opts)
135     vim.keymap.set("n", "<leader>ep", function() vim.diagnostic.goto_prev() end, opts)
136     vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
137+
138+    vim.keymap.set("n", "gr", function() telescope.lsp_references({
139+        include_declaration = false,
140+        show_line = false,
141+        fname_width = 64,
142+    }) end, opts)
143+    vim.keymap.set("n", "gd", function() telescope.lsp_definitions({
144+        show_line = false,
145+        fname_width = 64,
146+    }) end, opts)
147+    vim.keymap.set("n", "gi", function() telescope.lsp_implementations({
148+        show_line = false,
149+        fname_width = 64,
150+    }) end, opts)
151 end)
152 
153 lsp_zero.format_on_save({
154@@ -22,47 +38,69 @@ lsp_zero.format_on_save({
155         timeout_ms = 10000,
156     },
157     servers = {
158-        ['prettier'] = {'javascript', 'typescript'},
159-        ['gopls'] = {'go'},
160-        ['stylua'] = {'lua'},
161+        ["efm"] = {"javascript", "typescript"},
162+        ["gopls"] = {"go"},
163+        ["stylua"] = {"lua"},
164     }
165 })
166 
167 -- Setup LSP servers
168-local lspconfig = require('lspconfig')
169+local lspconfig = require("lspconfig")
170+local prettier = {
171+    formatCommand = 'prettierd "${INPUT}"',
172+    formatStdin = true,
173+    env = {
174+        string.format('PRETTIERD_DEFAULT_CONFIG=%s', vim.fn.expand('~/.config/nvim/utils/linter-config/.prettierrc.json')),
175+    },
176+}
177 -- go
178 lspconfig.golangci_lint_ls.setup({})
179 lspconfig.gopls.setup({})
180 -- lua
181-lspconfig.lua_ls.setup({})
182+lspconfig.lua_ls.setup(lsp_zero.nvim_lua_ls())
183 -- python
184-lspconfig.pylsp.setup{}
185+lspconfig.pylsp.setup({})
186 -- typescript
187-lspconfig.tsserver.setup({})
188 lspconfig.eslint.setup({})
189+lspconfig.tsserver.setup({})
190+local languages = {
191+    -- lua = { stylua },
192+    typescript = { prettier },
193+    javascript = { prettier },
194+    json = { prettier },
195+    markdown = { prettier },
196+}
197+lspconfig.efm.setup({
198+    -- capabilities = capabilities,
199+    cmd = { "/home/pavle/.local/share/nvim/mason/bin/efm-langserver" },
200+    -- on_attach = on_attach,
201+    init_options = { documentFormatting = true },
202+    root_dir = vim.loop.cwd,
203+    filetypes = vim.tbl_keys(languages),
204+    settings = {
205+        rootMarkers = { ".git/", ".prettierignore" },
206+        lintDebounce = 100,
207+        logLevel = 5,
208+        logFile = "/home/pavle/efm.log",
209+        languages = languages,
210+    },
211+    single_file_support = true,
212+})
213 -- other
214 lspconfig.terraformls.setup({})
215 lspconfig.jsonls.setup({})
216 
217 -- Customize keymaps
218diff --git a/dot_config/nvim/lua/mappings.lua b/dot_config/nvim/lua/mappings.lua
219index 0bb9051cb45d850bb4f158f1fafabf7b6e12d6c9..f32422bbcd416ec5692fe0f99d9ac85a491f06ab 100644
220--- a/dot_config/nvim/lua/mappings.lua
221+++ b/dot_config/nvim/lua/mappings.lua
222@@ -1,32 +1,34 @@
223+local opts = {noremap = true, silent = true}
224+
225 -- Colemak bindings
226-vim.keymap.set("", "n", "j")
227-vim.keymap.set("", "e", "k")
228-vim.keymap.set("", "i", "l")
229-vim.keymap.set("", "I", "$")
230-vim.keymap.set("", "H", "0")
231-vim.keymap.set("", "l", "i")
232-vim.keymap.set("", "L", "I")
233-vim.keymap.set("n", "N", "mzJ`z")
234-vim.keymap.set("", "k", "n")
235-vim.keymap.set("", "K", "N")
236-vim.keymap.set("", "J", "M")
237-vim.keymap.set("", "j", "m")
238-vim.keymap.set("", "m", "e")
239-vim.keymap.set("", "M", "E")
240+vim.keymap.set("", "n", "j", opts)
241+vim.keymap.set("", "e", "k", opts)
242+vim.keymap.set("", "i", "l", opts)
243+vim.keymap.set("", "I", "$", opts)
244+vim.keymap.set("", "H", "^", opts)
245+vim.keymap.set("", "l", "i", opts)
246+vim.keymap.set("", "L", "I", opts)
247+vim.keymap.set("n", "N", "mzJ`z", opts)
248+vim.keymap.set("", "k", "n", opts)
249+vim.keymap.set("", "K", "N", opts)
250+vim.keymap.set("", "J", "M", opts)
251+vim.keymap.set("", "j", "m", opts)
252+vim.keymap.set("", "m", "e", opts)
253+vim.keymap.set("", "M", "E", opts)
254 
255-vim.keymap.set("v", "N", ":m '>+1<CR>gv=gv")
256-vim.keymap.set("v", "E", ":m '<-2<CR>gv=gv")
257+vim.keymap.set("v", "N", ":m '>+1<CR>gv=gv", opts)
258+vim.keymap.set("v", "E", ":m '<-2<CR>gv=gv", opts)
259 
260 -- General mappings
261-vim.keymap.set("", "<BS>", "gg")
262-vim.keymap.set("", "<CR>", "G")
263-vim.keymap.set("", "<Space>", "<NOP>")
264+vim.keymap.set("", "<BS>", "gg", opts)
265+vim.keymap.set("", "<CR>", "G", opts)
266+vim.keymap.set("", "<Space>", "<NOP>", opts)
267 
268-vim.keymap.set("x", "p", "\"_dP")
269+vim.keymap.set("x", "p", "\"_dP", opts)
270 
271-vim.keymap.set("n", "<tab>", vim.cmd.bn)
272-vim.keymap.set("n", "<s-tab>", vim.cmd.bp)
273-vim.keymap.set("n", "U", vim.cmd.redo)
274+vim.keymap.set("n", "<tab>", vim.cmd.bn, opts)
275+vim.keymap.set("n", "<s-tab>", vim.cmd.bp, opts)
276+vim.keymap.set("n", "U", vim.cmd.redo, opts)
277 
278 -- File operation maps
279 vim.keymap.set("n", "<leader>fd", function ()
280@@ -36,35 +38,50 @@ vim.keymap.set("n", "<leader>fd", function ()
281         vim.cmd.normal('jzgg=G`z')
282     end
283 end)
284-vim.keymap.set("n", "<leader>fs", vim.cmd.w)
285-vim.keymap.set("n", "<leader>W", vim.cmd.SudaWrite)
286-vim.keymap.set("n", "<leader>q", vim.cmd.q)
287-vim.keymap.set("n", "<leader>Q", ":q!<cr>")
288-vim.keymap.set("n", "<leader>wq", vim.cmd.wq)
289-vim.keymap.set("n", "<leader>bd", ":bp | bd #<cr>")
290-vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
291+vim.keymap.set("n", "<leader>fs", vim.cmd.w, opts)
292+vim.keymap.set("n", "<leader>W", vim.cmd.SudaWrite, opts)
293+vim.keymap.set("n", "<leader>q", vim.cmd.q, opts)
294+vim.keymap.set("n", "<leader>Q", ":q!<cr>", opts)
295+vim.keymap.set("n", "<leader>wq", vim.cmd.wq, opts)
296+vim.keymap.set("n", "<leader>bd", ":bp | bd #<cr>", opts)
297+vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle, opts)
298 
299-vim.keymap.set("", "\\", ":let @/ = \"\"<CR>")
300+vim.keymap.set("", "\\", ":let @/ = \"\"<CR>", opts)
301 
302 -- Git
303-vim.keymap.set("n", "<leader>gd", vim.cmd.Gvdiff)
304+vim.keymap.set("n", "<leader>gd", vim.cmd.Gvdiff, opts)
305 -- vim.keymap.set("n", "<leader>gb", vim.cmd('Gitsigns toggle_current_line_blame'))
306 
307 -- window movement
308-vim.keymap.set("n", "<leader>wn", "<C-W>j")
309-vim.keymap.set("n", "<leader>we", "<C-W>k")
310-vim.keymap.set("n", "<leader>wh", "<C-W>h")
311-vim.keymap.set("n", "<leader>wi", "<C-W>l")
312-vim.keymap.set("n", "<leader>wH", "<C-W>5<")
313-vim.keymap.set("n", "<leader>wI", "<C-W>5>")
314-vim.keymap.set("n", "<leader>wN", ":resize +5<CR>")
315-vim.keymap.set("n", "<leader>wE", ":resize -5<CR>")
316+vim.keymap.set("n", "<leader>wn", "<C-W>j", opts)
317+vim.keymap.set("n", "<leader>we", "<C-W>k", opts)
318+vim.keymap.set("n", "<leader>wh", "<C-W>h", opts)
319+vim.keymap.set("n", "<leader>wi", "<C-W>l", opts)
320+vim.keymap.set("n", "<leader>wH", "<C-W>5<", opts)
321+vim.keymap.set("n", "<leader>wI", "<C-W>5>", opts)
322diff --git a/dot_config/nvim/lua/plugins/comment.lua b/dot_config/nvim/lua/plugins/comment.lua
323index 29b58e23ff162569e2f60a4d807ce8a4d96a1aca..3982bf5cdcaf6313a55d7663ef7321445452d378 100644
324--- a/dot_config/nvim/lua/plugins/comment.lua
325+++ b/dot_config/nvim/lua/plugins/comment.lua
326@@ -7,6 +7,12 @@ return {
327             ---Block-comment toggle keymap
328             block = '<leader>b/',
329         },
330+        opleader = {
331+            ---Line-comment keymap
332+            line = '<leader>/',
333+            ---Block-comment keymap
334+            block = '<leader>b/',
335+        },
336     },
337     lazy = false,
338 }
339diff --git a/dot_config/nvim/lua/plugins/init.lua b/dot_config/nvim/lua/plugins/init.lua
340index a821b93f118d1eec42cbb36b9a390341592dccfc..4ef88ddad809d10bbd52616910feba37fc9fdcba 100644
341--- a/dot_config/nvim/lua/plugins/init.lua
342+++ b/dot_config/nvim/lua/plugins/init.lua
343@@ -12,23 +12,47 @@ return {
344     },
345     "nvim-lualine/lualine.nvim",
346 
347-    -- keymaps and functionality
348+    -- keymaps
349     {
350         'windwp/nvim-autopairs',
351         event = "InsertEnter",
352         opts = {}
353     },
354-    "tpope/vim-surround",
355+    {
356+        "kylechui/nvim-surround",
357+        version = "*",
358+        event = "VeryLazy",
359+        config = function()
360+            require("nvim-surround").setup({
361+                -- Configuration here, or leave empty to use defaults
362+            })
363+        end
364+    },
365     "folke/which-key.nvim",
366+
367+    -- functionality
368     'andymass/vim-matchup',
369     'tpope/vim-repeat',
370     'mbbill/undotree',
371     'jdhao/whitespace.nvim',
372     'lambdalisue/suda.vim',
373     'xiyaowong/nvim-cursorword',
374-
375-    -- other
376     'ahmedkhalf/project.nvim',
377-    'folke/neodev.nvim',
378     'github/copilot.vim',
379+    "mfussenegger/nvim-dap",
380+    "rcarriga/nvim-dap-ui",
381+    {
382+        'folke/neodev.nvim',
383+        dependencies = {
384+            "rcarriga/nvim-dap-ui",
385+        },
386+        opts = {
387+            library = {
388+                plugins = {
389+                    "nvim-dap-ui",
390+                },
391+                types = true,
392+            },
393+        },
394+    },
395 }
396diff --git a/dot_config/nvim/lua/plugins/lsp.lua b/dot_config/nvim/lua/plugins/lsp.lua
397index 9cfa1e6f8a2419a55e167de1308c0863c1917922..cff73a9ad5d2c0e51568017ba885adbb1cc1c28c 100644
398--- a/dot_config/nvim/lua/plugins/lsp.lua
399+++ b/dot_config/nvim/lua/plugins/lsp.lua
400@@ -7,4 +7,19 @@ return {
401     {'hrsh7th/cmp-nvim-lsp'},
402     {'hrsh7th/nvim-cmp'},
403     {'L3MON4D3/LuaSnip'},
404+
405+    {
406+        "ray-x/go.nvim",
407+        dependencies = {
408+            "ray-x/guihua.lua",
409+            "neovim/nvim-lspconfig",
410+            "nvim-treesitter/nvim-treesitter",
411+        },
412+        config = function()
413+            require("go").setup()
414+        end,
415+        event = {"CmdlineEnter"},
416+        ft = {"go", "gomod"},
417+        build = ":lua require('go.install').update_all_sync()"
418+    }
419 }
420diff --git a/dot_config/nvim/lua/plugins/treesitter.lua b/dot_config/nvim/lua/plugins/treesitter.lua
421index c9c21276a84115750b9ca85bac6d1ebefe7c9062..8fffa2cfa5cc804e347df7c522a4191860637bc6 100644
422--- a/dot_config/nvim/lua/plugins/treesitter.lua
423+++ b/dot_config/nvim/lua/plugins/treesitter.lua
424@@ -1,57 +1,65 @@
425 return {
426-    "nvim-treesitter/nvim-treesitter",
427-    version = false,
428-    build = ":TSUpdate",
429-    event = { "BufReadPost", "BufNewFile" },
430-    dependencies = {
431-        {
432-            "nvim-treesitter/nvim-treesitter-textobjects",
433-            init = function()
434-                require("lazy.core.loader").disable_rtp_plugin("nvim-treesitter-textobjects")
435-                load_textobjects = true
436-            end,
437+    {
438+        "nvim-treesitter/playground",
439+        dependencies = {
440+            "nvim-treesitter/nvim-treesitter",
441         },
442     },
443-    cmd = { "TSUpdateSync" },
444-    keys = {
445-        { "<c-space>", desc = "Increment selection" },
446-        { "<bs>", desc = "Decrement selection", mode = "x" },
447-    },
448-    opts = {
449-        highlight = {
450-            enable = true,
451-            additional_vim_regex_highlighting = false,
452-        },
453-        indent = { enable = true },
454-        auto_install = true,
455-        ensure_installed = {
456-            "bash",
457-            "go",
458-            "javascript",
459-            "json",
460-            "lua",
461-            "luadoc",
462-            "luap",
463-            "markdown",
464-            "markdown_inline",
465-            "python",
466-            "query",
467-            "regex",
468-            "terraform",
469-            "tsx",
470-            "typescript",
471-            "vim",
472-            "vimdoc",
473-            "yaml",
474-        },
475-        incremental_selection = {
476-            enable = true,
477-            keymaps = {
478-                init_selection = "<C-space>",
479-                node_incremental = "<C-space>",
480-                scope_incremental = false,
481-                node_decremental = "<bs>",
482-            },
483-        },
484+    {
485+        "nvim-treesitter/nvim-treesitter",
486+        version = false,
487+        build = ":TSUpdate",
488+        event = { "BufReadPost", "BufNewFile", "VeryLazy" },
489+        cmd = { "TSUpdateSync", "TSUpdate", "TSInstall" },
490+        config = function()
491+            require'nvim-treesitter.configs'.setup({
492+                highlight = {
493+                    enable = true,
494+                    additional_vim_regex_highlighting = false,
495+                },
496+                indent = {
497+                    enable = true,
498+                },
499+                auto_install = true,
500+                ensure_installed = {
501+                    "bash",
502+                    "go",
503+                    "javascript",
504+                    "json",
505+                    "lua",
506+                    "luadoc",
507+                    "luap",
508+                    "markdown",
509+                    "markdown_inline",
510+                    "python",
511+                    "query",
512+                    "regex",
513+                    "terraform",
514+                    "tsx",
515+                    "typescript",
516+                    "vim",
517+                    "vimdoc",
518+                    "yaml",
519+                },
520+                playground = {
521+                    enable = true,
522+                    disable = {},
523+                    updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code
524diff --git a/dot_config/nvim/lua/sets.lua b/dot_config/nvim/lua/sets.lua
525index 92b8adabf0648254d00cb95172b902f205e4561b..17fab3ba0ab5c587c0e63243991ea4828b10cb73 100644
526--- a/dot_config/nvim/lua/sets.lua
527+++ b/dot_config/nvim/lua/sets.lua
528@@ -1,6 +1,3 @@
529-vim.g.mapleader = " "
530-
531--- sets
532 vim.opt.clipboard = "unnamedplus"
533 vim.opt.nu = true
534 vim.opt.relativenumber = true
535@@ -16,6 +13,7 @@ vim.opt.listchars = "tab:│ ,trail:~,extends:>,precedes:<"
536 vim.opt.foldenable = false
537 vim.opt.foldmethod = "expr"
538 vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
539+vim.opt.foldlevel = 99
540 vim.opt.termguicolors = true
541 vim.opt.autochdir = true
542 vim.opt.showcmd = true