diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-01 23:38:17 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-01 23:38:17 +0200 | 
| commit | 63119f09d1390b61155cc0dc3ff497356d2fc7e5 (patch) | |
| tree | 06dd676bd4df62105f24499a9a3398f179f30ff2 /scripts | |
| parent | f2ef4cedecf554c0c9f0694f93df1d53a57bf70c (diff) | |
| download | vim-polyglot-63119f09d1390b61155cc0dc3ff497356d2fc7e5.tar.gz vim-polyglot-63119f09d1390b61155cc0dc3ff497356d2fc7e5.zip  | |
Automatically detect indentation, closes #529v4.8.0
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!")  | 
