aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/ftplugin/mss.vim16
-rw-r--r--runtime/lua/vim/filetype.lua1
-rw-r--r--runtime/syntax/mss.vim23
-rw-r--r--test/old/testdir/test_filetype.vim1
4 files changed, 41 insertions, 0 deletions
diff --git a/runtime/ftplugin/mss.vim b/runtime/ftplugin/mss.vim
new file mode 100644
index 0000000000..de2f8791ec
--- /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/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
index 3b3c4481f2..e1e73d63fe 100644
--- a/runtime/lua/vim/filetype.lua
+++ b/runtime/lua/vim/filetype.lua
@@ -792,6 +792,7 @@ local extension = {
mof = 'msidl',
odl = 'msidl',
msql = 'msql',
+ mss = 'mss',
mu = 'mupad',
mush = 'mush',
mustache = 'mustache',
diff --git a/runtime/syntax/mss.vim b/runtime/syntax/mss.vim
new file mode 100644
index 0000000000..de95d1d2ad
--- /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"
diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim
index f70144b379..19b7d41552 100644
--- a/test/old/testdir/test_filetype.vim
+++ b/test/old/testdir/test_filetype.vim
@@ -504,6 +504,7 @@ func s:GetFilenameChecks() abort
\ 'mplayerconf': ['mplayer.conf', '/.mplayer/config', 'any/.mplayer/config'],
\ 'mrxvtrc': ['mrxvtrc', '.mrxvtrc'],
\ 'msidl': ['file.odl', 'file.mof'],
+ \ 'mss': ['file.mss'],
\ 'msql': ['file.msql'],
\ 'mojo': ['file.mojo', 'file.🔥'],
\ 'msmtp': ['.msmtprc'],