summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2019-06-12 17:32:29 +0200
committerDavid Lamparter <equinox@diac24.net>2019-06-12 19:35:43 +0200
commitb9a0d38d53d24bfbc59dd8087c248f5fe58d6461 (patch)
tree4f91d2230649aa7a0e474dd9f79c34434ff80451 /tools
parentlib: make "%Ld" work for int64_t (diff)
downloadfrr-b9a0d38d53d24bfbc59dd8087c248f5fe58d6461.tar.xz
frr-b9a0d38d53d24bfbc59dd8087c248f5fe58d6461.zip
tools: add vim snippet
Signed-off-by: David Lamparter <equinox@diac24.net>
Diffstat (limited to 'tools')
-rw-r--r--tools/frr.vim36
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/frr.vim b/tools/frr.vim
new file mode 100644
index 000000000..86aa0c0e3
--- /dev/null
+++ b/tools/frr.vim
@@ -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()