patch 9.1.0873: filetype: Vivado files are not recognized
Problem: filetype: Vivado files are not recognized
Solution: detect '*.mss' files as 'mss' filetype
(Wu, Zhenyu)
references:
https://docs.amd.com/r/2020.2-English/ug1400-vitis-embedded/Microprocessor-Software-Specification-MSS
closes: #15907
Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 3ac1b62..02313fe 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -2840,6 +2840,7 @@
" Xilinx Vivado/Vitis project files and block design files
au BufNewFile,BufRead *.xpr,*.xpfm,*.spfm,*.bxml,*.mmi setf xml
au BufNewFile,BufRead *.bd,*.bda,*.xci setf json
+au BufNewFile,BufRead *.mss setf mss
" XS Perl extension interface language
au BufNewFile,BufRead *.xs setf xs
diff --git a/runtime/ftplugin/mss.vim b/runtime/ftplugin/mss.vim
new file mode 100644
index 0000000..de2f879
--- /dev/null
+++ b/runtime/ftplugin/mss.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language: Vivado mss file
+" Last Change: 2024 Oct 22
+" Document: https://docs.amd.com/r/2020.2-English/ug1400-vitis-embedded/Microprocessor-Software-Specification-MSS
+" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+setlocal comments=b:#,fb:-
+setlocal commentstring=#\ %s
+
+let b:match_words = '\<BEGIN\>:\<END\>'
+let b:undo_ftplugin = "setl com< cms< | unlet b:match_words"
diff --git a/runtime/syntax/mss.vim b/runtime/syntax/mss.vim
new file mode 100644
index 0000000..de95d1d
--- /dev/null
+++ b/runtime/syntax/mss.vim
@@ -0,0 +1,23 @@
+" Vim syntax file
+" Language: Vivado mss file
+" Maintainer: The Vim Project <https://github.com/vim/vim>
+" Last Change: 2024 Oct 22
+" Document: https://docs.amd.com/r/2020.2-English/ug1400-vitis-embedded/Microprocessor-Software-Specification-MSS
+" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn case ignore
+syn match mssComment "#.*$" contains=@Spell
+syn keyword mssKeyword BEGIN END PARAMETER
+syn keyword mssType OS PROCESSOR DRIVER LIBRARY
+syn keyword mssConstant VERSION PROC_INSTANCE HW_INSTANCE OS_NAME OS_VER DRIVER_NAME DRIVER_VER LIBRARY_NAME LIBRARY_VER STDIN STDOUT XMDSTUB_PERIPHERAL ARCHIVER COMPILER COMPILER_FLAGS EXTRA_COMPILER_FLAGS
+
+hi def link mssComment Comment
+hi def link mssKeyword Keyword
+hi def link mssType Type
+hi def link mssConstant Constant
+
+let b:current_syntax = "mss"