summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-09-16 17:24:10 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2020-09-16 17:24:10 +0200
commit0118088e0a312b579d5811e330e194659b15c006 (patch)
tree31795d123cf8f4ce19457cc5b94594cf9c292412
parent17c2b630e1f0f0f02a24fcc664f0df91122e8e00 (diff)
downloadvim-polyglot-0118088e0a312b579d5811e330e194659b15c006.tar.gz
vim-polyglot-0118088e0a312b579d5811e330e194659b15c006.zip
Make config more vim-independent
-rw-r--r--heuristics.yaml4
-rwxr-xr-xscripts/build21
2 files changed, 19 insertions, 6 deletions
diff --git a/heuristics.yaml b/heuristics.yaml
index 8b803011..6ff7af47 100644
--- a/heuristics.yaml
+++ b/heuristics.yaml
@@ -11,12 +11,12 @@ rules:
---
extensions: [asa]
rules:
-- override: "g:filetype_asa"
+- override: true
- filetype: aspvbs
---
extensions: [asp]
rules:
-- override: "g:filetype_asp"
+- override: true
- lines: 3
pattern: 'perlscript'
ignore_case: true
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