Files
neovim/runtime/ftplugin/systemverilog.vim
Barrett Ruth 0bb2f5cc08 fix(ftplugin): source inherited Lua ftplugins
Problem:
Vimscript ftplugins that inherit a base ftplugin often use explicit
`runtime! ftplugin/foo.vim` patterns. This skips corresponding Lua
ftplugins, unlike top-level ftplugin loading.

Solution:
Use the existing `{vim,lua}` patterns for bang runtime imports while
preserving each call's current lookup breadth.
2026-07-14 00:18:50 +02:00

46 lines
1.3 KiB
VimL

" Vim filetype plugin file
" Language: SystemVerilog
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
" Last Change: 07-May-2021
" 2026 Feb 13 by Vim project: correct matchit covergroup block #19394
if exists("b:did_ftplugin")
finish
endif
" Behaves just like Verilog
runtime! ftplugin/verilog[.]{vim,lua}
let s:cpo_save = &cpo
set cpo&vim
" Add SystemVerilog keywords for matchit plugin.
if exists("loaded_matchit")
let b:match_words =
\ '\<begin\>:\<end\>,' .
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
\ '\<module\>:\<endmodule\>,' .
\ '\<if\>:`\@<!\<else\>,' .
\ '\<function\>:\<endfunction\>,' .
\ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
\ '\<task\>:\<endtask\>,' .
\ '\<specify\>:\<endspecify\>,' .
\ '\<config\>:\<endconfig\>,' .
\ '\<generate\>:\<endgenerate\>,' .
\ '\<fork\>:\<join\>\|\<join_any\>\|\<join_none\>,' .
\ '\<primitive\>:\<endprimitive\>,' .
\ '\<table\>:\<endtable\>,' .
\ '\<checker\>:\<endchecker\>,' .
\ '\<class\>:\<endclass\>,' .
\ '\<clocking\>:\<endclocking\>,' .
\ '\<covergroup\>:\<endgroup\>,' .
\ '\<interface\>:\<endinterface\>,' .
\ '\<package\>:\<endpackage\>,' .
\ '\<program\>:\<endprogram\>,' .
\ '\<property\>:\<endproperty\>,' .
\ '\<sequence\>:\<endsequence\>'
endif
let &cpo = s:cpo_save
unlet s:cpo_save