Bram Moolenaar | 46fceaa | 2016-10-23 21:21:08 +0200 | [diff] [blame] | 1 | " ConTeXt indent file |
| 2 | " Language: ConTeXt typesetting engine |
| 3 | " Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> |
| 4 | " Last Change: 2016 Oct 15 |
| 5 | |
| 6 | if exists("b:did_indent") |
| 7 | finish |
| 8 | endif |
| 9 | |
| 10 | if !get(b:, 'context_metapost', get(g:, 'context_metapost', 1)) |
| 11 | finish |
| 12 | endif |
| 13 | |
| 14 | " Load MetaPost indentation script |
| 15 | runtime! indent/mp.vim |
| 16 | |
| 17 | let s:keepcpo= &cpo |
| 18 | set cpo&vim |
| 19 | |
| 20 | setlocal indentexpr=GetConTeXtIndent() |
| 21 | |
| 22 | let b:undo_indent = "setl indentexpr<" |
| 23 | |
| 24 | function! GetConTeXtIndent() |
| 25 | " Use MetaPost rules inside MetaPost graphic environments |
| 26 | if len(synstack(v:lnum, 1)) > 0 && |
| 27 | \ synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic' |
| 28 | return GetMetaPostIndent() |
| 29 | endif |
| 30 | return -1 |
| 31 | endfunc |
| 32 | |
| 33 | let &cpo = s:keepcpo |
| 34 | unlet s:keepcpo |
| 35 | |
| 36 | " vim:sw=2 |