diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-15 11:19:56 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-15 11:19:56 +0200 | 
| commit | 271679272c7bb1a281c7404408a2414068abf91c (patch) | |
| tree | 2fc9d0360160659640ea75eefc1243c377507e35 /scripts/build | |
| parent | d43d269bedbb6bcf725eaf5bb5b3c5a0bcfcb0c0 (diff) | |
| download | vim-polyglot-271679272c7bb1a281c7404408a2414068abf91c.tar.gz vim-polyglot-271679272c7bb1a281c7404408a2414068abf91c.zip | |
Diffstat (limited to '')
| -rwxr-xr-x | scripts/build | 26 | 
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() | 
