mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-10 04:23:51 -05:00
Improve html heuristics
This commit is contained in:
@@ -372,9 +372,12 @@ func! polyglot#DetectHtmlFiletype()
|
|||||||
endif
|
endif
|
||||||
for lnum in range(1, min([line("$"), 50]))
|
for lnum in range(1, min([line("$"), 50]))
|
||||||
let line = getline(lnum)
|
let line = getline(lnum)
|
||||||
if line =~# '{{.*}}\|{%-\=\s*\(end.*\|extends\|block\|macro\|set\|if\|for\|include\|trans\)\(\<\|\>\)'
|
if line =~# '{{.*}}\|{%-\=\s*\(end.*\|extends\|block\|macro\|set\|if\|for\|include\|trans\)\(\<\|\>\)\|{#\s\+'
|
||||||
set ft=jinja.html | return
|
set ft=jinja.html | return
|
||||||
endif
|
endif
|
||||||
|
if line =~# '\(\<\|\>\)DTD\s\+XHTML\s'
|
||||||
|
set ft=xhtml | return
|
||||||
|
endif
|
||||||
endfor
|
endfor
|
||||||
set ft=html | return
|
set ft=html | return
|
||||||
endfunc
|
endfunc
|
||||||
|
|||||||
@@ -181,7 +181,10 @@ rules:
|
|||||||
pattern: '^(%|<[%&].*>)'
|
pattern: '^(%|<[%&].*>)'
|
||||||
filetype: mason
|
filetype: mason
|
||||||
- lines: 50
|
- lines: 50
|
||||||
pattern: '{{.*}}|{%-?\s*(end.*|extends|block|macro|set|if|for|include|trans)\b'
|
rules:
|
||||||
filetype: jinja.html
|
- pattern: '{{.*}}|{%-?\s*(end.*|extends|block|macro|set|if|for|include|trans)\b|{#\s+'
|
||||||
|
filetype: jinja.html
|
||||||
|
- pattern: '\bDTD\s+XHTML\s'
|
||||||
|
filetype: xhtml
|
||||||
- filetype: html
|
- filetype: html
|
||||||
|
fallback: true
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ def rule_to_code(rule)
|
|||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
if (rule.keys - ["filetype", "override", "set", "extensions"]).size > 0
|
if (rule.keys - ["filetype", "override", "set", "extensions", "fallback"]).size > 0
|
||||||
raise "Unknown rule: #{JSON.generate(rule)}"
|
raise "Unknown rule: #{JSON.generate(rule)}"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -335,7 +335,11 @@ def rule_to_code(rule)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if rule.has_key?("filetype")
|
if rule.has_key?("filetype")
|
||||||
return "set ft=#{rule["filetype"]} | return"
|
if rule.has_key?("fallback")
|
||||||
|
return "set ft=#{rule["filetype"]} | return"
|
||||||
|
else
|
||||||
|
return "setf FALLBACK #{rule["filetype"]} | return"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if rule.has_key?("extensions")
|
if rule.has_key?("extensions")
|
||||||
|
|||||||
@@ -356,6 +356,8 @@ call TestExtension("tt2html", "html.tt2", "<html>")
|
|||||||
call TestExtension("html", "empty.html", "")
|
call TestExtension("html", "empty.html", "")
|
||||||
call TestExtension("mason", "mason1.html", "% my $planet = 42;")
|
call TestExtension("mason", "mason1.html", "% my $planet = 42;")
|
||||||
call TestExtension("mason", "mason2.html", "<%filter></%filter>")
|
call TestExtension("mason", "mason2.html", "<%filter></%filter>")
|
||||||
call TestExtension("jinja.html", "jinja.html", "{{ item.href }}")
|
call TestExtension("jinja.html", "jinja1.html", "{{ item.href }}")
|
||||||
call TestExtension("jinja.html", "jinja.html", "{% for item in navigation %}{% endfor %}")
|
call TestExtension("jinja.html", "jinja2.html", "{% for item in navigation %}{% endfor %}")
|
||||||
call TestExtension("jinja.html", "jinja.html", "{% block head %}")
|
call TestExtension("jinja.html", "jinja3.html", "{% block head %}")
|
||||||
|
call TestExtension("jinja.html", "jinja4.html", "{# some comment #}")
|
||||||
|
call TestExtension("xhtml", "xhtml.html", "<DTD XHTML ")
|
||||||
|
|||||||
Reference in New Issue
Block a user