mirror of
https://github.com/vim/vim.git
synced 2026-05-28 00:21:37 +02:00
patch 9.2.0489: filetype: some Objective-C files are not recognized
Problem: filetype: some Objective-C files are not recognized
Solution: Add g:filetype_mm override variable, improve the objective c
pattern detection (Keith Smiley).
closes: #20221
Signed-off-by: Keith Smiley <keithbsmiley@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
7cb86f46cb
commit
bc7f736a39
Vendored
+7
-2
@@ -3,7 +3,7 @@ vim9script
|
||||
# Vim functions for file type detection
|
||||
#
|
||||
# Maintainer: The Vim Project <https://github.com/vim/vim>
|
||||
# Last Change: 2026 Apr 23
|
||||
# Last Change: 2026 May 16
|
||||
# Former Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
# These functions are moved here from runtime/filetype.vim to make startup
|
||||
@@ -798,9 +798,14 @@ export def FTnroff(): number
|
||||
enddef
|
||||
|
||||
export def FTmm()
|
||||
if exists("g:filetype_mm")
|
||||
exe "setf " .. g:filetype_mm
|
||||
return
|
||||
endif
|
||||
|
||||
var n = 1
|
||||
while n < 20
|
||||
if getline(n) =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
if getline(n) =~ '^\s*\(//\|#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
setf objcpp
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 9.2. Last change: 2026 Apr 13
|
||||
*filetype.txt* For Vim version 9.2. Last change: 2026 May 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -164,6 +164,7 @@ variables can be used to overrule the filetype used for certain extensions:
|
||||
*.int g:filetype_int
|
||||
*.lsl g:filetype_lsl
|
||||
*.m g:filetype_m |ft-mathematica-syntax|
|
||||
*.mm g:filetype_mm
|
||||
*.mac g:filetype_mac
|
||||
*[mM]makefile,*.mk,*.mak,[mM]akefile*
|
||||
g:make_flavor |ft-make-syntax|
|
||||
|
||||
@@ -2068,6 +2068,37 @@ func Test_m4_file()
|
||||
endtry
|
||||
endfunc
|
||||
|
||||
func Test_mm_file()
|
||||
filetype on
|
||||
|
||||
call writefile(['#import "test.h"'], 'Xfile.mm', 'D')
|
||||
split Xfile.mm
|
||||
call assert_equal('objcpp', &filetype)
|
||||
bwipe!
|
||||
|
||||
call writefile(['// Objective-C++ line comment'], 'Xfile.mm', 'D')
|
||||
split Xfile.mm
|
||||
call assert_equal('objcpp', &filetype)
|
||||
bwipe!
|
||||
|
||||
call writefile(['.TH VIM 1 "YYYY Mth DD"'], 'Xfile.mm', 'D')
|
||||
split Xfile.mm
|
||||
call assert_equal('nroff', &filetype)
|
||||
bwipe!
|
||||
|
||||
try
|
||||
let g:filetype_mm = 'objcpp'
|
||||
call writefile(['.TH VIM 1 "YYYY Mth DD"'], 'Xfile_override.mm', 'D')
|
||||
split Xfile_override.mm
|
||||
call assert_equal('objcpp', &filetype)
|
||||
bwipe!
|
||||
finally
|
||||
unlet! g:filetype_mm
|
||||
endtry
|
||||
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
func Test_mod_file()
|
||||
filetype on
|
||||
|
||||
|
||||
@@ -729,6 +729,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
489,
|
||||
/**/
|
||||
488,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user