aboutsummaryrefslogtreecommitdiff
path: root/test/functional/treesitter/language_spec.lua
diff options
context:
space:
mode:
authorChinmay Dalal <dalal.chinmay.0101@gmail.com>2022-04-22 19:45:28 +0530
committerGitHub <noreply@github.com>2022-04-22 16:15:28 +0200
commit116a3f4683de501228b422f67cf1030bee78759c (patch)
treeb17a4371a99d6dfc8c1f9473462a5207ee35cd7a /test/functional/treesitter/language_spec.lua
parentf4f593b3331a29590355322884d5b89e8660e5e8 (diff)
downloadrneovim-116a3f4683de501228b422f67cf1030bee78759c.tar.gz
rneovim-116a3f4683de501228b422f67cf1030bee78759c.tar.bz2
rneovim-116a3f4683de501228b422f67cf1030bee78759c.zip
fix(treesitter): create new parser if language is not the same as cached parser (#18149)
Diffstat (limited to 'test/functional/treesitter/language_spec.lua')
-rw-r--r--test/functional/treesitter/language_spec.lua11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/functional/treesitter/language_spec.lua b/test/functional/treesitter/language_spec.lua
index afb17dd2cf..84e4fa5c49 100644
--- a/test/functional/treesitter/language_spec.lua
+++ b/test/functional/treesitter/language_spec.lua
@@ -2,6 +2,7 @@ local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local eq = helpers.eq
+local command = helpers.command
local exec_lua = helpers.exec_lua
local pcall_err = helpers.pcall_err
local matches = helpers.matches
@@ -67,5 +68,15 @@ describe('treesitter API', function()
end
eq({true,true}, {has_named,has_anonymous})
end)
+
+ it('checks if vim.treesitter.get_parser tries to create a new parser on filetype change', function ()
+ command("set filetype=c")
+ -- Should not throw an error when filetype is c
+ eq('c', exec_lua("return vim.treesitter.get_parser(0):lang()"))
+ command("set filetype=borklang")
+ -- Should throw an error when filetype changes to borklang
+ eq("Error executing lua: .../language.lua:0: no parser for 'borklang' language, see :help treesitter-parsers",
+ pcall_err(exec_lua, "new_parser = vim.treesitter.get_parser(0)"))
+ end)
end)