From a6a6aeab76bef135d9f76534efa5ee7391c4ed2a Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Thu, 24 Sep 2020 22:52:50 +0200 Subject: Improve django filetype detection, closes #560 --- scripts/build | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) (limited to 'scripts') diff --git a/scripts/build b/scripts/build index 482ffcf6..3c89b6f1 100755 --- a/scripts/build +++ b/scripts/build @@ -126,10 +126,6 @@ def transform_patterns(heuristics) patterns_mapping = Hash[patterns.zip(patterns_to_vim_patterns(patterns))] each_hash(heuristics) do |h| if h.has_key?("pattern") - if h["pattern"].include?("#import") - puts h["pattern"] - puts patterns_mapping.fetch(h["pattern"]) - end h["pattern"] = patterns_mapping.fetch(h["pattern"]) end end @@ -326,10 +322,20 @@ def rule_to_code(rule) EOS end - if (rule.keys - ["filetype", "override", "set", "extensions", "fallback"]).size > 0 - raise "Unknown rule: #{JSON.generate(rule)}" + if rule.has_key?("filetype") + if rule.has_key?("fallback") + return <<~EOS + set ft=#{rule["filetype"]} | au! BufWritePost ++once call polyglot#Detect#{camelize(rule["extensions"].first)}Filetype() + return + EOS + end + + return <<~EOS + set ft=#{rule["filetype"]} | return + #{indent(rule_to_code(except(rule, "filetype")), 0)} + EOS end - + if rule.has_key?("override") variable = "g:filetype_#{rule["extensions"].first}" return <<~EOS @@ -339,22 +345,10 @@ def rule_to_code(rule) EOS end - if rule.has_key?("filetype") - return "set ft=#{rule["filetype"]} | return" - end - - if rule.has_key?("filetype") - if rule.has_key?("fallback") - return "set ft=#{rule["filetype"]} | return" - else - return "setf FALLBACK #{rule["filetype"]} | return" - end - end - - if rule.has_key?("extensions") - return "" + if (rule.keys - ["extensions"]).size > 0 + raise "Unknown rule: #{JSON.generate(rule)}" end - + return "" end -- cgit v1.2.3