blob: efd2ae5c9b05c71cd5e9905842b06d4cf65158e0 [file] [log] [blame]
AvidSeekerb5844102024-07-16 21:10:50 +02001" Language: MediaWiki
2" Maintainer: Avid Seeker <avidseeker7@protonmail.com>
3" Home: http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim
4" Last Change: 2024 Jul 14
5" Credits: chikamichi
6"
7
8if exists("b:did_ftplugin")
9 finish
10endif
11let g:did_ftplugin = 1
12
13" Many MediaWiki wikis prefer line breaks only at the end of paragraphs
14" (like in a text processor), which results in long, wrapping lines.
15setlocal wrap linebreak
16setlocal textwidth=0
17
18setlocal formatoptions-=tc formatoptions+=l formatoptions+=roq
19setlocal matchpairs+=<:>
20
21" Treat lists, indented text and tables as comment lines and continue with the
22" same formatting in the next line (i.e. insert the comment leader) when hitting
23" <CR> or using "o".
24setlocal comments=n:#,n:*,n:\:,s:{\|,m:\|,ex:\|},s:<!--,m:\ \ \ \ ,e:-->
25setlocal commentstring=<!--\ %s\ -->
26
27" match HTML tags (taken directly from $VIM/ftplugin/html.vim)
28if exists("loaded_matchit")
29 let b:match_ignorecase=0
30 let b:match_skip = 's:Comment'
31 let b:match_words = '<:>,' .
32 \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
33 \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
34 \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
35endif
36
37" Enable folding based on ==sections==
38setlocal foldexpr=getline(v:lnum)=~'^\\(=\\+\\)[^=]\\+\\1\\(\\s*<!--.*-->\\)\\=\\s*$'?\">\".(len(matchstr(getline(v:lnum),'^=\\+'))-1):\"=\"
39setlocal foldmethod=expr
40
41let b:undo_ftplugin = "setl commentstring< comments< formatoptions< foldexpr< foldmethod<"
42let b:undo_ftplugin += " matchpairs< linebreak< wrap< textwidth<"