mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-11 04:53:51 -05:00
Use setf for ambiguous extensions
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user