runtime(hlsplaylist): include hlsplaylist ftplugin file

Commit: 
https://github.com/vim/vim/commit/ab03dd2085a37a62864cbf8616ebd52b8bbc3f6b
Author: AvidSeeker <avidseek...@protonmail.com>
Date:   Mon Jul 8 21:10:08 2024 +0200

    runtime(hlsplaylist): include hlsplaylist ftplugin file
    
    fixes: https://github.com/vim/vim/issues/15156
    closes: https://github.com/vim/vim/issues/15162
    
    Co-authored-by: zeertzjq <zeert...@outlook.com>
    Signed-off-by: AvidSeeker <avidseek...@protonmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index 556a47d7f..f546a6782 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 000000000..879a04f0f
--- /dev/null
+++ b/runtime/ftplugin/hlsplaylist.vim
@@ -0,0 +1,37 @@
+" Vim filetype plugin
+" Language:     HLS/M3U Playlist
+" Maintainer:  AvidSeeker <avidseek...@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

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1sQtpJ-00BLax-Ml%40256bit.org.

Raspunde prin e-mail lui