aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2022-07-17 06:33:51 -0600
committerGitHub <noreply@github.com>2022-07-17 14:33:51 +0200
commit5ccdf6a88d5790382ad3da6bb908c606765754e0 (patch)
tree739ebd8e7d55a9fbc9792a62fd96166be38f5878
parenteb9b93b5e025386ec9431c9d35a4a073d6946d1d (diff)
downloadrneovim-5ccdf6a88d5790382ad3da6bb908c606765754e0.tar.gz
rneovim-5ccdf6a88d5790382ad3da6bb908c606765754e0.tar.bz2
rneovim-5ccdf6a88d5790382ad3da6bb908c606765754e0.zip
vim-patch:9.0.0055 (#19392)
vim-patch:9.0.0055: bitbake files are not detected Problem: Bitbake files are not detected. Solution: Add bitbake filetype detection by file name and contents. (Gregory Anders, closes vim/vim#10697) https://github.com/vim/vim/commit/fa49eb482729a5fe7da9c9a5ed8d14f68afa55c7
-rw-r--r--runtime/autoload/dist/ft.vim6
-rw-r--r--runtime/filetype.vim3
-rw-r--r--runtime/lua/vim/filetype.lua6
-rw-r--r--runtime/lua/vim/filetype/detect.lua4
-rw-r--r--src/nvim/testdir/test_filetype.vim54
5 files changed, 70 insertions, 3 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index a3a67cacb9..9e30ae1f51 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -519,12 +519,14 @@ func dist#ft#FTinc()
" headers so assume POV-Ray
elseif lines =~ '^\s*\%({\|(\*\)' || lines =~? s:ft_pascal_keywords
setf pascal
+ elseif lines =~# '\<\%(require\|inherit\)\>' || lines =~# '\w\+ = '
+ setf bitbake
else
call dist#ft#FTasmsyntax()
if exists("b:asmsyntax")
- exe "setf " . fnameescape(b:asmsyntax)
+ exe "setf " . fnameescape(b:asmsyntax)
else
- setf pov
+ setf pov
endif
endif
endif
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 5a643803d3..f28118e272 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -253,6 +253,9 @@ au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('')
" Blank
au BufNewFile,BufRead *.bl setf blank
+" Bitbake
+au BufNewFile,BufRead *.bb,*.bbappend,*.bbclass,*/build/conf/*.conf,*/meta{-*,}/conf/*.conf setf bitbake
+
" Blkid cache file
au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml
diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
index 9ba036ca92..70c8cd15eb 100644
--- a/runtime/lua/vim/filetype.lua
+++ b/runtime/lua/vim/filetype.lua
@@ -172,6 +172,9 @@ local extension = {
return require('vim.filetype.detect').bindzone(bufnr, '')
end,
bicep = 'bicep',
+ bb = 'bitbake',
+ bbappend = 'bitbake',
+ bbclass = 'bitbake',
bl = 'blank',
bsdl = 'bsdl',
bst = 'bst',
@@ -1662,6 +1665,9 @@ local pattern = {
['[mM]akefile%.am'] = 'automake',
['.*/bind/db%..*'] = starsetf('bindzone'),
['.*/named/db%..*'] = starsetf('bindzone'),
+ ['.*/build/conf/.*%.conf'] = 'bitbake',
+ ['.*/meta/conf/.*%.conf'] = 'bitbake',
+ ['.*/meta%-.*/conf/.*%.conf'] = 'bitbake',
['.*bsd'] = 'bsdl',
['bzr_log%..*'] = 'bzr',
['.*enlightenment/.*%.cfg'] = 'c',
diff --git a/runtime/lua/vim/filetype/detect.lua b/runtime/lua/vim/filetype/detect.lua
index 8331920406..8c10517687 100644
--- a/runtime/lua/vim/filetype/detect.lua
+++ b/runtime/lua/vim/filetype/detect.lua
@@ -62,7 +62,7 @@ end
-- Checks the first 5 lines for a asmsyntax=foo override.
-- Only whitespace characters can be present immediately before or after this statement.
function M.asm_syntax(bufnr)
- local lines = table.concat(getlines(bufnr, 1, 5), ' '):lower()
+ local lines = ' ' .. table.concat(getlines(bufnr, 1, 5), ' '):lower() .. ' '
local match = lines:match('%sasmsyntax=([a-zA-Z0-9]+)%s')
if match then
return match
@@ -554,6 +554,8 @@ function M.inc(bufnr)
-- headers so assume POV-Ray
elseif findany(lines, { '^%s{', '^%s%(%*' }) or matchregex(lines, pascal_keywords) then
return 'pascal'
+ elseif findany(lines, { '^%s*inherit ', '^%s*require ', '^%s*%w+%s+= ' }) then
+ return 'bitbake'
else
local syntax = M.asm_syntax(bufnr)
if not syntax or syntax == '' then
diff --git a/src/nvim/testdir/test_filetype.vim b/src/nvim/testdir/test_filetype.vim
index dee04e66dc..59b272d563 100644
--- a/src/nvim/testdir/test_filetype.vim
+++ b/src/nvim/testdir/test_filetype.vim
@@ -83,6 +83,7 @@ let s:filename_checks = {
\ 'bib': ['file.bib'],
\ 'bicep': ['file.bicep'],
\ 'bindzone': ['named.root', '/bind/db.file', '/named/db.file', 'any/bind/db.file', 'any/named/db.file'],
+ \ 'bitbake': ['file.bb', 'file.bbappend', 'file.bbclass', 'build/conf/local.conf', 'meta/conf/layer.conf', 'build/conf/bbappend.conf', 'meta-layer/conf/distro/foo.conf'],
\ 'blank': ['file.bl'],
\ 'bsdl': ['file.bsd', 'file.bsdl', 'bsd', 'some-bsd'],
\ 'bst': ['file.bst'],
@@ -1813,5 +1814,58 @@ func Test_sig_file()
filetype off
endfunc
+func Test_inc_file()
+ filetype on
+
+ call writefile(['this is the fallback'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('pov', &filetype)
+ bwipe!
+
+ let g:filetype_inc = 'foo'
+ split Xfile.inc
+ call assert_equal('foo', &filetype)
+ bwipe!
+ unlet g:filetype_inc
+
+ " aspperl
+ call writefile(['perlscript'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('aspperl', &filetype)
+ bwipe!
+
+ " aspvbs
+ call writefile(['<% something'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('aspvbs', &filetype)
+ bwipe!
+
+ " php
+ call writefile(['<?php'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('php', &filetype)
+ bwipe!
+
+ " pascal
+ call writefile(['program'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('pascal', &filetype)
+ bwipe!
+
+ " bitbake
+ call writefile(['require foo'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('bitbake', &filetype)
+ bwipe!
+
+ " asm
+ call writefile(['asmsyntax=bar'], 'Xfile.inc')
+ split Xfile.inc
+ call assert_equal('bar', &filetype)
+ bwipe!
+
+ call delete('Xfile.inc')
+ filetype off
+endfunc
" vim: shiftwidth=2 sts=2 expandtab