diff options
Diffstat (limited to 'scripts/build')
-rwxr-xr-x | scripts/build | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/scripts/build b/scripts/build index 125fa310..e8cafd51 100755 --- a/scripts/build +++ b/scripts/build @@ -4,6 +4,7 @@ require 'open-uri' require 'open3' require 'yaml' require 'fileutils' +require 'set' Dir.chdir(File.dirname(__dir__)) @@ -247,6 +248,10 @@ def generate_ftdetect EOS + ambiguous_extensions = languages.flat_map { |_, v| v["extensions"] || [] } + .group_by(&:itself).transform_values(&:count) + .select { |a, b| b > 1 }.keys.map { |a| a[1..] }.to_set + for package in PACKAGES name = package.fetch("name") output << if name == "jsx" @@ -264,17 +269,22 @@ def generate_ftdetect linguist = filetype["linguist"] ? languages.fetch(filetype["linguist"]) : {} extensions = filetype["extensions"] || linguist.fetch("extensions", []).map { |e| e[1..] } extensions = (extensions | filetype.fetch("extra_extensions", [])) - filetype.fetch("ignored_extensions", []) + filenames = filetype["filenames"] || linguist.fetch("filenames", []) filenames = (filenames | filetype.fetch("extra_filenames", [])) - filetype.fetch("ignored_filenames", []) - for extension in extensions.sort outer_filetype = filetype["outer_filetype"] if outer_filetype output << " au BufNewFile *.*.#{extension} execute \"do BufNewFile filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}" output << " au BufReadPre *.*#{extension} execute \"do BufRead filetypedetect \" . expand(\"<afile>:r\") | #{outer_filetype}" end - output << " au BufNewFile,BufRead *.#{extension} #{set_command}\n" + + if ambiguous_extensions.include?(extension) + output << " au BufNewFile,BufRead *.#{extension} setf #{filetype["name"]}\n" + else + output << " au BufNewFile,BufRead *.#{extension} #{set_command}\n" + end end for filename in filenames.sort @@ -297,8 +307,8 @@ def generate_ftdetect File.write('ftdetect/polyglot.vim', output) end -download -extract +# download +# extract generate_ftdetect -puts(" Bye! Have a wonderful time!") -FileUtils.rm_rf("tmp") +# puts(" Bye! Have a wonderful time!") +# FileUtils.rm_rf("tmp") |