forked from aniani/vim
		
	
		
			
	
	
		
			237 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			237 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language: lf file manager configuration file (lfrc) | ||
|  | " Maintainer: Andis Sprinkis <andis@sprinkis.com> | ||
|  | " Former Maintainer: Cameron Wright | ||
|  | " Former URL: https://github.com/andis-sprinkis/lf-vim | ||
|  | " Last Change: 13 October 2024 | ||
|  | " | ||
|  | " The shell syntax highlighting is configurable. See $VIMRUNTIME/doc/syntax.txt | ||
|  | " lf version: 32 | ||
|  | 
 | ||
|  | if exists("b:current_syntax") | ||
|  |     finish | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "lf" | ||
|  | 
 | ||
|  | "{{{ Comment Matching | ||
|  | syn match    lfComment        '#.*$' | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ String Matching | ||
|  | syn match    lfString         "'.*'" | ||
|  | syn match    lfString         '".*"' contains=lfVar,lfSpecial | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ Match lf Variables | ||
|  | syn match    lfVar            '\$f\|\$fx\|\$fs\|\$id' | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ Keywords | ||
|  | syn keyword  lfKeyword        set setlocal cmd map cmap skipwhite | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ Options Keywords | ||
|  | syn keyword  lfOptions | ||
|  |     \ quit | ||
|  |     \ up | ||
|  |     \ half-up | ||
|  |     \ page-up | ||
|  |     \ scroll-up | ||
|  |     \ down | ||
|  |     \ half-down | ||
|  |     \ page-down | ||
|  |     \ scroll-down | ||
|  |     \ updir | ||
|  |     \ open | ||
|  |     \ jump-next | ||
|  |     \ jump-prev | ||
|  |     \ top | ||
|  |     \ bottom | ||
|  |     \ high | ||
|  |     \ middle | ||
|  |     \ low | ||
|  |     \ toggle | ||
|  |     \ invert | ||
|  |     \ invert-below | ||
|  |     \ unselect | ||
|  |     \ glob-select | ||
|  |     \ glob-unselect | ||
|  |     \ calcdirsize | ||
|  |     \ clearmaps | ||
|  |     \ copy | ||
|  |     \ cut | ||
|  |     \ paste | ||
|  |     \ clear | ||
|  |     \ sync | ||
|  |     \ draw | ||
|  |     \ redraw | ||
|  |     \ load | ||
|  |     \ reload | ||
|  |     \ echo | ||
|  |     \ echomsg | ||
|  |     \ echoerr | ||
|  |     \ cd | ||
|  |     \ select | ||
|  |     \ delete | ||
|  |     \ rename | ||
|  |     \ source | ||
|  |     \ push | ||
|  |     \ read | ||
|  |     \ shell | ||
|  |     \ shell-pipe | ||
|  |     \ shell-wait | ||
|  |     \ shell-async | ||
|  |     \ find | ||
|  |     \ find-back | ||
|  |     \ find-next | ||
|  |     \ find-prev | ||
|  |     \ search | ||
|  |     \ search-back | ||
|  |     \ search-next | ||
|  |     \ search-prev | ||
|  |     \ filter | ||
|  |     \ setfilter | ||
|  |     \ mark-save | ||
|  |     \ mark-load | ||
|  |     \ mark-remove | ||
|  |     \ tag | ||
|  |     \ tag-toggle | ||
|  |     \ cmd-escape | ||
|  |     \ cmd-complete | ||
|  |     \ cmd-menu-complete | ||
|  |     \ cmd-menu-complete-back | ||
|  |     \ cmd-menu-accept | ||
|  |     \ cmd-enter | ||
|  |     \ cmd-interrupt | ||
|  |     \ cmd-history-next | ||
|  |     \ cmd-history-prev | ||
|  |     \ cmd-left | ||
|  |     \ cmd-right | ||
|  |     \ cmd-home | ||
|  |     \ cmd-end | ||
|  |     \ cmd-delete | ||
|  |     \ cmd-delete-back | ||
|  |     \ cmd-delete-home | ||
|  |     \ cmd-delete-end | ||
|  |     \ cmd-delete-unix-word | ||
|  |     \ cmd-yank | ||
|  |     \ cmd-transpose | ||
|  |     \ cmd-transpose-word | ||
|  |     \ cmd-word | ||
|  |     \ cmd-word-back | ||
|  |     \ cmd-delete-word | ||
|  |     \ cmd-delete-word-back | ||
|  |     \ cmd-capitalize-word | ||
|  |     \ cmd-uppercase-word | ||
|  |     \ cmd-lowercase-word | ||
|  |     \ anchorfind | ||
|  |     \ autoquit | ||
|  |     \ borderfmt | ||
|  |     \ cleaner | ||
|  |     \ copyfmt | ||
|  |     \ cursoractivefmt | ||
|  |     \ cursorparentfmt | ||
|  |     \ cursorpreviewfmt | ||
|  |     \ cutfmt | ||
|  |     \ dircache | ||
|  |     \ dircounts | ||
|  |     \ dirfirst | ||
|  |     \ dironly | ||
|  |     \ dirpreviews | ||
|  |     \ drawbox | ||
|  |     \ dupfilefmt | ||
|  |     \ errorfmt | ||
|  |     \ filesep | ||
|  |     \ findlen | ||
|  |     \ globfilter | ||
|  |     \ globsearch | ||
|  |     \ hidden | ||
|  |     \ hiddenfiles | ||
|  |     \ hidecursorinactive | ||
|  |     \ history | ||
|  |     \ icons | ||
|  |     \ ifs | ||
|  |     \ ignorecase | ||
|  |     \ ignoredia | ||
|  |     \ incfilter | ||
|  |     \ incsearch | ||
|  |     \ info | ||
|  |     \ infotimefmtnew | ||
|  |     \ infotimefmtold | ||
|  |     \ mouse | ||
|  |     \ number | ||
|  |     \ numberfmt | ||
|  |     \ period | ||
|  |     \ preserve | ||
|  |     \ preview | ||
|  |     \ previewer | ||
|  |     \ promptfmt | ||
|  |     \ ratios | ||
|  |     \ relativenumber | ||
|  |     \ reverse | ||
|  |     \ roundbox | ||
|  |     \ ruler | ||
|  |     \ rulerfmt | ||
|  |     \ scrolloff | ||
|  |     \ selectfmt | ||
|  |     \ selmode | ||
|  |     \ shell | ||
|  |     \ shellflag | ||
|  |     \ shellopts | ||
|  |     \ sixel | ||
|  |     \ smartcase | ||
|  |     \ smartdia | ||
|  |     \ sortby | ||
|  |     \ statfmt | ||
|  |     \ tabstop | ||
|  |     \ tagfmt | ||
|  |     \ tempmarks | ||
|  |     \ timefmt | ||
|  |     \ truncatechar | ||
|  |     \ truncatepct | ||
|  |     \ waitmsg | ||
|  |     \ wrapscan | ||
|  |     \ wrapscroll | ||
|  |     \ pre-cd | ||
|  |     \ on-cd | ||
|  |     \ on-select | ||
|  |     \ on-redraw | ||
|  |     \ on-quit | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ Special Matching | ||
|  | syn match    lfSpecial        '<.*>\|\\.' | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ Shell Script Matching for cmd | ||
|  | let s:shell_syntax = get(g:, 'lf_shell_syntax', "syntax/sh.vim") | ||
|  | let s:shell_syntax = get(b:, 'lf_shell_syntax', s:shell_syntax) | ||
|  | unlet b:current_syntax | ||
|  | exe 'syn include @Shell '.s:shell_syntax | ||
|  | let b:current_syntax = "lf" | ||
|  | syn region   lfIgnore         start=".{{\n" end="^}}" | ||
|  |     \ keepend contains=lfExternalShell,lfExternalPatch | ||
|  | syn match    lfShell          '\$[a-zA-Z].*$ | ||
|  |     \\|:[a-zA-Z].*$ | ||
|  |     \\|%[a-zA-Z].*$ | ||
|  |     \\|![a-zA-Z].*$ | ||
|  |     \\|&[a-zA-Z].*$' | ||
|  |     \ transparent contains=@Shell,lfExternalPatch | ||
|  | syn match    lfExternalShell  "^.*$" transparent contained contains=@Shell | ||
|  | syn match    lfExternalPatch  "^\s*cmd\ .*\ .{{$\|^}}$" contained | ||
|  | "}}} | ||
|  | 
 | ||
|  | "{{{ Link Highlighting | ||
|  | hi def link  lfComment        Comment | ||
|  | hi def link  lfVar            Type | ||
|  | hi def link  lfSpecial        Special | ||
|  | hi def link  lfString         String | ||
|  | hi def link  lfKeyword        Statement | ||
|  | hi def link  lfOptions        Constant | ||
|  | hi def link  lfConstant       Constant | ||
|  | hi def link  lfExternalShell  Normal | ||
|  | hi def link  lfExternalPatch  Special | ||
|  | hi def link  lfIgnore         Special | ||
|  | "}}} |