Skip to content

Commit 8ac4b12

Browse files
committed
Refactor treesitter attach code
1 parent 0619d89 commit 8ac4b12

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

init.lua

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -874,27 +874,36 @@ require('lazy').setup({
874874
branch = 'main',
875875
-- [[ Configure Treesitter ]] See `:help nvim-treesitter-intro`
876876
config = function()
877+
-- ensure basic parser are installed
877878
local parsers = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }
878879
require('nvim-treesitter').install(parsers)
880+
881+
---@param buf integer
882+
---@param language string
883+
local function treesitter_try_attach(buf, language)
884+
-- check if parser exists and load it
885+
if not vim.treesitter.language.add(language) then return end
886+
-- enables syntax highlighting and other treesitter features
887+
vim.treesitter.start(buf, language)
888+
889+
-- enables treesitter based folds
890+
-- for more info on folds see `:help folds`
891+
-- vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
892+
-- vim.wo.foldmethod = 'expr'
893+
894+
-- enables treesitter based indentation
895+
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
896+
end
897+
898+
local available_parsers = require('nvim-treesitter').get_available()
879899
vim.api.nvim_create_autocmd('FileType', {
880900
callback = function(args)
881901
local buf, filetype = args.buf, args.match
882902

883903
local language = vim.treesitter.language.get_lang(filetype)
884904
if not language then return end
885905

886-
-- check if parser exists and load it
887-
if not vim.treesitter.language.add(language) then return end
888-
-- enables syntax highlighting and other treesitter features
889-
vim.treesitter.start(buf, language)
890-
891-
-- enables treesitter based folds
892-
-- for more info on folds see `:help folds`
893-
-- vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
894-
-- vim.wo.foldmethod = 'expr'
895-
896-
-- enables treesitter based indentation
897-
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
906+
treesitter_try_attach(buf, language)
898907
end,
899908
})
900909
end,

0 commit comments

Comments
 (0)