Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: lf file manager configuration file (lfrc) |
| 3 | " Maintainer: Andis Sprinkis <andis@sprinkis.com> |
| 4 | " Former Maintainer: Cameron Wright |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 5 | " URL: https://github.com/andis-sprinkis/lf-vim |
| 6 | " Last Change: 28 March 2025 |
| 7 | " 29 Mar 2025 by Vim Project (save and restore 'cpo' setting) |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 8 | " |
| 9 | " The shell syntax highlighting is configurable. See $VIMRUNTIME/doc/syntax.txt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 10 | " lf version: 34 |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 11 | |
| 12 | if exists("b:current_syntax") |
| 13 | finish |
| 14 | endif |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 15 | let s:cpo = &cpo |
| 16 | set cpo&vim |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 17 | |
| 18 | let b:current_syntax = "lf" |
| 19 | |
| 20 | "{{{ Comment Matching |
| 21 | syn match lfComment '#.*$' |
| 22 | "}}} |
| 23 | |
| 24 | "{{{ String Matching |
| 25 | syn match lfString "'.*'" |
| 26 | syn match lfString '".*"' contains=lfVar,lfSpecial |
| 27 | "}}} |
| 28 | |
| 29 | "{{{ Match lf Variables |
| 30 | syn match lfVar '\$f\|\$fx\|\$fs\|\$id' |
| 31 | "}}} |
| 32 | |
| 33 | "{{{ Keywords |
| 34 | syn keyword lfKeyword set setlocal cmd map cmap skipwhite |
| 35 | "}}} |
| 36 | |
| 37 | "{{{ Options Keywords |
| 38 | syn keyword lfOptions |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 39 | \ anchorfind |
| 40 | \ autoquit |
| 41 | \ borderfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 42 | \ bottom |
| 43 | \ calcdirsize |
| 44 | \ cd |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 45 | \ cleaner |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 46 | \ clear |
| 47 | \ clearmaps |
| 48 | \ cmd-capitalize-word |
| 49 | \ cmd-complete |
| 50 | \ cmd-delete |
| 51 | \ cmd-delete-back |
| 52 | \ cmd-delete-end |
| 53 | \ cmd-delete-home |
| 54 | \ cmd-delete-unix-word |
| 55 | \ cmd-delete-word |
| 56 | \ cmd-delete-word-back |
| 57 | \ cmd-end |
| 58 | \ cmd-enter |
| 59 | \ cmd-escape |
| 60 | \ cmd-history-next |
| 61 | \ cmd-history-prev |
| 62 | \ cmd-home |
| 63 | \ cmd-interrupt |
| 64 | \ cmd-left |
| 65 | \ cmd-lowercase-word |
| 66 | \ cmd-menu-accept |
| 67 | \ cmd-menu-complete |
| 68 | \ cmd-menu-complete-back |
| 69 | \ cmd-right |
| 70 | \ cmd-transpose |
| 71 | \ cmd-transpose-word |
| 72 | \ cmd-uppercase-word |
| 73 | \ cmd-word |
| 74 | \ cmd-word-back |
| 75 | \ cmd-yank |
| 76 | \ copy |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 77 | \ copyfmt |
| 78 | \ cursoractivefmt |
| 79 | \ cursorparentfmt |
| 80 | \ cursorpreviewfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 81 | \ cut |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 82 | \ cutfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 83 | \ delete |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 84 | \ dircache |
| 85 | \ dircounts |
| 86 | \ dirfirst |
| 87 | \ dironly |
| 88 | \ dirpreviews |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 89 | \ down |
| 90 | \ draw |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 91 | \ drawbox |
| 92 | \ dupfilefmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 93 | \ echo |
| 94 | \ echoerr |
| 95 | \ echomsg |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 96 | \ errorfmt |
| 97 | \ filesep |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 98 | \ filter |
| 99 | \ find |
| 100 | \ find-back |
| 101 | \ find-next |
| 102 | \ find-prev |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 103 | \ findlen |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 104 | \ glob-select |
| 105 | \ glob-unselect |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 106 | \ globfilter |
| 107 | \ globsearch |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 108 | \ half-down |
| 109 | \ half-up |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 110 | \ hidden |
| 111 | \ hiddenfiles |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 112 | \ high |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 113 | \ history |
| 114 | \ icons |
| 115 | \ ifs |
| 116 | \ ignorecase |
| 117 | \ ignoredia |
| 118 | \ incfilter |
| 119 | \ incsearch |
| 120 | \ info |
| 121 | \ infotimefmtnew |
| 122 | \ infotimefmtold |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 123 | \ invert |
| 124 | \ invert-below |
| 125 | \ jump-next |
| 126 | \ jump-prev |
| 127 | \ load |
| 128 | \ locale |
| 129 | \ low |
| 130 | \ mark-load |
| 131 | \ mark-remove |
| 132 | \ mark-save |
| 133 | \ middle |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 134 | \ mouse |
| 135 | \ number |
| 136 | \ numberfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 137 | \ on-cd |
| 138 | \ on-focus-gained |
| 139 | \ on-focus-lost |
| 140 | \ on-init |
| 141 | \ on-quit |
| 142 | \ on-redraw |
| 143 | \ on-select |
| 144 | \ open |
| 145 | \ page-down |
| 146 | \ page-up |
| 147 | \ paste |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 148 | \ period |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 149 | \ pre-cd |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 150 | \ preserve |
| 151 | \ preview |
| 152 | \ previewer |
| 153 | \ promptfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 154 | \ push |
| 155 | \ quit |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 156 | \ ratios |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 157 | \ read |
| 158 | \ redraw |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 159 | \ relativenumber |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 160 | \ reload |
| 161 | \ rename |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 162 | \ reverse |
| 163 | \ roundbox |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 164 | \ rulerfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 165 | \ scroll-down |
| 166 | \ scroll-up |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 167 | \ scrolloff |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 168 | \ search |
| 169 | \ search-back |
| 170 | \ search-next |
| 171 | \ search-prev |
| 172 | \ select |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 173 | \ selectfmt |
| 174 | \ selmode |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 175 | \ setfilter |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 176 | \ shell |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 177 | \ shell-async |
| 178 | \ shell-pipe |
| 179 | \ shell-wait |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 180 | \ shellflag |
| 181 | \ shellopts |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 182 | \ showbinds |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 183 | \ sixel |
| 184 | \ smartcase |
| 185 | \ smartdia |
| 186 | \ sortby |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 187 | \ source |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 188 | \ statfmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 189 | \ sync |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 190 | \ tabstop |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 191 | \ tag |
| 192 | \ tag-toggle |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 193 | \ tagfmt |
| 194 | \ tempmarks |
| 195 | \ timefmt |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 196 | \ toggle |
| 197 | \ top |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 198 | \ truncatechar |
| 199 | \ truncatepct |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 200 | \ unselect |
| 201 | \ up |
| 202 | \ updir |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 203 | \ waitmsg |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 204 | \ watch |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 205 | \ wrapscan |
| 206 | \ wrapscroll |
Andis Spriņķis | 0f146b7 | 2024-10-13 19:29:56 +0200 | [diff] [blame] | 207 | "}}} |
| 208 | |
| 209 | "{{{ Special Matching |
| 210 | syn match lfSpecial '<.*>\|\\.' |
| 211 | "}}} |
| 212 | |
| 213 | "{{{ Shell Script Matching for cmd |
| 214 | let s:shell_syntax = get(g:, 'lf_shell_syntax', "syntax/sh.vim") |
| 215 | let s:shell_syntax = get(b:, 'lf_shell_syntax', s:shell_syntax) |
| 216 | unlet b:current_syntax |
| 217 | exe 'syn include @Shell '.s:shell_syntax |
| 218 | let b:current_syntax = "lf" |
| 219 | syn region lfIgnore start=".{{\n" end="^}}" |
| 220 | \ keepend contains=lfExternalShell,lfExternalPatch |
| 221 | syn match lfShell '\$[a-zA-Z].*$ |
| 222 | \\|:[a-zA-Z].*$ |
| 223 | \\|%[a-zA-Z].*$ |
| 224 | \\|![a-zA-Z].*$ |
| 225 | \\|&[a-zA-Z].*$' |
| 226 | \ transparent contains=@Shell,lfExternalPatch |
| 227 | syn match lfExternalShell "^.*$" transparent contained contains=@Shell |
| 228 | syn match lfExternalPatch "^\s*cmd\ .*\ .{{$\|^}}$" contained |
| 229 | "}}} |
| 230 | |
| 231 | "{{{ Link Highlighting |
| 232 | hi def link lfComment Comment |
| 233 | hi def link lfVar Type |
| 234 | hi def link lfSpecial Special |
| 235 | hi def link lfString String |
| 236 | hi def link lfKeyword Statement |
| 237 | hi def link lfOptions Constant |
| 238 | hi def link lfConstant Constant |
| 239 | hi def link lfExternalShell Normal |
| 240 | hi def link lfExternalPatch Special |
| 241 | hi def link lfIgnore Special |
| 242 | "}}} |
Andis Spriņķis | 0dc9a0b | 2025-03-29 09:03:54 +0100 | [diff] [blame] | 243 | let &cpo = s:cpo |
| 244 | unlet s:cpo |