diff options
| author | kiyan42 <yazdani.kiyan@protonmail.com> | 2020-04-22 11:13:05 +0200 |
|---|---|---|
| committer | kiyan42 <yazdani.kiyan@protonmail.com> | 2020-04-24 22:15:21 +0200 |
| commit | 62786ec7c60ea29cbbd48ae658cde7042dba4bb3 (patch) | |
| tree | 16ee7598796807d07d4e5718b777e769dec09305 /lua/nvim-treesitter.lua | |
| parent | Merge pull request #21 from haorenW1025/master (diff) | |
| download | nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.tar nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.tar.gz nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.tar.bz2 nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.tar.lz nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.tar.xz nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.tar.zst nvim-treesitter-62786ec7c60ea29cbbd48ae658cde7042dba4bb3.zip | |
feat/refacto: improve configurations
- You should now get the configs through functions
- Configs for languages are now inside a local object called parsers
- You can get the parser installation configurations with `get_parser_configs`
- A new object has been initialized inside configs to specify module config (called config).
- Provide functions to enable/disable a module on one buffer
- Provide functions to enable/disable a module on all buffers, and if filetype is
specified, for specific filetype
- Provide function to determine if module is activated for a specified filetype
Diffstat (limited to 'lua/nvim-treesitter.lua')
| -rw-r--r-- | lua/nvim-treesitter.lua | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/lua/nvim-treesitter.lua b/lua/nvim-treesitter.lua index b053f39b0..731f55e5d 100644 --- a/lua/nvim-treesitter.lua +++ b/lua/nvim-treesitter.lua @@ -1,30 +1,28 @@ local api = vim.api local parsers = require'nvim-treesitter.parsers' -local configs = require 'nvim-treesitter.configs' local install = require'nvim-treesitter.install' local locals = require'nvim-treesitter.locals' -local highlight = require'nvim-treesitter.highlight' +local utils = require'nvim-treesitter.utils' +local info = require'nvim-treesitter.info' +local configs = require'nvim-treesitter.configs' local M = {} -function M.available_parsers() - return vim.tbl_keys(configs.repositories) -end - -- This function sets up everythin needed for a given language -- this is the main interface through the plugin function M.setup(lang) - if parsers.has_parser(lang) then - local autocmd = "autocmd NvimTreesitter FileType %s lua require'nvim-treesitter.highlight'.setup()" - api.nvim_command(string.format(autocmd, lang)) - end -end + utils.setup_commands('install', install.commands) + utils.setup_commands('info', info.commands) + utils.setup_commands('configs', configs.commands) --- This function initialize the plugin --- it is run at startup -M._root = {} -function M._root.setup() - install.setup() + for _, ft in pairs(configs.available_parsers()) do + for _, mod in pairs(configs.available_modules()) do + if parsers.has_parser(ft) and configs.is_enabled(mod, ft) then + local cmd = string.format("lua require'nvim-treesitter.%s'.attach()", mod) + api.nvim_command(string.format("autocmd FileType %s %s", ft, cmd)) + end + end + end end return M |
