0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 9.1.0635: filetype: SuperHTML template files not recognized

Problem:  filetype: SuperHTML template files not recognized
Solution: Update the filetype detection code to detect '*.shtml' either
          as HTML (Server Side Includes) or SuperHTML (template files)
          (EliSauder)

related: #15355
related: #15367

Signed-off-by: EliSauder <24995216+EliSauder@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
EliSauder
2024-07-28 21:28:11 +02:00
committed by Christian Brabandt
parent 13032a49b7
commit e57c9a19ed
4 changed files with 40 additions and 2 deletions

View File

@@ -421,7 +421,6 @@ export def FThtml()
setf htmlangular setf htmlangular
return return
endif endif
# Check for XHTML # Check for XHTML
if getline(n) =~ '\<DTD\s\+XHTML\s' if getline(n) =~ '\<DTD\s\+XHTML\s'
setf xhtml setf xhtml
@@ -432,6 +431,11 @@ export def FThtml()
setf htmldjango setf htmldjango
return return
endif endif
# Check for SuperHTML
if getline(n) =~ '<extend\|<super>'
setf superhtml
return
endif
n += 1 n += 1
endwhile endwhile
setf FALLBACK html setf FALLBACK html

View File

@@ -1039,7 +1039,7 @@ au BufNewFile,BufRead *.t.html setf tilde
" Translate shell " Translate shell
au BufNewFile,BufRead init.trans,*/etc/translate-shell,.trans setf clojure au BufNewFile,BufRead init.trans,*/etc/translate-shell,.trans setf clojure
" HTML (.shtml and .stm for server side) " HTML (.stm for server side, .shtml is server-side or superhtml)
au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml() au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml()
au BufNewFile,BufRead *.cshtml setf html au BufNewFile,BufRead *.cshtml setf html

View File

@@ -1603,6 +1603,38 @@ func Test_html_file()
call assert_equal('htmldjango', &filetype) call assert_equal('htmldjango', &filetype)
bwipe! bwipe!
" Super html layout
let content = ['<extend template="base.shtml">',
\ '<title id="title" var="$page.title"></title>',
\ '<head id="head"></head>',
\ '<div id="content">',
\ '</div>']
call writefile(content, 'Xfile.shtml', 'D')
split Xfile.shtml
call assert_equal('superhtml', &filetype)
bwipe!
" Super html template
let content = ['<!DOCTYPE html>',
\ '<html>',
\ ' <head id="head">',
\ ' <title id="title">',
\ ' <super>',
\ ' suffix',
\ ' </title>',
\ ' <super>',
\ ' </head>',
\ ' <body>',
\ ' <div id="content">',
\ ' <super>',
\ ' </div>',
\ ' </body>',
\ '</html>']
call writefile(content, 'Xfile.shtml', 'D')
split Xfile.shtml
call assert_equal('superhtml', &filetype)
bwipe!
" regular HTML " regular HTML
let content = ['<!DOCTYPE html>', '<html>', ' <head>Foobar</head>', ' <body>Content', ' </body>', '</html>'] let content = ['<!DOCTYPE html>', '<html>', ' <head>Foobar</head>', ' <body>Content', ' </body>', '</html>']
call writefile(content, 'Xfile.html', 'D') call writefile(content, 'Xfile.html', 'D')

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
635,
/**/ /**/
634, 634,
/**/ /**/