blob: 0e877eb77d40768111b1ddae290eb7397d70df7a [file] [log] [blame]
Andis Spriņķis0f146b72024-10-13 19:29:56 +02001" 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ņķis0dc9a0b2025-03-29 09:03:54 +01005" URL: https://github.com/andis-sprinkis/lf-vim
Andis Spriņķis6b7637e2025-05-10 14:42:25 +02006" Last Change: 10 May 2025
Andis Spriņķis0f146b72024-10-13 19:29:56 +02007"
8" The shell syntax highlighting is configurable. See $VIMRUNTIME/doc/syntax.txt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +01009" lf version: 34
Andis Spriņķis0f146b72024-10-13 19:29:56 +020010
Andis Spriņķis7517a8c2025-04-08 20:34:14 +020011if exists("b:current_syntax") | finish | endif
12
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010013let s:cpo = &cpo
14set cpo&vim
Andis Spriņķis0f146b72024-10-13 19:29:56 +020015
16let b:current_syntax = "lf"
17
18"{{{ Comment Matching
Andis Spriņķis7517a8c2025-04-08 20:34:14 +020019syn match lfComment '#.*$'
Andis Spriņķis0f146b72024-10-13 19:29:56 +020020"}}}
21
22"{{{ String Matching
Andis Spriņķis7517a8c2025-04-08 20:34:14 +020023syn match lfString "'.*'"
24syn match lfString '".*"' contains=lfSpecial
Andis Spriņķis0f146b72024-10-13 19:29:56 +020025"}}}
26
27"{{{ Keywords
Andis Spriņķis7517a8c2025-04-08 20:34:14 +020028syn keyword lfKeyword set setlocal cmd map cmap skipwhite
Andis Spriņķis0f146b72024-10-13 19:29:56 +020029"}}}
30
31"{{{ Options Keywords
Andis Spriņķis7517a8c2025-04-08 20:34:14 +020032syn keyword lfOptions
33 \ anchorfind
34 \ autoquit
35 \ borderfmt
36 \ bottom
37 \ calcdirsize
38 \ cd
39 \ cleaner
40 \ clear
41 \ clearmaps
42 \ cmaps
43 \ cmd-capitalize-word
44 \ cmd-complete
45 \ cmd-delete
46 \ cmd-delete-back
47 \ cmd-delete-end
48 \ cmd-delete-home
49 \ cmd-delete-unix-word
50 \ cmd-delete-word
51 \ cmd-delete-word-back
52 \ cmd-end
53 \ cmd-enter
54 \ cmd-escape
55 \ cmd-history-next
56 \ cmd-history-prev
57 \ cmd-home
58 \ cmd-interrupt
59 \ cmd-left
60 \ cmd-lowercase-word
61 \ cmd-menu-accept
62 \ cmd-menu-complete
63 \ cmd-menu-complete-back
64 \ cmd-right
65 \ cmd-transpose
66 \ cmd-transpose-word
67 \ cmd-uppercase-word
68 \ cmd-word
69 \ cmd-word-back
70 \ cmd-yank
71 \ cmds
72 \ copy
73 \ copyfmt
74 \ cursoractivefmt
75 \ cursorparentfmt
76 \ cursorpreviewfmt
77 \ cut
78 \ cutfmt
79 \ delete
80 \ dircache
81 \ dircounts
82 \ dirfirst
83 \ dironly
84 \ dirpreviews
85 \ doc
86 \ down
87 \ draw
88 \ drawbox
89 \ dupfilefmt
90 \ echo
91 \ echoerr
92 \ echomsg
93 \ errorfmt
94 \ filesep
95 \ filter
96 \ find
97 \ find-back
98 \ find-next
99 \ find-prev
100 \ findlen
101 \ glob-select
102 \ glob-unselect
103 \ globfilter
104 \ globsearch
105 \ half-down
106 \ half-up
107 \ hidden
108 \ hiddenfiles
109 \ high
110 \ history
111 \ icons
112 \ ifs
113 \ ignorecase
114 \ ignoredia
115 \ incfilter
116 \ incsearch
117 \ info
118 \ infotimefmtnew
119 \ infotimefmtold
120 \ invert
121 \ invert-below
122 \ jump-next
123 \ jump-prev
124 \ load
125 \ locale
126 \ low
127 \ maps
128 \ mark-load
129 \ mark-remove
130 \ mark-save
131 \ middle
132 \ mouse
133 \ number
134 \ numberfmt
135 \ on-cd
136 \ on-focus-gained
137 \ on-focus-lost
138 \ on-init
139 \ on-quit
140 \ on-redraw
141 \ on-select
142 \ open
143 \ page-down
144 \ page-up
145 \ paste
146 \ period
147 \ pre-cd
148 \ preserve
149 \ preview
150 \ previewer
151 \ promptfmt
152 \ push
153 \ quit
154 \ ratios
155 \ read
156 \ redraw
157 \ relativenumber
158 \ reload
159 \ rename
160 \ reverse
161 \ roundbox
162 \ rulerfmt
163 \ scroll-down
164 \ scroll-up
165 \ scrolloff
166 \ search
167 \ search-back
168 \ search-next
169 \ search-prev
170 \ select
171 \ selectfmt
172 \ selmode
173 \ setfilter
174 \ shell
175 \ shell-async
176 \ shell-pipe
177 \ shell-wait
178 \ shellflag
179 \ shellopts
180 \ showbinds
181 \ sixel
182 \ smartcase
183 \ smartdia
184 \ sortby
185 \ source
186 \ statfmt
187 \ sync
188 \ tabstop
189 \ tag
190 \ tag-toggle
191 \ tagfmt
192 \ tempmarks
193 \ timefmt
194 \ toggle
195 \ top
196 \ truncatechar
197 \ truncatepct
198 \ unselect
199 \ up
200 \ updir
201 \ waitmsg
202 \ watch
203 \ wrapscan
204 \ wrapscroll
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200205"}}}
206
207"{{{ Special Matching
Andis Spriņķis7517a8c2025-04-08 20:34:14 +0200208syn match lfSpecial '\v\<[^>]+\>'
209syn match lfSpecial '\v\\(["\\abfnrtv]|\o+)'
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200210"}}}
211
212"{{{ Shell Script Matching for cmd
213let s:shell_syntax = get(g:, 'lf_shell_syntax', "syntax/sh.vim")
214let s:shell_syntax = get(b:, 'lf_shell_syntax', s:shell_syntax)
Andis Spriņķis7517a8c2025-04-08 20:34:14 +0200215
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200216unlet b:current_syntax
217exe 'syn include @Shell '.s:shell_syntax
Andis Spriņķis6b7637e2025-05-10 14:42:25 +0200218syn iskeyword @,-
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200219let b:current_syntax = "lf"
Andis Spriņķis7517a8c2025-04-08 20:34:14 +0200220
221syn region lfCommand matchgroup=lfCommandMarker start=' \zs:\ze' end='$' keepend transparent
222syn region lfCommand matchgroup=lfCommandMarker start=' \zs:{{\ze' end='}}' keepend transparent
223syn region lfShell matchgroup=lfShellMarker start=' \zs[$!%&]\ze' end='$' keepend contains=@Shell
224syn region lfShell matchgroup=lfShellMarker start=' \zs[$!%&]{{\ze' end='}}' keepend contains=@Shell
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200225"}}}
226
227"{{{ Link Highlighting
Andis Spriņķis7517a8c2025-04-08 20:34:14 +0200228hi def link lfComment Comment
229hi def link lfSpecial SpecialChar
230hi def link lfString String
231hi def link lfKeyword Statement
232hi def link lfOptions Constant
233hi def link lfCommandMarker Special
234hi def link lfShellMarker Special
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200235"}}}
Andis Spriņķis7517a8c2025-04-08 20:34:14 +0200236
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100237let &cpo = s:cpo
238unlet s:cpo