summaryrefslogtreecommitdiffstats
path: root/runtime/ftplugin/hlsplaylist.vim
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:05:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:05:19 +0000
commita4e9136f68a40b1cb0eb6df5a5f06603224a87f4 (patch)
treeba32e0d0069ad6adfd6b32d05161a03eea5e4c7c /runtime/ftplugin/hlsplaylist.vim
parentReleasing progress-linux version 2:9.1.0496-1~progress7.99u1. (diff)
downloadvim-a4e9136f68a40b1cb0eb6df5a5f06603224a87f4.tar.xz
vim-a4e9136f68a40b1cb0eb6df5a5f06603224a87f4.zip
Merging upstream version 2:9.1.0698.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'runtime/ftplugin/hlsplaylist.vim')
-rw-r--r--runtime/ftplugin/hlsplaylist.vim37
1 files changed, 37 insertions, 0 deletions
diff --git a/runtime/ftplugin/hlsplaylist.vim b/runtime/ftplugin/hlsplaylist.vim
new file mode 100644
index 0000000..879a04f
--- /dev/null
+++ b/runtime/ftplugin/hlsplaylist.vim
@@ -0,0 +1,37 @@
+" Vim filetype plugin
+" Language: HLS/M3U Playlist
+" Maintainer: AvidSeeker <avidseeker7@protonmail.com>
+" Last Change: 2024 Jul 07
+"
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let g:did_ftplugin = 1
+
+setlocal commentstring=#%s
+
+let b:undo_ftplugin = "setl commentstring<"
+
+function! M3UFold() abort
+ let line = getline(v:lnum)
+ if line =~# '^#EXTGRP'
+ return ">1"
+ endif
+ return "="
+endfunction
+
+function! M3UFoldText() abort
+ let start_line = getline(v:foldstart)
+ let title = substitute(start_line, '^#EXTGRP:*', '', '')
+ let foldsize = (v:foldend - v:foldstart + 1)
+ let linecount = '['.foldsize.' lines]'
+ return title.' '.linecount
+endfunction
+
+if has("folding")
+ setlocal foldexpr=M3UFold()
+ setlocal foldmethod=expr
+ setlocal foldtext=M3UFoldText()
+ let b:undo_ftplugin .= "|setl foldexpr< foldmethod< foldtext<"
+endif