From d05728e155ced9a815bb3f6fc9e8004093beb3d3 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Mon, 20 Apr 2020 16:18:02 +0200 Subject: feat: syntax highlighting --- lua/nvim-treesitter/highlight.lua | 17 +++++++++++++++++ lua/nvim-treesitter/query.lua | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 lua/nvim-treesitter/highlight.lua (limited to 'lua/nvim-treesitter') diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua new file mode 100644 index 00000000..4acb202b --- /dev/null +++ b/lua/nvim-treesitter/highlight.lua @@ -0,0 +1,17 @@ +local api = vim.api +local queries = require'nvim-treesitter.query' +local ts = vim.treesitter + +local M = {} + +function M.setup(bufnr, ft) + local buf = bufnr or api.nvim_get_current_buf() + local ft = ft or api.nvim_buf_get_option(buf, 'ft') + + local query = queries.get_query(ft, "highlights") + if not query then return end + + ts.TSHighlighter.new(query, buf, ft) +end + +return M diff --git a/lua/nvim-treesitter/query.lua b/lua/nvim-treesitter/query.lua index e9f671f9..277c2969 100644 --- a/lua/nvim-treesitter/query.lua +++ b/lua/nvim-treesitter/query.lua @@ -62,7 +62,7 @@ function M.iter_prepared_matches(query, qnode, bufnr, start_row, end_row) local preds = query.info.patterns[pattern] if preds then for _, pred in pairs(preds) do - if pred[1] == "set!" and pred[2] ~= nil then + if pred[1] == "set!" and type(pred[2]) == "string" then insert_to_path(prepared_match, split(pred[2]), pred[3]) end end -- cgit v1.2.3 From f7424d23a143553552d238ae83b4fad8e99b32e0 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Wed, 22 Apr 2020 09:29:33 +0200 Subject: highlight: retain highlighters with the buffers --- lua/nvim-treesitter/highlight.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lua/nvim-treesitter') diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua index 4acb202b..110954a6 100644 --- a/lua/nvim-treesitter/highlight.lua +++ b/lua/nvim-treesitter/highlight.lua @@ -2,7 +2,9 @@ local api = vim.api local queries = require'nvim-treesitter.query' local ts = vim.treesitter -local M = {} +local M = { + highlighters={} +} function M.setup(bufnr, ft) local buf = bufnr or api.nvim_get_current_buf() @@ -11,7 +13,7 @@ function M.setup(bufnr, ft) local query = queries.get_query(ft, "highlights") if not query then return end - ts.TSHighlighter.new(query, buf, ft) + M.highlighters[buf] = ts.TSHighlighter.new(query, buf, ft) end return M -- cgit v1.2.3