Mercurial > vim
annotate runtime/indent/treetop.vim @ 9647:847518911c0b v7.4.2100
commit https://github.com/vim/vim/commit/6835dc61aebca2b602d85a9d63c449ace58683b4
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 24 17:33:05 2016 +0200
patch 7.4.2100
Problem: "cgn" and "dgn" do not work correctly with a single character
match and the replacement includes the searched pattern. (John
Beckett)
Solution: If the match is found in the wrong column try in the next column.
Turn the test into new style. (Christian Brabandt)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 24 Jul 2016 17:45:05 +0200 |
parents | 6f63330ec225 |
children | 1218c5353e2b |
rev | line source |
---|---|
2725 | 1 " Vim indent file |
2 " Language: Treetop | |
3 " Maintainer: Nikolai Weibull <now@bitwi.se> | |
4 " Latest Revision: 2011-03-14 | |
5 | |
6 if exists("b:did_indent") | |
7 finish | |
8 endif | |
9 let b:did_indent = 1 | |
10 | |
11 setlocal indentexpr=GetTreetopIndent() | |
12 setlocal indentkeys=0{,0},!^F,o,O,=end | |
13 setlocal nosmartindent | |
14 | |
15 if exists("*GetTreetopIndent") | |
16 finish | |
17 endif | |
18 | |
19 function GetTreetopIndent() | |
20 let pnum = prevnonblank(v:lnum - 1) | |
21 if pnum == 0 | |
22 return 0 | |
23 endif | |
24 | |
25 let ind = indent(pnum) | |
26 let line = getline(pnum) | |
27 | |
28 if line =~ '^\s*\%(grammar\|module\|rule\)\>' | |
29 let ind += &sw | |
30 endif | |
31 | |
32 let line = getline(v:lnum) | |
33 if line =~ '^\s*end\>' | |
34 let ind -= &sw | |
35 end | |
36 | |
37 retur ind | |
38 endfunction |