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 |