view src/testdir/test29.in @ 15062:3a94f7918980 v8.1.0542

patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account commit https://github.com/vim/vim/commit/f951416a8396a54bbbe21de1a8b16716428549f2 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 22 03:08:29 2018 +0100 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account Problem: shiftwidth() does not take 'vartabstop' into account. Solution: Use the cursor position or a position explicitly passed. Also make >> and << work better with 'vartabstop'. (Christian Brabandt)
author Bram Moolenaar <Bram@vim.org>
date Thu, 22 Nov 2018 03:15:10 +0100
parents ae45d497868f
children
line wrap: on
line source

Test for joining lines and marks in them
 in compatible and nocompatible modes
 and with 'joinspaces' set or not
 and with 'cpoptions' flag 'j' set or not

STARTTEST
:so small.vim
:set nocompatible viminfo+=nviminfo
:set nojoinspaces
:set cpoptions-=j
/firstline/
j"td/^STARTTEST/-1
PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf
asdfasdf. 
asdf
asdfasdf.  
asdf
asdfasdf.	
asdf
asdfasdf. 	
asdf
asdfasdf.	 
asdf
asdfasdf.		
asdf
asdfasdf
asdf
asdfasdf 
asdf
asdfasdf  
asdf
asdfasdf	
asdf
asdfasdf	 
asdf
asdfasdf 	
asdf
asdfasdf		
asdf
zx cvn.
as dfg?
hjkl iop!
ert
zx cvn.
as dfg?
hjkl iop!
ert

STARTTEST
/^{/+1
:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */

// Should the next comment leader be left alone?
// Yes.

// Should the next comment leader be left alone?
// Yes.

/* Here the comment leader should be left intact. */
// And so should this one.

/* Here the comment leader should be left intact. */
// And so should this one.

if (condition) // Remove the next comment leader!
               // OK, I will.
    action();

if (condition) // Remove the next comment leader!
               // OK, I will.
    action();
}

STARTTEST
:" Test with backspace set to the non-compatible setting
:set belloff=all
/^\d\+ this
:set cp bs=2
Avim1
Avim2u
:set cpo-=<
:inoremap <c-u> <left><c-u>
Avim3
:iunmap <c-u>
Avim4
:" Test with backspace set to the compatible setting
:set backspace= visualbell
A vim5A
A vim6Azweiu
:inoremap <c-u> <left><c-u>
A vim7
:set compatible novisualbell
ENDTEST
1 this shouldn't be deleted
2 this shouldn't be deleted
3 this shouldn't be deleted
4 this should be deleted
5 this shouldn't be deleted
6 this shouldn't be deleted
7 this shouldn't be deleted
8 this shouldn't be deleted (not touched yet)

STARTTEST
/^{/+1
:set comments=sO:*\ -,mO:*\ \ ,exO:*/
:set comments+=s1:/*,mb:*,ex:*/,://
:set comments+=s1:>#,mb:#,ex:#<,:<
:set cpoptions-=j joinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+8join
j9J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code!
// Make sure backspacing does not remove this comment leader.0i
ENDTEST

{

/*
 * Make sure the previous comment leader is not removed.
 */

/*
 * Make sure the previous comment leader is not removed.
 */

/* List:
 * - item1
 *   foo bar baz
 *   foo bar baz
 * - item2
 *   foo bar baz
 *   foo bar baz
 */

/* List:
 * - item1
 *   foo bar baz
 *   foo bar baz
 * - item2
 *   foo bar baz
 *   foo bar baz
 */

// Should the next comment leader be left alone?
// Yes.

// Should the next comment leader be left alone?
// Yes.

/* Here the comment leader should be left intact. */
// And so should this one.

/* Here the comment leader should be left intact. */
// And so should this one.

if (condition) // Remove the next comment leader!
               // OK, I will.
    action();

if (condition) // Remove the next comment leader!
               // OK, I will.
    action();

int i = 7 /* foo *// 3
 // comment
 ;

int i = 7 /* foo *// 3
 // comment
 ;

># Note that the last character of the ending comment leader (left angle
 # bracket) is a comment leader itself. Make sure that this comment leader is
 # not removed from the next line #<
< On this line a new comment is opened which spans 2 lines. This comment should
< retain its comment leader.

># Note that the last character of the ending comment leader (left angle
 # bracket) is a comment leader itself. Make sure that this comment leader is
 # not removed from the next line #<
< On this line a new comment is opened which spans 2 lines. This comment should
< retain its comment leader.

}

STARTTEST
:g/^STARTTEST/.,/^ENDTEST/d
:?firstline?+1,$w! test.out
:qa!
ENDTEST