vim-patch:8.2.4603: sourcing buffer lines is too complicated

Problem:    Sourcing buffer lines is too complicated.
Solution:   Simplify the code. Make it possible to source Vim9 script lines.
            (Yegappan Lakshmanan, closes vim/vim#9974)

85b43c6cb7

This commit changes the behavior of sourcing buffer lines to always have
a script ID, although sourcing the same buffer always produces the same
script ID.

vim-patch:9.1.0372: Calling CLEAR_FIELD() on the same struct twice

Problem:  Calling CLEAR_FIELD() on the same struct twice.
Solution: Remove the second CLEAR_FIELD().  Move the assignment of
          cookie.sourceing_lnum (zeertzjq).

closes: vim/vim#14627

f68517c167

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
zeertzjq
2024-04-24 16:20:19 +08:00
parent a3a9f86d4a
commit 6750d00fe9
13 changed files with 748 additions and 213 deletions

View File

@@ -140,7 +140,7 @@ describe('API', function()
it(':verbose set {option}?', function()
api.nvim_exec2('set nowrap', { output = false })
eq(
{ output = 'nowrap\n\tLast set from anonymous :source' },
{ output = 'nowrap\n\tLast set from anonymous :source line 1' },
api.nvim_exec2('verbose set wrap?', { output = true })
)
@@ -153,7 +153,7 @@ describe('API', function()
{ output = false }
)
eq(
{ output = 'nowrap\n\tLast set from anonymous :source (script id 1)' },
{ output = 'nowrap\n\tLast set from anonymous :source (script id 1) line 2' },
api.nvim_exec2('verbose set wrap?', { output = true })
)
end)
@@ -296,16 +296,21 @@ describe('API', function()
eq('ñxx', api.nvim_get_current_line())
end)
it('can use :finish', function()
api.nvim_exec2('let g:var = 123\nfinish\nlet g:var = 456', {})
eq(123, api.nvim_get_var('var'))
end)
it('execution error', function()
eq(
'nvim_exec2(): Vim:E492: Not an editor command: bogus_command',
'nvim_exec2(), line 1: Vim:E492: Not an editor command: bogus_command',
pcall_err(request, 'nvim_exec2', 'bogus_command', {})
)
eq('', api.nvim_eval('v:errmsg')) -- v:errmsg was not updated.
eq('', eval('v:exception'))
eq(
'nvim_exec2(): Vim(buffer):E86: Buffer 23487 does not exist',
'nvim_exec2(), line 1: Vim(buffer):E86: Buffer 23487 does not exist',
pcall_err(request, 'nvim_exec2', 'buffer 23487', {})
)
eq('', eval('v:errmsg')) -- v:errmsg was not updated.
@@ -338,17 +343,28 @@ describe('API', function()
write_file(sourcing_fname, 'call nvim_exec2("source ' .. fname .. '", {"output": v:false})\n')
api.nvim_exec2('set verbose=2', { output = false })
local traceback_output = dedent([[
line 0: sourcing "%s"
line 0: sourcing "%s"
sourcing "nvim_exec2()"
line 1: sourcing "nvim_exec2() called at nvim_exec2():1"
line 1: sourcing "%s"
line 1: sourcing "nvim_exec2() called at %s:1"
line 1: sourcing "%s"
hello
finished sourcing %s
continuing in nvim_exec2() called at %s:1
finished sourcing nvim_exec2() called at %s:1
continuing in %s
finished sourcing %s
continuing in nvim_exec2() called at nvim_exec2():0]]):format(
continuing in nvim_exec2() called at nvim_exec2():1
finished sourcing nvim_exec2() called at nvim_exec2():1
continuing in nvim_exec2()
finished sourcing nvim_exec2()]]):format(
sourcing_fname,
sourcing_fname,
fname,
fname,
sourcing_fname,
sourcing_fname,
sourcing_fname,
sourcing_fname
)
eq(