summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshraf Michail <user@noemail.com>2023-09-30 00:35:22 +0000
committerAshraf Michail <user@noemail.com>2023-09-30 00:35:22 +0000
commita1d1cef7d4da46a17821a352770c05ce755feddf (patch)
treeeabb2552b3613acbf6b2041924b1fae5e9d46525
parentf52eb20e5a9ca9a1e287e4e1418e6fb6ac7c882c (diff)
downloaddots-a1d1cef7d4da46a17821a352770c05ce755feddf.tar.gz
Defer Treesitter setup to improve startup time of nvim {filename}
-rw-r--r--nvim/init.lua113
1 files changed, 58 insertions, 55 deletions
diff --git a/nvim/init.lua b/nvim/init.lua
index 5257113..e5bc576 100644
--- a/nvim/init.lua
+++ b/nvim/init.lua
@@ -321,69 +321,72 @@ vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc =
-- [[ Configure Treesitter ]]
-- See `:help nvim-treesitter`
-require('nvim-treesitter.configs').setup {
- -- Add languages to be installed here that you want installed for treesitter
- ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim' },
-
- -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
- auto_install = false,
-
- highlight = { enable = true },
- indent = { enable = true },
- incremental_selection = {
- enable = true,
- keymaps = {
- init_selection = '<c-space>',
- node_incremental = '<c-space>',
- scope_incremental = '<c-s>',
- node_decremental = '<M-space>',
- },
- },
- textobjects = {
- select = {
+-- Defer Treesitter setup after first render to improve startup time of 'nvim {filename}'
+vim.defer_fn(function()
+ require('nvim-treesitter.configs').setup {
+ -- Add languages to be installed here that you want installed for treesitter
+ ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim' },
+
+ -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
+ auto_install = false,
+
+ highlight = { enable = true },
+ indent = { enable = true },
+ incremental_selection = {
enable = true,
- lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
keymaps = {
- -- You can use the capture groups defined in textobjects.scm
- ['aa'] = '@parameter.outer',
- ['ia'] = '@parameter.inner',
- ['af'] = '@function.outer',
- ['if'] = '@function.inner',
- ['ac'] = '@class.outer',
- ['ic'] = '@class.inner',
+ init_selection = '<c-space>',
+ node_incremental = '<c-space>',
+ scope_incremental = '<c-s>',
+ node_decremental = '<M-space>',
},
},
- move = {
- enable = true,
- set_jumps = true, -- whether to set jumps in the jumplist
- goto_next_start = {
- [']m'] = '@function.outer',
- [']]'] = '@class.outer',
+ textobjects = {
+ select = {
+ enable = true,
+ lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
+ keymaps = {
+ -- You can use the capture groups defined in textobjects.scm
+ ['aa'] = '@parameter.outer',
+ ['ia'] = '@parameter.inner',
+ ['af'] = '@function.outer',
+ ['if'] = '@function.inner',
+ ['ac'] = '@class.outer',
+ ['ic'] = '@class.inner',
+ },
},
- goto_next_end = {
- [']M'] = '@function.outer',
- [']['] = '@class.outer',
+ move = {
+ enable = true,
+ set_jumps = true, -- whether to set jumps in the jumplist
+ goto_next_start = {
+ [']m'] = '@function.outer',
+ [']]'] = '@class.outer',
+ },
+ goto_next_end = {
+ [']M'] = '@function.outer',
+ [']['] = '@class.outer',
+ },
+ goto_previous_start = {
+ ['[m'] = '@function.outer',
+ ['[['] = '@class.outer',
+ },
+ goto_previous_end = {
+ ['[M'] = '@function.outer',
+ ['[]'] = '@class.outer',
+ },
},
- goto_previous_start = {
- ['[m'] = '@function.outer',
- ['[['] = '@class.outer',
- },
- goto_previous_end = {
- ['[M'] = '@function.outer',
- ['[]'] = '@class.outer',
+ swap = {
+ enable = true,
+ swap_next = {
+ ['<leader>a'] = '@parameter.inner',
+ },
+ swap_previous = {
+ ['<leader>A'] = '@parameter.inner',
+ },
},
},
- swap = {
- enable = true,
- swap_next = {
- ['<leader>a'] = '@parameter.inner',
- },
- swap_previous = {
- ['<leader>A'] = '@parameter.inner',
- },
- },
- },
-}
+ }
+end, 0)
-- Diagnostic keymaps
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })