@@ -74,14 +74,23 @@ def wait_for_fs_free(self):
7474
7575 def editable_win_width (self ):
7676 # This function takes gutter into consideration.
77- ve = nvim .options ['virtualedit' ]
78- nvim .options ['virtualedit' ] = 'all'
77+ ve = self .set_vim_option ('virtualedit' , 'all' )
7978 nvim .command ('noautocmd norm! g$' )
8079 res = nvim .call ('virtcol' , '.' )
8180 nvim .command ('noautocmd norm! g0' )
82- nvim . options [ 'virtualedit' ] = ve
81+ self . set_vim_option ( 'virtualedit' , ve )
8382 return res
8483
84+ def set_vim_option (self , opt , value ):
85+ ori = nvim .options [opt ]
86+ nvim .options [opt ] = value
87+ return ori
88+
89+ def set_vim_window_option (self , opt , value ):
90+ ori = nvim .current .window .options [opt ]
91+ nvim .current .window .options [opt ] = value
92+ return ori
93+
8594 def unlock_fs (self ):
8695 # nvim.input is asynchronous, we need make sure there's enough time for it
8796 # to take effects.
@@ -222,20 +231,6 @@ def test_NETRGoPrevSibling(self):
222231 nvim .input ('{' )
223232 self .assert_content ('dir' , hi = 'dir' )
224233
225- def test_NETRToggleExpandRec (self ):
226- nvim .input ('zA' )
227- self .assert_content ('dir' , ind = 0 , hi = 'dir' )
228- self .assert_content ('subdir' , level = 1 , ind = 1 , hi = 'dir' )
229- self .assert_content ('subsubdir' , level = 2 , ind = 2 , hi = 'dir' )
230- self .assert_content ('placeholder' , level = 3 , ind = 3 , hi = 'file' )
231- self .assert_content ('subdir2' , level = 1 , ind = 4 , hi = 'dir' )
232- self .assert_content ('placeholder' , level = 2 , ind = 5 , hi = 'file' )
233- self .assert_content ('a' , level = 1 , ind = 6 , hi = 'file' )
234- self .assert_content ('dir2' , level = 0 , ind = 7 , hi = 'dir' )
235- nvim .input ('zA' )
236- self .assert_content ('dir' , ind = 0 , hi = 'dir' )
237- self .assert_content ('dir2' , ind = 1 , hi = 'dir' )
238-
239234 def test_NETRVimCD (self ):
240235 nvim .input ('L' )
241236 self .assertEqual ('dir' , os .path .basename (nvim .call ('getcwd' )))
@@ -374,6 +369,20 @@ def test_NETRToggleExpand(self):
374369 self .assert_content ('dir' , ind = 0 , hi = 'dir' )
375370 self .assert_content ('dir2' , ind = 1 , hi = 'dir' )
376371
372+ def test_NETRToggleExpandRec (self ):
373+ nvim .input ('zA' )
374+ self .assert_content ('dir' , ind = 0 , hi = 'dir' )
375+ self .assert_content ('subdir' , level = 1 , ind = 1 , hi = 'dir' )
376+ self .assert_content ('subsubdir' , level = 2 , ind = 2 , hi = 'dir' )
377+ self .assert_content ('placeholder' , level = 3 , ind = 3 , hi = 'file' )
378+ self .assert_content ('subdir2' , level = 1 , ind = 4 , hi = 'dir' )
379+ self .assert_content ('placeholder' , level = 2 , ind = 5 , hi = 'file' )
380+ self .assert_content ('a' , level = 1 , ind = 6 , hi = 'file' )
381+ self .assert_content ('dir2' , level = 0 , ind = 7 , hi = 'dir' )
382+ nvim .input ('zA' )
383+ self .assert_content ('dir' , ind = 0 , hi = 'dir' )
384+ self .assert_content ('dir2' , ind = 1 , hi = 'dir' )
385+
377386 def test_NETRToggleShowHidden (self ):
378387 nvim .input ('zh' )
379388 self .assert_content ('.a' , ind = 2 , hi = 'file' )
@@ -646,6 +655,20 @@ def test_opt_Autochdir(self):
646655
647656 nvim .vars ['NETRAutochdir' ] = default_value
648657
658+ def test_NETRToggleExpandRec (self ):
659+ # Set foldnestmax=1 should behave exactly the same as NETRToggleExpand
660+ fdn = self .set_vim_window_option ('foldnestmax' , 1 )
661+ nvim .input ('zA' )
662+ self .assert_content ('dir' , ind = 0 , hi = 'dir' )
663+ self .assert_content ('subdir' , level = 1 , ind = 1 , hi = 'dir' )
664+ self .assert_content ('subdir2' , ind = 2 , level = 1 , hi = 'dir' )
665+ self .assert_content ('a' , ind = 3 , level = 1 , hi = 'file' )
666+ self .assert_content ('dir2' , ind = 4 , hi = 'dir' )
667+ nvim .input ('zA' )
668+ self .assert_content ('dir' , ind = 0 , hi = 'dir' )
669+ self .assert_content ('dir2' , ind = 1 , hi = 'dir' )
670+ self .set_vim_window_option ('foldnestmax' , fdn )
671+
649672
650673class TestBuilitInFunctionsRemote (NetrangerRemoteTest ):
651674 def test_NETREdit_remote (self ):
0 commit comments