annotate contrib/vim/hgtest.vim @ 30706:2e4862646f02

repair: speed up stripping of many roots repair.strip() expects a set of root revisions to strip. It then builds the full set of descedants by walking the descandants of each. It is rare that more than a few roots get passed in, but if that happens, it will wastefully walk the changelog for each root. So let's just walk it once. I noticed this because the narrowhg extension was passing not only roots, but all the commits to strip. When there were tens of thousands of commits to strip, this resulted in quadratic behavior with that extension.
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 04 Jan 2017 10:07:12 -0800
parents 6db1642288c0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12509
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
1 " Vim syntax file
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
2 " Language: Mercurial unified tests
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
3 " Author: Steve Losh (steve@stevelosh.com)
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
4 "
18052
6db1642288c0 contrib: state explicitly how hgtest.vim can be installed
Mads Kiilerich <madski@unity3d.com>
parents: 12509
diff changeset
5 " Place this file in ~/.vim/syntax/ and add the following line to your
6db1642288c0 contrib: state explicitly how hgtest.vim can be installed
Mads Kiilerich <madski@unity3d.com>
parents: 12509
diff changeset
6 " ~/.vimrc to enable:
12509
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
7 " au BufNewFile,BufRead *.t set filetype=hgtest
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
8 "
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
9 " If you want folding you'll need the following line as well:
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
10 " let hgtest_fold=1
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
11 "
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
12 " You might also want to set the starting foldlevel for hgtest files:
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
13 " autocmd Syntax hgtest setlocal foldlevel=1
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
14
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
15 if exists("b:current_syntax")
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
16 finish
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
17 endif
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
18
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
19 syn include @Shell syntax/sh.vim
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
20
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
21 syn match hgtestComment /^[^ ].*$/
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
22 syn region hgtestOutput start=/^ [^$>]/ start=/^ $/ end=/\v.(\n\n*[^ ])\@=/me=s end=/^ [$>]/me=e-3 end=/^$/ fold containedin=hgtestBlock
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
23 syn match hgtestCommandStart /^ \$ / containedin=hgtestCommand
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
24 syn region hgtestCommand start=/^ \$ /hs=s+4,rs=s+4 end=/^ [^>]/me=e-3 end=/^ $/me=e-2 containedin=hgtestBlock contains=@Shell keepend
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
25 syn region hgtestBlock start=/^ /ms=e-2 end=/\v.(\n\n*[^ ])\@=/me=s end=/^$/me=e-1 fold keepend
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
26
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
27 hi link hgtestCommandStart Keyword
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
28 hi link hgtestComment Normal
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
29 hi link hgtestOutput Comment
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
30
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
31 if exists("hgtest_fold")
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
32 setlocal foldmethod=syntax
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
33 endif
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
34
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
35 syn sync match hgtestSync grouphere NONE "^$"
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
36 syn sync maxlines=200
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
37
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
38 " It's okay to set tab settings here, because an indent of two spaces is specified
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
39 " by the file format.
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
40 setlocal tabstop=2 softtabstop=2 shiftwidth=2 expandtab
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
41
4746a2e4b239 contrib/vim: add a syntax file for unified tests
Steve Losh <steve@stevelosh.com>
parents:
diff changeset
42 let b:current_syntax = "hgtest"