diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/build | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/scripts/build b/scripts/build index 1fe148e7..2fcbe235 100755 --- a/scripts/build +++ b/scripts/build @@ -716,6 +716,39 @@ def detect_filetypes    }]  end +def generate_plugins(packages) +  FileUtils.mkdir_p('autoload/polyglot') + +  output = "let s:globs = {\n" + +  patterns = Hash.new { |h, k| h[k] = [] } + +  for package in packages +    for filetype in package["filetypes"] +      extensions = (filetype["extensions"] || []).map { |e| "*.#{e}" } +      files = (filetype["filenames"] || []).reject { |e| e.match(/\*\*|\//) } +      patterns[filetype["name"]].concat(extensions) +      patterns[filetype["name"]].concat(files) +    end +  end + +  for filetype in patterns.keys.sort +    output << "  \\ '#{filetype}': '{#{patterns[filetype].uniq.join(",")},}',\n" +  end +  output << "  \\}\n\n" + + +  output << <<~EOS +    func! sleuth#GlobForFiletype(type) +      return get(s:globs, a:type, '') +    endfunc +  EOS + + +  File.write('autoload/sleuth.vim', output) +end + +  if __FILE__ == $0    if !ENV["DEV"]      FileUtils.rm_rf("tmp") @@ -725,6 +758,7 @@ if __FILE__ == $0    download(packages)    extract(packages)    generate_ftdetect(packages, heuristics) +  generate_plugins(packages)    generate_tests(packages)    puts(" Bye! Have a wonderful time!") | 
