annotate runtime/indent/context.vim @ 35165:d0498ef60b5b default tip

ftplugin(python): E16 fix, async keyword support for define (#14751) Commit: https://github.com/vim/vim/commit/86f6e2c2eed7df2bf5c60cc74d08d7a8d3c75f45 Author: Tom Picton <tom@tompicton.com> Date: Sat May 11 14:26:06 2024 -0400 ftplugin(python): E16 fix, async keyword support for define (https://github.com/vim/vim/issues/14751) This change includes the following changes: - Fix "E16: Invalid range" when using a count with jump to start/end of class/method - Update define with optional async keyword - Update maintainer email Signed-off-by: Tom Picton <tom@tompicton.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 11 May 2024 20:30:08 +0200
parents d81556766132
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
1 vim9script
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
2
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
3 # Language: ConTeXt typesetting engine
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
4 # Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
5 # Former Maintainers: Nikolai Weibull <now@bitwi.se>
34018
d81556766132 runtime(context): update ConTeXt keywords and other minor fixes (#13778)
Christian Brabandt <cb@256bit.org>
parents: 29885
diff changeset
6 # Latest Revision: 2023 Dec 26
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 if exists("b:did_indent")
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 finish
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 endif
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
12 # Load MetaPost indentation script (this will also set b:did_indent)
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 runtime! indent/mp.vim
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
15 setlocal indentexpr=ConTeXtIndent()
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
16
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
17 b:undo_indent = "setl indentexpr<"
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
19 def PrevNotComment(l: number): number
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
20 var prevlnum = prevnonblank(l)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
21
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
22 while prevlnum > 0 && getline(prevlnum) =~# '^\s*%'
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
23 prevlnum = prevnonblank(prevlnum - 1)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
24 endwhile
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
26 return prevlnum
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
27 enddef
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
29 def FindPair(pstart: string, pmid: string, pend: string): number
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
30 cursor(v:lnum, 1)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
31 return indent(searchpair(pstart, pmid, pend, 'bWn',
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
32 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"'))
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
33 enddef
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
34
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
35 def ConTeXtIndent(): number
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
36 # Use MetaPost rules inside MetaPost graphic environments
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 if len(synstack(v:lnum, 1)) > 0 &&
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
38 synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic'
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
39 return g:MetaPostIndent()
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 endif
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
41
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
42 const prevlnum = PrevNotComment(v:lnum - 1)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
43 const prevind = indent(prevlnum)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
44 const prevline = getline(prevlnum)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
45 const currline = getline(v:lnum)
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
46
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
47 # If the current line starts with ], match indentation.
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
48 if currline =~# '^\s*\]'
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
49 return FindPair('\[', '', '\]')
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
50 endif
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
51
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
52 # If the current line starts with }, match indentation.
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
53 if currline =~# '^\s*}'
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
54 return FindPair('{', '', '}')
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
55 endif
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
56
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
57 # If the previous line ends with [ or { (possibly followed by a comment) then indent.
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
58 if prevline =~# '[{[]\s*\%(%.*\)\=$'
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
59 return prevind + shiftwidth()
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
60 endif
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
61
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 return -1
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
63 enddef
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 10301
diff changeset
65 # vim: sw=2 fdm=marker