summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvidSeeker <avidseeker7@protonmail.com>2024-07-08 21:10:08 +0200
committerChristian Brabandt <cb@256bit.org>2024-07-08 21:11:34 +0200
commitab03dd2085a37a62864cbf8616ebd52b8bbc3f6b (patch)
tree52d229a7aeda88106a4ab586b839e42c560841d1
parentd1c369892d49775e3da502981d0d896c98592528 (diff)
runtime(hlsplaylist): include hlsplaylist ftplugin file
fixes: #15156 closes: #15162 Co-authored-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: AvidSeeker <avidseeker7@protonmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--.github/MAINTAINERS3
-rw-r--r--runtime/ftplugin/hlsplaylist.vim37
2 files changed, 39 insertions, 1 deletions
diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 556a47d7f9..f546a67823 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -107,7 +107,7 @@ runtime/compiler/zsh.vim @dkearns
runtime/doc/ft_hare.txt @selenebun
runtime/doc/ps1.txt @heaths
runtime/ftplugin/abaqus.vim @costerwi
-runtime/ftplugin/apache.vim @dubgeiser
+runtime/ftplugin/apache.vim @dubgeiser
runtime/ftplugin/arduino.vim @k-takata
runtime/ftplugin/astro.vim @romainl
runtime/ftplugin/awk.vim @dkearns
@@ -165,6 +165,7 @@ runtime/ftplugin/hare.vim @selenebun
runtime/ftplugin/haredoc.vim @selenebun
runtime/ftplugin/heex.vim @cvincent
runtime/ftplugin/hgcommit.vim @k-takata
+runtime/ftplugin/hlsplaylist.vim @avidseeker
runtime/ftplugin/hog.vim @wtfbbqhax
runtime/ftplugin/html.vim @dkearns
runtime/ftplugin/hyprlang.vim @ribru17
diff --git a/runtime/ftplugin/hlsplaylist.vim b/runtime/ftplugin/hlsplaylist.vim
new file mode 100644
index 0000000000..879a04f0f9
--- /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