forked from aniani/vim
patch 8.1.1844: buffer no longer unloaded when adding text properties
Problem: Buffer no longer unloaded when adding text properties to it. Solution: Do not create the memfile. (closes #4808)
This commit is contained in:
@@ -322,6 +322,11 @@ will move accordingly.
|
|||||||
When text is deleted and a text property no longer includes any text, it is
|
When text is deleted and a text property no longer includes any text, it is
|
||||||
deleted. However, a text property that was defined as zero-width will remain,
|
deleted. However, a text property that was defined as zero-width will remain,
|
||||||
unless the whole line is deleted.
|
unless the whole line is deleted.
|
||||||
|
` *E275*
|
||||||
|
When a buffer is unloaded, all the text properties are gone. There is no way
|
||||||
|
to store the properties in a file. You can only re-create them. When a
|
||||||
|
buffer is hidden the text is preserved and so are the text properties. It is
|
||||||
|
not possible to add text properties to an unloaded buffer.
|
||||||
|
|
||||||
When using replace mode, the text properties stay on the same character
|
When using replace mode, the text properties stay on the same character
|
||||||
positions, even though the characters themselves change.
|
positions, even though the characters themselves change.
|
||||||
|
@@ -823,3 +823,25 @@ func Test_textprop_remove_from_buf()
|
|||||||
bwipe! x
|
bwipe! x
|
||||||
close
|
close
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_textprop_in_unloaded_buf()
|
||||||
|
edit Xaaa
|
||||||
|
call setline(1, 'aaa')
|
||||||
|
write
|
||||||
|
edit Xbbb
|
||||||
|
call setline(1, 'bbb')
|
||||||
|
write
|
||||||
|
let bnr = bufnr('')
|
||||||
|
edit Xaaa
|
||||||
|
|
||||||
|
call prop_type_add('ErrorMsg', #{highlight:'ErrorMsg'})
|
||||||
|
call assert_fails("call prop_add(1, 1, #{end_lnum: 1, endcol: 2, type: 'ErrorMsg', bufnr: bnr})", 'E275:')
|
||||||
|
exe 'buf ' .. bnr
|
||||||
|
call assert_equal('bbb', getline(1))
|
||||||
|
call assert_equal(0, prop_list(1)->len())
|
||||||
|
|
||||||
|
bwipe! Xaaa
|
||||||
|
bwipe! Xbbb
|
||||||
|
cal delete('Xaaa')
|
||||||
|
cal delete('Xbbb')
|
||||||
|
endfunc
|
||||||
|
@@ -256,7 +256,10 @@ prop_add_common(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (buf->b_ml.ml_mfp == NULL)
|
if (buf->b_ml.ml_mfp == NULL)
|
||||||
ml_open(buf);
|
{
|
||||||
|
emsg(_("E275: Cannot add text property to unloaded buffer"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (lnum = start_lnum; lnum <= end_lnum; ++lnum)
|
for (lnum = start_lnum; lnum <= end_lnum; ++lnum)
|
||||||
{
|
{
|
||||||
|
@@ -769,6 +769,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1844,
|
||||||
/**/
|
/**/
|
||||||
1843,
|
1843,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user