view runtime/syntax/hlsplaylist.vim @ 33850:9fc745451034 v9.0.2136

patch 9.0.2136: MSVC errorformat can be improved Commit: https://github.com/vim/vim/commit/8ceb99001b52d0c642e7532763ec9d8217ee86e3 Author: Shawn Hatori <shawn.hatori@gmail.com> Date: Tue Nov 28 20:51:07 2023 +0100 patch 9.0.2136: MSVC errorformat can be improved Problem: MSVC errorformat can be improved Solution: parse error type and column number in MSVC errorformat closes: #13587 Signed-off-by: Shawn Hatori <shawn.hatori@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 28 Nov 2023 21:00:08 +0100
parents 1e91e26ceebf
children
line wrap: on
line source

" Vim syntax file
" Language: HLS Playlist
" Maintainer: BenoƮt Ryder <benoit@ryder.fr>
" Latest Revision: 2022-09-23

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" Comment line
syn match  hlsplaylistComment  "^#\(EXT\)\@!.*$"
" Segment URL
syn match  hlsplaylistUrl      "^[^#].*$"

" Unknown tags, assume an attribute list or nothing
syn match  hlsplaylistTagUnknown    "^#EXT[^:]*$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagUnknown    start="^#EXT[^:]*\ze:"  end="$" keepend contains=hlsplaylistAttributeList

" Basic Tags
syn match  hlsplaylistTagHeader     "^#EXTM3U$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-VERSION\ze:"  end="$" keepend contains=hlsplaylistValueInt

" Media or Multivariant Playlist Tags
syn match  hlsplaylistTagHeader     "^#EXT-X-INDEPENDENT-SEGMENTS$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagDelimiter  start="^#EXT-X-START\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-DEFINE\ze:"  end="$" keepend contains=hlsplaylistAttributeList

" Media Playlist Tags
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-TARGETDURATION\ze:"  end="$" keepend contains=hlsplaylistValueFloat
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-MEDIA-SEQUENCE\ze:"  end="$" keepend contains=hlsplaylistValueInt
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-DISCONTINUITY-SEQUENCE\ze:"  end="$" keepend contains=hlsplaylistValueInt
syn match  hlsplaylistTagDelimiter  "^#EXT-X-ENDLIST$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-PLAYLIST-TYPE\ze:"  end="$" keepend contains=hlsplaylistAttributeEnum
syn match  hlsplaylistTagStandard   "^#EXT-X-I-FRAME-ONLY$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-PART-INF\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader     start="^#EXT-X-SERVER-CONTROL\ze:"  end="$" keepend contains=hlsplaylistAttributeList

" Media Segment Tags
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement  start="^#EXTINF\ze:"  end="$" keepend contains=hlsplaylistValueFloat,hlsplaylistExtInfDesc
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-BYTERANGE\ze:"  end="$" keepend contains=hlsplaylistValueInt
syn match  hlsplaylistTagDelimiter  "^#EXT-X-DISCONTINUITY$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-KEY\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-MAP\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-PROGRAM-DATE-TIME\ze:"  end="$" keepend contains=hlsplaylistValueDateTime
syn match  hlsplaylistTagDelimiter  "^#EXT-X-GAP$"
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-BITRATE\ze:"  end="$" keepend contains=hlsplaylistValueFloat
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement  start="^#EXT-X-PART\ze:"  end="$" keepend contains=hlsplaylistAttributeList

" Media Metadata Tags
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-DATERANGE\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-SKIP\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement  start="^#EXT-X-PRELOAD-HINT\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement  start="^#EXT-X-RENDITION-REPORT\ze:"  end="$" keepend contains=hlsplaylistAttributeList

" Multivariant Playlist Tags
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-MEDIA\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement  start="^#EXT-X-STREAM-INF\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement  start="^#EXT-X-I-FRAME-STREAM-INF\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-SESSION-DATA\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-SESSION-KEY\ze:"  end="$" keepend contains=hlsplaylistAttributeList
syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard   start="^#EXT-X-CONTENT-STEERING\ze:"  end="$" keepend contains=hlsplaylistAttributeList

" Attributes
syn region hlsplaylistAttributeList  start=":" end="$" keepend contained
  \ contains=hlsplaylistAttributeName,hlsplaylistAttributeInt,hlsplaylistAttributeHex,hlsplaylistAttributeFloat,hlsplaylistAttributeString,hlsplaylistAttributeEnum,hlsplaylistAttributeResolution,hlsplaylistAttributeUri
" Common attributes
syn match  hlsplaylistAttributeName        "[A-Za-z-]\+\ze=" contained
syn match  hlsplaylistAttributeEnum        "=\zs[A-Za-z][A-Za-z0-9-_]*" contained
syn match  hlsplaylistAttributeString      +=\zs"[^"]*"+ contained
syn match  hlsplaylistAttributeInt         "=\zs\d\+" contained
syn match  hlsplaylistAttributeFloat       "=\zs-\?\d*\.\d*" contained
syn match  hlsplaylistAttributeHex         "=\zs0[xX]\d*" contained
syn match  hlsplaylistAttributeResolution  "=\zs\d\+x\d\+" contained
" Allow different highligting for URI attributes
syn region hlsplaylistAttributeUri matchgroup=hlsplaylistAttributeName    start="\zsURI\ze" end="\(,\|$\)" contained contains=hlsplaylistUriQuotes
syn region hlsplaylistUriQuotes    matchgroup=hlsplaylistAttributeString  start=+"+ end=+"+ keepend contained contains=hlsplaylistUriValue
syn match  hlsplaylistUriValue             /[^" ]\+/ contained
" Individual values
syn match  hlsplaylistValueInt             "[0-9]\+" contained
syn match  hlsplaylistValueFloat           "\(\d\+\|\d*\.\d*\)" contained
syn match  hlsplaylistExtInfDesc           ",\zs.*$" contained
syn match  hlsplaylistValueDateTime        "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d\(\.\d*\)\?\(Z\|\d\d:\?\d\d\)$" contained


" Define default highlighting

hi def link hlsplaylistComment  Comment
hi def link hlsplaylistUrl      NONE

hi def link hlsplaylistTagHeader     Special
hi def link hlsplaylistTagStandard   Define
hi def link hlsplaylistTagDelimiter  Delimiter
hi def link hlsplaylistTagStatement  Statement
hi def link hlsplaylistTagUnknown    Special

hi def link hlsplaylistUriQuotes            String
hi def link hlsplaylistUriValue             Underlined
hi def link hlsplaylistAttributeQuotes      String
hi def link hlsplaylistAttributeName        Identifier
hi def link hlsplaylistAttributeInt         Number
hi def link hlsplaylistAttributeHex         Number
hi def link hlsplaylistAttributeFloat       Float
hi def link hlsplaylistAttributeString      String
hi def link hlsplaylistAttributeEnum        Constant
hi def link hlsplaylistAttributeResolution  Constant
hi def link hlsplaylistValueInt             Number
hi def link hlsplaylistValueFloat           Float
hi def link hlsplaylistExtInfDesc           String
hi def link hlsplaylistValueDateTime        Constant


let b:current_syntax = "hlsplaylist"

let &cpo = s:cpo_save
unlet s:cpo_save

" vim: sts=2 sw=2 et