runtime(bpftrace): add base syntax plugin

Commit: 
https://github.com/vim/vim/commit/7982966f3e3f23f3b45639407be92ea5d926d492
Author: Stanislaw Gruszka <[email protected]>
Date:   Mon Dec 22 18:46:44 2025 +0000

    runtime(bpftrace): add base syntax plugin
    
    Problem:  No syntax highlighting for bpftrace files.
    Solution: Add basic syntax rules, which cover comments, keywords, strings,
              numbers, macros and probes (the bpftrace specific items).
    
    closes: #18999
    
    Signed-off-by: Stanislaw Gruszka <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 809664441..64ec25726 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -454,6 +454,7 @@ runtime/syntax/asy.vim                                      
@avidseeker
 runtime/syntax/autohotkey.vim                          @mmikeww
 runtime/syntax/awk.vim                                 @dkearns
 runtime/syntax/basic.vim                               @dkearns
+runtime/syntax/bpftrace.vim                            @sgruszka
 runtime/syntax/bst.vim                                 @tpope
 runtime/syntax/bzl.vim                                 @dbarnett
 runtime/syntax/bzr.vim                                 @hdima
diff --git a/runtime/syntax/bpftrace.vim b/runtime/syntax/bpftrace.vim
new file mode 100644
index 000000000..4e23bcbde
--- /dev/null
+++ b/runtime/syntax/bpftrace.vim
@@ -0,0 +1,66 @@
+" Vim syntax file
+" Language:            bpftrace
+" Maintainer:          Stanislaw Gruszka <[email protected]>
+" Last Change:         2025 Dec 22
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword    bpftraceConditional     if else
+syn keyword    bpftraceRepeat          while for unroll
+syn keyword    bpftraceStatement       break continue return
+syn keyword    bpftraceKeyword         let macro import config
+syn keyword    bpftraceOperator        sizeof offsetof
+
+syn keyword    bpftraceProbe           BEGIN END begin end
+syn match      bpftraceProbe           " <(bench|self|test)\ze:"
+syn match      bpftraceProbe           " 
<(fentry|fexit|kfunc|kretfunc|kprobe|kretprobe)\ze:"
+syn match      bpftraceProbe           " 
<(profile|interval|iterator|hardware|software|uprobe|uretprobe)\ze:"
+syn match      bpftraceProbe           " 
<(usdt|tracepoint|rawtracepoint|watchpoint|asyncwatchpoint)\ze:"
+syn match      bpftraceProbe           " 
(^|[^:])<\zs(h|i|it|f|fr|k|kr|p|rt|s|t|u|ur|U|w|aw)\ze:"
+
+syn keyword    bpftraceType            bool int8 int16 int32 int64
+syn keyword    bpftraceType            uint8 uint16 uint32 uint64
+syn keyword    bpftraceType            struct
+
+syn match      bpftraceMacro           "\<\h\w*\ze\_s*("
+
+syn match      bpftraceNumber          display "[+-]\=\<\d\+\>"
+syn match      bpftraceNumber          display "\<0x\x\+\>"
+
+syn keyword    bpftraceBoolean         true false
+
+syn region     bpftraceString          start=+"+ skip=+\\\|\"+ end=+"+ 
contains=@Spell extend
+
+syn keyword    bpftraceTodo            contained TODO FIXME XXX
+syn match      bpftraceShebang         /\%^#![^[].*/
+syn region     bpftraceCommentLine     start="//" end="$" 
contains=bpftraceTodo,@Spell
+syn region     bpftraceCommentBlock    matchgroup=bpftraceCommentBlock 
start="/\*" end="\*/" contains=bpftraceTodo,@Spell
+
+" Define the default highlighting.
+hi def link    bpftraceConditional     Conditional
+hi def link    bpftraceMacro           Macro
+hi def link    bpftraceRepeat          Repeat
+hi def link    bpftraceKeyword         Keyword
+hi def link    bpftraceNumber          Number
+hi def link    bpftraceBoolean         Boolean
+hi def link    bpftraceShebang         Comment
+hi def link    bpftraceCommentLine     Comment
+hi def link    bpftraceCommentBlock    Comment
+hi def link    bpftraceString          String
+hi def link    bpftraceType            Type
+hi def link    bpftraceProbe           Identifier
+
+syn sync minlines=100
+
+let b:current_syntax = "bpftrace"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: ts=8 sw=8 noexpandtab

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1vXl8V-00AXST-7R%40256bit.org.

Raspunde prin e-mail lui