summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEliSauder <24995216+EliSauder@users.noreply.github.com>2024-07-28 21:28:11 +0200
committerChristian Brabandt <cb@256bit.org>2024-07-28 21:28:11 +0200
commite57c9a19edc906a96ccb8821ae33fa6a8b20c3cd (patch)
tree4049d1d9acf8ef3b82cdb94ec352c712efb91544
parent13032a49b7d2a45e7c774cf23ee8f58f56b03781 (diff)
patch 9.1.0635: filetype: SuperHTML template files not recognizedv9.1.0635
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>
-rw-r--r--runtime/autoload/dist/ft.vim6
-rw-r--r--runtime/filetype.vim2
-rw-r--r--src/testdir/test_filetype.vim32
-rw-r--r--src/version.c2
4 files changed, 40 insertions, 2 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index e53cdacbe3..c8942eb3d1 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -421,7 +421,6 @@ export def FThtml()
setf htmlangular
return
endif
-
# Check for XHTML
if getline(n) =~ '\<DTD\s\+XHTML\s'
setf xhtml
@@ -432,6 +431,11 @@ export def FThtml()
setf htmldjango
return
endif
+ # Check for SuperHTML
+ if getline(n) =~ '<extend\|<super>'
+ setf superhtml
+ return
+ endif
n += 1
endwhile
setf FALLBACK html
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index d02826578e..bdf591ac7b 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1039,7 +1039,7 @@ au BufNewFile,BufRead *.t.html setf tilde
" Translate shell
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 *.cshtml setf html
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index f8b3ea872b..3aa3e97f4e 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -1603,6 +1603,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')
diff --git a/src/version.c b/src/version.c
index 6520422955..a321cc53e3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 635,
+/**/
634,
/**/
633,