patch 9.1.0998: filetype: TI assembly files are not recognized
Problem: filetype: TI assembly files are not recognized
Solution: inspect '*.sa' and assembly files and detect TI assembly
files, include filetype plugin and syntax script for TI
assembly files (Wu, Zhenyu)
closes: #15827
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
a21240b97d
commit
4f73c07abf
102
runtime/syntax/tiasm.vim
Normal file
102
runtime/syntax/tiasm.vim
Normal file
@ -0,0 +1,102 @@
|
||||
" Vim syntax file
|
||||
" Language: TI linear assembly language
|
||||
" Document: https://downloads.ti.com/docs/esd/SPRUI03B/#SPRUI03B_HTML/assembler-description.html
|
||||
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||
" Last Change: 2025 Jan 08
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
" storage types
|
||||
syn match tiasmType "\.bits"
|
||||
syn match tiasmType "\.byte"
|
||||
syn match tiasmType "\.char"
|
||||
syn match tiasmType "\.cstring"
|
||||
syn match tiasmType "\.double"
|
||||
syn match tiasmType "\.field"
|
||||
syn match tiasmType "\.float"
|
||||
syn match tiasmType "\.half"
|
||||
syn match tiasmType "\.int"
|
||||
syn match tiasmType "\.long"
|
||||
syn match tiasmType "\.short"
|
||||
syn match tiasmType "\.string"
|
||||
syn match tiasmType "\.ubyte"
|
||||
syn match tiasmType "\.uchar"
|
||||
syn match tiasmType "\.uhalf"
|
||||
syn match tiasmType "\.uint"
|
||||
syn match tiasmType "\.ulong"
|
||||
syn match tiasmType "\.ushort"
|
||||
syn match tiasmType "\.uword"
|
||||
syn match tiasmType "\.word"
|
||||
|
||||
syn match tiasmIdentifier "[a-z_][a-z0-9_]*"
|
||||
|
||||
syn match tiasmDecimal "\<[1-9]\d*\>" display
|
||||
syn match tiasmOctal "\<0[0-7][0-7]\+\>\|\<[0-7]\+[oO]\>" display
|
||||
syn match tiasmHexadecimal "\<0[xX][0-9a-fA-F]\+\>\|\<[0-9][0-9a-fA-F]*[hH]\>" display
|
||||
syn match tiasmBinary "\<0[bB][0-1]\+\>\|\<[01]\+[bB]\>" display
|
||||
|
||||
syn match tiasmFloat "\<\d\+\.\d*\%(e[+-]\=\d\+\)\=\>" display
|
||||
syn match tiasmFloat "\<\d\%(e[+-]\=\d\+\)\>" display
|
||||
|
||||
syn match tiasmCharacter "'.'\|''\|'[^']'"
|
||||
|
||||
syn region tiasmString start="\"" end="\"" skip="\"\""
|
||||
|
||||
syn match tiasmFunction "\$[a-zA-Z_][a-zA-Z_0-9]*\ze("
|
||||
|
||||
syn keyword tiasmTodo contained TODO FIXME XXX NOTE
|
||||
syn region tiasmComment start=";" end="$" keepend contains=tiasmTodo,@Spell
|
||||
syn match tiasmComment "^[*!].*" contains=tiasmTodo,@Spell
|
||||
syn match tiasmLabel "^[^ *!;][^ :]*"
|
||||
|
||||
syn match tiasmInclude "\.include"
|
||||
syn match tiasmCond "\.if"
|
||||
syn match tiasmCond "\.else"
|
||||
syn match tiasmCond "\.endif"
|
||||
syn match tiasmMacro "\.macro"
|
||||
syn match tiasmMacro "\.endm"
|
||||
|
||||
syn match tiasmDirective "\.[A-Za-z][0-9A-Za-z-_]*"
|
||||
|
||||
syn case match
|
||||
|
||||
hi def link tiasmLabel Label
|
||||
hi def link tiasmComment Comment
|
||||
hi def link tiasmTodo Todo
|
||||
hi def link tiasmDirective Statement
|
||||
|
||||
hi def link tiasmInclude Include
|
||||
hi def link tiasmCond PreCondit
|
||||
hi def link tiasmMacro Macro
|
||||
|
||||
if exists('g:tiasm_legacy_syntax_groups')
|
||||
hi def link hexNumber Number
|
||||
hi def link decNumber Number
|
||||
hi def link octNumber Number
|
||||
hi def link binNumber Number
|
||||
hi def link tiasmHexadecimal hexNumber
|
||||
hi def link tiasmDecimal decNumber
|
||||
hi def link tiasmOctal octNumber
|
||||
hi def link tiasmBinary binNumber
|
||||
else
|
||||
hi def link tiasmHexadecimal Number
|
||||
hi def link tiasmDecimal Number
|
||||
hi def link tiasmOctal Number
|
||||
hi def link tiasmBinary Number
|
||||
endif
|
||||
hi def link tiasmFloat Float
|
||||
|
||||
hi def link tiasmString String
|
||||
hi def link tiasmStringEscape Special
|
||||
hi def link tiasmCharacter Character
|
||||
hi def link tiasmCharacterEscape Special
|
||||
|
||||
hi def link tiasmIdentifier Identifier
|
||||
hi def link tiasmType Type
|
||||
hi def link tiasmFunction Function
|
||||
|
||||
let b:current_syntax = "lineartiasm"
|
||||
Reference in New Issue
Block a user