summaryrefslogtreecommitdiffstats
path: root/scripts/build
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-09-15 11:19:56 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2020-09-15 11:19:56 +0200
commit271679272c7bb1a281c7404408a2414068abf91c (patch)
tree2fc9d0360160659640ea75eefc1243c377507e35 /scripts/build
parentd43d269bedbb6bcf725eaf5bb5b3c5a0bcfcb0c0 (diff)
downloadvim-polyglot-271679272c7bb1a281c7404408a2414068abf91c.tar.gz
vim-polyglot-271679272c7bb1a281c7404408a2414068abf91c.zip
Fix eruby filetype detect, closes #547v4.9.10v4.10.1
Diffstat (limited to 'scripts/build')
-rwxr-xr-xscripts/build26
1 files changed, 13 insertions, 13 deletions
diff --git a/scripts/build b/scripts/build
index b100b80a..07bc301b 100755
--- a/scripts/build
+++ b/scripts/build
@@ -29,15 +29,8 @@ def load_data()
deps = Hash.new { |h, k| h[k] = [] }
- for package in packages.values
- for name in [package.fetch("after", [])].flatten
- packages[name] or raise "#{package["name"]} depends on unknown package: #{name}"
- deps[name] << package["name"]
- end
- end
-
each_node = lambda {|&b| packages.keys.each(&b) }
- each_child = lambda {|n, &b| deps[n].each(&b) }
+ each_child = lambda {|n, &b| [packages[n].fetch("after", [])].flatten.each(&b) }
languages = load_languages
@@ -327,13 +320,13 @@ def rule_to_code(rule)
if rule.has_key?("override")
return <<~EOS
if exists("#{rule["override"]}")
- exe "setf " . #{rule["override"]} | return
+ call s:Setf(#{rule["override"]}) | return
endif
EOS
end
if rule.has_key?("filetype")
- return "setf #{rule["filetype"]} | return"
+ return "call s:Setf('#{rule["filetype"]}') | return"
end
return ""
@@ -350,8 +343,7 @@ def extract(packages)
FileUtils.rm_rf(all_dirs)
output = []
- # We need to reverse packages so they are included in proper order
- packages.reverse.map do |package|
+ packages.map do |package|
repo, branch, path, dir = parse_remote(package["remote"])
dirs = package.fetch("dirs", default_dirs)
ignored_dirs = package.fetch("ignored_dirs", [])
@@ -462,7 +454,7 @@ def generate_ftdetect(packages, heuristics)
name = filetype.fetch("name")
syntax = filetype["syntax"] ? " | set syntax=#{filetype["syntax"]}" : ""
- set_command = "setf #{name}"
+ set_command = "call s:Setf('#{name}')"
if filetype["syntax"]
set_command = "if !did_filetype() | set ft=#{name} syntax=#{filetype["syntax"]} | endif"
@@ -544,6 +536,14 @@ def generate_ftdetect(packages, heuristics)
let s:cpo_save = &cpo
set cpo&vim
+ " We need it because scripts.vim in vim uses "set ft=" which cannot be
+ " overridden with setf (and we can't use set ft= so our scripts.vim work)
+ func! s:Setf(ft)
+ if &filetype !~# '\<'.a:ft.'\>'
+ let &filetype = a:ft
+ endif
+ endfunc
+
func! polyglot#Heuristics()
" Try to detect filetype from shebang
let l:filetype = polyglot#Shebang()