Make config more vim-independent

This commit is contained in:
Adam Stankiewicz
2020-09-16 17:24:10 +02:00
parent 17c2b630e1
commit 0118088e0a
2 changed files with 19 additions and 6 deletions

View File

@@ -11,12 +11,12 @@ rules:
--- ---
extensions: [asa] extensions: [asa]
rules: rules:
- override: "g:filetype_asa" - override: true
- filetype: aspvbs - filetype: aspvbs
--- ---
extensions: [asp] extensions: [asp]
rules: rules:
- override: "g:filetype_asp" - override: true
- lines: 3 - lines: 3
pattern: 'perlscript' pattern: 'perlscript'
ignore_case: true ignore_case: true

View File

@@ -257,6 +257,8 @@ def rules_to_code(rules)
end end
output << rule_to_code(rules) output << rule_to_code(rules)
output
end end
def rule_to_code(rule) def rule_to_code(rule)
@@ -287,7 +289,9 @@ def rule_to_code(rule)
end end
if rule.has_key?("rules") 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 end
if rule.has_key?("if_set") if rule.has_key?("if_set")
@@ -313,14 +317,15 @@ def rule_to_code(rule)
EOS EOS
end end
if (rule.keys - ["filetype", "override", "set"]).size > 0 if (rule.keys - ["filetype", "override", "set", "extensions"]).size > 0
raise "Unknown rule: #{JSON.generate(rule)}" raise "Unknown rule: #{JSON.generate(rule)}"
end end
if rule.has_key?("override") if rule.has_key?("override")
variable = "g:filetype_#{rule["extensions"].first}"
return <<~EOS return <<~EOS
if exists("#{rule["override"]}") if exists("#{variable}")
call s:Setf(#{rule["override"]}) | return call s:Setf(#{variable}) | return
endif endif
EOS EOS
end end
@@ -329,6 +334,14 @@ def rule_to_code(rule)
return "call s:Setf('#{rule["filetype"]}') | return" return "call s:Setf('#{rule["filetype"]}') | return"
end end
if rule.has_key?("filetype")
return "call s:Setf('#{rule["filetype"]}') | return"
end
if rule.has_key?("extensions")
return ""
end
return "" return ""
end end