mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 11:58:17 +00:00
vim-patch:9.1.0505: filetype: Faust files are not recognized (#29426)
Problem: filetype: Faust files are not recognized
Solution: Detect '*.lib' files as Faust filetype, add detection for
'*.dsp' files (Faust or Make), remove '*.lib' from Cobol
filetype (PowerUser64)
closes: vim/vim#14894
aa61b8a908
Co-authored-by: PowerUser64 <blake@blakenorth.net>
This commit is contained in:
@@ -281,7 +281,6 @@ local extension = {
|
||||
cook = 'cook',
|
||||
cmake = 'cmake',
|
||||
cmod = 'cmod',
|
||||
lib = 'cobol',
|
||||
cob = 'cobol',
|
||||
cbl = 'cobol',
|
||||
atg = 'coco',
|
||||
@@ -366,6 +365,7 @@ local extension = {
|
||||
gv = 'dot',
|
||||
drac = 'dracula',
|
||||
drc = 'dracula',
|
||||
dsp = detect.dsp,
|
||||
dtd = 'dtd',
|
||||
d = detect.dtrace,
|
||||
dts = 'dts',
|
||||
@@ -417,6 +417,7 @@ local extension = {
|
||||
fal = 'falcon',
|
||||
fan = 'fan',
|
||||
fwt = 'fan',
|
||||
lib = 'faust',
|
||||
fnl = 'fennel',
|
||||
m4gl = 'fgl',
|
||||
['4gl'] = 'fgl',
|
||||
@@ -666,7 +667,6 @@ local extension = {
|
||||
eml = 'mail',
|
||||
mk = 'make',
|
||||
mak = 'make',
|
||||
dsp = 'make',
|
||||
page = 'mallard',
|
||||
map = 'map',
|
||||
mws = 'maple',
|
||||
|
@@ -471,6 +471,41 @@ function M.def(_, bufnr)
|
||||
return 'def'
|
||||
end
|
||||
|
||||
--- @type vim.filetype.mapfn
|
||||
function M.dsp(path, bufnr)
|
||||
if vim.g.filetype_dsp then
|
||||
return vim.g.filetype_dsp
|
||||
end
|
||||
|
||||
-- Test the filename
|
||||
local file_name = fn.fnamemodify(path, ':t')
|
||||
if file_name:find('^[mM]akefile.*$') then
|
||||
return 'make'
|
||||
end
|
||||
|
||||
-- Test the file contents
|
||||
for _, line in ipairs(getlines(bufnr, 1, 200)) do
|
||||
if
|
||||
findany(line, {
|
||||
-- Check for comment style
|
||||
[[#.*]],
|
||||
-- Check for common lines
|
||||
[[^.*Microsoft Developer Studio Project File.*$]],
|
||||
[[^!MESSAGE This is not a valid makefile\..+$]],
|
||||
-- Check for keywords
|
||||
[[^!(IF,ELSEIF,ENDIF).*$]],
|
||||
-- Check for common assignments
|
||||
[[^SOURCE=.*$]],
|
||||
})
|
||||
then
|
||||
return 'make'
|
||||
end
|
||||
end
|
||||
|
||||
-- Otherwise, assume we have a Faust file
|
||||
return 'faust'
|
||||
end
|
||||
|
||||
--- @type vim.filetype.mapfn
|
||||
function M.e(_, bufnr)
|
||||
if vim.g.filetype_euphoria then
|
||||
|
Reference in New Issue
Block a user