summaryrefslogtreecommitdiffstats
path: root/scripts/build
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build')
-rwxr-xr-xscripts/build21
1 files changed, 17 insertions, 4 deletions
diff --git a/scripts/build b/scripts/build
index c44e8cc8..0fac234d 100755
--- a/scripts/build
+++ b/scripts/build
@@ -257,6 +257,8 @@ def rules_to_code(rules)
end
output << rule_to_code(rules)
+
+ output
end
def rule_to_code(rule)
@@ -287,7 +289,9 @@ def rule_to_code(rule)
end
if rule.has_key?("rules")
- return rule["rules"].map { |r| indent(rule_to_code(r), 0) }.join("\n")
+ return rule["rules"].map do |r|
+ indent(rule_to_code({ "extensions" => rule["extensions"], **r }), 0)
+ end.join("\n")
end
if rule.has_key?("if_set")
@@ -313,14 +317,15 @@ def rule_to_code(rule)
EOS
end
- if (rule.keys - ["filetype", "override", "set"]).size > 0
+ if (rule.keys - ["filetype", "override", "set", "extensions"]).size > 0
raise "Unknown rule: #{JSON.generate(rule)}"
end
if rule.has_key?("override")
+ variable = "g:filetype_#{rule["extensions"].first}"
return <<~EOS
- if exists("#{rule["override"]}")
- call s:Setf(#{rule["override"]}) | return
+ if exists("#{variable}")
+ call s:Setf(#{variable}) | return
endif
EOS
end
@@ -329,6 +334,14 @@ def rule_to_code(rule)
return "call s:Setf('#{rule["filetype"]}') | return"
end
+ if rule.has_key?("filetype")
+ return "call s:Setf('#{rule["filetype"]}') | return"
+ end
+
+ if rule.has_key?("extensions")
+ return ""
+ end
+
return ""
end