diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-16 15:50:39 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-09-16 15:50:39 +0200 | 
| commit | 17c2b630e1f0f0f02a24fcc664f0df91122e8e00 (patch) | |
| tree | 09a54c87c97be6d400291b79b89368fab37ce234 /scripts/build | |
| parent | 271679272c7bb1a281c7404408a2414068abf91c (diff) | |
| download | vim-polyglot-17c2b630e1f0f0f02a24fcc664f0df91122e8e00.tar.gz vim-polyglot-17c2b630e1f0f0f02a24fcc664f0df91122e8e00.zip | |
Write heuristics for perl, closes #550v4.10.2
Diffstat (limited to '')
| -rwxr-xr-x | scripts/build | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/scripts/build b/scripts/build index 07bc301b..c44e8cc8 100755 --- a/scripts/build +++ b/scripts/build @@ -263,7 +263,7 @@ def rule_to_code(rule)    if rule.has_key?("lines")      if rule["lines"] == 1        return <<~EOS -        let line = getline(1) +        let line = getline(nextnonblank(1))          #{indent(rule_to_code(except(rule, "lines")), 0)}        EOS @@ -423,6 +423,7 @@ def generate_ftdetect(packages, heuristics)    expected_filetypes = expected_filetypes.select { |e| filetype_names.include?(e["name"]) }    native_extensions = Set.new(native_filetypes.flat_map { |f| f["extensions"] || [] }) +  native_filenames = Set.new(native_filetypes.flat_map { |f| f["filenames"] || [] })    for package in packages      name = package.fetch("name") @@ -435,6 +436,12 @@ def generate_ftdetect(packages, heuristics)            to_disable << "*." + extension          end        end + +      for filename in filetype["filenames"] +        if native_filenames.include?(filename) +          to_disable << filename +        end +      end      end      if to_disable.size > 0 @@ -457,7 +464,7 @@ def generate_ftdetect(packages, heuristics)        set_command = "call s:Setf('#{name}')"        if filetype["syntax"] -        set_command = "if !did_filetype() | set ft=#{name} syntax=#{filetype["syntax"]} | endif" +        set_command = "set ft=#{name} syntax=#{filetype["syntax"]}"        end        if filetype["custom_set"] @@ -544,11 +551,11 @@ def generate_ftdetect(packages, heuristics)        endif      endfunc -    func! polyglot#Heuristics() +    func! polyglot#Shebang()        " Try to detect filetype from shebang -      let l:filetype = polyglot#Shebang() -      if l:filetype != "" -        exec "setf " . l:filetype +      let ft = polyglot#ShebangFiletype() +      if ft != "" +        call s:Setf(ft)          return 1        endif @@ -571,7 +578,7 @@ def generate_ftdetect(packages, heuristics)      let s:r_envflag = '%(\\S\\+=\\S\\+\\|-[iS]\\|--ignore-environment\\|--split-string\\)'      let s:r_env = '^\\%(\\' . s:r_envflag . '\\s\\+\\)*\\(\\S\\+\\)' -    func! polyglot#Shebang() +    func! polyglot#ShebangFiletype()        let l:line1 = getline(1)        if l:line1 !~# "^#!" | 
