├── LICENSE.txt ├── README ├── UltiSnips ├── all.snippets └── uni.snippets ├── ftdetect └── EFI.vim ├── plugin └── vim_uefi.vim └── syntax ├── kss.vim ├── uefi.vim ├── uni.vim └── vfr.vim /LICENSE.txt: -------------------------------------------------------------------------------- 1 | VIM plugin for UEFI development. 2 | 3 | Copyright © 2016 fedorov7@gmail.com. 4 | 5 | MIT License 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation 8 | files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, 9 | modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 15 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 16 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT 17 | OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Syntax highlighting for UEFI EDK2 project files 2 | 3 | ## Support on Beerpay 4 | Hey dude! Help me out for a couple of :beers:! 5 | 6 | [![Beerpay](https://beerpay.io/fedorov7/vim-uefi/badge.svg?style=beer-square)](https://beerpay.io/fedorov7/vim-uefi) [![Beerpay](https://beerpay.io/fedorov7/vim-uefi/make-wish.svg?style=flat-square)](https://beerpay.io/fedorov7/vim-uefi?focus=wish) -------------------------------------------------------------------------------- /UltiSnips/all.snippets: -------------------------------------------------------------------------------- 1 | # Snippets for uefi 2 | 3 | priority -50 4 | 5 | snippet guid "generate and paste new guid value" 6 | `uuidgen` 7 | endsnippet 8 | 9 | snippet guidc "generate and paste new guid value in c structure" 10 | `uuidc` 11 | endsnippet 12 | -------------------------------------------------------------------------------- /UltiSnips/uni.snippets: -------------------------------------------------------------------------------- 1 | # Snippets for edk2 uni strings 2 | 3 | priority -50 4 | 5 | global !p 6 | 7 | second_column=44 8 | 9 | endglobal 10 | 11 | snippet uni "unicode string definitions" b 12 | `!p snip.rv='#string'` STR_${1:NULL_STRING} `!p snip.rv = (second_column - 14 - len(t[1]))*' '`#language en-US "${2}" 13 | `!p snip.rv = second_column*' '`#language ru-RU "${3}" 14 | $0 15 | endsnippet 16 | 17 | snippet #str "unicode string definitions" b 18 | `!p snip.rv='#string'` STR_${1:NULL_STRING} `!p snip.rv = (second_column - 14 - len(t[1]))*' '`#language en-US "${2}" 19 | `!p snip.rv = second_column*' '`#language ru-RU "${3}" 20 | $0 21 | endsnippet 22 | 23 | -------------------------------------------------------------------------------- /ftdetect/EFI.vim: -------------------------------------------------------------------------------- 1 | augroup filetype 2 | au ColorScheme,BufRead,BufNewFile *.uni setf uni 3 | au ColorScheme,BufRead,BufNewFile *.uni set syntax=c.uni.doxygen 4 | au ColorScheme,BufRead,BufNewFile *.vfr setf vfr 5 | au ColorScheme,BufRead,BufNewFile *.vfr set syntax=c.doxygen.vfr 6 | au ColorScheme,BufRead,BufNewFile *.Vfr setf vfr 7 | au ColorScheme,BufRead,BufNewFile *.Vfr set syntax=c.vfr.doxygen 8 | au ColorScheme,BufRead,BufNewFile *.inf setf uefi 9 | au ColorScheme,BufRead,BufNewFile *.inf set syntax=uefi.doxygen 10 | au ColorScheme,BufRead,BufNewFile *.inc set syntax=uefi.doxygen 11 | au ColorScheme,BufRead,BufNewFile *.c set syntax=c.doxygen.kss 12 | au ColorScheme,BufRead,BufNewFile *.h set syntax=c.doxygen.kss 13 | au ColorScheme,BufRead,BufNewFile *.dec setf uefi 14 | au ColorScheme,BufRead,BufNewFile *.dsc setf uefi 15 | au ColorScheme,BufRead,BufNewFile *.fdf setf uefi 16 | au ColorScheme,BufRead,BufNewFile *.dxs setf c.doxygen 17 | augroup end 18 | -------------------------------------------------------------------------------- /plugin/vim_uefi.vim: -------------------------------------------------------------------------------- 1 | " vim_uefi.vim - A UEFI programming utilities 2 | " Maintainer: Alexander Fedorov fedorov7@gmail.com 3 | " Version: 0.1 4 | 5 | if exists('g:loaded_vim_uefi') || &cp 6 | finish 7 | endif 8 | 9 | let g:loaded_vim_uefi = 1 10 | 11 | " helper functions {{{ 12 | function! s:has_vimproc() 13 | if !exists('s:exists_vimproc') 14 | try 15 | silent call vimproc#version() 16 | let s:exists_vimproc = 1 17 | catch 18 | let s:exists_vimproc = 0 19 | endtry 20 | endif 21 | return s:exists_vimproc 22 | endfunction 23 | 24 | function! s:system(str, ...) 25 | let command = a:str 26 | let input = a:0 >= 1 ? a:1 : '' 27 | 28 | if a:0 == 0 29 | let output = s:has_vimproc() ? 30 | \ vimproc#system(command) : system(command) 31 | elseif a:0 == 1 32 | let output = s:has_vimproc() ? 33 | \ vimproc#system(command, input) : system(command, input) 34 | else 35 | " ignores 3rd argument unless you have vimproc. 36 | let output = s:has_vimproc() ? 37 | \ vimproc#system(command, input, a:2) : system(command, input) 38 | endif 39 | 40 | return output 41 | endfunction 42 | 43 | function! s:UpdateCscope() 44 | :echohl Directory 45 | :echon "\rfind *.h files" 46 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.h" > cscope.files') 47 | :echohl Directory 48 | :echon "\rfind *.hpp files" 49 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.hpp" >> cscope.files') 50 | :echohl Directory 51 | :echon "\rfind *.c files" 52 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.c" >> cscope.files') 53 | :echohl Directory 54 | :echon "\rfind *.conf files" 55 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.conf" >> cscope.files') 56 | :echohl Directory 57 | :echon "\rfind *.cmake files" 58 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.cmake" >> cscope.files') 59 | :echohl Directory 60 | :echon "\rfind *.bbappend files" 61 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.bbappend" >> cscope.files') 62 | :echohl Directory 63 | :echon "\rfind *.bb files" 64 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.bb" >> cscope.files') 65 | :echohl Directory 66 | :echon "\rfind *.txt files" 67 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.txt" >> cscope.files') 68 | :echohl Directory 69 | :echon "\rfind *.cpp files" 70 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.cpp" >> cscope.files') 71 | :echohl Directory 72 | :echon "\rfind *.inf files" 73 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.inf" >> cscope.files') 74 | :echohl Directory 75 | :echon "\rfind *.dec files" 76 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.dec" >> cscope.files') 77 | :echohl Directory 78 | :echon "\rfind *.dsc files" 79 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.dsc" >> cscope.files') 80 | :echohl Directory 81 | :echon "\rfind *.uni files" 82 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.uni" >> cscope.files') 83 | :echohl Directory 84 | :echon "\rfind *.Vfr files" 85 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.Vfr" >> cscope.files') 86 | :echohl Directory 87 | :echon "\rfind *.vfr files" 88 | call s:system ('find `pwd` ! -wholename "*tmp/*" -name "*.vfr" >> cscope.files') 89 | :echohl Special 90 | :echon "\rSorting cscope files..." 91 | call s:system ('sort -o cscope.filessort cscope.files') 92 | :echohl Special 93 | :echon "\rGenerating cscope files..." 94 | call s:system ('cscope -b -q -k') 95 | :echohl Question 96 | cs kill -1 97 | cs add cscope.out 98 | :echon "\rCscope database updated! " 99 | :echohl None 100 | endfunction 101 | 102 | command! -nargs=0 UpdateCscope call s:UpdateCscope() 103 | 104 | if has("cscope") 105 | nnoremap :UpdateCscope 106 | endif 107 | -------------------------------------------------------------------------------- /syntax/kss.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: KSS 3 | " Maintainer: Alexander Fedorov 4 | " Last Change: 2014 Nov 25 5 | " 6 | 7 | hi x016_Grey0 ctermfg=16 guifg=#000000 8 | hi x017_NavyBlue ctermfg=17 guifg=#00005f 9 | hi x018_DarkBlue ctermfg=18 guifg=#000087 10 | hi x019_Blue3 ctermfg=19 guifg=#0000af 11 | hi x020_Blue3 ctermfg=20 guifg=#0000d7 12 | hi x021_Blue1 ctermfg=21 guifg=#0000ff 13 | hi x022_DarkGreen ctermfg=22 guifg=#005f00 14 | hi x023_DeepSkyBlue4 ctermfg=23 guifg=#005f5f 15 | hi x024_DeepSkyBlue4 ctermfg=24 guifg=#005f87 16 | hi x025_DeepSkyBlue4 ctermfg=25 guifg=#005faf 17 | hi x026_DodgerBlue3 ctermfg=26 guifg=#005fd7 18 | hi x027_DodgerBlue2 ctermfg=27 guifg=#005fff 19 | hi x028_Green4 ctermfg=28 guifg=#008700 20 | hi x029_SpringGreen4 ctermfg=29 guifg=#00875f 21 | hi x030_Turquoise4 ctermfg=30 guifg=#008787 22 | hi x031_DeepSkyBlue3 ctermfg=31 guifg=#0087af 23 | hi x032_DeepSkyBlue3 ctermfg=32 guifg=#0087d7 24 | hi x033_DodgerBlue1 ctermfg=33 guifg=#0087ff 25 | hi x034_Green3 ctermfg=34 guifg=#00af00 26 | hi x035_SpringGreen3 ctermfg=35 guifg=#00af5f 27 | hi x036_DarkCyan ctermfg=36 guifg=#00af87 28 | hi x037_LightSeaGreen ctermfg=37 guifg=#00afaf 29 | hi x038_DeepSkyBlue2 ctermfg=38 guifg=#00afd7 30 | hi x039_DeepSkyBlue1 ctermfg=39 guifg=#00afff 31 | hi x040_Green3 ctermfg=40 guifg=#00d700 32 | hi x041_SpringGreen3 ctermfg=41 guifg=#00d75f 33 | hi x042_SpringGreen2 ctermfg=42 guifg=#00d787 34 | hi x043_Cyan3 ctermfg=43 guifg=#00d7af 35 | hi x044_DarkTurquoise ctermfg=44 guifg=#00d7d7 36 | hi x045_Turquoise2 ctermfg=45 guifg=#00d7ff 37 | hi x046_Green1 ctermfg=46 guifg=#00ff00 38 | hi x047_SpringGreen2 ctermfg=47 guifg=#00ff5f 39 | hi x048_SpringGreen1 ctermfg=48 guifg=#00ff87 40 | hi x049_MediumSpringGreen ctermfg=49 guifg=#00ffaf 41 | hi x050_Cyan2 ctermfg=50 guifg=#00ffd7 42 | hi x051_Cyan1 ctermfg=51 guifg=#00ffff 43 | hi x052_DarkRed ctermfg=52 guifg=#5f0000 44 | hi x053_DeepPink4 ctermfg=53 guifg=#5f005f 45 | hi x054_Purple4 ctermfg=54 guifg=#5f0087 46 | hi x055_Purple4 ctermfg=55 guifg=#5f00af 47 | hi x056_Purple3 ctermfg=56 guifg=#5f00d7 48 | hi x057_BlueViolet ctermfg=57 guifg=#5f00ff 49 | hi x058_Orange4 ctermfg=58 guifg=#5f5f00 50 | hi x059_Grey37 ctermfg=59 guifg=#5f5f5f 51 | hi x060_MediumPurple4 ctermfg=60 guifg=#5f5f87 52 | hi x061_SlateBlue3 ctermfg=61 guifg=#5f5faf 53 | hi x062_SlateBlue3 ctermfg=62 guifg=#5f5fd7 54 | hi x063_RoyalBlue1 ctermfg=63 guifg=#5f5fff 55 | hi x064_Chartreuse4 ctermfg=64 guifg=#5f8700 56 | hi x065_DarkSeaGreen4 ctermfg=65 guifg=#5f875f 57 | hi x066_PaleTurquoise4 ctermfg=66 guifg=#5f8787 58 | hi x067_SteelBlue ctermfg=67 guifg=#5f87af 59 | hi x068_SteelBlue3 ctermfg=68 guifg=#5f87d7 60 | hi x069_CornflowerBlue ctermfg=69 guifg=#5f87ff 61 | hi x070_Chartreuse3 ctermfg=70 guifg=#5faf00 62 | hi x071_DarkSeaGreen4 ctermfg=71 guifg=#5faf5f 63 | hi x072_CadetBlue ctermfg=72 guifg=#5faf87 64 | hi x073_CadetBlue ctermfg=73 guifg=#5fafaf 65 | hi x074_SkyBlue3 ctermfg=74 guifg=#5fafd7 66 | hi x075_SteelBlue1 ctermfg=75 guifg=#5fafff 67 | hi x076_Chartreuse3 ctermfg=76 guifg=#5fd700 68 | hi x077_PaleGreen3 ctermfg=77 guifg=#5fd75f 69 | hi x078_SeaGreen3 ctermfg=78 guifg=#5fd787 70 | hi x079_Aquamarine3 ctermfg=79 guifg=#5fd7af 71 | hi x080_MediumTurquoise ctermfg=80 guifg=#5fd7d7 72 | hi x081_SteelBlue1 ctermfg=81 guifg=#5fd7ff 73 | hi x082_Chartreuse2 ctermfg=82 guifg=#5fff00 74 | hi x083_SeaGreen2 ctermfg=83 guifg=#5fff5f 75 | hi x084_SeaGreen1 ctermfg=84 guifg=#5fff87 76 | hi x085_SeaGreen1 ctermfg=85 guifg=#5fffaf 77 | hi x086_Aquamarine1 ctermfg=86 guifg=#5fffd7 78 | hi x087_DarkSlateGray2 ctermfg=87 guifg=#5fffff 79 | hi x088_DarkRed ctermfg=88 guifg=#870000 80 | hi x089_DeepPink4 ctermfg=89 guifg=#87005f 81 | hi x090_DarkMagenta ctermfg=90 guifg=#870087 82 | hi x091_DarkMagenta ctermfg=91 guifg=#8700af 83 | hi x092_DarkViolet ctermfg=92 guifg=#8700d7 84 | hi x093_Purple ctermfg=93 guifg=#8700ff 85 | hi x094_Orange4 ctermfg=94 guifg=#875f00 86 | hi x095_LightPink4 ctermfg=95 guifg=#875f5f 87 | hi x096_Plum4 ctermfg=96 guifg=#875f87 88 | hi x097_MediumPurple3 ctermfg=97 guifg=#875faf 89 | hi x098_MediumPurple3 ctermfg=98 guifg=#875fd7 90 | hi x099_SlateBlue1 ctermfg=99 guifg=#875fff 91 | hi x100_Yellow4 ctermfg=100 guifg=#878700 92 | hi x101_Wheat4 ctermfg=101 guifg=#87875f 93 | hi x102_Grey53 ctermfg=102 guifg=#878787 94 | hi x103_LightSlateGrey ctermfg=103 guifg=#8787af 95 | hi x104_MediumPurple ctermfg=104 guifg=#8787d7 96 | hi x105_LightSlateBlue ctermfg=105 guifg=#8787ff 97 | hi x106_Yellow4 ctermfg=106 guifg=#87af00 98 | hi x107_DarkOliveGreen3 ctermfg=107 guifg=#87af5f 99 | hi x108_DarkSeaGreen ctermfg=108 guifg=#87af87 100 | hi x109_LightSkyBlue3 ctermfg=109 guifg=#87afaf 101 | hi x110_LightSkyBlue3 ctermfg=110 guifg=#87afd7 102 | hi x111_SkyBlue2 ctermfg=111 guifg=#87afff 103 | hi x112_Chartreuse2 ctermfg=112 guifg=#87d700 104 | hi x113_DarkOliveGreen3 ctermfg=113 guifg=#87d75f 105 | hi x114_PaleGreen3 ctermfg=114 guifg=#87d787 106 | hi x115_DarkSeaGreen3 ctermfg=115 guifg=#87d7af 107 | hi x116_DarkSlateGray3 ctermfg=116 guifg=#87d7d7 108 | hi x117_SkyBlue1 ctermfg=117 guifg=#87d7ff 109 | hi x118_Chartreuse1 ctermfg=118 guifg=#87ff00 110 | hi x119_LightGreen ctermfg=119 guifg=#87ff5f 111 | hi x120_LightGreen ctermfg=120 guifg=#87ff87 112 | hi x121_PaleGreen1 ctermfg=121 guifg=#87ffaf 113 | hi x122_Aquamarine1 ctermfg=122 guifg=#87ffd7 114 | hi x123_DarkSlateGray1 ctermfg=123 guifg=#87ffff 115 | hi x124_Red3 ctermfg=124 guifg=#af0000 116 | hi x125_DeepPink4 ctermfg=125 guifg=#af005f 117 | hi x126_MediumVioletRed ctermfg=126 guifg=#af0087 118 | hi x127_Magenta3 ctermfg=127 guifg=#af00af 119 | hi x128_DarkViolet ctermfg=128 guifg=#af00d7 120 | hi x129_Purple ctermfg=129 guifg=#af00ff 121 | hi x130_DarkOrange3 ctermfg=130 guifg=#af5f00 122 | hi x131_IndianRed ctermfg=131 guifg=#af5f5f 123 | hi x132_HotPink3 ctermfg=132 guifg=#af5f87 124 | hi x133_MediumOrchid3 ctermfg=133 guifg=#af5faf 125 | hi x134_MediumOrchid ctermfg=134 guifg=#af5fd7 126 | hi x135_MediumPurple2 ctermfg=135 guifg=#af5fff 127 | hi x136_DarkGoldenrod ctermfg=136 guifg=#af8700 128 | hi x137_LightSalmon3 ctermfg=137 guifg=#af875f 129 | hi x138_RosyBrown ctermfg=138 guifg=#af8787 130 | hi x139_Grey63 ctermfg=139 guifg=#af87af 131 | hi x140_MediumPurple2 ctermfg=140 guifg=#af87d7 132 | hi x141_MediumPurple1 ctermfg=141 guifg=#af87ff 133 | hi x142_Gold3 ctermfg=142 guifg=#afaf00 134 | hi x143_DarkKhaki ctermfg=143 guifg=#afaf5f 135 | hi x144_NavajoWhite3 ctermfg=144 guifg=#afaf87 136 | hi x145_Grey69 ctermfg=145 guifg=#afafaf 137 | hi x146_LightSteelBlue3 ctermfg=146 guifg=#afafd7 138 | hi x147_LightSteelBlue ctermfg=147 guifg=#afafff 139 | hi x148_Yellow3 ctermfg=148 guifg=#afd700 140 | hi x149_DarkOliveGreen3 ctermfg=149 guifg=#afd75f 141 | hi x150_DarkSeaGreen3 ctermfg=150 guifg=#afd787 142 | hi x151_DarkSeaGreen2 ctermfg=151 guifg=#afd7af 143 | hi x152_LightCyan3 ctermfg=152 guifg=#afd7d7 144 | hi x153_LightSkyBlue1 ctermfg=153 guifg=#afd7ff 145 | hi x154_GreenYellow ctermfg=154 guifg=#afff00 146 | hi x155_DarkOliveGreen2 ctermfg=155 guifg=#afff5f 147 | hi x156_PaleGreen1 ctermfg=156 guifg=#afff87 148 | hi x157_DarkSeaGreen2 ctermfg=157 guifg=#afffaf 149 | hi x158_DarkSeaGreen1 ctermfg=158 guifg=#afffd7 150 | hi x159_PaleTurquoise1 ctermfg=159 guifg=#afffff 151 | hi x160_Red3 ctermfg=160 guifg=#d70000 152 | hi x161_DeepPink3 ctermfg=161 guifg=#d7005f 153 | hi x162_DeepPink3 ctermfg=162 guifg=#d70087 154 | hi x163_Magenta3 ctermfg=163 guifg=#d700af 155 | hi x164_Magenta3 ctermfg=164 guifg=#d700d7 156 | hi x165_Magenta2 ctermfg=165 guifg=#d700ff 157 | hi x166_DarkOrange3 ctermfg=166 guifg=#d75f00 158 | hi x167_IndianRed ctermfg=167 guifg=#d75f5f 159 | hi x168_HotPink3 ctermfg=168 guifg=#d75f87 160 | hi x169_HotPink2 ctermfg=169 guifg=#d75faf 161 | hi x170_Orchid ctermfg=170 guifg=#d75fd7 162 | hi x171_MediumOrchid1 ctermfg=171 guifg=#d75fff 163 | hi x172_Orange3 ctermfg=172 guifg=#d78700 164 | hi x173_LightSalmon3 ctermfg=173 guifg=#d7875f 165 | hi x174_LightPink3 ctermfg=174 guifg=#d78787 166 | hi x175_Pink3 ctermfg=175 guifg=#d787af 167 | hi x176_Plum3 ctermfg=176 guifg=#d787d7 168 | hi x177_Violet ctermfg=177 guifg=#d787ff 169 | hi x178_Gold3 ctermfg=178 guifg=#d7af00 170 | hi x179_LightGoldenrod3 ctermfg=179 guifg=#d7af5f 171 | hi x180_Tan ctermfg=180 guifg=#d7af87 172 | hi x181_MistyRose3 ctermfg=181 guifg=#d7afaf 173 | hi x182_Thistle3 ctermfg=182 guifg=#d7afd7 174 | hi x183_Plum2 ctermfg=183 guifg=#d7afff 175 | hi x184_Yellow3 ctermfg=184 guifg=#d7d700 176 | hi x185_Khaki3 ctermfg=185 guifg=#d7d75f 177 | hi x186_LightGoldenrod2 ctermfg=186 guifg=#d7d787 178 | hi x187_LightYellow3 ctermfg=187 guifg=#d7d7af 179 | hi x188_Grey84 ctermfg=188 guifg=#d7d7d7 180 | hi x189_LightSteelBlue1 ctermfg=189 guifg=#d7d7ff 181 | hi x190_Yellow2 ctermfg=190 guifg=#d7ff00 182 | hi x191_DarkOliveGreen1 ctermfg=191 guifg=#d7ff5f 183 | hi x192_DarkOliveGreen1 ctermfg=192 guifg=#d7ff87 184 | hi x193_DarkSeaGreen1 ctermfg=193 guifg=#d7ffaf 185 | hi x194_Honeydew2 ctermfg=194 guifg=#d7ffd7 186 | hi x195_LightCyan1 ctermfg=195 guifg=#d7ffff 187 | hi x196_Red1 ctermfg=196 guifg=#ff0000 188 | hi x197_DeepPink2 ctermfg=197 guifg=#ff005f 189 | hi x198_DeepPink1 ctermfg=198 guifg=#ff0087 190 | hi x199_DeepPink1 ctermfg=199 guifg=#ff00af 191 | hi x200_Magenta2 ctermfg=200 guifg=#ff00d7 192 | hi x201_Magenta1 ctermfg=201 guifg=#ff00ff 193 | hi x202_OrangeRed1 ctermfg=202 guifg=#ff5f00 194 | hi x203_IndianRed1 ctermfg=203 guifg=#ff5f5f 195 | hi x204_IndianRed1 ctermfg=204 guifg=#ff5f87 196 | hi x205_HotPink ctermfg=205 guifg=#ff5faf 197 | hi x206_HotPink ctermfg=206 guifg=#ff5fd7 198 | hi x207_MediumOrchid1 ctermfg=207 guifg=#ff5fff 199 | hi x208_DarkOrange ctermfg=208 guifg=#ff8700 200 | hi x209_Salmon1 ctermfg=209 guifg=#ff875f 201 | hi x210_LightCoral ctermfg=210 guifg=#ff8787 202 | hi x211_PaleVioletRed1 ctermfg=211 guifg=#ff87af 203 | hi x212_Orchid2 ctermfg=212 guifg=#ff87d7 204 | hi x213_Orchid1 ctermfg=213 guifg=#ff87ff 205 | hi x214_Orange1 ctermfg=214 guifg=#ffaf00 206 | hi x215_SandyBrown ctermfg=215 guifg=#ffaf5f 207 | hi x216_LightSalmon1 ctermfg=216 guifg=#ffaf87 208 | hi x217_LightPink1 ctermfg=217 guifg=#ffafaf 209 | hi x218_Pink1 ctermfg=218 guifg=#ffafd7 210 | hi x219_Plum1 ctermfg=219 guifg=#ffafff 211 | hi x220_Gold1 ctermfg=220 guifg=#ffd700 212 | hi x221_LightGoldenrod2 ctermfg=221 guifg=#ffd75f 213 | hi x222_LightGoldenrod2 ctermfg=222 guifg=#ffd787 214 | hi x223_NavajoWhite1 ctermfg=223 guifg=#ffd7af 215 | hi x224_MistyRose1 ctermfg=224 guifg=#ffd7d7 216 | hi x225_Thistle1 ctermfg=225 guifg=#ffd7ff 217 | hi x226_Yellow1 ctermfg=226 guifg=#ffff00 218 | hi x227_LightGoldenrod1 ctermfg=227 guifg=#ffff5f 219 | hi x228_Khaki1 ctermfg=228 guifg=#ffff87 220 | hi x229_Wheat1 ctermfg=229 guifg=#ffffaf 221 | hi x230_Cornsilk1 ctermfg=230 guifg=#ffffd7 222 | hi x231_Grey100 ctermfg=231 guifg=#ffffff 223 | hi x232_Grey3 ctermfg=232 guifg=#080808 224 | hi x233_Grey7 ctermfg=233 guifg=#121212 225 | hi x234_Grey11 ctermfg=234 guifg=#1c1c1c 226 | hi x235_Grey15 ctermfg=235 guifg=#262626 227 | hi x236_Grey19 ctermfg=236 guifg=#303030 228 | hi x237_Grey23 ctermfg=237 guifg=#3a3a3a 229 | hi x238_Grey27 ctermfg=238 guifg=#444444 230 | hi x239_Grey30 ctermfg=239 guifg=#4e4e4e 231 | hi x240_Grey35 ctermfg=240 guifg=#585858 232 | hi x241_Grey39 ctermfg=241 guifg=#626262 233 | hi x242_Grey42 ctermfg=242 guifg=#6c6c6c 234 | hi x243_Grey46 ctermfg=243 guifg=#767676 235 | hi x244_Grey50 ctermfg=244 guifg=#808080 236 | hi x245_Grey54 ctermfg=245 guifg=#8a8a8a 237 | hi x246_Grey58 ctermfg=246 guifg=#949494 238 | hi x247_Grey62 ctermfg=247 guifg=#9e9e9e 239 | hi x248_Grey66 ctermfg=248 guifg=#a8a8a8 240 | hi x249_Grey70 ctermfg=249 guifg=#b2b2b2 241 | hi x250_Grey74 ctermfg=250 guifg=#bcbcbc 242 | hi x251_Grey78 ctermfg=251 guifg=#c6c6c6 243 | hi x252_Grey82 ctermfg=252 guifg=#d0d0d0 244 | hi x253_Grey85 ctermfg=253 guifg=#dadada 245 | hi x254_Grey89 ctermfg=254 guifg=#e4e4e4 246 | hi x255_Grey93 ctermfg=255 guifg=#eeeeee 247 | 248 | syn keyword uefiSuccess EFI_SUCCESS TRUE ESUCCESS 249 | syn keyword uefiError ASSERT ASSERT_EFI_ERROR FALSE EFI_ERROR EFI_LOAD_ERROR EFI_INVALID_PARAMETER EFI_UNSUPPORTED EFI_BAD_BUFFER_SIZE EFI_BUFFER_TOO_SMALL EFI_NOT_READY EFI_DEVICE_ERROR EFI_WRITE_PROTECTED EFI_OUT_OF_RESOURCES EFI_VOLUME_CORRUPTED EFI_VOLUME_FULL EFI_NO_MEDIA EFI_MEDIA_CHANGED EFI_NOT_FOUND EFI_ACCESS_DENIED EFI_NO_RESPONSE EFI_NO_MAPPING EFI_TIMEOUT EFI_NOT_STARTED EFI_ALREADY_STARTED EFI_ABORTED EFI_ICMP_ERROR EFI_TFTP_ERROR EFI_PROTOCOL_ERROR EFI_INCOMPATIBLE_VERSION EFI_SECURITY_VIOLATION EFI_CRC_ERROR EFI_END_OF_MEDIA EFI_END_OF_FILE EFI_INVALID_LANGUAGE EFI_COMPROMISED_DATA EFI_WARN_UNKNOWN_GLYPH EFI_WARN_DELETE_FAILURE EFI_WARN_WRITE_FAILURE EFI_WARN_BUFFER_TOO_SMALL EFI_WARN_STALE_DATA 250 | syn keyword kssMacroMem SAFE_FREE FREE_MEM_POINTER FREE_PAGES FREE_JSON_OBJECT JSON_OBJECT_FREE FREE_MEM_PAGES EFI_SIZE_TO_PAGES SET_VALUE WAITING WAIT_FOR_KEY 251 | syn keyword kssMacroDebug DEBUG DBG_PRINT DBG_ERROR DBG_ERROR1 DBG_INFO DBG_INFO1 DBG_WARN DBG_WARN1 DBG_VERBOSE DBG_VERBOSE1 DBG_CURRENT DBG_CURRENT1 252 | syn keyword kssMacroExit DBG_EXIT_STATUS DBG_EXIT_STRING DBG_EXIT DBG_EXIT_DEC DBG_EXIT_HEX DBG_EXIT_TF DBG_EXIT_ERROR DBG_EXIT_ASCII_STRING DBG_EXIT_POINTER 253 | syn keyword kssMacroHelper FIRST FIRST_HELPER REST REST_HELPER REST_HELPER2 REST_HELPER_ONE REST_HELPER_TWOORMORE COUNT_OF_ARGUMENTS SELECT_40TH DBG_CURRENT_ONE DBG_CURRENT_TWOORMORE DBG_CURRENT_REST DBG_CURRENT_VA DBG_CURRENT_VA2 DBG_CURRENT_STATUS DBG_CURRENT_STATUS_ONE DBG_CURRENT_STATUS_TWOORMORE DBG_CURRENT_STATUS_REST DBG_CURRENT_STATUS_VA DBG_CURRENT_STATUS_VA2 254 | syn keyword kssMacroReturn DBG_ENTER RETURN_IF_EFI_ERROR RETURN_IF_EFI_SUCCESS RETURN_IF_NULL RETURN_IF RETURN_EFI_STATUS RETURN_EFI_STRING RETURN_ASCII_STRING RETURN_HEX RETURN_INT RETURN_BOOLEAN RETURN_IF_NULL_EFI_STRING RETURN_BOOLEAN_IF RETURN_BOOLEAN_IF_NULL RETURN_POINTER RETURN_NULL_IF_NULL RETURN_POINTER_IF_NULL RETURN_POINTER_IF RETURN_NUMBER RETURN_NUMBER_IF RETURN_NUMBER_IF_NULL RETURN_NUMBER_IF_EFI_ERROR RETURN_POINTER_IF_EFI_ERROR RETURN_VOID_IF_EFI_ERROR RETURN_VOID_IF_EFI_SUCCESS RETURN_VOID_IF_NULL RETURN_VOID_IF RETURN_VOID_EFI_STATUS RETURN_NULL_IF_EFI_ERROR RETURN_EFI_STRING_IF RETURN_HEX_IF 255 | syn keyword kssMacroGoto GOTO_IF_EFI_ERROR GOTO_IF_NULL GOTO_IF GOTO 256 | syn keyword kssMacroPrint DBG_CHAR DBG_HEX DBG_STRING DBG_UNICODE_STRING DBG_CHAR_BUFFER DBG_BUFFER DBG_DEVICE_PATH DBG_JSON_HANDLE DBG_EFI_TIME DBG_MAC_ADDR DBG_IP_ADDR 257 | syn keyword kssMacroBreak BREAK_IF BREAK_IF_EFI_ERROR BREAK_IF_NULL 258 | syn keyword kssMacroContinue CONTINUE_IF CONTINUE_IF_EFI_ERROR CONTINUE_IF_NULL 259 | 260 | syn keyword uefiType EFIAPI IN OUT BOOLEAN INT8 UINT8 INT16 UINT16 INT32 UINT32 INT64 UINT64 UINTN INTN CHAR8 CHAR16 VOID LIST_ENTRY EFI_GUID EFI_STATUS EFI_HANDLE EFI_EVENT EFI_TPL EFI_LBA EFI_PHYSICAL_ADDRESS EFI_VIRTUAL_ADDRESS EFI_HII_HANDLE BYTE EFI_INPUT_KEY 261 | 262 | syn keyword errnoValue errno EFIerrno ERESTART EMINERRORVAL EPERM ENOENT ESRCH EINTR EIO ENXIO E2BIG ENOEXEC EBADF ECHILD EDEADLK ENOMEM EACCES EFAULT ENOTBLK EBUSY EEXIST EXDEV ENODEV ENOTDIR EISDIR EINVAL ENFILE EMFILE ENOTTY ETXTBSY EFBIG ENOSPC ESPIPE EROFS EMLINK EPIPE EDOM ERANGE EAGAIN EWOULDBLOCK EINPROGRESS EALREADY ENOTSOCK EDESTADDRREQ EMSGSIZE EPROTOTYPE ENOPROTOOPT EPROTONOSUPPORT ESOCKTNOSUPPORT EOPNOTSUPP ENOTSUP EPFNOSUPPORT EAFNOSUPPORT EADDRINUSE EADDRNOTAVAIL ENETDOWN ENETUNREACH ENETRESET ECONNABORTED ECONNRESET ENOBUFS EISCONN ENOTCONN ESHUTDOWN ETOOMANYREFS ETIMEDOUT ECONNREFUSED ELOOP ENAMETOOLONG EHOSTDOWN EHOSTUNREACH ENOTEMPTY EPROCLIM EUSERS EDQUOT ESTALE EREMOTE EBADRPC ERPCMISMATCH EPROGUNAVAIL EPROGMISMATCH EPROCUNAVAIL ENOLCK ENOSYS EFTYPE EAUTH ENEEDAUTH EIDRM ENOMSG EOVERFLOW EILSEQ ENOTHING_1 ECANCELED EBADMSG ENODATA ENOSR ENOSTR ETIME ENOATTR EDOOFUS EMULTIHOP ENOLINK EPROTO EBUFSIZE 263 | 264 | syn match comparison "\s!=\s\|\s==\s\|\s>=\s\|\s<=\s\|\s<\s\|\s>\s" 265 | 266 | syn match kssType "\M\<\u\(\u\|_\|\d\)\+\>" 267 | syn match uefiFunction "\M\<\(\w\|->\)\+\s\*(\@=" 268 | syn match uefiMacros "\M\<\u\(\u\|_\|\d\)\+\s\*(\@=" 269 | syn cluster uefiSpecial contains=efiGuidGlobalVar 270 | syn match efiGuidGlobalVar "\M\" 271 | syn match uefiLink "&\w\(\w\|->\|\.\)*" contains=@uefiSpecial 272 | 273 | syn match efiHex "\M\<0\(x\|X\)\x\{1,32}\>" 274 | syn match efiFloat "\M\<\d\+.\d\+\>" 275 | syn match efiInt "\M\<\d\+\>\ze\(-\)\@!" 276 | 277 | syn match uefiTable "\<\(gBS\|gRT\|gST\)\(->\|\w\)*\>" 278 | 279 | hi def link efiHex Constant 280 | hi def link efiFloat Constant 281 | hi def link efiInt Constant 282 | hi def link kssType Macro 283 | hi def link uefiType Type 284 | hi def link uefiFunction x179_LightGoldenrod3 285 | hi def link uefiMacros x038_DeepSkyBlue2 286 | hi def link uefiError x203_IndianRed1 287 | hi def link errnoValue x203_IndianRed1 288 | hi uefiSuccess ctermfg=DarkGreen 289 | hi kssMacroMem ctermfg=DarkCyan 290 | hi kssMacroDebug ctermfg=Magenta 291 | hi kssMacroPrint ctermfg=DarkMagenta 292 | hi kssMacroExit ctermfg=Magenta 293 | hi kssMacroHelper ctermfg=Magenta 294 | hi def link kssMacroReturn x067_SteelBlue 295 | hi def link kssMacroGoto x097_MediumPurple3 296 | hi def link efiGuidGlobalVar x219_Plum1 297 | hi def link uefiLink x153_LightSkyBlue1 298 | hi def link comparison Constant 299 | hi def link uefiTable x211_PaleVioletRed1 300 | hi def link kssMacroBreak x138_RosyBrown 301 | hi def link kssMacroContinue x064_Chartreuse4 302 | 303 | " vim: ts=2 304 | " 305 | " 306 | -------------------------------------------------------------------------------- /syntax/uefi.vim: -------------------------------------------------------------------------------- 1 | " This is the Vim syntax file for UEFI files (DEC, INF, DSC). 2 | " 3 | " Maintainer: Alexander Fedorov "fedorov7@gmail.com" 4 | " Date: Thu Jan 19 13:59:54 MSK 2012 5 | " 6 | " Usage: 7 | " 1. cp proto.vim ~/.vim/syntax/ 8 | " 2. Add the following to ~/.vimrc: 9 | " 10 | " augroup filetype 11 | " au BufRead,BufNewFile *.xxx, setfiletype uefi 12 | " augroup end 13 | " 14 | 15 | if version < 600 16 | syntax clear 17 | elseif exists("b:current_syntax") 18 | finish 19 | endif 20 | 21 | " set syntax is case sensetive {{{1 22 | " "========== 23 | syn case match 24 | 25 | " Comments: {{{1 26 | " "========== 27 | syn cluster efiCommentGroup contains=efiTodo 28 | syn keyword efiTodo contained FIXME TODO XXX 29 | syn match efiComment "^\s*\zs#.*$" contains=@efiCommentGroup 30 | syn match efiComment "\s\zs#.*$" contains=@efiCommentGroup 31 | syn match efiQuickComment contained "#.*$" 32 | 33 | " Guid: {{{1 34 | " "========== 35 | syn match efiGuid "\M\<\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}\>" contains=efiInt 36 | syn match efiGuidGlobalVar "\M\" 37 | 38 | " Types: {{{1 39 | " "========== 40 | syn keyword efiType UINT8 UINT16 UINT32 UINT64 UINT8z UINT16z UINT32z UINT64z BOOLEAN VOID 41 | 42 | " Numbers and Constants: {{{1 43 | " "========== 44 | syn match efiHex "\M\<0\(x\|X\)\x\{1,32}\>" 45 | syn match efiFloat "\M\<\d\+.\d\+\>" 46 | syn match efiInt "\M\<\d\+\>\ze\(-\)\@!" 47 | syn region efiString start=+L\="+ skip=+\\"+ end=+"+ 48 | syn keyword efiBoolean TRUE FALSE 49 | 50 | " Idioms: {{{1 51 | " "========== 52 | syn match efiToken "\M\" 53 | syn match efiPath "\M/\=\(\w\+/\)\+\(\w\|.\|-\)\+\>" 54 | syn match efiSource "\M\s\+\zs\u\w\*.\w\+\ze\s\=$" 55 | syn match efiLib "\M\<\u\w\*Lib\>\ze\(/\|.\)\@!" 56 | syn match efiPoint "\M\<\u\w\*Point\>\ze\(/\)\@!" 57 | syn match efiPreprocessor "\v^!((endif|else|include)|(if|ifndef|ifdef)\s+\$\(\i+\)).*$" 58 | syn match efiArchSection "\v\.(I(a|A)32|(x|X)64|IPF|E(bc|BC)|ARM|(c|C)ommon|USER_DEFINED)" 59 | syn match efiArchConst "\v\|=\zs(IA32|X64|IPF|EBC|ARM|common|Ebc|USER_DEFINED)\ze\|=/@!" 60 | syn match efiEnv "\M$(\w\+)" 61 | 62 | " Special symbols: {{{1 63 | " "========== 64 | syn match efiParenthesis "\M\({\|}\|[\|]\||\|<\|>\)" 65 | 66 | " Useful keywords for headers: {{{1 67 | " "========== 68 | syn keyword efiSection Defines Sources BuildOptions Binaries Includes Protocols Ppis Guids LibraryClasses Packages Dupex UserExtensions FeaturePcd Pcd FixedPcd PatchPcd PcdEx Depex UserExtensions PcdFeatureFlag PcdsFixedAtBuild PcdsPatchableInModule PcdsDynamic PcdsDinamicEx PcdsFeatureFlag PcdsDynamicEx SkuIds Libraries Components 69 | 70 | " Any useful keywords: {{{1 71 | " "========== 72 | syn keyword infDefineSection INF_VERSION BASE_NAME EDK_RELEASE_VERSION PI_SPECIFICATION_VERSION UEFI_SPECIFICATION_VERSION FILE_GUID MODULE_TYPE VERSION_STRING LIBRARY_CLASS PCD_IS_DRIVER ENTRY_POINT UNLOAD_IMAGE CONSTRUCTOR DESTRUCTOR SHADOW PCI_DEVICE_ID PCI_VENDOR_ID PCI_CLASS_CODE PCI_COMPRESS UEFI_HII_RESOURCE_SECTION DEFINE SPEC CUSTOM_MAKEFILE DPX_SOUCE 73 | syn keyword decDefineSection DEC_VERSION DEC_SPECIFICATION PACKAGE_NAME PACKAGE_GUID PACKAGE_VERSION 74 | syn keyword dscDefineSection DSC_VERSION DSC_SPECIFICATION PLATFORM_NAME PLATFORM_GUID PLATFORM_VERSION SKUID_IDENTIFIER OUTPUT_DIRECTORY SUPPORTED_ARCHITECTURES BUILD_TARGETS FLASH_DEFINITION BUILD_NUMBER RFC_LANGUAGES ISO_LANGUAGES TIME_STAMP_FILE VPD_TOOL_GUID 75 | 76 | " Constants: {{{1 77 | " "========== 78 | syn keyword efiModuleType BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_SAL_DRIVER DXE_RUNTIME_DRIVER SMM_CORE DXE_SMM_DRIVER UEFI_DRIVER UEFI_APPLICATION 79 | syn keyword efiTool MSFT GCC INTEL RVCT XCODE 80 | syn keyword efiConst DEFAULT BUILD RELEASE NULL DEBUG OR AND 81 | 82 | if version >= 508 || !exists("did_proto_syn_inits") 83 | if version < 508 84 | let did_proto_syn_inits = 1 85 | command -nargs=+ HiLink hi link 86 | else 87 | command -nargs=+ HiLink hi def link 88 | endif 89 | 90 | HiLink efiTodo Todo "full yellow 91 | HiLink efiType Type "green 92 | HiLink efiGuid Identifier "lignt blue 93 | HiLink efiEnv Identifier "lignt blue 94 | HiLink efiParenthesis Identifier "lignt blue 95 | HiLink efiSection Statement "yellow 96 | HiLink efiArchSection Statement 97 | HiLink efiHex Constant "red 98 | HiLink efiFloat Constant "red 99 | HiLink efiModuleType Constant "red 100 | HiLink efiInt Constant "red 101 | HiLink efiBoolean Constant "red 102 | HiLink efiString Constant "red 103 | HiLink efiTool Constant "red 104 | HiLink efiConst Constant "red 105 | HiLink efiArchConst Constant 106 | HiLink efiComment Comment "blue 107 | HiLink efiPreprocessor Include "purple 108 | hi efiLib ctermfg=LightRed 109 | hi efiToken ctermfg=LightMagenta 110 | hi efiGuidGlobalVar ctermfg=LightCyan 111 | hi efiPoint ctermfg=LightBlue 112 | hi efiPath ctermfg=Gray 113 | hi infDefineSection ctermfg=DarkGrey 114 | hi decDefineSection ctermfg=DarkGray 115 | hi dscDefineSection ctermfg=DarkGray 116 | hi efiSource ctermfg=LightGreen 117 | 118 | delcommand HiLink 119 | endif 120 | 121 | let b:current_syntax = "uefi" 122 | -------------------------------------------------------------------------------- /syntax/uni.vim: -------------------------------------------------------------------------------- 1 | " This is the Vim syntax file for UEFI files (UNI). 2 | " 3 | " Maintainer: Alexander Fedorov "fedorov7@gmail.com" 4 | " Date: Thu Jan 19 13:59:54 MSK 2012 5 | " 6 | " Usage: 7 | " 1. cp proto.vim ~/.vim/syntax/ 8 | " 2. Add the following to ~/.vimrc: 9 | " 10 | " augroup filetype 11 | " au BufRead,BufNewFile *.xxx, setfiletype uefi 12 | " augroup end 13 | " 14 | 15 | if version < 600 16 | syntax clear 17 | elseif exists("b:current_syntax") && b:current_syntax =~ 'uni' 18 | finish 19 | endif 20 | 21 | " set syntax is case sensetive {{{1 22 | " "========== 23 | syn case match 24 | 25 | " Useful keywords for headers: {{{1 26 | " "========== 27 | syn match uniDefines "\M#langdef\>" 28 | syn match uniStart "\M/=#" 29 | 30 | " Any useful keywords: {{{1 31 | " "========== 32 | syn match uniWords "\M#string\>" 33 | syn match uniLanguage "\M#language\>" 34 | syn match uniLocale "\M\<\(\l\)\{2}-\(\u\)\{2}\>" 35 | syn match uniToken "\M\<\(\u\|_\|\d\)\+\>" 36 | 37 | 38 | if version >= 508 || !exists("did_proto_syn_inits") 39 | if version < 508 40 | let did_proto_syn_inits = 1 41 | command -nargs=+ HiLink hi link 42 | else 43 | command -nargs=+ HiLink hi def link 44 | endif 45 | 46 | HiLink uniDefines Include "purple 47 | HiLink uniStart Include "purple 48 | HiLink uniWords Statement "yellow 49 | HiLink uniLanguage Type "green 50 | " HiLink uniToken Identifier "cyan 51 | hi uniLocale ctermfg=LightGreen 52 | hi uniToken ctermfg=Yellow 53 | 54 | delcommand HiLink 55 | endif 56 | 57 | if !exists('b:current_syntax') 58 | let b:current_syntax = "uni" 59 | else 60 | let b:current_syntax = b:current_syntax.'.uni' 61 | endif 62 | -------------------------------------------------------------------------------- /syntax/vfr.vim: -------------------------------------------------------------------------------- 1 | " This is the Vim syntax file for UEFI files (VFR). 2 | " 3 | " Maintainer: Alexander Fedorov "fedorov7@gmail.com" 4 | " Date: Thu Jan 19 13:59:54 MSK 2012 5 | " 6 | " Usage: 7 | " 1. cp proto.vim ~/.vim/syntax/ 8 | " 2. Add the following to ~/.vimrc: 9 | " 10 | " augroup filetype 11 | " au BufRead,BufNewFile *.xxx, setfiletype uefi 12 | " augroup end 13 | " 14 | 15 | if version < 600 16 | syntax clear 17 | elseif exists("b:current_syntax") && b:current_syntax =~ 'vfr' 18 | finish 19 | endif 20 | 21 | " set syntax is case sensetive {{{1 22 | " "========== 23 | syn case match 24 | 25 | " Useful keywords for headers: {{{1 26 | " "========== 27 | syn keyword vfrSections formset endformset form endform subtitle label varstore defaultvarstore efivarstore namevaluevarstore string endstring checkbox endcheckbox formmap image locked rule endrule resetbutton endresetbutton option read write action endaction oneof endoneof numeric endnumeric date enddate time endtime string endstring password endpassword orderedlist endlist banner guidop endguidop modal dup questionref ruleref stringref pushthis security get length 28 | syn keyword vfrStatement disableif endif suppressif inconsistentif nosubmitif grayoutif ideqval ideqid ideqvallist 29 | 30 | " Any useful keywords: {{{1 31 | " "========== 32 | syn keyword vfrWords guid title help class subclass classguid formid varid name attribute prompt flags key text questionid question minsize maxsize maptitle mapguid devicepath formsetguid default refresh interval defaultstore minimum maximum step refreshguid config hour minute second value year month day line align timeout datatype 33 | syn keyword vfrFlags READ_ONLY INTERACTIVE RESET_REQUIRED OPTIONS_ONLY HORIZONTAL CHECKBOX_DEFAULT CHECKBOX_DEFAULT_MFG MULTI_LINE UNIQUE NOEMPTY YEAR_SUPPRESS MONTH_SUPPRESS DAY_SUPPRESS STORAGE_NORMAL STORAGE_TIME STORAGE_WAKEUP HOUR_SUPPRESS MINUTE_SUPPRESS SECOND_SUPPRESS 34 | syn keyword vfrOptions OPTION_DEFAULT OPTION_DEFAULT_MFG DEFAULT left center right 35 | syn keyword vfrSimple AND OR TRUE FALSE NOT 36 | syn match vfrToken "\M\<\I\i\*\>" 37 | syn match vfrStringToken "\M\<\I\i\*\ze\s\*)" 38 | syn keyword vfrConst STRING_TOKEN 39 | syn match vfrVariable "\M\<\I\i\*\(.\I\i\*\)\+\>" 40 | syn match vfrParenthesis "\M\((\|)\||\)" 41 | 42 | if version >= 508 || !exists("did_proto_syn_inits") 43 | if version < 508 44 | let did_proto_syn_inits = 1 45 | command -nargs=+ HiLink hi link 46 | else 47 | command -nargs=+ HiLink hi def link 48 | endif 49 | 50 | HiLink vfrSections Statement "yellow 51 | HiLink vfrWords Type "green 52 | HiLink vfrToken Include "purple 53 | HiLink vfrConst Identifier "light blue 54 | HiLink vfrParenthesis Identifier "light blue 55 | HiLink vfrFlags Constant "red 56 | HiLink vfrOptions Constant "red 57 | HiLink vfrSimple Constant "red 58 | hi vfrStatement ctermfg=LightMagenta 59 | hi vfrStringToken ctermfg=Yellow 60 | hi vfrVariable ctermfg=LightBlue 61 | 62 | delcommand HiLink 63 | endif 64 | 65 | if !exists('b:current_syntax') 66 | let b:current_syntax = "vfr" 67 | else 68 | let b:current_syntax = b:current_syntax.'.vfr' 69 | endif 70 | --------------------------------------------------------------------------------