From 22e8e01c1e7bba0e1aa54255dad21dbb8496dd7a Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Mon, 24 Aug 2020 09:52:25 +0200 Subject: Use setf for ambiguous extensions --- scripts/build | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'scripts/build') 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(\":r\") | #{outer_filetype}" output << " au BufReadPre *.*#{extension} execute \"do BufRead filetypedetect \" . expand(\":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") -- cgit v1.2.3