aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-07-10 21:47:50 +0200
committerThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-07-16 09:34:31 +0200
commita4e2692c7b9fb562eca39ce0bb10ec2544bc7ccb (patch)
treeb370b426c299b0b9358f9722d0a9af3355237b7c /lua
parentfix(ts_utils): be sure to parse to get root (diff)
downloadnvim-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.lua4
-rw-r--r--lua/nvim-treesitter/highlight.lua2
-rw-r--r--lua/nvim-treesitter/locals.lua2
-rw-r--r--lua/nvim-treesitter/parsers.lua12
-rw-r--r--lua/nvim-treesitter/textobjects.lua9
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