iterate on mlr.vim

This commit is contained in:
John Kerl 2021-04-18 20:16:27 +00:00
parent fc93c77282
commit c0fcca5d81
2 changed files with 75 additions and 15 deletions

View file

@ -3,6 +3,7 @@ TOP OF LIST:
* emph go 1.16 @ go.mod & README.md; also gha yaml
* more operators in mlr.vim
! make sure all 0nnn.* files are -> 0nnn/*
! patch up regtest/cases-pending-go-port/dsl-output-redirects/0004/

View file

@ -18,8 +18,10 @@ syn case match
" ----------------------------------------------------------------
syn region mlrComment start="#" end="$"
syn region mlrString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@mlrStringGroup
syn match mlrDecimalInt "\<-\=\(0\|[1-9]_\?\(\d\|\d\+_\?\d\+\)*\)\%([Ee][-+]\=\d\+\)\=\>"
syn region mlrString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match mlrDecimalInt /\(\<[0-9]\+\>\)/
syn match mlrDecimalInt /\(\<0x[0-9-a-fA-F]\+\>\)/
syn match mlrDecimalInt /\(,,,\)/
syn match mlrHexadecimalInt "\<-\=0[xX]_\?\(\x\+_\?\)\+\>"
syn match mlrBinaryInt "\<-\=0[bB]_\?\([01]\+_\?\)\+\>"
syn match mlrFloat "\<-\=\d\+\.\d*\%([Ee][-+]\=\d\+\)\=\>"
@ -28,18 +30,76 @@ syn keyword mlrConstant M_PI M_E
syn keyword mlrBoolean true false
syn keyword mlrContextVariable IPS IFS IRS OPS OFS ORS OFLATSEP NF NR FNR FILENAME FILENUM
syn keyword mlrENV ENV
syn match mlrOperator /[-+%<>!&|^*=]=\?/
syn match mlrOperator /\/\%(=\|\ze[^/*]\)/
syn match mlrOperator /\%(<<\|>>\|&^\)=\?/
syn match mlrOperator /:=\|||\|<-\|++\|--/
" TODO: more operators
syn match mlrOperator /!/
syn match mlrOperator /%/
syn match mlrOperator /&/
syn match mlrOperator /(/
syn match mlrOperator /)/
syn match mlrOperator /*/
syn match mlrOperator /+/
syn match mlrOperator /+/
syn match mlrOperator /-/
syn match mlrOperator /-/
syn match mlrOperator /\./
syn match mlrOperator /\//
syn match mlrOperator /:/
syn match mlrOperator /</
syn match mlrOperator />/
syn match mlrOperator /?/
syn match mlrOperator /^/
syn match mlrOperator /|/
syn match mlrOperator /\~/
syn match mlrOperator /!=/
syn match mlrOperator /&&/
syn match mlrOperator /**/
syn match mlrOperator /\.\*/
syn match mlrOperator /\.+/
syn match mlrOperator /\.+/
syn match mlrOperator /\.-/
syn match mlrOperator /\.-/
syn match mlrOperator /\.\//
syn match mlrOperator /\/\//
syn match mlrOperator /<</
syn match mlrOperator /<=/
syn match mlrOperator /==/
syn match mlrOperator /=\~/
syn match mlrOperator />=/
syn match mlrOperator />>/
syn match mlrOperator /??/
syn match mlrOperator /^^/
syn match mlrOperator /||/
syn match mlrOperator /!=\~/
syn match mlrOperator /\.\/\//
syn match mlrOperator />>>/
syn match mlrOperator /???/
syn match mlrOperator /%=/
syn match mlrOperator /&=/
syn match mlrOperator /*=/
syn match mlrOperator /+=/
syn match mlrOperator /-=/
syn match mlrOperator /\.=/
syn match mlrOperator /\/=/
syn match mlrOperator /^=/
syn match mlrOperator /|=/
syn match mlrOperator /&&=/
syn match mlrOperator /**=/
syn match mlrOperator /\/\/=/
syn match mlrOperator /<<=/
syn match mlrOperator />>=/
syn match mlrOperator /??=/
syn match mlrOperator /^^=/
syn match mlrOperator /||=/
syn match mlrOperator />>>=/
syn match mlrOperator /???=/
syn keyword mlrKeyword begin do elif else end filter for if in while break continue return
syn keyword mlrKeyword func subr call dump edump
syn keyword mlrKeyword emit emitp emitf eprint eprintn print printn tee stdout stderr unset null
syn keyword mlrType arr bool float int map num str var
syn match mlrFieldName /\(\$[_a-zA-Z0-9]+\)/
syn match mlrFieldName /\(\$[_a-zA-Z0-9]\+\)/
syn match mlrFieldName /\(\$\*\)/
syn match mlrOosvarName /\(@[_a-zA-Z0-9]+\)/
syn match mlrOosvarName /\(@[_a-zA-Z0-9]*\)/
syn match mlrOosvarName /\(@\*\)/
syn match mlrIdentifier /\(\<[a-zA-Z_][a-zA-Z_0-9]*\>\)/
syn match mlrFunctionCall /\w\+\ze(/ contains=mlrBuiltins,mlrDeclaration
@ -55,10 +115,9 @@ syn match mlrSpaceError display " \+\t"me=e-1
hi def link mlrComment Comment
hi def link mlrString String
hi def link mlrDecimalInt Integer
hi def link mlrHexadecimalInt Integer
hi def link mlrBinaryInt Integer
hi def link Integer Number
hi def link mlrDecimalInt Number
hi def link mlrHexadecimalInt Number
hi def link mlrBinaryInt Number
hi def link mlrFloat Float
hi def link mlrConstant Constant
hi def link mlrBoolean Boolean
@ -67,8 +126,8 @@ hi def link mlrENV Keyword
hi def link mlrOperator Operator
hi def link mlrKeyword Keyword
hi def link mlrType Type
hi def link mlrFieldName Special
hi def link mlrOosvarName Special
hi def link mlrFieldName Macro
hi def link mlrOosvarName Macro
hi def link mlrIdentifier Identifier
hi def link mlrFunctionCall Type
hi def link mlrSpaceError Error