mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
patch 9.1.0972: filetype: TI linker map files are not recognized
Problem: filetype: TI linker map files are not recognized Solution: detect TI linker map files as lnkmap filetype (Wu, Zhenyu) References: https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html closes: #16324 Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
f0ab3e4e41
commit
5113831d16
@ -1493,7 +1493,12 @@ au BufNewFile,BufRead */etc/man.conf,man.config setf manconf
|
|||||||
au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple
|
au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple
|
||||||
|
|
||||||
" Map (UMN mapserver config file)
|
" Map (UMN mapserver config file)
|
||||||
au BufNewFile,BufRead *.map setf map
|
au BufNewFile,BufRead *.map
|
||||||
|
\ if getline(1) =~ '^\*\+$' |
|
||||||
|
\ setf lnkmap |
|
||||||
|
\ else |
|
||||||
|
\ setf map |
|
||||||
|
\ endif
|
||||||
|
|
||||||
" Markdown
|
" Markdown
|
||||||
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md
|
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md
|
||||||
|
16
runtime/ftplugin/lnkmap.vim
Normal file
16
runtime/ftplugin/lnkmap.vim
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
" Vim filetype plugin file
|
||||||
|
" Language: TI Linker map
|
||||||
|
" Document: https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html
|
||||||
|
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||||
|
" Last Change: 2024 Dec 25
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Don't load another plugin for this buffer
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setl iskeyword<"
|
||||||
|
|
||||||
|
setl iskeyword+=.
|
35
runtime/syntax/lnkmap.vim
Normal file
35
runtime/syntax/lnkmap.vim
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: TI Linker map
|
||||||
|
" Document: https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html
|
||||||
|
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||||
|
" Last Change: 2024 Dec 25
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn match lnkmapTime ">> .*$"
|
||||||
|
syn region lnkmapHeadline start="^\*\+$" end="^\*\+$"
|
||||||
|
syn match lnkmapHeadline "^[A-Z][-A-Z0-9 ']*\ze\%(:\|$\)"
|
||||||
|
syn match lnkmapSectionDelim "^=\+$"
|
||||||
|
syn match lnkmapTableDelim "\%(^\|\s\)\zs---*\ze\%($\|\s\)"
|
||||||
|
syn match lnkmapNumber "\%(^\|\s\)\zs[0-9a-f]\+\ze\%($\|\s\)"
|
||||||
|
syn match lnkmapSections '\<\.\k\+\>'
|
||||||
|
syn match lnkmapFile '[^ =]\+\%(\.\S\+\)\+\>'
|
||||||
|
syn match lnkmapLibFile '[^ =]\+\.lib\>'
|
||||||
|
syn match lnkmapAttrib '\<[RWIX]\+\>'
|
||||||
|
syn match lnkmapAttrib '\s\zs--HOLE--\ze\%\(\s\|$\)'
|
||||||
|
syn keyword lnkmapAttrib UNINITIALIZED
|
||||||
|
|
||||||
|
|
||||||
|
hi def link lnkmapTime Comment
|
||||||
|
hi def link lnkmapHeadline Title
|
||||||
|
hi def link lnkmapSectionDelim PreProc
|
||||||
|
hi def link lnkmapTableDelim PreProc
|
||||||
|
hi def link lnkmapNumber Number
|
||||||
|
hi def link lnkmapSections Macro
|
||||||
|
hi def link lnkmapFile String
|
||||||
|
hi def link lnkmapLibFile Special
|
||||||
|
hi def link lnkmapAttrib Type
|
||||||
|
|
||||||
|
let b:current_syntax = "lnkmap"
|
@ -463,7 +463,6 @@ def s:GetFilenameChecks(): dict<list<string>>
|
|||||||
mallard: ['file.page'],
|
mallard: ['file.page'],
|
||||||
man: ['file.man'],
|
man: ['file.man'],
|
||||||
manconf: ['/etc/man.conf', 'man.config', 'any/etc/man.conf'],
|
manconf: ['/etc/man.conf', 'man.config', 'any/etc/man.conf'],
|
||||||
map: ['file.map'],
|
|
||||||
maple: ['file.mv', 'file.mpl', 'file.mws'],
|
maple: ['file.mv', 'file.mpl', 'file.mws'],
|
||||||
markdown: ['file.markdown', 'file.mdown', 'file.mkd', 'file.mkdn', 'file.mdwn', 'file.md'],
|
markdown: ['file.markdown', 'file.mdown', 'file.mkd', 'file.mkdn', 'file.mdwn', 'file.md'],
|
||||||
masm: ['file.masm'],
|
masm: ['file.masm'],
|
||||||
@ -2774,6 +2773,24 @@ func Test_make_file()
|
|||||||
filetype off
|
filetype off
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_map_file()
|
||||||
|
filetype on
|
||||||
|
|
||||||
|
" TI linker map file
|
||||||
|
call writefile(['******************************************************************************', ' TMS320C6x Linker Unix v7.4.24 ', '******************************************************************************'], 'Xfile.map', 'D')
|
||||||
|
split Xfile.map
|
||||||
|
call assert_equal('lnkmap', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
" TI linker map file
|
||||||
|
call writefile(['MAP', 'NAME "local-demo"', 'END'], 'Xfile.map', 'D')
|
||||||
|
split Xfile.map
|
||||||
|
call assert_equal('map', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
filetype off
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_org_file()
|
func Test_org_file()
|
||||||
filetype on
|
filetype on
|
||||||
|
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
972,
|
||||||
/**/
|
/**/
|
||||||
971,
|
971,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user