diff options
| author | Stephan Seitz <stephan.seitz@fau.de> | 2020-07-10 21:47:50 +0200 |
|---|---|---|
| committer | Thomas Vigouroux <39092278+vigoux@users.noreply.github.com> | 2020-07-16 09:34:31 +0200 |
| commit | a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb (patch) | |
| tree | b370b426c299b0b9358f9722d0a9af3355237b7c /lua | |
| parent | fix(ts_utils): be sure to parse to get root (diff) | |
| download | nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.tar nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.tar.gz nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.tar.bz2 nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.tar.lz nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.tar.xz nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.tar.zst nvim-treesitter-a4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb.zip | |
Refactor: Add parsers.get_buf_lang
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-treesitter/configs.lua | 4 | ||||
| -rw-r--r-- | lua/nvim-treesitter/highlight.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-treesitter/locals.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 12 | ||||
| -rw-r--r-- | lua/nvim-treesitter/textobjects.lua | 9 |
5 files changed, 18 insertions, 11 deletions
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua index 38a78d943..05221b66d 100644 --- a/lua/nvim-treesitter/configs.lua +++ b/lua/nvim-treesitter/configs.lua @@ -104,7 +104,7 @@ end local function enable_module(mod, bufnr, lang) local bufnr = bufnr or api.nvim_get_current_buf() - local lang = lang or parsers.ft_to_lang(api.nvim_buf_get_option(bufnr, 'ft')) + local lang = lang or parsers.get_buf_lang(bufnr) if not parsers.list[lang] then return @@ -157,7 +157,7 @@ end local function disable_module(mod, bufnr, lang) local bufnr = bufnr or api.nvim_get_current_buf() - local lang = lang or parsers.ft_to_lang(api.nvim_buf_get_option(bufnr, 'ft')) + local lang = lang or parsers.get_buf_lang(bufnr) if not lang then return end diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua index 0d4f3f547..14f1425aa 100644 --- a/lua/nvim-treesitter/highlight.lua +++ b/lua/nvim-treesitter/highlight.lua @@ -54,7 +54,7 @@ hlmap["include"] = "TSInclude" function M.attach(bufnr, lang) local bufnr = bufnr or api.nvim_get_current_buf() - local lang = lang or parsers.ft_to_lang(api.nvim_buf_get_option(bufnr, 'ft')) + local lang = parsers.get_buf_lang(bufnr, lang) local config = configs.get_module('highlight') for k, v in pairs(config.custom_captures) do diff --git a/lua/nvim-treesitter/locals.lua b/lua/nvim-treesitter/locals.lua index c092a0739..fe99cd811 100644 --- a/lua/nvim-treesitter/locals.lua +++ b/lua/nvim-treesitter/locals.lua @@ -43,7 +43,7 @@ end function M.iter_locals(bufnr, root, query_kind) query_kind = query_kind or 'locals' - local lang = parsers.ft_to_lang(api.nvim_buf_get_option(bufnr, "ft")) + local lang = parsers.get_buf_lang(bufnr) if not lang then return end local query = queries.get_query(lang, query_kind) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 6405af9c9..dd4f14c7f 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -257,14 +257,14 @@ end function M.has_parser(lang) local buf = api.nvim_get_current_buf() - local lang = lang or M.ft_to_lang(api.nvim_buf_get_option(buf, 'ft')) + local lang = M.get_buf_lang(buf) or lang if not lang or #lang == 0 then return false end return #api.nvim_get_runtime_file('parser/' .. lang .. '.*', false) > 0 end function M.get_parser(bufnr, lang) local buf = bufnr or api.nvim_get_current_buf() - local lang = lang or M.ft_to_lang(api.nvim_buf_get_option(buf, 'ft')) + local lang = lang or M.get_buf_lang(buf) if M.has_parser(lang) then if not M[buf] then @@ -277,4 +277,12 @@ function M.get_parser(bufnr, lang) end end +-- get language of given buffer +-- @param optional buffer number or current buffer +-- @returns language string of buffer +function M.get_buf_lang(bufnr) + bufnr = bufnr or api.nvim_get_current_buf() + return M.ft_to_lang(api.nvim_buf_get_option(bufnr, "ft")) +end + return M diff --git a/lua/nvim-treesitter/textobjects.lua b/lua/nvim-treesitter/textobjects.lua index 51acca165..b6c5d7356 100644 --- a/lua/nvim-treesitter/textobjects.lua +++ b/lua/nvim-treesitter/textobjects.lua @@ -11,9 +11,8 @@ local M = {} function M.select_textobject(query_string) local bufnr = vim.api.nvim_get_current_buf() - local ft = api.nvim_buf_get_option(bufnr, "ft") - if not ft then return end - local lang = parsers.ft_to_lang(ft) + local lang = parsers.get_buf_lang(bufnr) + if not lang then return end local row, col = unpack(vim.api.nvim_win_get_cursor(0)) row = row - 1 @@ -77,7 +76,7 @@ end function M.attach(bufnr, lang) local buf = bufnr or api.nvim_get_current_buf() local config = configs.get_module("textobjects") - local lang = lang or parsers.ft_to_lang(api.nvim_buf_get_option(bufnr, "ft")) + local lang = lang or parsers.get_buf_lang(buf) for mapping, query in pairs(config.keymaps) do if type(query) == 'table' then @@ -96,7 +95,7 @@ end function M.detach(bufnr) local buf = bufnr or api.nvim_get_current_buf() local config = configs.get_module("textobjects") - local lang = parsers.ft_to_lang(api.nvim_buf_get_option(bufnr, "ft")) + local lang = parsers.get_buf_lang(bufnr) for mapping, query in pairs(config.keymaps) do if type(query) == 'table' then |
