Mercurial > vim
diff runtime/autoload/dist/ft.vim @ 33010:fcd65e5d277a v9.0.1797
patch 9.0.1797: Vimball/Visual Basic filetype detection conflict
Commit: https://github.com/vim/vim/commit/f97f6bbf56408c0c97b4ddbe81fba858d7455b0d
Author: Doug Kearns <dougkearns@gmail.com>
Date: Sun Aug 27 18:44:09 2023 +0200
patch 9.0.1797: Vimball/Visual Basic filetype detection conflict
Problem: Vimball/Visual Basic filetype detection conflict
Solution: runtime(vb): Improve Vimball and Visual Basic detection logic
Only run Vimball Archiver's BufEnter autocommand on Vimball archives.
Fixes #2694.
closes: #12899
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 19:00:04 +0200 |
parents | 6e346800670c |
children | 3284c31289f5 |
line wrap: on
line diff
--- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -62,7 +62,7 @@ export def FTasmsyntax() endif enddef -var ft_visual_basic_content = '\cVB_Name\|Begin VB\.\(Form\|MDIForm\|UserControl\)' +var ft_visual_basic_content = '\c^\s*\%(Attribute\s\+VB_Name\|Begin\s\+\%(VB\.\|{\%(\x\+-\)\+\x\+}\)\)' # See FTfrm() for Visual Basic form file detection export def FTbas() @@ -146,11 +146,13 @@ export def FTcls() return endif - if getline(1) =~ '^\v%(\%|\\)' + var line1 = getline(1) + + if line1 =~ '^\v%(\%|\\)' setf tex - elseif getline(1)[0] == '#' && getline(1) =~ 'rexx' + elseif line1[0] == '#' && line1 =~ 'rexx' setf rexx - elseif getline(1) == 'VERSION 1.0 CLASS' + elseif line1 == 'VERSION 1.0 CLASS' setf vb else setf st @@ -324,6 +326,11 @@ export def FTfrm() return endif + if getline(1) == "VERSION 5.00" + setf vb + return + endif + var lines = getline(1, min([line("$"), 5])) if match(lines, ft_visual_basic_content) > -1 @@ -1197,5 +1204,13 @@ export def FTv() setf v enddef +export def FTvba() + if getline(1) =~ '^["#] Vimball Archiver' + setf vim + else + setf vb + endif +enddef + # Uncomment this line to check for compilation errors early # defcompile