0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.1.1293: comment plugin does not handle 'exclusive' selection for comment object

Problem:  comment plugin does not handle 'exclusive' selection for
          comment object (@mawkish)
Solution: handle special case selection='exclusive' for inline comment
          object (Maxim Kim)

fixes: #17023
closes: #17098

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Maxim Kim 2025-04-12 11:34:08 +02:00 committed by Christian Brabandt
parent c8ce81b0dc
commit 0e59e67a63
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
3 changed files with 28 additions and 0 deletions

View File

@ -158,6 +158,9 @@ export def ObjComment(inner: bool)
else
cursor(pos_end[1], pos_end[2])
normal! v
if &selection == 'exclusive'
normal! lo
endif
cursor(pos_start[1], pos_start[2])
endif
enddef

View File

@ -677,3 +677,26 @@ func Test_inline_uncomment()
let result = readfile(output_file)
call assert_equal(['echo "Hello" This should be a comment'], result)
endfunc
func Test_textobj_selection_exclusive_inline_comment()
CheckScreendump
let lines =<< trim END
print("Hello") # selection exclusive
END
let input_file = "test_selection_exclusive_inline_comment_input.py"
call writefile(lines, input_file, "D")
let buf = RunVimInTerminal('-c "set selection=exclusive" -c "packadd comment" ' .. input_file, {})
call term_sendkeys(buf, "dac")
let output_file = "test_selection_exclusive_inline_comment.py"
call term_sendkeys(buf, $":w {output_file}\<CR>")
defer delete(output_file)
call StopVimInTerminal(buf)
let result = readfile(output_file)
call assert_equal(['print("Hello")'], result)
endfunc

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1293,
/**/
1292,
/**/