mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	@@ -57,7 +57,7 @@ The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
 | 
				
			|||||||
See |autocmd-buflocal|.
 | 
					See |autocmd-buflocal|.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note: The ":autocmd" command can only be followed by another command when the
 | 
					Note: The ":autocmd" command can only be followed by another command when the
 | 
				
			||||||
'|' appears before {cmd}.  This works: >
 | 
					'|' appears where the pattern is expected.  This works: >
 | 
				
			||||||
	:augroup mine | au! BufRead | augroup END
 | 
						:augroup mine | au! BufRead | augroup END
 | 
				
			||||||
But this sees "augroup" as part of the defined command: >
 | 
					But this sees "augroup" as part of the defined command: >
 | 
				
			||||||
	:augroup mine | au! BufRead * | augroup END
 | 
						:augroup mine | au! BufRead * | augroup END
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5136,8 +5136,8 @@ getline({lnum} [, {end}])
 | 
				
			|||||||
		digit, |line()| is called to translate the String into a Number.
 | 
							digit, |line()| is called to translate the String into a Number.
 | 
				
			||||||
		To get the line under the cursor: >
 | 
							To get the line under the cursor: >
 | 
				
			||||||
			getline(".")
 | 
								getline(".")
 | 
				
			||||||
<		When {lnum} is smaller than 1 or bigger than the number of
 | 
					<		When {lnum} is a number smaller than 1 or bigger than the
 | 
				
			||||||
		lines in the buffer, an empty string is returned.
 | 
							number of lines in the buffer, an empty string is returned.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		When {end} is given the result is a |List| where each item is
 | 
							When {end} is given the result is a |List| where each item is
 | 
				
			||||||
		a line from the current buffer in the range {lnum} to {end},
 | 
							a line from the current buffer in the range {lnum} to {end},
 | 
				
			||||||
@@ -7464,15 +7464,18 @@ printf({fmt}, {expr1} ...)				*printf()*
 | 
				
			|||||||
			field width.  If the converted value has fewer bytes
 | 
								field width.  If the converted value has fewer bytes
 | 
				
			||||||
			than the field width, it will be padded with spaces on
 | 
								than the field width, it will be padded with spaces on
 | 
				
			||||||
			the left (or right, if the left-adjustment flag has
 | 
								the left (or right, if the left-adjustment flag has
 | 
				
			||||||
			been given) to fill out the field width.
 | 
								been given) to fill out the field width.  For the S
 | 
				
			||||||
 | 
								conversion the count is in cells.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		.precision
 | 
							.precision
 | 
				
			||||||
			An optional precision, in the form of a period '.'
 | 
								An optional precision, in the form of a period '.'
 | 
				
			||||||
			followed by an optional digit string.  If the digit
 | 
								followed by an optional digit string.  If the digit
 | 
				
			||||||
			string is omitted, the precision is taken as zero.
 | 
								string is omitted, the precision is taken as zero.
 | 
				
			||||||
			This gives the minimum number of digits to appear for
 | 
								This gives the minimum number of digits to appear for
 | 
				
			||||||
			d, o, x, and X conversions, or the maximum number of
 | 
								d, o, x, and X conversions, the maximum number of
 | 
				
			||||||
			bytes to be printed from a string for s conversions.
 | 
								bytes to be printed from a string for s conversions,
 | 
				
			||||||
 | 
								or the maximum number of cells to be printed from a
 | 
				
			||||||
 | 
								string for S conversions.
 | 
				
			||||||
			For floating point it is the number of digits after
 | 
								For floating point it is the number of digits after
 | 
				
			||||||
			the decimal point.
 | 
								the decimal point.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -319,7 +319,7 @@ Hints for translators:
 | 
				
			|||||||
3. Writing help files					*help-writing*
 | 
					3. Writing help files					*help-writing*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For ease of use, a Vim help file for a plugin should follow the format of the
 | 
					For ease of use, a Vim help file for a plugin should follow the format of the
 | 
				
			||||||
standard Vim help files, except fot the fist line.  If you are writing a new
 | 
					standard Vim help files, except for the first line.  If you are writing a new
 | 
				
			||||||
help file it's best to copy one of the existing files and use it as a
 | 
					help file it's best to copy one of the existing files and use it as a
 | 
				
			||||||
template.
 | 
					template.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -332,7 +332,7 @@ remainder of the line, after a Tab, describes the plugin purpose in a short
 | 
				
			|||||||
way.  This will show up in the "LOCAL ADDITIONS" section of the main help
 | 
					way.  This will show up in the "LOCAL ADDITIONS" section of the main help
 | 
				
			||||||
file.  Check there that it shows up properly: |local-additions|.
 | 
					file.  Check there that it shows up properly: |local-additions|.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you want to add a version number of last modification date, put it in the
 | 
					If you want to add a version number or last modification date, put it in the
 | 
				
			||||||
second line, right aligned.
 | 
					second line, right aligned.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
 | 
					At the bottom of the help file, place a Vim modeline to set the 'textwidth'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,6 +81,9 @@ modes.
 | 
				
			|||||||
			Remove the mapping of {lhs} for the modes where the
 | 
								Remove the mapping of {lhs} for the modes where the
 | 
				
			||||||
			map command applies.  The mapping may remain defined
 | 
								map command applies.  The mapping may remain defined
 | 
				
			||||||
			for other modes where it applies.
 | 
								for other modes where it applies.
 | 
				
			||||||
 | 
								It also works when {lhs} matches the {rhs} of a
 | 
				
			||||||
 | 
								mapping. This is for when when an abbreviation
 | 
				
			||||||
 | 
								applied.
 | 
				
			||||||
			Note: Trailing spaces are included in the {lhs}.  This
 | 
								Note: Trailing spaces are included in the {lhs}.  This
 | 
				
			||||||
			unmap does NOT work: >
 | 
								unmap does NOT work: >
 | 
				
			||||||
				:map @@ foo
 | 
									:map @@ foo
 | 
				
			||||||
@@ -320,6 +323,8 @@ Note:
 | 
				
			|||||||
- For the same reason, |keycodes| like <C-R><C-W> are interpreted as plain,
 | 
					- For the same reason, |keycodes| like <C-R><C-W> are interpreted as plain,
 | 
				
			||||||
  unmapped keys.
 | 
					  unmapped keys.
 | 
				
			||||||
- The command is not echo'ed, no need for <silent>.
 | 
					- The command is not echo'ed, no need for <silent>.
 | 
				
			||||||
 | 
					- The {rhs} is not subject to abbreviations nor to other mappings, even if the
 | 
				
			||||||
 | 
					  mapping is recursive.
 | 
				
			||||||
- In Visual mode  you can use `line('v')` and `col('v')` to get one end of the
 | 
					- In Visual mode  you can use `line('v')` and `col('v')` to get one end of the
 | 
				
			||||||
  Visual area, the cursor is at the other end.
 | 
					  Visual area, the cursor is at the other end.
 | 
				
			||||||
- In select-mode, |:map| and |:vmap| command mappings are executed in
 | 
					- In select-mode, |:map| and |:vmap| command mappings are executed in
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -292,7 +292,7 @@ to newer commands.
 | 
				
			|||||||
There are actually five histories.  The ones we will mention here are for ":"
 | 
					There are actually five histories.  The ones we will mention here are for ":"
 | 
				
			||||||
commands and for "/" and "?" search commands.  The "/" and "?" commands share
 | 
					commands and for "/" and "?" search commands.  The "/" and "?" commands share
 | 
				
			||||||
the same history, because they are both search commands.  The three other
 | 
					the same history, because they are both search commands.  The three other
 | 
				
			||||||
histories are for expressions, debug more commands and input lines for the
 | 
					histories are for expressions, debug mode commands and input lines for the
 | 
				
			||||||
input() function.  |cmdline-history|
 | 
					input() function.  |cmdline-history|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Suppose you have done a ":set" command, typed ten more colon commands and then
 | 
					Suppose you have done a ":set" command, typed ten more colon commands and then
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -360,7 +360,8 @@ same amount of text as the last time:
 | 
				
			|||||||
  last line the same number of characters as in the last line the last time.
 | 
					  last line the same number of characters as in the last line the last time.
 | 
				
			||||||
The start of the text is the Cursor position.  If the "$" command was used as
 | 
					The start of the text is the Cursor position.  If the "$" command was used as
 | 
				
			||||||
one of the last commands to extend the highlighted text, the repeating will
 | 
					one of the last commands to extend the highlighted text, the repeating will
 | 
				
			||||||
be applied up to the rightmost column of the longest line.
 | 
					be applied up to the rightmost column of the longest line.  Any count passed
 | 
				
			||||||
 | 
					to the `.` command is not used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,8 @@
 | 
				
			|||||||
" Vim filetype plugin file
 | 
					" Vim filetype plugin file
 | 
				
			||||||
" Language:             indent(1) configuration file
 | 
					" Language:		indent(1) configuration file
 | 
				
			||||||
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
 | 
					" Maintainer:		Doug Kearns <dougkearns@gmail.com>
 | 
				
			||||||
" Latest Revision:      2008-07-09
 | 
					" Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
 | 
				
			||||||
 | 
					" Latest Revision:	2008-07-09
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if exists("b:did_ftplugin")
 | 
					if exists("b:did_ftplugin")
 | 
				
			||||||
  finish
 | 
					  finish
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,44 +1,70 @@
 | 
				
			|||||||
" Vim filetype plugin file
 | 
					" Vim filetype plugin file
 | 
				
			||||||
" Language:	VisualBasic (ft=vb)
 | 
					" Language:		Visual Basic (ft=vb)
 | 
				
			||||||
" Maintainer:	Johannes Zellner <johannes@zellner.org>
 | 
					" Maintainer:		Doug Kearns <dougkearns@gmail.com>
 | 
				
			||||||
" Last Change:	Thu, 22 Nov 2001 12:56:14 W. Europe Standard Time
 | 
					" Previous Maintainer:	Johannes Zellner <johannes@zellner.org>
 | 
				
			||||||
 | 
					" Last Change:		2021 Nov 17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if exists("b:did_ftplugin") | finish | endif
 | 
					if exists("b:did_ftplugin")
 | 
				
			||||||
 | 
					  finish
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
let b:did_ftplugin = 1
 | 
					let b:did_ftplugin = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setlocal com=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
 | 
					let s:cpo_save = &cpo
 | 
				
			||||||
 | 
					set cpo&vim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setlocal comments=sr:'\ -,mb:'\ \ ,el:'\ \ ,:'
 | 
				
			||||||
 | 
					setlocal commentstring='\ %s
 | 
				
			||||||
 | 
					setlocal formatoptions-=t formatoptions+=croql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let b:undo_ftplugin = "setlocal com< cms< fo<"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" we need this wrapper, as call doesn't allow a count
 | 
					" we need this wrapper, as call doesn't allow a count
 | 
				
			||||||
fun! <SID>VbSearch(pattern, flags)
 | 
					function! s:VbSearch(pattern, flags)
 | 
				
			||||||
    let cnt = v:count1
 | 
					    let cnt = v:count1
 | 
				
			||||||
    while cnt > 0
 | 
					    while cnt > 0
 | 
				
			||||||
	call search(a:pattern, a:flags)
 | 
						call search(a:pattern, a:flags)
 | 
				
			||||||
	let cnt = cnt - 1
 | 
						let cnt = cnt - 1
 | 
				
			||||||
    endwhile
 | 
					    endwhile
 | 
				
			||||||
endfun
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let s:cpo_save = &cpo
 | 
					if !exists("no_plugin_maps") && !exists("no_vb_maps")
 | 
				
			||||||
set cpo&vim
 | 
					  nnoremap <buffer> <silent> [[ <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sbW')<CR>
 | 
				
			||||||
 | 
					  vnoremap <buffer> <silent> [[ <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sbW')<CR>
 | 
				
			||||||
 | 
					  nnoremap <buffer> <silent> ]] <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sW')<CR>
 | 
				
			||||||
 | 
					  vnoremap <buffer> <silent> ]] <Cmd>call <SID>VbSearch('^\s*\%(\%(private\<Bar>public\)\s\+\)\=\%(function\<Bar>sub\)', 'sW')<CR>
 | 
				
			||||||
 | 
					  nnoremap <buffer> <silent> [] <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sbW')<CR>
 | 
				
			||||||
 | 
					  vnoremap <buffer> <silent> [] <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sbW')<CR>
 | 
				
			||||||
 | 
					  nnoremap <buffer> <silent> ][ <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sW')<CR>
 | 
				
			||||||
 | 
					  vnoremap <buffer> <silent> ][ <Cmd>call <SID>VbSearch('^\s*end\s\+\%(function\<Bar>sub\)', 'sW')<CR>
 | 
				
			||||||
 | 
					  let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> [[' | sil! exe 'vunmap <buffer> [['" .
 | 
				
			||||||
 | 
						\		 " | sil! exe 'nunmap <buffer> ]]' | sil! exe 'vunmap <buffer> ]]'" .
 | 
				
			||||||
 | 
						\		 " | sil! exe 'nunmap <buffer> []' | sil! exe 'vunmap <buffer> []'" .
 | 
				
			||||||
 | 
						\		 " | sil! exe 'nunmap <buffer> ][' | sil! exe 'vunmap <buffer> ]['"
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" NOTE the double escaping \\|
 | 
					" TODO: line start anchors are almost certainly overly restrictive - allow
 | 
				
			||||||
nnoremap <buffer> <silent> [[ :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'bW')<cr>
 | 
					" after statement separators.  Even in QuickBasic only block IF statements
 | 
				
			||||||
nnoremap <buffer> <silent> ]] :call <SID>VbSearch('^\s*\(\(private\|public\)\s\+\)\=\(function\\|sub\)', 'W')<cr>
 | 
					" were required to be at the start of a line.
 | 
				
			||||||
nnoremap <buffer> <silent> [] :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'bW')<cr>
 | 
					if exists("loaded_matchit") && !exists("b:match_words")
 | 
				
			||||||
nnoremap <buffer> <silent> ][ :call <SID>VbSearch('^\s*\<end\>\s\+\(function\\|sub\)', 'W')<cr>
 | 
					  let b:match_ignorecase = 1
 | 
				
			||||||
 | 
					  let b:match_words =
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*\%($\|''\):\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
 | 
				
			||||||
 | 
						\ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
 | 
				
			||||||
 | 
					  let b:undo_ftplugin .= " | unlet! b:match_words b:match_ignorecase"
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" matchit support
 | 
					if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
 | 
				
			||||||
if exists("loaded_matchit")
 | 
					  let b:browsefilter = "Visual Basic Source Files (*.bas)\t*.bas\n" .
 | 
				
			||||||
    let b:match_ignorecase=1
 | 
						\	       "Visual Basic Form Files (*.frm)\t*.frm\n" .
 | 
				
			||||||
    let b:match_words=
 | 
						\	       "All Files (*.*)\t*.*\n"
 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<if\>.*\<then\>\s*$:\%(^\s*\)\@<=\<else\>:\%(^\s*\)\@<=\<elseif\>:\%(^\s*\)\@<=\<end\>\s\+\<if\>,' .
 | 
					  let b:undo_ftplugin .= " | unlet! b:browsefilter"
 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<for\>:\%(^\s*\)\@<=\<next\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<while\>:\%(^\s*\)\@<=\<wend\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<do\>:\%(^\s*\)\@<=\<loop\>\s\+\<while\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<select\>\s\+\<case\>:\%(^\s*\)\@<=\<case\>:\%(^\s*\)\@<=\<end\>\s\+\<select\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<enum\>:\%(^\s*\)\@<=\<end\>\s\<enum\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\<with\>:\%(^\s*\)\@<=\<end\>\s\<with\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<function\>\s\+\([^ \t(]\+\):\%(^\s*\)\@<=\<\1\>\s*=:\%(^\s*\)\@<=\<end\>\s\+\<function\>,' .
 | 
					 | 
				
			||||||
    \ '\%(^\s*\)\@<=\%(\<\%(private\|public\)\>\s\+\)\=\<sub\>\s\+:\%(^\s*\)\@<=\<end\>\s\+\<sub\>'
 | 
					 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let &cpo = s:cpo_save
 | 
					let &cpo = s:cpo_save
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										180
									
								
								runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										180
									
								
								runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
									
									
									
									
										vendored
									
									
								
							@@ -2,7 +2,7 @@
 | 
				
			|||||||
"
 | 
					"
 | 
				
			||||||
" Author: Bram Moolenaar
 | 
					" Author: Bram Moolenaar
 | 
				
			||||||
" Copyright: Vim license applies, see ":help license"
 | 
					" Copyright: Vim license applies, see ":help license"
 | 
				
			||||||
" Last Change: 2021 Nov 14
 | 
					" Last Change: 2021 Nov 21
 | 
				
			||||||
"
 | 
					"
 | 
				
			||||||
" WORK IN PROGRESS - Only the basics work
 | 
					" WORK IN PROGRESS - Only the basics work
 | 
				
			||||||
" Note: On MS-Windows you need a recent version of gdb.  The one included with
 | 
					" Note: On MS-Windows you need a recent version of gdb.  The one included with
 | 
				
			||||||
@@ -289,8 +289,9 @@ func s:StartDebug_term(dict)
 | 
				
			|||||||
    call chansend(s:gdb_job_id, 'set args ' . join(proc_args) . "\r")
 | 
					    call chansend(s:gdb_job_id, 'set args ' . join(proc_args) . "\r")
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " Connect gdb to the communication pty, using the GDB/MI interface
 | 
					  " Connect gdb to the communication pty, using the GDB/MI interface.
 | 
				
			||||||
  call chansend(s:gdb_job_id, 'new-ui mi ' . commpty . "\r")
 | 
					  " Prefix "server" to avoid adding this to the history.
 | 
				
			||||||
 | 
					  call chansend(s:gdb_job_id, 'server new-ui mi ' . commpty . "\r")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " Wait for the response to show up, users may not notice the error and wonder
 | 
					  " Wait for the response to show up, users may not notice the error and wonder
 | 
				
			||||||
  " why the debugger doesn't work.
 | 
					  " why the debugger doesn't work.
 | 
				
			||||||
@@ -309,7 +310,7 @@ func s:StartDebug_term(dict)
 | 
				
			|||||||
        let response = line1 . line2
 | 
					        let response = line1 . line2
 | 
				
			||||||
        if response =~ 'Undefined command'
 | 
					        if response =~ 'Undefined command'
 | 
				
			||||||
          echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
 | 
					          echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
 | 
				
			||||||
	  call s:CloseBuffers()
 | 
					          call s:CloseBuffers()
 | 
				
			||||||
          return
 | 
					          return
 | 
				
			||||||
        endif
 | 
					        endif
 | 
				
			||||||
        if response =~ 'New UI allocated'
 | 
					        if response =~ 'New UI allocated'
 | 
				
			||||||
@@ -504,7 +505,7 @@ func TermDebugSendCommand(cmd)
 | 
				
			|||||||
        " needed once.
 | 
					        " needed once.
 | 
				
			||||||
        call jobstop(s:gdbjob)
 | 
					        call jobstop(s:gdbjob)
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        call s:SendCommand('-exec-interrupt')
 | 
					        Stop
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
      sleep 10m
 | 
					      sleep 10m
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
@@ -595,14 +596,14 @@ func s:DecodeMessage(quotedText)
 | 
				
			|||||||
    if a:quotedText[i] == '\'
 | 
					    if a:quotedText[i] == '\'
 | 
				
			||||||
      let i += 1
 | 
					      let i += 1
 | 
				
			||||||
      if a:quotedText[i] == 'n'
 | 
					      if a:quotedText[i] == 'n'
 | 
				
			||||||
	" drop \n
 | 
					        " drop \n
 | 
				
			||||||
	let i += 1
 | 
					        let i += 1
 | 
				
			||||||
	continue
 | 
					        continue
 | 
				
			||||||
      elseif a:quotedText[i] == 't'
 | 
					      elseif a:quotedText[i] == 't'
 | 
				
			||||||
	" append \t
 | 
					        " append \t
 | 
				
			||||||
	let i += 1
 | 
					        let i += 1
 | 
				
			||||||
	let result .= "\t"
 | 
					        let result .= "\t"
 | 
				
			||||||
	continue
 | 
					        continue
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    let result .= a:quotedText[i]
 | 
					    let result .= a:quotedText[i]
 | 
				
			||||||
@@ -657,8 +658,8 @@ func s:EndDebugCommon()
 | 
				
			|||||||
    if bufexists(bufnr)
 | 
					    if bufexists(bufnr)
 | 
				
			||||||
      exe bufnr .. "buf"
 | 
					      exe bufnr .. "buf"
 | 
				
			||||||
      if exists('b:save_signcolumn')
 | 
					      if exists('b:save_signcolumn')
 | 
				
			||||||
	let &signcolumn = b:save_signcolumn
 | 
					        let &signcolumn = b:save_signcolumn
 | 
				
			||||||
	unlet b:save_signcolumn
 | 
					        unlet b:save_signcolumn
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
  endfor
 | 
					  endfor
 | 
				
			||||||
@@ -769,7 +770,7 @@ func s:CommOutput(job_id, msgs, event)
 | 
				
			|||||||
    elseif msg != ''
 | 
					    elseif msg != ''
 | 
				
			||||||
      if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
 | 
					      if msg =~ '^\(\*stopped\|\*running\|=thread-selected\)'
 | 
				
			||||||
        call s:HandleCursor(msg)
 | 
					        call s:HandleCursor(msg)
 | 
				
			||||||
      elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,'
 | 
					      elseif msg =~ '^\^done,bkpt=' || msg =~ '^=breakpoint-created,' || msg =~ '^=breakpoint-modified,'
 | 
				
			||||||
        call s:HandleNewBreakpoint(msg)
 | 
					        call s:HandleNewBreakpoint(msg)
 | 
				
			||||||
      elseif msg =~ '^=breakpoint-deleted,'
 | 
					      elseif msg =~ '^=breakpoint-deleted,'
 | 
				
			||||||
        call s:HandleBreakpointDelete(msg)
 | 
					        call s:HandleBreakpointDelete(msg)
 | 
				
			||||||
@@ -809,12 +810,15 @@ func s:InstallCommands()
 | 
				
			|||||||
  command Finish call s:SendCommand('-exec-finish')
 | 
					  command Finish call s:SendCommand('-exec-finish')
 | 
				
			||||||
  command -nargs=* Run call s:Run(<q-args>)
 | 
					  command -nargs=* Run call s:Run(<q-args>)
 | 
				
			||||||
  command -nargs=* Arguments call s:SendCommand('-exec-arguments ' . <q-args>)
 | 
					  command -nargs=* Arguments call s:SendCommand('-exec-arguments ' . <q-args>)
 | 
				
			||||||
  command Stop call s:SendCommand('-exec-interrupt')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " using -exec-continue results in CTRL-C in gdb window not working
 | 
					 | 
				
			||||||
  if s:way == 'prompt'
 | 
					  if s:way == 'prompt'
 | 
				
			||||||
 | 
					    command Stop call s:PromptInterrupt()
 | 
				
			||||||
    command Continue call s:SendCommand('continue')
 | 
					    command Continue call s:SendCommand('continue')
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
 | 
					    command Stop call s:SendCommand('-exec-interrupt')
 | 
				
			||||||
 | 
					    " using -exec-continue results in CTRL-C in the gdb window not working,
 | 
				
			||||||
 | 
					    " communicating via commbuf (= use of SendCommand) has the same result
 | 
				
			||||||
 | 
					    "command Continue  call s:SendCommand('-exec-continue')
 | 
				
			||||||
    command Continue call chansend(s:gdb_job_id, "continue\r")
 | 
					    command Continue call chansend(s:gdb_job_id, "continue\r")
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -913,20 +917,16 @@ func s:SetBreakpoint(at)
 | 
				
			|||||||
  let do_continue = 0
 | 
					  let do_continue = 0
 | 
				
			||||||
  if !s:stopped
 | 
					  if !s:stopped
 | 
				
			||||||
    let do_continue = 1
 | 
					    let do_continue = 1
 | 
				
			||||||
    if s:way == 'prompt'
 | 
					    Stop
 | 
				
			||||||
      call s:PromptInterrupt()
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      call s:SendCommand('-exec-interrupt')
 | 
					 | 
				
			||||||
    endif
 | 
					 | 
				
			||||||
    sleep 10m
 | 
					    sleep 10m
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " Use the fname:lnum format, older gdb can't handle --source.
 | 
					  " Use the fname:lnum format, older gdb can't handle --source.
 | 
				
			||||||
  let at = empty(a:at) ?
 | 
					  let at = empty(a:at) ?
 | 
				
			||||||
        \ fnameescape(expand('%:p')) . ':' . line('.') : a:at
 | 
					  \ fnameescape(expand('%:p')) . ':' . line('.') : a:at
 | 
				
			||||||
  call s:SendCommand('-break-insert ' . at)
 | 
					  call s:SendCommand('-break-insert ' . at)
 | 
				
			||||||
  if do_continue
 | 
					  if do_continue
 | 
				
			||||||
    call s:SendCommand('-exec-continue')
 | 
					    Continue
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -937,23 +937,32 @@ func s:ClearBreakpoint()
 | 
				
			|||||||
  let bploc = printf('%s:%d', fname, lnum)
 | 
					  let bploc = printf('%s:%d', fname, lnum)
 | 
				
			||||||
  if has_key(s:breakpoint_locations, bploc)
 | 
					  if has_key(s:breakpoint_locations, bploc)
 | 
				
			||||||
    let idx = 0
 | 
					    let idx = 0
 | 
				
			||||||
 | 
					    let nr = 0
 | 
				
			||||||
    for id in s:breakpoint_locations[bploc]
 | 
					    for id in s:breakpoint_locations[bploc]
 | 
				
			||||||
      if has_key(s:breakpoints, id)
 | 
					      if has_key(s:breakpoints, id)
 | 
				
			||||||
	" Assume this always works, the reply is simply "^done".
 | 
					        " Assume this always works, the reply is simply "^done".
 | 
				
			||||||
	call s:SendCommand('-break-delete ' . id)
 | 
					        call s:SendCommand('-break-delete ' . id)
 | 
				
			||||||
	for subid in keys(s:breakpoints[id])
 | 
					        for subid in keys(s:breakpoints[id])
 | 
				
			||||||
	  exe 'sign unplace ' . s:Breakpoint2SignNumber(id, subid)
 | 
					          exe 'sign unplace ' . s:Breakpoint2SignNumber(id, subid)
 | 
				
			||||||
	endfor
 | 
					        endfor
 | 
				
			||||||
	unlet s:breakpoints[id]
 | 
					        unlet s:breakpoints[id]
 | 
				
			||||||
	unlet s:breakpoint_locations[bploc][idx]
 | 
					        unlet s:breakpoint_locations[bploc][idx]
 | 
				
			||||||
	break
 | 
					        let nr = id
 | 
				
			||||||
 | 
					        break
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
	let idx += 1
 | 
					        let idx += 1
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endfor
 | 
					    endfor
 | 
				
			||||||
    if empty(s:breakpoint_locations[bploc])
 | 
					    if nr != 0
 | 
				
			||||||
      unlet s:breakpoint_locations[bploc]
 | 
					      if empty(s:breakpoint_locations[bploc])
 | 
				
			||||||
 | 
					        unlet s:breakpoint_locations[bploc]
 | 
				
			||||||
 | 
					      endif
 | 
				
			||||||
 | 
					      echomsg 'Breakpoint ' . id . ' cleared from line ' . lnum . '.'
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      echoerr 'Internal error trying to remove breakpoint at line ' . lnum . '!'
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    echomsg 'No breakpoint to remove at line ' . lnum . '.'
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -965,44 +974,72 @@ func s:Run(args)
 | 
				
			|||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func s:SendEval(expr)
 | 
					func s:SendEval(expr)
 | 
				
			||||||
  " clean up expression that may got in because of range
 | 
					  " check for "likely" boolean expressions, in which case we take it as lhs
 | 
				
			||||||
  " (newlines and surrounding spaces)
 | 
					  if a:expr =~ "[=!<>]="
 | 
				
			||||||
  let expr = a:expr
 | 
					    let exprLHS = a:expr
 | 
				
			||||||
  if &filetype ==# 'cobol'
 | 
					 | 
				
			||||||
    " extra cleanup for COBOL: _every: expression ends with a period,
 | 
					 | 
				
			||||||
    " a trailing comma is ignored as it commonly separates multiple expr.
 | 
					 | 
				
			||||||
    let expr = substitute(expr, '\..*', '', '')
 | 
					 | 
				
			||||||
    let expr = substitute(expr, '[;\n]', ' ', 'g')
 | 
					 | 
				
			||||||
    let expr = substitute(expr, ',*$', '', '')
 | 
					 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    let expr = substitute(expr, '\n', ' ', 'g')
 | 
					    " remove text that is likely an assignment
 | 
				
			||||||
 | 
					    let exprLHS = substitute(a:expr, ' *=.*', '', '')
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  let expr = substitute(expr, '^ *\(.*\) *', '\1', '')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " encoding expression to prevent bad errors
 | 
				
			||||||
 | 
					  let expr = a:expr
 | 
				
			||||||
 | 
					  let expr = substitute(expr, '\\', '\\\\', 'g')
 | 
				
			||||||
 | 
					  let expr = substitute(expr, '"', '\\"', 'g')
 | 
				
			||||||
  call s:SendCommand('-data-evaluate-expression "' . expr . '"')
 | 
					  call s:SendCommand('-data-evaluate-expression "' . expr . '"')
 | 
				
			||||||
  let s:evalexpr = expr
 | 
					  let s:evalexpr = exprLHS
 | 
				
			||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" :Evaluate - evaluate what is under the cursor
 | 
					" :Evaluate - evaluate what is specified / under the cursor
 | 
				
			||||||
func s:Evaluate(range, arg)
 | 
					func s:Evaluate(range, arg)
 | 
				
			||||||
 | 
					  let expr = s:GetEvaluationExpression(a:range, a:arg)
 | 
				
			||||||
 | 
					  let s:ignoreEvalError = 0
 | 
				
			||||||
 | 
					  call s:SendEval(expr)
 | 
				
			||||||
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" get what is specified / under the cursor 
 | 
				
			||||||
 | 
					func s:GetEvaluationExpression(range, arg)
 | 
				
			||||||
  if a:arg != ''
 | 
					  if a:arg != ''
 | 
				
			||||||
    let expr = a:arg
 | 
					    " user supplied evaluation
 | 
				
			||||||
    let s:evalFromBalloonExpr = 0
 | 
					    let expr = s:CleanupExpr(a:arg)
 | 
				
			||||||
 | 
					    " DSW: replace "likely copy + paste" assignment
 | 
				
			||||||
 | 
					    let expr = substitute(expr, '"\([^"]*\)": *', '\1=', 'g')
 | 
				
			||||||
  elseif a:range == 2
 | 
					  elseif a:range == 2
 | 
				
			||||||
    let pos = getcurpos()
 | 
					    let pos = getcurpos()
 | 
				
			||||||
    let reg = getreg('v', 1, 1)
 | 
					    let reg = getreg('v', 1, 1)
 | 
				
			||||||
    let regt = getregtype('v')
 | 
					    let regt = getregtype('v')
 | 
				
			||||||
    normal! gv"vy
 | 
					    normal! gv"vy
 | 
				
			||||||
    let expr = @v
 | 
					    let expr = s:CleanupExpr(@v)
 | 
				
			||||||
    call setpos('.', pos)
 | 
					    call setpos('.', pos)
 | 
				
			||||||
    call setreg('v', reg, regt)
 | 
					    call setreg('v', reg, regt)
 | 
				
			||||||
    let s:evalFromBalloonExpr = 1
 | 
					    let s:evalFromBalloonExpr = 1
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
 | 
					    " no evaluation provided: get from C-expression under cursor
 | 
				
			||||||
 | 
					    " TODO: allow filetype specific lookup #9057
 | 
				
			||||||
    let expr = expand('<cexpr>')
 | 
					    let expr = expand('<cexpr>')
 | 
				
			||||||
    let s:evalFromBalloonExpr = 1
 | 
					    let s:evalFromBalloonExpr = 1
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  let s:ignoreEvalError = 0
 | 
					  return expr
 | 
				
			||||||
  call s:SendEval(expr)
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" clean up expression that may got in because of range
 | 
				
			||||||
 | 
					" (newlines and surrounding whitespace)
 | 
				
			||||||
 | 
					func s:CleanupExpr(expr)
 | 
				
			||||||
 | 
					  " replace all embedded newlines/tabs/...
 | 
				
			||||||
 | 
					  let expr = substitute( a:expr, '\s', ' ', 'g')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if &filetype ==# 'cobol'
 | 
				
			||||||
 | 
					    " extra cleanup for COBOL: _every: expression ends with a period,
 | 
				
			||||||
 | 
					    " a semicolon nmay be used instead of a space
 | 
				
			||||||
 | 
					    " a trailing comma is ignored as it commonly separates multiple expr
 | 
				
			||||||
 | 
					    let expr = substitute(expr, '\..*', '', '')
 | 
				
			||||||
 | 
					    let expr = substitute(expr, ';', ' ', 'g')
 | 
				
			||||||
 | 
					    let expr = substitute(expr, ',*$', '', '')
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " get rid of surrounding spaces
 | 
				
			||||||
 | 
					  let expr = substitute(expr, '^ *\(.*\) *', '\1', '')
 | 
				
			||||||
 | 
					  return expr
 | 
				
			||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let s:ignoreEvalError = 0
 | 
					let s:ignoreEvalError = 0
 | 
				
			||||||
@@ -1246,15 +1283,15 @@ func s:HandleCursor(msg)
 | 
				
			|||||||
      let s:asm_addr = asm_addr
 | 
					      let s:asm_addr = asm_addr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      let curwinid = win_getid(winnr())
 | 
					      let curwinid = win_getid(winnr())
 | 
				
			||||||
      if win_gotoid(s:asmwin)
 | 
					      if win_gotoid(s:asmwin)
 | 
				
			||||||
        let lnum = search('^' . s:asm_addr)
 | 
					      let lnum = search('^' . s:asm_addr)
 | 
				
			||||||
        if lnum == 0
 | 
					      if lnum == 0
 | 
				
			||||||
          call s:SendCommand('disassemble $pc')
 | 
					        call s:SendCommand('disassemble $pc')
 | 
				
			||||||
        else
 | 
					      else
 | 
				
			||||||
          exe 'sign unplace ' . s:asm_id
 | 
					        exe 'sign unplace ' . s:asm_id
 | 
				
			||||||
          exe 'sign place ' . s:asm_id . ' line=' . lnum . ' name=debugPC'
 | 
					        exe 'sign place ' . s:asm_id . ' line=' . lnum . ' name=debugPC'
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      call win_gotoid(curwinid)
 | 
					      call win_gotoid(curwinid)
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
@@ -1278,8 +1315,8 @@ func s:HandleCursor(msg)
 | 
				
			|||||||
      normal! zv
 | 
					      normal! zv
 | 
				
			||||||
      exe 'sign unplace ' . s:pc_id
 | 
					      exe 'sign unplace ' . s:pc_id
 | 
				
			||||||
      exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
 | 
					      exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
 | 
				
			||||||
      if !exists('b:save_signcolumn')
 | 
					      if !exists('b:save_signcolumn')
 | 
				
			||||||
	let b:save_signcolumn = &signcolumn
 | 
					        let b:save_signcolumn = &signcolumn
 | 
				
			||||||
        call add(s:signcolumn_buflist, bufnr())
 | 
					        call add(s:signcolumn_buflist, bufnr())
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
      setlocal signcolumn=yes
 | 
					      setlocal signcolumn=yes
 | 
				
			||||||
@@ -1308,7 +1345,12 @@ endfunction
 | 
				
			|||||||
" Handle setting a breakpoint
 | 
					" Handle setting a breakpoint
 | 
				
			||||||
" Will update the sign that shows the breakpoint
 | 
					" Will update the sign that shows the breakpoint
 | 
				
			||||||
func s:HandleNewBreakpoint(msg)
 | 
					func s:HandleNewBreakpoint(msg)
 | 
				
			||||||
  if a:msg !~ 'fullname='
 | 
					  if a:msg !~ 'fullname='
 | 
				
			||||||
 | 
					    " a watch or a pending breakpoint does not have a file name
 | 
				
			||||||
 | 
					    if a:msg =~ 'pending='
 | 
				
			||||||
 | 
					      let nr = substitute(a:msg, '.*number=\"\([0-9.]*\)\".*', '\1', '')
 | 
				
			||||||
 | 
					      let target = substitute(a:msg, '.*pending=\"\([^"]*\)\".*', '\1', '')
 | 
				
			||||||
 | 
					      echomsg 'Breakpoint ' . nr . ' (' . target  . ') pending.'
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    return
 | 
					    return
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
@@ -1352,6 +1394,7 @@ func s:HandleNewBreakpoint(msg)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if bufloaded(fname)
 | 
					    if bufloaded(fname)
 | 
				
			||||||
      call s:PlaceSign(id, subid, entry)
 | 
					      call s:PlaceSign(id, subid, entry)
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
    echomsg 'Breakpoint ' . nr . ' created at line ' . lnum . '.'
 | 
					    echomsg 'Breakpoint ' . nr . ' created at line ' . lnum . '.'
 | 
				
			||||||
  endfor
 | 
					  endfor
 | 
				
			||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
@@ -1371,11 +1414,12 @@ func s:HandleBreakpointDelete(msg)
 | 
				
			|||||||
  endif
 | 
					  endif
 | 
				
			||||||
  if has_key(s:breakpoints, id)
 | 
					  if has_key(s:breakpoints, id)
 | 
				
			||||||
    for [subid, entry] in items(s:breakpoints[id])
 | 
					    for [subid, entry] in items(s:breakpoints[id])
 | 
				
			||||||
      if has_key(entry, 'placed')
 | 
					      if has_key(entry, 'placed')
 | 
				
			||||||
	exe 'sign unplace ' . s:Breakpoint2SignNumber(id, subid)
 | 
					        exe 'sign unplace ' . s:Breakpoint2SignNumber(id, subid)
 | 
				
			||||||
        unlet entry['placed']
 | 
					        unlet entry['placed']
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endfor
 | 
					    endfor
 | 
				
			||||||
 | 
					    unlet s:breakpoints[id]
 | 
				
			||||||
    echomsg 'Breakpoint ' . id . ' cleared.'
 | 
					    echomsg 'Breakpoint ' . id . ' cleared.'
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
endfunc
 | 
					endfunc
 | 
				
			||||||
@@ -1396,7 +1440,7 @@ func s:BufRead()
 | 
				
			|||||||
  let fname = expand('<afile>:p')
 | 
					  let fname = expand('<afile>:p')
 | 
				
			||||||
  for [id, entries] in items(s:breakpoints)
 | 
					  for [id, entries] in items(s:breakpoints)
 | 
				
			||||||
    for [subid, entry] in items(entries)
 | 
					    for [subid, entry] in items(entries)
 | 
				
			||||||
      if entry['fname'] == fname
 | 
					      if entry['fname'] == fname
 | 
				
			||||||
        call s:PlaceSign(id, subid, entry)
 | 
					        call s:PlaceSign(id, subid, entry)
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endfor
 | 
					    endfor
 | 
				
			||||||
@@ -1408,7 +1452,7 @@ func s:BufUnloaded()
 | 
				
			|||||||
  let fname = expand('<afile>:p')
 | 
					  let fname = expand('<afile>:p')
 | 
				
			||||||
  for [id, entries] in items(s:breakpoints)
 | 
					  for [id, entries] in items(s:breakpoints)
 | 
				
			||||||
    for [subid, entry] in items(entries)
 | 
					    for [subid, entry] in items(entries)
 | 
				
			||||||
      if entry['fname'] == fname
 | 
					      if entry['fname'] == fname
 | 
				
			||||||
        let entry['placed'] = 0
 | 
					        let entry['placed'] = 0
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endfor
 | 
					    endfor
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,8 @@
 | 
				
			|||||||
" Vim syntax file
 | 
					" Vim syntax file
 | 
				
			||||||
" Language:             indent(1) configuration file
 | 
					" Language:		indent(1) configuration file
 | 
				
			||||||
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
 | 
					" Maintainer:		Doug Kearns <dougkearns@gmail.com>
 | 
				
			||||||
" Latest Revision:      2010-01-23
 | 
					" Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
 | 
				
			||||||
 | 
					" Last Change:		2021 Nov 17
 | 
				
			||||||
"   indent_is_bsd:      If exists, will change somewhat to match BSD implementation
 | 
					"   indent_is_bsd:      If exists, will change somewhat to match BSD implementation
 | 
				
			||||||
"
 | 
					"
 | 
				
			||||||
" TODO:     is the deny-all (a la lilo.vim nice or no?)...
 | 
					" TODO:     is the deny-all (a la lilo.vim nice or no?)...
 | 
				
			||||||
@@ -27,7 +28,7 @@ syn region  indentComment start='//' skip='\\$' end='$'
 | 
				
			|||||||
                          \ contains=indentTodo,@Spell
 | 
					                          \ contains=indentTodo,@Spell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if !exists("indent_is_bsd")
 | 
					if !exists("indent_is_bsd")
 | 
				
			||||||
  syn match indentOptions '-i\|--indentation-level\|-il\|--indent-level'
 | 
					  syn match indentOptions '-i\|--indent-level\|-il\|--indent-label'
 | 
				
			||||||
                        \ nextgroup=indentNumber skipwhite skipempty
 | 
					                        \ nextgroup=indentNumber skipwhite skipempty
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
syn match   indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
 | 
					syn match   indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user