Xinqi Bao's Git

refactor(nvim): replace Tagbar and Gutentags with Aerial
[dotfiles.git] / .config / nvim / lua / plugin-config / nvim-treesitter.lua
index 57100d2..9f160e3 100644 (file)
@@ -1,32 +1,21 @@
-require'nvim-treesitter.configs'.setup {
-  --[[
-  -- One of "all", "maintained" (parsers with maintainers), or a list of languages
-  ensure_installed = "maintained",
-  -- Install languages synchronously (only applied to `ensure_installed`)
-  sync_install = false,
-  -- List of parsers to ignore installing
-  ignore_install = { "javascript" },
-  ]]
+require('nvim-treesitter').setup {
+  install_dir = vim.fn.stdpath('data') .. '/site',
+}
 
 
-  -- Consistent syntax highlighting.
-  highlight = {
-    enable = true,
-    additional_vim_regex_highlighting = false
-  },
+local function enable(buf)
+  if not pcall(vim.treesitter.start, buf) then
+    return
+  end
 
 
-  -- Incremental selection based on the named nodes from the grammar.
-  incremental_selection = {
-    enable = true,
-    keymaps = {
-      init_selection    = '<CR>',
-      node_incremental  = '<CR>',
-      node_decremental  = '<BS>',
-      scope_incremental = '<TAB>',
-    }
-  },
+  vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()'
+  vim.wo[0][0].foldmethod = 'expr'
+end
 
 
-  -- Indentation based on treesitter for the = operator. NOTE: This is an experimental feature.
-  indent = {
-    enable = false
-  }
-}
+vim.api.nvim_create_autocmd('FileType', {
+  callback = function(args) enable(args.buf) end,
+})
+
+-- Startup filetype detection can precede this config being sourced.
+if vim.bo.filetype ~= '' then
+  enable(0)
+end