mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	Problem:  TI linker files are not recognized
Solution: inspect '*.cmd' files and detect TI linker files
          as 'lnk' filetype, include a lnk ftplugin and syntax
          script (Wu, Zhenyu)
closes: #16320
Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	TI linker command file
 | |
| " Document:	https://downloads.ti.com/docs/esd/SPRUI03A/Content/SPRUI03A_HTML/linker_description.html
 | |
| " Document:	https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html
 | |
| " Maintainer:	Wu, Zhenyu <wuzhenyu@ustc.edu>
 | |
| " Last Change:	2024 Dec 31
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| runtime! syntax/cmacro.vim
 | |
| 
 | |
| syn case ignore
 | |
| syn match lnkNumber		"0x[0-9a-f]\+"
 | |
| " Linker command files are ASCII files that contain one or more of the following:
 | |
| " Input filenames, which specify object files, archive libraries, or other command files.
 | |
| " Linker options, which can be used in the command file in the same manner that they are used on the command line
 | |
| syn match   lnkOption		"^[-+][-_a-zA-Z#@]\+"
 | |
| syn match   lnkOption		"^--[^ \t$=`'"|);]\+"
 | |
| syn match   lnkFile		'[^ =]\+\%(\.\S\+\)\+\>'
 | |
| syn match   lnkLibFile		'[^ =]\+\.lib\>'
 | |
| " The MEMORY and SECTIONS linker directives. The MEMORY directive defines the target memory configuration (see Section 8.5.4). The SECTIONS directive controls how sections are built and allocated (see Section 8.5.5.)
 | |
| syn keyword lnkKeyword	ADDRESS_MASK f LOAD ORIGIN START ALGORITHM FILL LOAD_END PAGE TABLE ALIGN GROUP LOAD_SIZE PALIGN TYPE ATTR HAMMING_MASK LOAD_START PARITY_MASK UNION BLOCK HIGH MEMORY RUN UNORDERED COMPRESSION INPUT_PAGE MIRRORING RUN_END VFILL COPY INPUT_RANGE NOINIT RUN_SIZE DSECT l NOLOAD RUN_START ECC LEN o SECTIONS END LENGTH ORG SIZE
 | |
| syn region  lnkLibrary		start=+<+ end=+>+
 | |
| syn match   lnkAttrib		'\<[RWXI]\+\>'
 | |
| syn match   lnkSections      	'\<\.\k\+'
 | |
| " Assignment statements, which define and assign values to global symbols
 | |
| syn case match
 | |
| 
 | |
| hi def link lnkNumber		Number
 | |
| hi def link lnkOption		Special
 | |
| hi def link lnkKeyword		Keyword
 | |
| hi def link lnkLibrary		String
 | |
| hi def link lnkFile		String
 | |
| hi def link lnkLibFile		Special
 | |
| hi def link lnkAttrib		Type
 | |
| hi def link lnkSections		Macro
 | |
| 
 | |
| let b:current_syntax = "lnk"
 |