# HG changeset patch # User Christian Brabandt # Date 1693341007 -7200 # Node ID 3284c31289f524f2a63e724242282024a3483dcd # Parent b29e94d1422f04231eca6d958d903edb927fbc45 patch 9.0.1820: Rexx files may not be recognised Commit: https://github.com/vim/vim/commit/e06afb7860805537ccd69966bc03169852c9b378 Author: Doug Kearns Date: Tue Aug 29 22:21:35 2023 +0200 patch 9.0.1820: Rexx files may not be recognised Problem: Rexx files may not be recognised Solution: Add shebang detection and improve disambiguation of *.cls files closes: #12951 Signed-off-by: Christian Brabandt Co-authored-by: Doug Kearns diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -147,13 +147,19 @@ export def FTcls() endif var line1 = getline(1) - - if line1 =~ '^\v%(\%|\\)' - setf tex - elseif line1[0] == '#' && line1 =~ 'rexx' + if line1 =~ '^#!.*\<\%(rexx\|regina\)\>' setf rexx + return elseif line1 == 'VERSION 1.0 CLASS' setf vb + return + endif + + var nonblank1 = getline(nextnonblank(1)) + if nonblank1 =~ '^\v%(\%|\\)' + setf tex + elseif nonblank1 =~ '^\s*\%(/\*\|::\w\)' + setf rexx else setf st endif diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim --- a/runtime/autoload/dist/script.vim +++ b/runtime/autoload/dist/script.vim @@ -213,6 +213,10 @@ export def Exe2filetype(name: string, li elseif name =~ '^crystal\>' return 'crystal' + # Rexx + elseif name =~ '^\%(rexx\|regina\)\>' + return 'rexx' + endif return '' diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -945,6 +945,8 @@ def s:GetScriptChecks(): dict