aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-03-03 09:44:02 +0000
committerGitHub <noreply@github.com>2023-03-03 09:44:02 +0000
commit6d4f48182131c36d57589eefd4cefe3c70256d04 (patch)
tree70dcc65f33ea46d15c7f0d728cfdec074aa7d43a /runtime/lua/vim
parent89cccea167ab8d3db6601a410dcbd33eb3824947 (diff)
downloadrneovim-6d4f48182131c36d57589eefd4cefe3c70256d04.tar.gz
rneovim-6d4f48182131c36d57589eefd4cefe3c70256d04.tar.bz2
rneovim-6d4f48182131c36d57589eefd4cefe3c70256d04.zip
fix(treesitter): disallow empty filetypes
Fixes #22473
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/treesitter.lua3
-rw-r--r--runtime/lua/vim/treesitter/language.lua10
2 files changed, 12 insertions, 1 deletions
diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua
index 09e3814a17..f80da433b1 100644
--- a/runtime/lua/vim/treesitter.lua
+++ b/runtime/lua/vim/treesitter.lua
@@ -47,7 +47,8 @@ function M._create_parser(bufnr, lang, opts)
vim.fn.bufload(bufnr)
- language.add(lang, { filetype = vim.bo[bufnr].filetype })
+ local ft = vim.bo[bufnr].filetype
+ language.add(lang, { filetype = ft ~= '' and ft or nil })
local self = LanguageTree.new(bufnr, lang, opts)
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua
index 5bcc786e88..5f34d9cd56 100644
--- a/runtime/lua/vim/treesitter/language.lua
+++ b/runtime/lua/vim/treesitter/language.lua
@@ -60,6 +60,16 @@ function M.add(lang, opts)
filetype = { filetype, { 'string', 'table' }, true },
})
+ if filetype == '' then
+ error(string.format("'%s' is not a valid filetype", filetype))
+ elseif type(filetype) == 'table' then
+ for _, f in ipairs(filetype) do
+ if f == '' then
+ error(string.format("'%s' is not a valid filetype", filetype))
+ end
+ end
+ end
+
M.register(lang, filetype or lang)
if vim._ts_has_language(lang) then