" Vim syntax file
" Language:    Ipkg
" Maintainer:  Idris Hackers (https://github.com/edwinb/idris2-vim), Serhii Khoma <srghma@gmail.com>
" Last Change: 2020 May 19
" Version:     0.1
" Author:      ShinKage
" License:     Vim (see :h license)
" Repository:  https://github.com/ShinKage/idris2-nvim
"
" Syntax highlight for Idris 2 Package Descriptors (idris-lang.org)
"

if exists("b:current_syntax")
  finish
endif

" we want to use line continuations (\) BEGINNING
let s:cpo_save = &cpo
set cpo&vim

syn keyword ipkgKey
    \ package
    \ authors
    \ maintainers
    \ license
    \ brief
    \ readme
    \ homepage
    \ sourceloc
    \ bugtracker
    \ options
    \ opts
    \ sourcedir
    \ builddir
    \ outputdir
    \ prebuild
    \ postbuild
    \ preinstall
    \ postinstall
    \ preclean
    \ postclean
    \ version
    \ langversion
    \ modules
    \ main
    \ executable
    \ depends

" we want to use line continuations (\) END
let &cpo = s:cpo_save
unlet s:cpo_save

syn region ipkgString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
syn match ipkgVersion "[0-9]*\([.][0-9]*\)*"
syn match ipkgName "[a-zA-Z][a-zA-z0-9_']*\([.][a-zA-Z][a-zA-z0-9_']*\)*" contained
syn match ipkgOperator "\(,\|&&\|<\|<=\|==\|>=\|>\)"
syn match ipkgComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=@Spell

highlight def link ipkgKey Statement
highlight def link ipkgString String
highlight def link ipkgVersion Number
highlight def link ipkgName Identifier
highlight def link ipkgOperator Operator
highlight def link ipkgComment Comment

let b:current_syntax = "ipkg"