vim-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: vim/vim#15355
related: vim/vim#15367

e57c9a19ed

Co-authored-by: EliSauder <24995216+EliSauder@users.noreply.github.com>
This commit is contained in:
Christian Clason 2024-07-28 22:29:20 +02:00
parent 8168b228e0
commit e596b6a18d
2 changed files with 34 additions and 0 deletions

View File

@ -735,6 +735,8 @@ function M.html(_, bufnr)
)
then
return 'htmldjango'
elseif findany(line, { '<extend', '<super>' }) then
return 'superhtml'
end
end
return 'html'

View File

@ -1598,6 +1598,38 @@ func Test_html_file()
call assert_equal('htmldjango', &filetype)
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
let content = ['<!DOCTYPE html>', '<html>', ' <head>Foobar</head>', ' <body>Content', ' </body>', '</html>']
call writefile(content, 'Xfile.html', 'D')