aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/filetype/detect.lua12
1 files changed, 9 insertions, 3 deletions
diff --git a/runtime/lua/vim/filetype/detect.lua b/runtime/lua/vim/filetype/detect.lua
index 0609ac5513..934b02dcdd 100644
--- a/runtime/lua/vim/filetype/detect.lua
+++ b/runtime/lua/vim/filetype/detect.lua
@@ -194,13 +194,18 @@ function M.cls(_, bufnr)
return vim.g.filetype_cls
end
local line1 = getline(bufnr, 1)
- if line1:find('^[%%\\]') then
- return 'tex'
- elseif line1:find('^#') and line1:lower():find('rexx') then
+ if matchregex(line1, [[^#!.*\<\%(rexx\|regina\)\>]]) then
return 'rexx'
elseif line1 == 'VERSION 1.0 CLASS' then
return 'vb'
end
+
+ local nonblank1 = nextnonblank(bufnr, 1)
+ if nonblank1 and nonblank1:find('^[%%\\]') then
+ return 'tex'
+ elseif nonblank1 and findany(nonblank1, { '^%s*/%*', '^%s*::%w' }) then
+ return 'rexx'
+ end
return 'st'
end
@@ -1648,6 +1653,7 @@ local patterns_hashbang = {
guile = 'scheme',
['nix%-shell'] = 'nix',
['crystal\\>'] = { 'crystal', { vim_regex = true } },
+ ['^\\%(rexx\\|regina\\)\\>'] = { 'rexx', { vim_regex = true } },
}
---@private