vim-patch:9.1.0953: filetype: APKBUILD files not correctly detected

Problem:  filetype: APKBUILD files not correctly detected
Solution: detect 'APKBUILD' files as apkbuild filetype,
          include a apkbuild syntax script (which basically
          just sources the sh.vim syntax file)
          (Hugo Osvaldo Barrera)

Vim plugins (e.g.: ALE, nvim-lspconfig, etc) rely on filetype to
determine which integrations/helpers are applicable. They expect
filetype=apkbuild for APKBUILD files.

On the other hand, plugins also enable bash-specific linters and
functionality when filetype=bash, but APKBUILD files are POSIX sh, not
bash, so these often provide bogus results.

Change the filetype for APKBUILD to a 'apkbuild', so that tools and
ftplugin can properly target these files. This filetype will use the
existing `sh` syntax rules, since these are applicable for them.

7cb24917a1

Co-authored-by: Hugo Osvaldo Barrera' via vim_dev <vim_dev@googlegroups.com>
This commit is contained in:
Christian Clason 2024-12-22 15:15:57 +01:00 committed by Christian Clason
parent d1e00a5f6d
commit 665a0e85c4
3 changed files with 20 additions and 2 deletions

View File

@ -1439,6 +1439,7 @@ local filename = {
['/etc/asound.conf'] = 'alsaconf',
['build.xml'] = 'ant',
['.htaccess'] = 'apache',
APKBUILD = 'apkbuild',
['apt.conf'] = 'aptconf',
['/.aptitude/config'] = 'aptconf',
['=tagging-method'] = 'arch',
@ -1798,7 +1799,6 @@ local filename = {
['.kshrc'] = detect.ksh,
['.profile'] = detect.sh,
['/etc/profile'] = detect.sh,
APKBUILD = detect.bash,
PKGBUILD = detect.bash,
['.tcshrc'] = detect.tcsh,
['tcsh.login'] = detect.tcsh,

View File

@ -0,0 +1,17 @@
" Vim syntax file
" Language: apkbuild
" Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2024 Dec 22
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" The actual syntax is in sh.vim and controlled by buffer-local variables.
unlet! b:is_bash b:is_kornshell
let b:is_sh = 1
runtime! syntax/sh.vim
let b:current_syntax = 'apkbuild'

View File

@ -108,6 +108,7 @@ func s:GetFilenameChecks() abort
\ '/etc/httpd/sites-some/file', '/etc/httpd/conf.file/conf'],
\ 'apachestyle': ['/etc/proftpd/file.config,/etc/proftpd/conf.file/file', '/etc/proftpd/conf.file/file', '/etc/proftpd/file.conf', '/etc/proftpd/file.conf-file',
\ 'any/etc/proftpd/conf.file/file', 'any/etc/proftpd/file.conf', 'any/etc/proftpd/file.conf-file', 'proftpd.conf', 'proftpd.conf-file'],
\ 'apkbuild': ['APKBUILD'],
\ 'applescript': ['file.scpt'],
\ 'aptconf': ['apt.conf', '/.aptitude/config', 'any/.aptitude/config'],
\ 'arch': ['.arch-inventory', '=tagging-method'],
@ -680,7 +681,7 @@ func s:GetFilenameChecks() abort
\ 'setserial': ['/etc/serial.conf', 'any/etc/serial.conf'],
\ 'sexplib': ['file.sexp'],
\ 'sh': ['.bashrc', '.bash_profile', '.bash-profile', '.bash_logout', '.bash-logout', '.bash_aliases', '.bash-aliases', '.bash_history', '.bash-history',
\ '/tmp/bash-fc-3Ozjlw', '/tmp/bash-fc.3Ozjlw', 'PKGBUILD', 'APKBUILD', 'file.bash', '/usr/share/doc/bash-completion/filter.sh',
\ '/tmp/bash-fc-3Ozjlw', '/tmp/bash-fc.3Ozjlw', 'PKGBUILD', 'file.bash', '/usr/share/doc/bash-completion/filter.sh',
\ '/etc/udev/cdsymlinks.conf', 'any/etc/udev/cdsymlinks.conf', 'file.bats', '.ash_history', 'any/etc/neofetch/config.conf', '.xprofile',
\ 'user-dirs.defaults', 'user-dirs.dirs', 'makepkg.conf', '.makepkg.conf', 'file.mdd', 'file.cygport', '.env', '.envrc', 'devscripts.conf',
\ '.devscripts', 'file.lo', 'file.la', 'file.lai'],