blob: 399de421eefdac31d2f4d9c1ef98c8a7b592e793 [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
Eisuke Kawashimafbbaa6e2025-04-16 18:20:59 +02006" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)
AvidSeekerb5844102024-07-16 21:10:50 +02007"
8
9if exists("b:did_ftplugin")
10 finish
11endif
Stanislav Asunkindd36d6c2024-08-14 14:43:30 +020012let b:did_ftplugin = 1
AvidSeekerb5844102024-07-16 21:10:50 +020013
Eisuke Kawashimafbbaa6e2025-04-16 18:20:59 +020014let s:cpo_save = &cpo
15set cpo&vim
16
AvidSeekerb5844102024-07-16 21:10:50 +020017" Many MediaWiki wikis prefer line breaks only at the end of paragraphs
18" (like in a text processor), which results in long, wrapping lines.
19setlocal wrap linebreak
20setlocal textwidth=0
21
22setlocal formatoptions-=tc formatoptions+=l formatoptions+=roq
23setlocal matchpairs+=<:>
24
25" Treat lists, indented text and tables as comment lines and continue with the
26" same formatting in the next line (i.e. insert the comment leader) when hitting
27" <CR> or using "o".
28setlocal comments=n:#,n:*,n:\:,s:{\|,m:\|,ex:\|},s:<!--,m:\ \ \ \ ,e:-->
29setlocal commentstring=<!--\ %s\ -->
30
31" match HTML tags (taken directly from $VIM/ftplugin/html.vim)
32if exists("loaded_matchit")
33 let b:match_ignorecase=0
34 let b:match_skip = 's:Comment'
35 let b:match_words = '<:>,' .
36 \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .
37 \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .
38 \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
39endif
40
41" Enable folding based on ==sections==
42setlocal foldexpr=getline(v:lnum)=~'^\\(=\\+\\)[^=]\\+\\1\\(\\s*<!--.*-->\\)\\=\\s*$'?\">\".(len(matchstr(getline(v:lnum),'^=\\+'))-1):\"=\"
43setlocal foldmethod=expr
44
45let b:undo_ftplugin = "setl commentstring< comments< formatoptions< foldexpr< foldmethod<"
46let b:undo_ftplugin += " matchpairs< linebreak< wrap< textwidth<"
Eisuke Kawashimafbbaa6e2025-04-16 18:20:59 +020047
48let &cpo = s:cpo_save
49unlet s:cpo_save