diff --git a/init.lua b/init.lua index a309efb..feda2b3 100644 --- a/init.lua +++ b/init.lua @@ -22,9 +22,9 @@ require('lazy').setup({ 'junegunn/vim-easy-align', -- Nice alignment 'jpalardy/vim-slime', -- Send text from buffer to a tmux pane 'neovim/nvim-lspconfig', -- LSP - 'nvim-mini/mini.nvim', -- Collection of small utilities 'stevearc/conform.nvim', -- Autoformatting 'tanvirtin/monokai.nvim', -- Theme + { 'nvim-mini/mini.nvim', version = '*' }, { -- Adds git related signs to the gutter, as well as utilities for managing changes 'lewis6991/gitsigns.nvim', @@ -244,6 +244,8 @@ require('telescope').setup { }, } +require('mini.snippets').setup {} +require('mini.keymap').setup {} require('mini.icons').setup {} require('mini.completion').setup {} @@ -392,10 +394,33 @@ vim.api.nvim_create_autocmd('FileType', { end, }) +-- vim.api.nvim_create_autocmd('FileType', { +-- pattern = '*', +-- callback = function() +-- vim.treesitter.start() +-- end, +-- }) + vim.api.nvim_create_autocmd('FileType', { - pattern = '*', - callback = function() - vim.treesitter.start() + group = vim.api.nvim_create_augroup('tree-sitter-enable', { clear = true }), + callback = function(args) + local lang = vim.treesitter.language.get_lang(args.match) + if not lang or not vim.treesitter.language.add(lang) then + return + end + + if vim.treesitter.query.get(lang, 'highlights') then + vim.treesitter.start(args.buf) + end + + if vim.treesitter.query.get(lang, 'indents') then + vim.opt_local.indentexpr = 'v:lua.require("nvim-treesitter").indentexpr()' + end + + if vim.treesitter.query.get(lang, 'folds') then + vim.opt_local.foldmethod = 'expr' + vim.opt_local.foldexpr = 'v:lua.vim.treesitter.foldexpr()' + end end, })