diff options
author | EliSauder <24995216+EliSauder@users.noreply.github.com> | 2024-07-28 21:28:11 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-07-28 21:28:11 +0200 |
commit | e57c9a19edc906a96ccb8821ae33fa6a8b20c3cd (patch) | |
tree | 4049d1d9acf8ef3b82cdb94ec352c712efb91544 | |
parent | 13032a49b7d2a45e7c774cf23ee8f58f56b03781 (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.vim | 6 | ||||
-rw-r--r-- | runtime/filetype.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_filetype.vim | 32 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |