blob: 3c1513fe689fc95df39657575bdc4d4e95d50d78 [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
6" Last Change: 28 March 2025
7" 29 Mar 2025 by Vim Project (save and restore 'cpo' setting)
Andis Spriņķis0f146b72024-10-13 19:29:56 +02008"
9" The shell syntax highlighting is configurable. See $VIMRUNTIME/doc/syntax.txt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010010" lf version: 34
Andis Spriņķis0f146b72024-10-13 19:29:56 +020011
12if exists("b:current_syntax")
13 finish
14endif
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010015let s:cpo = &cpo
16set cpo&vim
Andis Spriņķis0f146b72024-10-13 19:29:56 +020017
18let b:current_syntax = "lf"
19
20"{{{ Comment Matching
21syn match lfComment '#.*$'
22"}}}
23
24"{{{ String Matching
25syn match lfString "'.*'"
26syn match lfString '".*"' contains=lfVar,lfSpecial
27"}}}
28
29"{{{ Match lf Variables
30syn match lfVar '\$f\|\$fx\|\$fs\|\$id'
31"}}}
32
33"{{{ Keywords
34syn keyword lfKeyword set setlocal cmd map cmap skipwhite
35"}}}
36
37"{{{ Options Keywords
38syn keyword lfOptions
Andis Spriņķis0f146b72024-10-13 19:29:56 +020039 \ anchorfind
40 \ autoquit
41 \ borderfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010042 \ bottom
43 \ calcdirsize
44 \ cd
Andis Spriņķis0f146b72024-10-13 19:29:56 +020045 \ cleaner
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010046 \ 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ņķis0f146b72024-10-13 19:29:56 +020077 \ copyfmt
78 \ cursoractivefmt
79 \ cursorparentfmt
80 \ cursorpreviewfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010081 \ cut
Andis Spriņķis0f146b72024-10-13 19:29:56 +020082 \ cutfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010083 \ delete
Andis Spriņķis0f146b72024-10-13 19:29:56 +020084 \ dircache
85 \ dircounts
86 \ dirfirst
87 \ dironly
88 \ dirpreviews
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010089 \ down
90 \ draw
Andis Spriņķis0f146b72024-10-13 19:29:56 +020091 \ drawbox
92 \ dupfilefmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010093 \ echo
94 \ echoerr
95 \ echomsg
Andis Spriņķis0f146b72024-10-13 19:29:56 +020096 \ errorfmt
97 \ filesep
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +010098 \ filter
99 \ find
100 \ find-back
101 \ find-next
102 \ find-prev
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200103 \ findlen
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100104 \ glob-select
105 \ glob-unselect
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200106 \ globfilter
107 \ globsearch
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100108 \ half-down
109 \ half-up
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200110 \ hidden
111 \ hiddenfiles
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100112 \ high
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200113 \ history
114 \ icons
115 \ ifs
116 \ ignorecase
117 \ ignoredia
118 \ incfilter
119 \ incsearch
120 \ info
121 \ infotimefmtnew
122 \ infotimefmtold
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100123 \ 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ņķis0f146b72024-10-13 19:29:56 +0200134 \ mouse
135 \ number
136 \ numberfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100137 \ 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ņķis0f146b72024-10-13 19:29:56 +0200148 \ period
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100149 \ pre-cd
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200150 \ preserve
151 \ preview
152 \ previewer
153 \ promptfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100154 \ push
155 \ quit
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200156 \ ratios
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100157 \ read
158 \ redraw
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200159 \ relativenumber
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100160 \ reload
161 \ rename
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200162 \ reverse
163 \ roundbox
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200164 \ rulerfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100165 \ scroll-down
166 \ scroll-up
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200167 \ scrolloff
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100168 \ search
169 \ search-back
170 \ search-next
171 \ search-prev
172 \ select
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200173 \ selectfmt
174 \ selmode
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100175 \ setfilter
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200176 \ shell
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100177 \ shell-async
178 \ shell-pipe
179 \ shell-wait
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200180 \ shellflag
181 \ shellopts
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100182 \ showbinds
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200183 \ sixel
184 \ smartcase
185 \ smartdia
186 \ sortby
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100187 \ source
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200188 \ statfmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100189 \ sync
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200190 \ tabstop
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100191 \ tag
192 \ tag-toggle
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200193 \ tagfmt
194 \ tempmarks
195 \ timefmt
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100196 \ toggle
197 \ top
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200198 \ truncatechar
199 \ truncatepct
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100200 \ unselect
201 \ up
202 \ updir
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200203 \ waitmsg
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100204 \ watch
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200205 \ wrapscan
206 \ wrapscroll
Andis Spriņķis0f146b72024-10-13 19:29:56 +0200207"}}}
208
209"{{{ Special Matching
210syn match lfSpecial '<.*>\|\\.'
211"}}}
212
213"{{{ Shell Script Matching for cmd
214let s:shell_syntax = get(g:, 'lf_shell_syntax', "syntax/sh.vim")
215let s:shell_syntax = get(b:, 'lf_shell_syntax', s:shell_syntax)
216unlet b:current_syntax
217exe 'syn include @Shell '.s:shell_syntax
218let b:current_syntax = "lf"
219syn region lfIgnore start=".{{\n" end="^}}"
220 \ keepend contains=lfExternalShell,lfExternalPatch
221syn 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
227syn match lfExternalShell "^.*$" transparent contained contains=@Shell
228syn match lfExternalPatch "^\s*cmd\ .*\ .{{$\|^}}$" contained
229"}}}
230
231"{{{ Link Highlighting
232hi def link lfComment Comment
233hi def link lfVar Type
234hi def link lfSpecial Special
235hi def link lfString String
236hi def link lfKeyword Statement
237hi def link lfOptions Constant
238hi def link lfConstant Constant
239hi def link lfExternalShell Normal
240hi def link lfExternalPatch Special
241hi def link lfIgnore Special
242"}}}
Andis Spriņķis0dc9a0b2025-03-29 09:03:54 +0100243let &cpo = s:cpo
244unlet s:cpo