Update runtime files

This commit is contained in:
Bram Moolenaar
2018-10-19 16:22:31 +02:00
parent 04c86d27fe
commit 2c64ca1802
16 changed files with 198 additions and 96 deletions

View File

@ -3,7 +3,7 @@
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com ) " Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) " Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
" URL: https://github.com/shawncplus/phpcomplete.vim " URL: https://github.com/shawncplus/phpcomplete.vim
" Last Change: 2016 Oct 10 " Last Change: 2018 Oct 10
" "
" OPTIONS: " OPTIONS:
" "
@ -146,6 +146,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
end end
try try
let eventignore = &eventignore
let &eventignore = 'all'
let winheight = winheight(0) let winheight = winheight(0)
let winnr = winnr() let winnr = winnr()
@ -216,6 +218,7 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
endif endif
finally finally
silent! exec winnr.'resize '.winheight silent! exec winnr.'resize '.winheight
let &eventignore = eventignore
endtry endtry
endfunction endfunction
" }}} " }}}
@ -1393,23 +1396,28 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
for classstructure in classcontents for classstructure in classcontents
let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>' let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern) let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
if doc_str != '' let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(split(classstructure.content, '\n'), 'function\s\+&\?'.method.'\>')
if doc_str != '' || return_type_hint != ''
break break
endif endif
endfor endfor
if doc_str != '' if doc_str != '' || return_type_hint != ''
let docblock = phpcomplete#ParseDocBlock(doc_str) let docblock = phpcomplete#ParseDocBlock(doc_str)
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0 if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0 || return_type_hint != ''
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : '' if return_type_hint == ''
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
if type == '' if type == ''
for property in docblock.properties for property in docblock.properties
if property.description =~? method if property.description =~? method
let type = property.type let type = property.type
break break
endif endif
endfor endfor
endif endif
else
let type = return_type_hint
end
" there's a namespace in the type, threat the type as FQCN " there's a namespace in the type, threat the type as FQCN
if type =~ '\\' if type =~ '\\'
@ -1483,7 +1491,7 @@ function! phpcomplete#GetMethodStack(line) " {{{
continue continue
endif endif
" if it's looks like a string " if it looks like a string
if current_char == "'" || current_char == '"' if current_char == "'" || current_char == '"'
" and it is not escaped " and it is not escaped
if prev_char != '\' || (prev_char == '\' && prev_prev_char == '\') if prev_char != '\' || (prev_char == '\' && prev_prev_char == '\')
@ -1587,9 +1595,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif function_file != '' && filereadable(function_file) elseif function_file != '' && filereadable(function_file)
let file_lines = readfile(function_file) let file_lines = readfile(function_file)
let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>') let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(file_lines, 'function\s*&\?'.function_name.'\>')
let docblock = phpcomplete#ParseDocBlock(docblock_str) let docblock = phpcomplete#ParseDocBlock(docblock_str)
if has_key(docblock.return, 'type') let type = has_key(docblock.return, 'type') ? docblock.return.type : return_type_hint
let classname_candidate = docblock.return.type if type != ''
let classname_candidate = type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines) let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file " try to expand the classname of the returned type with the context got from the function's source file
@ -1821,9 +1831,11 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
elseif function_file != '' && filereadable(function_file) elseif function_file != '' && filereadable(function_file)
let file_lines = readfile(function_file) let file_lines = readfile(function_file)
let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>') let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>')
let return_type_hint = phpcomplete#GetFunctionReturnTypeHint(file_lines, 'function\s*&\?'.function_name.'\>')
let docblock = phpcomplete#ParseDocBlock(docblock_str) let docblock = phpcomplete#ParseDocBlock(docblock_str)
if has_key(docblock.return, 'type') let type = has_key(docblock.return, 'type') ? docblock.return.type : return_type_hint
let classname_candidate = docblock.return.type if type != ''
let classname_candidate = type
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines) let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
" try to expand the classname of the returned type with the context got from the function's source file " try to expand the classname of the returned type with the context got from the function's source file
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports) let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
@ -2413,6 +2425,44 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
endfunction endfunction
" }}} " }}}
function! phpcomplete#GetFunctionReturnTypeHint(sccontent, search)
let i = 0
let l = 0
let function_line_start = -1
let function_line_end = -1
let sccontent_len = len(a:sccontent)
let return_type = ''
while (i < sccontent_len)
let line = a:sccontent[i]
" search for a function declaration
if line =~? a:search
let l = i
let function_line_start = i
" now search for the first { where the function body starts
while l < sccontent_len
let line = a:sccontent[l]
if line =~? '\V{'
let function_line_end = l
break
endif
let l += 1
endwhile
break
endif
let i += 1
endwhile
" now grab the lines that holds the function declaration line
if function_line_start != -1 && function_line_end != -1
let function_line = join(a:sccontent[function_line_start :function_line_end], " ")
let class_name_pattern = '[a-zA-Z_\x7f-\xff\\][a-zA-Z_0-9\x7f-\xff\\]*'
let return_type = matchstr(function_line, '\c\s*:\s*\zs'.class_name_pattern.'\ze\s*{')
endif
return return_type
endfunction
function! phpcomplete#GetTypeFromDocBlockParam(docblock_type) " {{{ function! phpcomplete#GetTypeFromDocBlockParam(docblock_type) " {{{
if a:docblock_type !~ '|' if a:docblock_type !~ '|'
return a:docblock_type return a:docblock_type
@ -2572,7 +2622,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
" find kind flags from tags or built in methods for the objects we extracted " find kind flags from tags or built in methods for the objects we extracted
" they can be either classes, interfaces or namespaces, no other thing is importable in php " they can be either classes, interfaces or namespaces, no other thing is importable in php
for [key, import] in items(imports) for [key, import] in items(imports)
" if theres a \ in the name we have it's definetly not a built in thing, look for tags " if theres a \ in the name we have it's definitely not a built in thing, look for tags
if import.name =~ '\\' if import.name =~ '\\'
let patched_ctags_detected = 0 let patched_ctags_detected = 0
let [classname, namespace_for_classes] = phpcomplete#ExpandClassName(import.name, '\', {}) let [classname, namespace_for_classes] = phpcomplete#ExpandClassName(import.name, '\', {})

View File

@ -301,6 +301,7 @@ Name triggered by ~
|FileChangedShellPost| After handling a file changed since editing started |FileChangedShellPost| After handling a file changed since editing started
|FileChangedRO| before making the first change to a read-only file |FileChangedRO| before making the first change to a read-only file
|DiffUpdated| after diffs have been updated
|DirChanged| after the working directory has changed |DirChanged| after the working directory has changed
|ShellCmdPost| after executing a shell command |ShellCmdPost| after executing a shell command

View File

@ -534,8 +534,46 @@ after a command causes the rest of the line to be ignored. This can be used
to add comments. Example: > to add comments. Example: >
:set ai "set 'autoindent' option :set ai "set 'autoindent' option
It is not possible to add a comment to a shell command ":!cmd" or to the It is not possible to add a comment to a shell command ":!cmd" or to the
":map" command and a few others, because they see the '"' as part of their ":map" command and a few others (mainly commands that expect expressions)
argument. This is mentioned where the command is explained. that see the '"' as part of their argument:
:argdo
:autocmd
:bufdo
:cexpr (and the like)
:call
:cdo (and the like)
:command
:cscope (and the like)
:debug
:display
:echo (and the like)
:elseif
:execute
:folddoopen
:folddoclosed
:for
:grep (and the like)
:help (and the like)
:if
:let
:make
:map (and the like including :abbrev commands)
:menu (and the like)
:mkspell
:normal
:ownsyntax
:popup
:promptfind (and the like)
:registers
:return
:sort
:syntax
:tabdo
:tearoff
:vimgrep (and the like)
:while
:windo
*:bar* *:\bar* *:bar* *:\bar*
'|' can be used to separate commands, so you can give multiple commands in one '|' can be used to separate commands, so you can give multiple commands in one

View File

@ -2038,7 +2038,8 @@ assert_equalfile({fname-one}, {fname-two})
Number assert file contents is equal Number assert file contents is equal
assert_exception({error} [, {msg}]) assert_exception({error} [, {msg}])
Number assert {error} is in v:exception Number assert {error} is in v:exception
assert_fails({cmd} [, {error}]) Number assert {cmd} fails assert_fails({cmd} [, {error} [, {msg}]])
Number assert {cmd} fails
assert_false({actual} [, {msg}]) assert_false({actual} [, {msg}])
Number assert {actual} is false Number assert {actual} is false
assert_inrange({lower}, {upper}, {actual} [, {msg}]) assert_inrange({lower}, {upper}, {actual} [, {msg}])
@ -2461,7 +2462,7 @@ term_setkill({buf}, {how}) none set signal to stop job in terminal
term_setrestore({buf}, {command}) none set command to restore terminal term_setrestore({buf}, {command}) none set command to restore terminal
term_setsize({buf}, {rows}, {cols}) term_setsize({buf}, {rows}, {cols})
none set the size of a terminal none set the size of a terminal
term_start({cmd}, {options}) Job open a terminal window and run a job term_start({cmd}, {options}) Number open a terminal window and run a job
term_wait({buf} [, {time}]) Number wait for screen to be updated term_wait({buf} [, {time}]) Number wait for screen to be updated
test_alloc_fail({id}, {countdown}, {repeat}) test_alloc_fail({id}, {countdown}, {repeat})
none make memory allocation fail none make memory allocation fail
@ -2475,8 +2476,8 @@ test_null_job() Job null value for testing
test_null_list() List null value for testing test_null_list() List null value for testing
test_null_partial() Funcref null value for testing test_null_partial() Funcref null value for testing
test_null_string() String null value for testing test_null_string() String null value for testing
test_option_not_set({name}) none reset flag indicating option was set test_option_not_set({name}) none reset flag indicating option was set
test_override({expr}, {val}) none test with Vim internal overrides test_override({expr}, {val}) none test with Vim internal overrides
test_scrollbar({which}, {value}, {dragging}) test_scrollbar({which}, {value}, {dragging})
none scroll in the GUI for testing none scroll in the GUI for testing
test_settime({expr}) none set current time for testing test_settime({expr}) none set current time for testing
@ -2671,7 +2672,7 @@ assert_exception({error} [, {msg}]) *assert_exception()*
call assert_exception('E492:') call assert_exception('E492:')
endtry endtry
assert_fails({cmd} [, {error}]) *assert_fails()* assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does Run {cmd} and add an error message to |v:errors| if it does
NOT produce an error. Also see |assert-return|. NOT produce an error. Also see |assert-return|.
When {error} is given it must match in |v:errmsg|. When {error} is given it must match in |v:errmsg|.

View File

@ -496,7 +496,7 @@ unexpectedly less attractive or even deteriorates their usability. Keep this
in mind always when you try improving a theme. in mind always when you try improving a theme.
Example 3. border color Example 3. border color ~
To eliminate borders when maximized: > To eliminate borders when maximized: >

View File

@ -225,4 +225,4 @@ will try to find help for it. Especially for options in single quotes, e.g.
'compatible'. 'compatible'.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl: vim:tw=78:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl:

View File

@ -941,6 +941,11 @@ Indent after a nested paren: >
Indent for a continuation line: > Indent for a continuation line: >
let g:pyindent_continue = '&sw * 2' let g:pyindent_continue = '&sw * 2'
The method uses searchpair() to look back for unclosed parenthesis. This can
sometimes be slow, thus it timeouts after 150 msec. If you notice the
indenting isn't correct, you can set a larger timeout in msec: >
let g:pyindent_searchpair_timeout = 500
R *ft-r-indent* R *ft-r-indent*

View File

@ -3895,8 +3895,8 @@ A jump table for the options with a short description can be found at |Q_op|.
screen. screen.
*'guioptions'* *'go'* *'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLtT" (MS-Windows, "t" is 'guioptions' 'go' string (default "egmrLtT" (MS-Windows,
removed in |defaults.vim|), "t" is removed in |defaults.vim|),
"aegimrLtT" (GTK, Motif and Athena), "aegimrLtT" (GTK, Motif and Athena),
) )
global global

View File

@ -83,10 +83,10 @@ There is no solution for this yet.
ctags out there, that does it right, but we can't be sure. So this seems to ctags out there, that does it right, but we can't be sure. So this seems to
be a permanent restriction. be a permanent restriction.
- The cscope interface (|cscope|) doesn't work for the version of cscope - The cscope interface (|cscope|) doesn't work for the version of cscope that
that we use on our mainframe. We have a copy of version 15.0b12, and it we use on our mainframe. We have a copy of version 15.0b12, and it causes
causes Vim to hang when using the "cscope add" command. I'm guessing that Vim to hang when using the "cscope add" command. I'm guessing that the
the binary format of the cscope database isn't quite what Vim is expecting. binary format of the cscope database isn't quite what Vim is expecting.
I've tried to port the current version of cscope (15.3) to z/OS, without I've tried to port the current version of cscope (15.3) to z/OS, without
much success. If anyone is interested in trying, drop me a line if you much success. If anyone is interested in trying, drop me a line if you
make any progress. make any progress.
@ -131,4 +131,4 @@ Also look at:
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
vim:tw=78:fo=tcq2:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -303,4 +303,4 @@ A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico. 'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico.
vim:tw=78:fo=tcq2:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -38,17 +38,8 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Test_scrollbars() fails with X11-Athena GUI or X11-Motif GUI Using freed memory in quickfix. (Dominique Pelle, Yegappan is looking into a
(Dominique, #3451) fix).
Flashing highlighting with 'rnu' and folding.
(Vitaly Yashin, 2018 Sep 26, #3484)
Still a cursorline problem. (Justin Keyes, #3488)
Crash with recursive use of getcmdline() from Timer. save_ccline isn't used
then. Turn it around: When getcmdline() is called it checks if it is a
recursive call, and saves the cmdline then. (#3493)
'incsearch' with :s: (#3321) 'incsearch' with :s: (#3321)
- :s/foo using CTRL-G moves to another line, should not happen, or use the - :s/foo using CTRL-G moves to another line, should not happen, or use the
@ -59,8 +50,6 @@ recursive call, and saves the cmdline then. (#3493)
isn't one? isn't one?
Then :%s?foo should take the first match above the cursor line. Then :%s?foo should take the first match above the cursor line.
Don't set diffexpr when generating _vimrc for MS-Windows.
Prompt buffer: Prompt buffer:
- Add a command line history. - Add a command line history.
- delay next prompt until plugin gives OK? - delay next prompt until plugin gives OK?
@ -75,6 +64,7 @@ Terminal debugger:
Terminal emulator window: Terminal emulator window:
- GUI: When using ":set go+=!" a system() call causes the hit-enter prompt. - GUI: When using ":set go+=!" a system() call causes the hit-enter prompt.
(#3327) (#3327)
- GUI: hang until key typed. (#3530)
- When the job in the terminal doesn't use mouse events, let the scroll wheel - When the job in the terminal doesn't use mouse events, let the scroll wheel
scroll the scrollback, like a terminal does at the shell prompt. #2490 scroll the scrollback, like a terminal does at the shell prompt. #2490
And use modeless selection. #2962 And use modeless selection. #2962
@ -105,6 +95,9 @@ Terminal emulator window:
Key mapping times out when using a timer in Gvim. (Michael Henry, 2018 Sep 9, Key mapping times out when using a timer in Gvim. (Michael Henry, 2018 Sep 9,
#3417) #3417)
Patch to check for directory access in term_start(). (Jason Franklin, 2018 Oct
15)
Does not build with MinGW out of the box: Does not build with MinGW out of the box:
- _stat64 is not defined, need to use "struct stat" in vim.h - _stat64 is not defined, need to use "struct stat" in vim.h
- WINVER conflict, should use 0x0600 by default? - WINVER conflict, should use 0x0600 by default?
@ -115,33 +108,55 @@ Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
Errors found with random data: Errors found with random data:
heap-buffer-overflow in alist_add (#2472) heap-buffer-overflow in alist_add (#2472)
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Improve fallback for menu translations, to avoid having to create lots of Improve fallback for menu translations, to avoid having to create lots of
files that source the actual file. E.g. menu_da_de -> menu_da files that source the actual file. E.g. menu_da_de -> menu_da
Include part of #3242? Include part of #3242?
When a terminal exit_cb closes the window, a following typed key is lost, if
it's in a mapping. (2018 Oct 6, #2302, #3522)
Completion mixes results from the current buffer with tags and other files. Completion mixes results from the current buffer with tags and other files.
Happens when typing CTRL-N while still search for results. E.g., type "b_" in Happens when typing CTRL-N while still search for results. E.g., type "b_" in
terminal.c and then CTRL-N twice. terminal.c and then CTRL-N twice.
Should do current file first and not split it up when more results are found. Should do current file first and not split it up when more results are found.
(Also #1890) (Also #1890)
C syntax: {} inside () causes following {} to be highlighted as error.
(Michalis Giannakidis, 2006 Jun 1)
More warnings from static analysis: More warnings from static analysis:
https://lgtm.com/projects/g/vim/vim/alerts/?mode=list https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
Quickfix accessing free memory. (Dominique, 2018 Oct 13, #3538)
Yegappan will look into it.
Patch for this: (Aron Widforss, 2018 Oct 13, #3539)
missing a test.
7 Make 'scrolloff' a global-local option, so that it can be different in the
quickfix window, for example. (Gary Holloway)
Also do 'sidescrolloff'.
Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17) Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
Related to bracketed paste. I cannot reproduce it. Related to bracketed paste. I cannot reproduce it.
":mksession" cannot handle a very long 'runtimepath'. (Timothy Madden, 21 Sep ":mksession" cannot handle a very long 'runtimepath'. (Timothy Madden, 21 Sep
2018, #3466) 2018, #3466) Christian is working on a patch.
Patch in pull request #2967: Allow white space in sign text. (Ben Jackson) Patch in pull request #2967: Allow white space in sign text. (Ben Jackson)
Test fails in AppVeyor. Test fails in AppVeyor.
Job_info() returns command without backslashes. (Daniel Hahler, 2018 Sep 3,
#3404)
Patch to simplify nsis installer. (Ken Takata, 2018 Sep 24, was #3479) Patch to simplify nsis installer. (Ken Takata, 2018 Sep 24, was #3479)
Now included in #3501, using MUI2. Now included in #3501, using MUI2. Use the zip file to get the binary files:
https://github.com/vim/vim/files/2475621/nsis-icons.zip
Still being worked on.
ml_get error: (Israel Chauca Fuentes, 2018 Oct 17, #3550).
Patch to convert temp file name. (Yasuhiro Matsumoto, #3520)
Not ready to include yet.
Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug. Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug.
(Dominique Pelle, 2018 Jul 16) (Dominique Pelle, 2018 Jul 16)
@ -156,24 +171,11 @@ Invalid memory access with old regexp engine. (Dominique Pelle, 2018 Sep 3,
Add function to make use of internal diff, working on two lists and returning Add function to make use of internal diff, working on two lists and returning
unified diff (list of lines). unified diff (list of lines).
Memory leak in test_assert: Patch to implement 'diffref' option. (#3535)
==19127== by 0x2640D7: alloc (misc2.c:874) Easier to use a 'diffmaster' option, is the extra complexity needed?
==19127== by 0x2646D6: vim_strsave (misc2.c:1315)
==19127== by 0x1B68D2: f_getcwd (evalfunc.c:4950)
And:
==19127== by 0x2640D7: alloc (misc2.c:874)
==19127== by 0x1A9477: set_var (eval.c:7601)
==19127== by 0x19F96F: set_var_lval (eval.c:2233)
==19127== by 0x19EA3A: ex_let_one (eval.c:1810)
==19127== by 0x19D737: ex_let_vars (eval.c:1294)
==19127== by 0x19D6B4: ex_let (eval.c:1259)
Memory leaks in test_channel? (or is it because of fork()) Memory leaks in test_channel? (or is it because of fork())
Using uninitialized value in test_crypt. Using uninitialized value in test_crypt.
Memory leaks in test_escaped_glob
==20651== by 0x2640D7: alloc (misc2.c:874)
==20651== by 0x2646D6: vim_strsave (misc2.c:1315)
==20651== by 0x3741EA: get_function_args (userfunc.c:131)
==20651== by 0x378779: ex_function (userfunc.c:2036)
Memory leak in test_terminal: Memory leak in test_terminal:
==23530== by 0x2640D7: alloc (misc2.c:874) ==23530== by 0x2640D7: alloc (misc2.c:874)
==23530== by 0x2646D6: vim_strsave (misc2.c:1315) ==23530== by 0x2646D6: vim_strsave (misc2.c:1315)
@ -198,6 +200,9 @@ Not ready to include.
Patch to support menus in terminal: ":tlmenu". (Yee Cheng Chin, #3439) Patch to support menus in terminal: ":tlmenu". (Yee Cheng Chin, #3439)
:pedit resets the 'buflisted' option unexpectedly. (Wang Shidong, 2018 Oct 12,
#3536)
home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9) home_replace() uses $HOME instead of "homedir". (Cesar Martins, 2018 Aug 9)
When the status line uses term_gettitle(), it does not get updated when the When the status line uses term_gettitle(), it does not get updated when the
@ -233,6 +238,9 @@ Update Mar 5. Update Apr 7. Update Jun 5.
When the last line wraps, selecting with the mouse below that line only When the last line wraps, selecting with the mouse below that line only
includes the first screen line. (2018 Aug 23, #3368) includes the first screen line. (2018 Aug 23, #3368)
Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
#2322) Patch now in #2856.
Refactored HTML indent file. (Michael Lee, #1821) Refactored HTML indent file. (Michael Lee, #1821)
Patch to add getregpoint() and setreg() with an option to set "". Patch to add getregpoint() and setreg() with an option to set "".
@ -260,6 +268,11 @@ characters. (#3246)
'foldtext' is evaluated too often. (Daniel Hahler, #2773) 'foldtext' is evaluated too often. (Daniel Hahler, #2773)
ml_get error when using a Python script. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5)
Also reproduced by Benjamin Doherty, 2018 Oct 4.
Simpler way: Ken Takata, Oct 6.
Height of quickfix window is not retained with vertical splits. (Lifepillar, Height of quickfix window is not retained with vertical splits. (Lifepillar,
2018 Aug 24, #2998) 2018 Aug 24, #2998)
@ -275,6 +288,9 @@ is cleared, to avoid going back to the list of errors buffer (would have two
windows with it). Can we just remove the jump list entries for the quickfix windows with it). Can we just remove the jump list entries for the quickfix
buffer? buffer?
Patch to fix that executable() may fail on very long filename in MS-Windows.
(Ken Takata, 2016 Feb 1, update 2018 Oct 7)
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6) Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1. Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
@ -292,9 +308,6 @@ Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
Maybe call it v:motiontype. Update in #3490) Maybe call it v:motiontype. Update in #3490)
Alternaitve: add the force flag to mode(), after "no". Alternaitve: add the force flag to mode(), after "no".
Patch to fix that executable() may fail on very long filename in MS-Windows.
(Ken Takata, 2016 Feb 1)
Try out background make plugin: Try out background make plugin:
https://github.com/AndrewVos/vim-make-background https://github.com/AndrewVos/vim-make-background
or asyncmake: or asyncmake:
@ -450,9 +463,6 @@ option_save({list}) *option_save()*
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266) directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
Also see #1689. Also see #1689.
ml_get error when using a Python script. (Yggdroot, 2017 Jun 1, #1737)
Lemonboy can reproduce (2017 Jun 5)
crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb crash when removing an element while inside map(). (Nikolai Pavlov, 2018 Feb
17, #2652) 17, #2652)
@ -636,9 +646,6 @@ stack trace. (Yggdroot, 2017 Jul 28, #1887)
Profile of a dict function is lost when the dict is deleted. Would it be Profile of a dict function is lost when the dict is deleted. Would it be
possible to collect this? (Daniel Hahler, #2350) possible to collect this? (Daniel Hahler, #2350)
Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
#2322) Patch now in #2856.
When checking if a bufref is valid, also check the buffer number, to catch the When checking if a bufref is valid, also check the buffer number, to catch the
case of :bwipe followed by :new. case of :bwipe followed by :new.
@ -2412,9 +2419,6 @@ Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007 Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007
Jul 31) Jul 31)
C syntax: {} inside () causes following {} to be highlighted as error.
(Michalis Giannakidis, 2006 Jun 1)
When 'diffopt' has "context:0" a single deleted line causes two folds to merge When 'diffopt' has "context:0" a single deleted line causes two folds to merge
and mess up syncing. (Austin Jennings, 2008 Jan 31) and mess up syncing. (Austin Jennings, 2008 Jan 31)
@ -2877,8 +2881,6 @@ More patches:
- Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11) - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11)
Needs a few tests. Needs a few tests.
- Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3) - Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
- Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
patch May 10)
- Extra argument to strtrans() to translate special keys to their name (Eric - Extra argument to strtrans() to translate special keys to their name (Eric
Arnold, 2006 May 22) Arnold, 2006 May 22)
- 'threglookexp' option: only match with first word in thesaurus file. - 'threglookexp' option: only match with first word in thesaurus file.
@ -5574,9 +5576,6 @@ Options:
that marks if the option was set. Useful to keep the effect of setting that marks if the option was set. Useful to keep the effect of setting
'compatible' after ":syntax on" has been used. 'compatible' after ":syntax on" has been used.
7 There is 'titleold', why is there no 'iconold'? (Chazelas) 7 There is 'titleold', why is there no 'iconold'? (Chazelas)
7 Make 'scrolloff' a global-local option, so that it can be different in the
quickfix window, for example. (Gary Holloway)
Also do 'sidescrolloff'.
External commands: External commands:

View File

@ -53,6 +53,11 @@ function GetPythonIndent(lnum)
return 0 return 0
endif endif
" searchpair() can be slow sometimes, limit the time to 100 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting " If the previous line is inside parenthesis, use the indent of the starting
" line. " line.
" Trick: use the non-existing "dummy" variable to break out of the loop when " Trick: use the non-existing "dummy" variable to break out of the loop when
@ -61,7 +66,8 @@ function GetPythonIndent(lnum)
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW', let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :" \ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'") \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0 if parlnum > 0
let plindent = indent(parlnum) let plindent = indent(parlnum)
let plnumstart = parlnum let plnumstart = parlnum
@ -80,14 +86,16 @@ function GetPythonIndent(lnum)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'") \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0 if p > 0
if p == plnum if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'. " When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'") \ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0 if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth()) return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
endif endif

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: BIND configuration file " Language: BIND configuration file
" Maintainer: Nick Hibma <nick@van-laarhoven.org> " Maintainer: Nick Hibma <nick@van-laarhoven.org>
" Last change: 2007-01-30 " Last Change: 2007-01-30
" Filenames: named.conf, rndc.conf " Filenames: named.conf, rndc.conf
" Location: http://www.van-laarhoven.org/vim/syntax/named.vim " Location: http://www.van-laarhoven.org/vim/syntax/named.vim
" "

View File

@ -3,7 +3,7 @@
" Maintainer: Ken Takata " Maintainer: Ken Takata
" URL: https://github.com/k-takata/vim-nsis " URL: https://github.com/k-takata/vim-nsis
" Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt> " Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
" Last Change: 2018-02-07 " Last Change: 2018-10-02
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
@ -104,8 +104,8 @@ syn match nsisSysVar "$\$"
syn match nsisSysVar "$\\["'`]" syn match nsisSysVar "$\\["'`]"
"LABELS (4.3) "LABELS (4.3)
syn match nsisLocalLabel contained "[^-+!$0-9;#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" syn match nsisLocalLabel contained "[^-+!$0-9;"'#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
syn match nsisGlobalLabel contained "\.[^-+!$0-9;# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" syn match nsisGlobalLabel contained "\.[^-+!$0-9;"'# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
"CONSTANTS "CONSTANTS
syn keyword nsisBoolean contained true false syn keyword nsisBoolean contained true false

View File

@ -905,7 +905,7 @@ Anmerkung: Um die Schreibweise f
1. Stelle sicher, dass Vim nicht im Vi-Kompatibilit<69>tsmodus ist: :set nocp 1. Stelle sicher, dass Vim nicht im Vi-Kompatibilit<69>tsmodus ist: :set nocp
2. Siehe nach, welche Dateien im Verzeichnis existieren: :!ls oder :dir 2. Siehe nach, welche Dateien im Verzeichnis existieren: :!ls oder :!dir
3. Tippe den Beginn eines Kommandos: :e 3. Tippe den Beginn eines Kommandos: :e

View File

@ -905,7 +905,7 @@ Anmerkung: Um die Schreibweise für eine einzige Suche zu ignorieren, benutze \c
1. Stelle sicher, dass Vim nicht im Vi-Kompatibilitätsmodus ist: :set nocp 1. Stelle sicher, dass Vim nicht im Vi-Kompatibilitätsmodus ist: :set nocp
2. Siehe nach, welche Dateien im Verzeichnis existieren: :!ls oder :dir 2. Siehe nach, welche Dateien im Verzeichnis existieren: :!ls oder :!dir
3. Tippe den Beginn eines Kommandos: :e 3. Tippe den Beginn eines Kommandos: :e