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>
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