]> git.proxmox.com Git - mirror_frr.git/commitdiff
tools: add vim snippet
authorDavid Lamparter <equinox@diac24.net>
Wed, 12 Jun 2019 15:32:29 +0000 (17:32 +0200)
committerDavid Lamparter <equinox@diac24.net>
Wed, 12 Jun 2019 17:35:43 +0000 (19:35 +0200)
Signed-off-by: David Lamparter <equinox@diac24.net>
tools/frr.vim [new file with mode: 0644]

diff --git a/tools/frr.vim b/tools/frr.vim
new file mode 100644 (file)
index 0000000..86aa0c0
--- /dev/null
@@ -0,0 +1,36 @@
+" settings & syntax hilighting for FRR codebase
+" 2019 by David Lamparter, placed in public domain
+
+let c_gnu=1
+
+function! CStyleFRR()
+       syn clear       cFormat
+       syn match       cFormat         display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbiuoxXDOUfFeEgGcCsSn]\|[pd]\([A-Z][A-Z0-9]*[a-z]*\|\)\|\[\^\=.[^]]*\]\)" contained
+       syn match       cFormat         display "%%" contained
+
+       syn keyword     cIterator       frr_each frr_each_safe frr_each_from
+       syn keyword     cMacroOp        offsetof container_of container_of_null array_size
+
+       syn keyword     cStorageClass   atomic
+       syn keyword     cFormatConst    PRId64  PRIu64  PRIx64
+       syn keyword     cFormatConst    PRId32  PRIu32  PRIx32
+       syn keyword     cFormatConst    PRId16  PRIu16  PRIx16
+       syn keyword     cFormatConst    PRId8   PRIu8   PRIx8
+
+       " you can unlink these by just giving them their own hilighting / color
+       hi link cFormatConst    cFormat
+       hi link cIterator       cRepeat
+       hi link cMacroOp        cOperator
+
+       " indentation
+       setlocal cindent
+       setlocal cinoptions=:0,(0,u4,w1,W8
+       setlocal shiftwidth=8
+       setlocal softtabstop=0
+       setlocal textwidth=0
+       setlocal fo=croql
+       setlocal noet
+endfunction
+
+" auto-apply the above based on path rules
+"autocmd BufRead,BufNewFile /home/.../frr/*.[ch] call CStyleFRR()