diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2020-10-14 23:01:53 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-10-14 23:01:53 +0200 | 
| commit | bbee246aaeb7fb689c7a2ae2bb911e34cabe7b00 (patch) | |
| tree | 7fb14a8cb7d7fb1579e46f79ff7c43838dcfbadb /scripts/build | |
| parent | 3da600ac3070976142f81025b53dda44d99d44e4 (diff) | |
| download | vim-polyglot-bbee246aaeb7fb689c7a2ae2bb911e34cabe7b00.tar.gz vim-polyglot-bbee246aaeb7fb689c7a2ae2bb911e34cabe7b00.zip | |
Add and fix tests from upstream vim
Diffstat (limited to '')
| -rwxr-xr-x | scripts/build | 37 | 
1 files changed, 29 insertions, 8 deletions
| diff --git a/scripts/build b/scripts/build index 4783ed21..6f85776b 100755 --- a/scripts/build +++ b/scripts/build @@ -22,6 +22,7 @@ def except(hash, *keys)    h  end +  def verify(packages, heuristics)    extensions_with_heuristics = Set.new(heuristics.flat_map { |e| e["extensions"] })    no_heuristics = Hash.new { |a, b| a[b] = [] } @@ -64,7 +65,7 @@ def sort_packages(packages)    for p in packages      for f in p["filetypes"]        for e in f["extensions"] -        by_extension[e] << p["name"] +        by_extension[e] << p["name"] unless by_extension[e].include?(p["name"])        end      end    end @@ -84,6 +85,25 @@ def sort_packages(packages)            end          end        end + +      for e in f["extensions"] +        if e.count(".") > 0 +          ext = e.split(".").last +          for name in by_extension[ext] +            if p["name"] != name +              implicit_dependencies[p["name"]] |= [name] +            end +          end +        end + +        if e.match?(/[A-Z]/) && by_extension[e.downcase].size > 0 +          for name in by_extension[e.downcase] +            if p["name"] != name +              implicit_dependencies[p["name"]] |= [name] +            end +          end +        end +      end      end    end @@ -120,6 +140,7 @@ def load_data()              end            end          end +        filetype.delete("patterns")        end        if filetype["linguist"]          if filetype["extensions"] @@ -338,7 +359,11 @@ def pattern_to_condition(rule)  end  def rules_to_code(rules) -  output = "" +  output = <<~EOF +  if a:0 != 1 && did_filetype() +    return +  endif +  EOF    vars = []    each_hash(rules) do |h| @@ -595,7 +620,7 @@ def generate_ftdetect(packages, heuristics)        for heuristic in filetype_heuristics.uniq          extensions = heuristic["extensions"].map { |e| "*.#{e}" } -        autocommands << "au! BufNewFile,BufRead,BufWritePost #{extensions.join(",")} call polyglot#detect##{camelize(heuristic["extensions"].first)}()" +        autocommands << "au BufNewFile,BufRead,BufWritePost #{extensions.join(",")} call polyglot#detect##{camelize(heuristic["extensions"].first)}()"        end        if autocommands.size > 0 && filetype["description"] @@ -621,7 +646,7 @@ def generate_ftdetect(packages, heuristics)    for heuristic in heuristics      output << <<~EOS -      func! polyglot#detect##{camelize(heuristic["extensions"].first)}() +      func! polyglot#detect##{camelize(heuristic["extensions"].first)}(...)        #{indent(rules_to_code(heuristic), 2)}        endfunc      EOS @@ -843,8 +868,4 @@ if __FILE__ == $0    generate_plugins(packages)    generate_tests(packages)    puts(" Bye! Have a wonderful time!") - -  if !ENV["DEV"] -    FileUtils.rm_rf("tmp") -  end  end | 
