diff options
Diffstat (limited to 'indent')
| -rw-r--r-- | indent/.keep | 1 | ||||
| -rw-r--r-- | indent/html5.vim | 387 | ||||
| -rw-r--r-- | indent/php.vim | 37 | 
3 files changed, 0 insertions, 425 deletions
| diff --git a/indent/.keep b/indent/.keep deleted file mode 100644 index f8e463a..0000000 --- a/indent/.keep +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | this directory gets used for custom indentation rules. file naming follows the extension of the files the indentation is for and the extension .vim. | ||
| diff --git a/indent/html5.vim b/indent/html5.vim deleted file mode 100644 index 94baa87..0000000 --- a/indent/html5.vim +++ /dev/null | |||
| @@ -1,387 +0,0 @@ | |||
| 1 | " Description: HTML5 and inline SVG indenter | ||
| 2 | " Changed By: HT de Beer <H.T.de.Beer@gmail.com> | ||
| 3 | " Last Change: 20121013 | ||
| 4 | " Added the SVG elements to the list of indenting element. SVG elements | ||
| 5 | " taken from http://www.w3.org/TR/SVG/eltindex.html | ||
| 6 | " | ||
| 7 | " Description: html5 (and html4) indenter | ||
| 8 | " Changed By: Brian Gershon <brian.five@gmail.com> | ||
| 9 | " Last Change: 30 Jan 2011 | ||
| 10 | " | ||
| 11 | " 1. Started with vim72 html indent file authored by Johannes Zellner (below) | ||
| 12 | " 2. Added html5 list as described here: | ||
| 13 | " http://stackoverflow.com/questions/3232518/how-to-update-vim-to-color-code-new-html-elements | ||
| 14 | " 3. Added this to a fork of https://github.com/othree/html5.vim | ||
| 15 | " which already provides nice html5 syntax highlighting. | ||
| 16 | " | ||
| 17 | " Description: html indenter | ||
| 18 | " Author: Johannes Zellner <johannes@zellner.org> | ||
| 19 | " Last Change: Mo, 05 Jun 2006 22:32:41 CEST | ||
| 20 | " Restoring 'cpo' and 'ic' added by Bram 2006 May 5 | ||
| 21 | " Globals: | ||
| 22 | " let g:html_indent_tags = 'html\|p\|time' | ||
| 23 | " let g:html_exclude_tags = ['html', 'style', 'script', 'body'] | ||
| 24 | |||
| 25 | |||
| 26 | " Only load this indent file when no other was loaded. | ||
| 27 | if exists("b:did_indent") | ||
| 28 | finish | ||
| 29 | endif | ||
| 30 | runtime! indent/javascript.vim | ||
| 31 | let s:jsindent = &indentexpr | ||
| 32 | unlet b:did_indent | ||
| 33 | runtime! indent/css.vim | ||
| 34 | let s:cssindent = &indentexpr | ||
| 35 | let b:did_indent = 1 | ||
| 36 | |||
| 37 | " [-- local settings (must come before aborting the script) --] | ||
| 38 | setlocal indentexpr=HtmlIndentGet(v:lnum) | ||
| 39 | setlocal indentkeys=o,O,*<Return>,<>>,{,},!^F | ||
| 40 | |||
| 41 | |||
| 42 | let s:tags = [] | ||
| 43 | |||
| 44 | " [-- <ELEMENT ? - - ...> --] | ||
| 45 | call add(s:tags, 'a') | ||
| 46 | call add(s:tags, 'abbr') | ||
| 47 | call add(s:tags, 'acronym') | ||
| 48 | call add(s:tags, 'address') | ||
| 49 | call add(s:tags, 'b') | ||
| 50 | call add(s:tags, 'bdo') | ||
| 51 | call add(s:tags, 'big') | ||
| 52 | call add(s:tags, 'blockquote') | ||
| 53 | call add(s:tags, 'button') | ||
| 54 | call add(s:tags, 'caption') | ||
| 55 | call add(s:tags, 'center') | ||
| 56 | call add(s:tags, 'cite') | ||
| 57 | call add(s:tags, 'code') | ||
| 58 | call add(s:tags, 'colgroup') | ||
| 59 | call add(s:tags, 'del') | ||
| 60 | call add(s:tags, 'dfn') | ||
| 61 | call add(s:tags, 'dir') | ||
| 62 | call add(s:tags, 'div') | ||
| 63 | call add(s:tags, 'dl') | ||
| 64 | call add(s:tags, 'dt') | ||
| 65 | call add(s:tags, 'dd') | ||
| 66 | call add(s:tags, 'em') | ||
| 67 | call add(s:tags, 'fieldset') | ||
| 68 | call add(s:tags, 'font') | ||
| 69 | call add(s:tags, 'form') | ||
| 70 | call add(s:tags, 'frameset') | ||
| 71 | call add(s:tags, 'h1') | ||
| 72 | call add(s:tags, 'h2') | ||
| 73 | call add(s:tags, 'h3') | ||
| 74 | call add(s:tags, 'h4') | ||
| 75 | call add(s:tags, 'h5') | ||
| 76 | call add(s:tags, 'h6') | ||
| 77 | call add(s:tags, 'i') | ||
| 78 | call add(s:tags, 'iframe') | ||
| 79 | call add(s:tags, 'ins') | ||
| 80 | call add(s:tags, 'kbd') | ||
| 81 | call add(s:tags, 'label') | ||
| 82 | call add(s:tags, 'legend') | ||
| 83 | call add(s:tags, 'li') | ||
| 84 | call add(s:tags, 'map') | ||
| 85 | call add(s:tags, 'menu') | ||
| 86 | call add(s:tags, 'noframes') | ||
| 87 | call add(s:tags, 'noscript') | ||
| 88 | call add(s:tags, 'object') | ||
| 89 | call add(s:tags, 'ol') | ||
| 90 | call add(s:tags, 'optgroup') | ||
| 91 | call add(s:tags, 'p') | ||
| 92 | " call add(s:tags, 'pre') | ||
| 93 | call add(s:tags, 'q') | ||
| 94 | call add(s:tags, 's') | ||
| 95 | call add(s:tags, 'samp') | ||
| 96 | call add(s:tags, 'script') | ||
| 97 | call add(s:tags, 'select') | ||
| 98 | call add(s:tags, 'small') | ||
| 99 | call add(s:tags, 'span') | ||
| 100 | call add(s:tags, 'strong') | ||
| 101 | call add(s:tags, 'style') | ||
| 102 | call add(s:tags, 'sub') | ||
| 103 | call add(s:tags, 'sup') | ||
| 104 | call add(s:tags, 'table') | ||
| 105 | call add(s:tags, 'textarea') | ||
| 106 | call add(s:tags, 'title') | ||
| 107 | call add(s:tags, 'tt') | ||
| 108 | call add(s:tags, 'u') | ||
| 109 | call add(s:tags, 'ul') | ||
| 110 | call add(s:tags, 'var') | ||
| 111 | |||
| 112 | " New HTML 5 elements | ||
| 113 | call add(s:tags, 'article') | ||
| 114 | call add(s:tags, 'aside') | ||
| 115 | call add(s:tags, 'audio') | ||
| 116 | call add(s:tags, 'canvas') | ||
| 117 | call add(s:tags, 'datalist') | ||
| 118 | call add(s:tags, 'details') | ||
| 119 | call add(s:tags, 'figcaption') | ||
| 120 | call add(s:tags, 'figure') | ||
| 121 | call add(s:tags, 'footer') | ||
| 122 | call add(s:tags, 'header') | ||
| 123 | call add(s:tags, 'hgroup') | ||
| 124 | call add(s:tags, 'main') | ||
| 125 | call add(s:tags, 'mark') | ||
| 126 | call add(s:tags, 'meter') | ||
| 127 | call add(s:tags, 'nav') | ||
| 128 | call add(s:tags, 'output') | ||
| 129 | call add(s:tags, 'progress') | ||
| 130 | call add(s:tags, 'picture') | ||
| 131 | call add(s:tags, 'rb') | ||
| 132 | call add(s:tags, 'rp') | ||
| 133 | call add(s:tags, 'rt') | ||
| 134 | call add(s:tags, 'rtc') | ||
| 135 | call add(s:tags, 'ruby') | ||
| 136 | call add(s:tags, 'section') | ||
| 137 | call add(s:tags, 'source') | ||
| 138 | call add(s:tags, 'summary') | ||
| 139 | call add(s:tags, 'time') | ||
| 140 | call add(s:tags, 'video') | ||
| 141 | call add(s:tags, 'bdi') | ||
| 142 | call add(s:tags, 'data') | ||
| 143 | |||
| 144 | " Web Component | ||
| 145 | call add(s:tags, 'template') | ||
| 146 | |||
| 147 | " Common inline used SVG elements | ||
| 148 | call add(s:tags, 'clipPath') | ||
| 149 | call add(s:tags, 'defs') | ||
| 150 | call add(s:tags, 'desc') | ||
| 151 | call add(s:tags, 'filter') | ||
| 152 | call add(s:tags, 'foreignObject') | ||
| 153 | call add(s:tags, 'g') | ||
| 154 | call add(s:tags, 'linearGradient') | ||
| 155 | call add(s:tags, 'marker') | ||
| 156 | call add(s:tags, 'mask') | ||
| 157 | call add(s:tags, 'pattern') | ||
| 158 | call add(s:tags, 'radialGradient') | ||
| 159 | call add(s:tags, 'svg') | ||
| 160 | call add(s:tags, 'switch') | ||
| 161 | call add(s:tags, 'symbol') | ||
| 162 | call add(s:tags, 'text') | ||
| 163 | call add(s:tags, 'textPath') | ||
| 164 | call add(s:tags, 'tref') | ||
| 165 | call add(s:tags, 'tspan') | ||
| 166 | |||
| 167 | call add(s:tags, 'html') | ||
| 168 | call add(s:tags, 'head') | ||
| 169 | call add(s:tags, 'body') | ||
| 170 | |||
| 171 | call add(s:tags, 'thead') | ||
| 172 | call add(s:tags, 'tbody') | ||
| 173 | call add(s:tags, 'tfoot') | ||
| 174 | call add(s:tags, 'tr') | ||
| 175 | call add(s:tags, 'th') | ||
| 176 | call add(s:tags, 'td') | ||
| 177 | |||
| 178 | |||
| 179 | |||
| 180 | let s:omittable = [ | ||
| 181 | \ ['address', 'article', 'aside', 'blockquote', 'dir', 'div', 'dl', 'fieldset', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'menu', 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'], | ||
| 182 | \ ['dt', 'dd'], | ||
| 183 | \ ['li'], | ||
| 184 | \ ['thead', 'tbody', 'tfoot'], | ||
| 185 | \ ['th', 'td'], | ||
| 186 | \] | ||
| 187 | |||
| 188 | if exists('g:html_exclude_tags') | ||
| 189 | for tag in g:html_exclude_tags | ||
| 190 | call remove(s:tags, index(s:tags, tag)) | ||
| 191 | endfor | ||
| 192 | endif | ||
| 193 | let s:html_indent_tags = join(s:tags, '\|') | ||
| 194 | let s:html_indent_tags = s:html_indent_tags.'\|\w\+\(-\w\+\)\+' | ||
| 195 | if exists('g:html_indent_tags') | ||
| 196 | let s:html_indent_tags = s:html_indent_tags.'\|'.g:html_indent_tags | ||
| 197 | endif | ||
| 198 | |||
| 199 | let s:cpo_save = &cpo | ||
| 200 | set cpo-=C | ||
| 201 | |||
| 202 | " [-- count indent-increasing tags of line a:lnum --] | ||
| 203 | fun! <SID>HtmlIndentOpen(lnum, pattern) | ||
| 204 | let s = substitute('x'.getline(a:lnum), | ||
| 205 | \ '.\{-}\(\(<\)\('.a:pattern.'\)\>\)', "\1", 'g') | ||
| 206 | let s = substitute(s, "[^\1].*$", '', '') | ||
| 207 | return strlen(s) | ||
| 208 | endfun | ||
| 209 | |||
| 210 | " [-- count indent-decreasing tags of line a:lnum --] | ||
| 211 | fun! <SID>HtmlIndentClose(lnum, pattern) | ||
| 212 | let s = substitute('x'.getline(a:lnum), | ||
| 213 | \ '.\{-}\(\(<\)/\('.a:pattern.'\)\>>\)', "\1", 'g') | ||
| 214 | let s = substitute(s, "[^\1].*$", '', '') | ||
| 215 | return strlen(s) | ||
| 216 | endfun | ||
| 217 | |||
| 218 | " [-- count indent-increasing '{' of (java|css) line a:lnum --] | ||
| 219 | fun! <SID>HtmlIndentOpenAlt(lnum) | ||
| 220 | return strlen(substitute(getline(a:lnum), '[^{]\+', '', 'g')) | ||
| 221 | endfun | ||
| 222 | |||
| 223 | " [-- count indent-decreasing '}' of (java|css) line a:lnum --] | ||
| 224 | fun! <SID>HtmlIndentCloseAlt(lnum) | ||
| 225 | return strlen(substitute(getline(a:lnum), '[^}]\+', '', 'g')) | ||
| 226 | endfun | ||
| 227 | |||
| 228 | " [-- return the sum of indents respecting the syntax of a:lnum --] | ||
| 229 | fun! <SID>HtmlIndentSum(lnum, style) | ||
| 230 | if a:style == match(getline(a:lnum), '^\s*</') | ||
| 231 | if a:style == match(getline(a:lnum), '^\s*</\<\('.s:html_indent_tags.'\)\>') | ||
| 232 | let open = <SID>HtmlIndentOpen(a:lnum, s:html_indent_tags) | ||
| 233 | let close = <SID>HtmlIndentClose(a:lnum, s:html_indent_tags) | ||
| 234 | if 0 != open || 0 != close | ||
| 235 | return open - close | ||
| 236 | endif | ||
| 237 | endif | ||
| 238 | endif | ||
| 239 | |||
| 240 | if '' != &syntax && | ||
| 241 | \ synIDattr(synID(a:lnum, 1, 1), 'name') =~ '\(css\|java\).*' && | ||
| 242 | \ synIDattr(synID(a:lnum, strlen(getline(a:lnum)), 1), 'name') | ||
| 243 | \ =~ '\(css\|java\).*' | ||
| 244 | if a:style == match(getline(a:lnum), '^\s*}') | ||
| 245 | return <SID>HtmlIndentOpenAlt(a:lnum) - <SID>HtmlIndentCloseAlt(a:lnum) | ||
| 246 | endif | ||
| 247 | endif | ||
| 248 | return 0 | ||
| 249 | endfun | ||
| 250 | |||
| 251 | fun! HtmlIndentGet(lnum) | ||
| 252 | " Find a non-empty line above the current line. | ||
| 253 | let lnum = prevnonblank(a:lnum - 1) | ||
| 254 | |||
| 255 | " Hit the start of the file, use zero indent. | ||
| 256 | if lnum == 0 | ||
| 257 | return 0 | ||
| 258 | endif | ||
| 259 | |||
| 260 | let restore_ic = &ic | ||
| 261 | setlocal ic " ignore case | ||
| 262 | |||
| 263 | " [-- special handling for <pre>: no indenting --] | ||
| 264 | if getline(a:lnum) =~ '\c</pre>' | ||
| 265 | \ || 0 < searchpair('\c<pre>', '', '\c</pre>', 'nWb') | ||
| 266 | \ || 0 < searchpair('\c<pre>', '', '\c</pre>', 'nW') | ||
| 267 | " we're in a line with </pre> or inside <pre> ... </pre> | ||
| 268 | if restore_ic == 0 | ||
| 269 | setlocal noic | ||
| 270 | endif | ||
| 271 | return -1 | ||
| 272 | endif | ||
| 273 | |||
| 274 | " [-- special handling for <javascript>: use cindent --] | ||
| 275 | let js = '<script' | ||
| 276 | let jse = '</script>' | ||
| 277 | |||
| 278 | """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | ||
| 279 | " by Tye Zdrojewski <zdro@yahoo.com>, 05 Jun 2006 | ||
| 280 | " ZDR: This needs to be an AND (we are 'after the start of the pair' AND | ||
| 281 | " we are 'before the end of the pair'). Otherwise, indentation | ||
| 282 | " before the start of the script block will be affected; the end of | ||
| 283 | " the pair will still match if we are before the beginning of the | ||
| 284 | " pair. | ||
| 285 | " | ||
| 286 | if 0 < searchpair(js, '', jse, 'nWb') | ||
| 287 | \ && 0 < searchpair(js, '', jse, 'nW') | ||
| 288 | " we're inside javascript | ||
| 289 | if getline(searchpair(js, '', '</script>', 'nWb')) !~ '<script [^>]*type=["'']\?text\/\(html\|\(ng-\)\?template\)' | ||
| 290 | \ && getline(lnum) !~ js && getline(a:lnum) !~ jse | ||
| 291 | if restore_ic == 0 | ||
| 292 | setlocal noic | ||
| 293 | endif | ||
| 294 | if s:jsindent == '' | ||
| 295 | return cindent(a:lnum) | ||
| 296 | else | ||
| 297 | execute 'let ind = ' . s:jsindent | ||
| 298 | return ind | ||
| 299 | endif | ||
| 300 | endif | ||
| 301 | if getline(a:lnum) =~ jse | ||
| 302 | return indent(searchpair(js, '', jse, 'nWb')) | ||
| 303 | endif | ||
| 304 | endif | ||
| 305 | |||
| 306 | let css = '<style' | ||
| 307 | let csse = '</style>' | ||
| 308 | if 0 < searchpair(css, '', csse, 'nWb') | ||
| 309 | \ && 0 < searchpair(css, '', csse, 'nW') | ||
| 310 | " we're inside style | ||
| 311 | if getline(lnum) !~ css && getline(a:lnum) !~ csse | ||
| 312 | if restore_ic == 0 | ||
| 313 | setlocal noic | ||
| 314 | endif | ||
| 315 | if s:cssindent == '' | ||
| 316 | return cindent(a:lnum) | ||
| 317 | else | ||
| 318 | execute 'let ind = ' . s:cssindent | ||
| 319 | return ind | ||
| 320 | endif | ||
| 321 | endif | ||
| 322 | if getline(a:lnum) =~ csse | ||
| 323 | return indent(searchpair(css, '', csse, 'nWb')) | ||
| 324 | endif | ||
| 325 | endif | ||
| 326 | |||
| 327 | if getline(lnum) =~ '\c</pre>' | ||
| 328 | " line before the current line a:lnum contains | ||
| 329 | " a closing </pre>. --> search for line before | ||
| 330 | " starting <pre> to restore the indent. | ||
| 331 | let preline = prevnonblank(search('\c<pre>', 'bW') - 1) | ||
| 332 | if preline > 0 | ||
| 333 | if restore_ic == 0 | ||
| 334 | setlocal noic | ||
| 335 | endif | ||
| 336 | |||
| 337 | if 0 == match(getline(a:lnum), '^\s*</') | ||
| 338 | return indent(preline) - (1*&sw) | ||
| 339 | else | ||
| 340 | return indent(preline) | ||
| 341 | endif | ||
| 342 | endif | ||
| 343 | endif | ||
| 344 | |||
| 345 | let ind = <SID>HtmlIndentSum(lnum, -1) | ||
| 346 | let ind = ind + <SID>HtmlIndentSum(a:lnum, 0) | ||
| 347 | |||
| 348 | " Fix for conditional comment | ||
| 349 | if getline(a:lnum) =~ '\c<!--.*<\(html\|body\).*-->' | ||
| 350 | let ind = ind - 1 | ||
| 351 | endif | ||
| 352 | |||
| 353 | let lind = indent(lnum) | ||
| 354 | |||
| 355 | " for tags in s:omittable | ||
| 356 | " let tags_exp = '<\(' . join(tags, '\|') . '\)>' | ||
| 357 | " let close_tags_exp = '</\(' . join(tags, '\|') . '\)>' | ||
| 358 | " if getline(a:lnum) =~ tags_exp | ||
| 359 | " let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW') | ||
| 360 | " let prev_tag = search(tags_exp, 'bW', block_start) | ||
| 361 | " let prev_closetag = search(close_tags_exp, 'W', a:lnum) | ||
| 362 | " if prev_tag && !prev_closetag | ||
| 363 | " let ind = ind - 1 | ||
| 364 | " endif | ||
| 365 | " endif | ||
| 366 | |||
| 367 | " if getline(a:lnum) =~ '</\w\+>' | ||
| 368 | " let block_start = search('^'.repeat(' ', lind + (&sw * ind - 1)).'\S' , 'bnW') | ||
| 369 | " let prev_tag = search(tags_exp, 'bW', block_start) | ||
| 370 | " let prev_closetag = search(close_tags_exp, 'W', a:lnum) | ||
| 371 | " if prev_tag && !prev_closetag | ||
| 372 | " let ind = ind - 1 | ||
| 373 | " endif | ||
| 374 | " endif | ||
| 375 | " endfor | ||
| 376 | |||
| 377 | if restore_ic == 0 | ||
| 378 | setlocal noic | ||
| 379 | endif | ||
| 380 | |||
| 381 | return lind + (&sw * ind) | ||
| 382 | endfun | ||
| 383 | |||
| 384 | let &cpo = s:cpo_save | ||
| 385 | unlet s:cpo_save | ||
| 386 | |||
| 387 | " [-- EOF <runtime>/indent/html.vim --] | ||
| diff --git a/indent/php.vim b/indent/php.vim deleted file mode 100644 index ef723a6..0000000 --- a/indent/php.vim +++ /dev/null | |||
| @@ -1,37 +0,0 @@ | |||
| 1 | " Better indent support for PHP by making it possible to indent HTML sections | ||
| 2 | " as well. | ||
| 3 | if exists("b:did_indent") | ||
| 4 | finish | ||
| 5 | endif | ||
| 6 | " This script pulls in the default indent/php.vim with the :runtime command | ||
| 7 | " which could re-run this script recursively unless we catch that: | ||
| 8 | if exists('s:doing_indent_inits') | ||
| 9 | finish | ||
| 10 | endif | ||
| 11 | let s:doing_indent_inits = 1 | ||
| 12 | runtime! indent/html.vim | ||
| 13 | unlet b:did_indent | ||
| 14 | runtime! indent/php.vim | ||
| 15 | unlet s:doing_indent_inits | ||
| 16 | function! GetPhpHtmlIndent(lnum) | ||
| 17 | if exists('*HtmlIndent') | ||
| 18 | let html_ind = HtmlIndent() | ||
| 19 | else | ||
| 20 | let html_ind = HtmlIndentGet(a:lnum) | ||
| 21 | endif | ||
| 22 | let php_ind = GetPhpIndent() | ||
| 23 | " priority one for php indent script | ||
| 24 | if php_ind > -1 | ||
| 25 | return php_ind | ||
| 26 | endif | ||
| 27 | if html_ind > -1 | ||
| 28 | if getline(a:num) =~ "^<?" && (0< searchpair('<?', '', '?>', 'nWb') | ||
| 29 | \ || 0 < searchpair('<?', '', '?>', 'nW')) | ||
| 30 | return -1 | ||
| 31 | endif | ||
| 32 | return html_ind | ||
| 33 | endif | ||
| 34 | return -1 | ||
| 35 | endfunction | ||
| 36 | setlocal indentexpr=GetPhpHtmlIndent(v:lnum) | ||
| 37 | setlocal indentkeys+=<>> | ||
