diff options
Diffstat (limited to 'test/functional/ui/multigrid_spec.lua')
| -rw-r--r-- | test/functional/ui/multigrid_spec.lua | 952 | 
1 files changed, 531 insertions, 421 deletions
diff --git a/test/functional/ui/multigrid_spec.lua b/test/functional/ui/multigrid_spec.lua index a910f5e2ea..30a5b63d89 100644 --- a/test/functional/ui/multigrid_spec.lua +++ b/test/functional/ui/multigrid_spec.lua @@ -42,7 +42,7 @@ describe('ext_multigrid', function()    end)    it('default initial screen', function() -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -57,7 +57,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {11:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        ^                                                     |        {1:~                                                    }| @@ -71,27 +71,29 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ## grid 3 +                                                           | +    ]]}    end)    it('positions windows correctly', function()      command('vsplit')      screen:expect{grid=[[      ## grid 1 -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                  |        {1:~                         }| @@ -106,6 +108,8 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|      ## grid 3 +                                                           | +    ## grid 4        ^                          |        {1:~                         }|        {1:~                         }| @@ -121,27 +125,27 @@ describe('ext_multigrid', function()      ]], condition=function()        eq({          [2] = { win = {id=1000}, startrow = 0, startcol = 27, width = 26, height = 12 }, -        [3] = { win = {id=1001}, startrow = 0, startcol =  0, width = 26, height = 12 } +        [4] = { win = {id=1001}, startrow = 0, startcol =  0, width = 26, height = 12 }        }, screen.win_position)      end}      command('wincmd l')      command('split')      screen:expect{grid=[[      ## grid 1 -      [3:--------------------------]{12:│}[4:--------------------------]| -      [3:--------------------------]{12:│}[4:--------------------------]| -      [3:--------------------------]{12:│}[4:--------------------------]| -      [3:--------------------------]{12:│}[4:--------------------------]| -      [3:--------------------------]{12:│}[4:--------------------------]| -      [3:--------------------------]{12:│}[4:--------------------------]| -      [3:--------------------------]{12:│}{11:[No Name]                 }| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[5:--------------------------]| +      [4:--------------------------]{12:│}[5:--------------------------]| +      [4:--------------------------]{12:│}[5:--------------------------]| +      [4:--------------------------]{12:│}[5:--------------------------]| +      [4:--------------------------]{12:│}[5:--------------------------]| +      [4:--------------------------]{12:│}[5:--------------------------]| +      [4:--------------------------]{12:│}{11:[No Name]                 }| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]|        {12:[No Name]                  [No Name]                 }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                  |        {1:~                         }| @@ -149,6 +153,8 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|      ## grid 3 +                                                           | +    ## grid 4                                  |        {1:~                         }|        {1:~                         }| @@ -161,7 +167,7 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5        ^                          |        {1:~                         }|        {1:~                         }| @@ -171,20 +177,20 @@ describe('ext_multigrid', function()      ]], condition=function()        eq({          [2] = { win = {id=1000}, startrow = 7, startcol = 27, width = 26, height =  5 }, -        [3] = { win = {id=1001}, startrow = 0, startcol =  0, width = 26, height = 12 }, -        [4] = { win = {id=1002}, startrow = 0, startcol = 27, width = 26, height =  6 } +        [4] = { win = {id=1001}, startrow = 0, startcol =  0, width = 26, height = 12 }, +        [5] = { win = {id=1002}, startrow = 0, startcol = 27, width = 26, height =  6 }        }, screen.win_position)      end}      command('wincmd h')      command('q')      screen:expect{grid=[[      ## grid 1 -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]|        {11:[No Name]                                            }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -192,14 +198,16 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                                             |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ## grid 4 +    ## grid 3 +                                                           | +    ## grid 5        ^                                                     |        {1:~                                                    }|        {1:~                                                    }| @@ -209,7 +217,7 @@ describe('ext_multigrid', function()      ]], condition=function()        eq({          [2] = { win = {id=1000}, startrow = 7, startcol = 0, width = 53, height =  5 }, -        [4] = { win = {id=1002}, startrow = 0, startcol = 0, width = 53, height =  6 } +        [5] = { win = {id=1002}, startrow = 0, startcol = 0, width = 53, height =  6 }        }, screen.win_position)      end}    end) @@ -220,12 +228,12 @@ describe('ext_multigrid', function()          command('sp')          screen:expect([[          ## grid 1 -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]|            {11:[No Name]                                            }|            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]| @@ -233,7 +241,7 @@ describe('ext_multigrid', function()            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {12:[No Name]                                            }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                                                 |            {1:~                                                    }| @@ -241,6 +249,8 @@ describe('ext_multigrid', function()            {1:~                                                    }|            {1:~                                                    }|          ## grid 3 +                                                               | +        ## grid 4            ^                                                     |            {1:~                                                    }|            {1:~                                                    }| @@ -255,25 +265,27 @@ describe('ext_multigrid', function()          command('resize 8')          screen:expect([[          ## grid 1 -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]|            {11:[No Name]                                            }|            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {12:[No Name]                                            }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                                                 |            {1:~                                                    }|            {1:~                                                    }|          ## grid 3 +                                                               | +        ## grid 4            ^                                                     |            {1:~                                                    }|            {1:~                                                    }| @@ -289,14 +301,14 @@ describe('ext_multigrid', function()          command('sp')          command('vsp')          command('vsp') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|            {11:[No Name]            }{12:[No Name]        [No Name]      }|            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]| @@ -304,7 +316,7 @@ describe('ext_multigrid', function()            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {12:[No Name]                                            }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                                                 |            {1:~                                                    }| @@ -312,36 +324,38 @@ describe('ext_multigrid', function()            {1:~                                                    }|            {1:~                                                    }|          ## grid 3 +                                                               | +        ## grid 4                           |            {1:~              }|            {1:~              }|            {1:~              }|            {1:~              }|            {1:~              }| -        ## grid 4 +        ## grid 5                            |            {1:~               }|            {1:~               }|            {1:~               }|            {1:~               }|            {1:~               }| -        ## grid 5 +        ## grid 6            ^                    |            {1:~                   }|            {1:~                   }|            {1:~                   }|            {1:~                   }|            {1:~                   }| -        ]]) +        ]]}          insert('hello') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| -          [5:--------------------]{12:│}[4:----------------]{12:│}[3:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]| +          [6:--------------------]{12:│}[5:----------------]{12:│}[4:---------------]|            {11:[No Name] [+]        }{12:[No Name] [+]    [No Name] [+]  }|            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]| @@ -349,7 +363,7 @@ describe('ext_multigrid', function()            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {12:[No Name] [+]                                        }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2            hello                                                |            {1:~                                                    }| @@ -357,38 +371,40 @@ describe('ext_multigrid', function()            {1:~                                                    }|            {1:~                                                    }|          ## grid 3 +                                                               | +        ## grid 4            hello          |            {1:~              }|            {1:~              }|            {1:~              }|            {1:~              }|            {1:~              }| -        ## grid 4 +        ## grid 5            hello           |            {1:~               }|            {1:~               }|            {1:~               }|            {1:~               }|            {1:~               }| -        ## grid 5 +        ## grid 6            hell^o               |            {1:~                   }|            {1:~                   }|            {1:~                   }|            {1:~                   }|            {1:~                   }| -        ]]) +        ]]}        end)        it('closes splits', function ()          command('sp') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| -          [3:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]| +          [4:-----------------------------------------------------]|            {11:[No Name]                                            }|            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]| @@ -396,7 +412,7 @@ describe('ext_multigrid', function()            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {12:[No Name]                                            }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                                                 |            {1:~                                                    }| @@ -404,15 +420,17 @@ describe('ext_multigrid', function()            {1:~                                                    }|            {1:~                                                    }|          ## grid 3 +                                                               | +        ## grid 4            ^                                                     |            {1:~                                                    }|            {1:~                                                    }|            {1:~                                                    }|            {1:~                                                    }|            {1:~                                                    }| -        ]]) +        ]]}          command('q') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]| @@ -427,7 +445,7 @@ describe('ext_multigrid', function()            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {11:[No Name]                                            }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2            ^                                                     |            {1:~                                                    }| @@ -441,29 +459,31 @@ describe('ext_multigrid', function()            {1:~                                                    }|            {1:~                                                    }|            {1:~                                                    }| -        ]]) +        ## grid 3 +                                                               | +        ]]}        end)      end)      describe('vertically', function ()        it('allocates grids', function ()          command('vsp') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]|            {11:[No Name]                  }{12:[No Name]                 }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                      |            {1:~                         }| @@ -478,6 +498,8 @@ describe('ext_multigrid', function()            {1:~                         }|            {1:~                         }|          ## grid 3 +                                                               | +        ## grid 4            ^                          |            {1:~                         }|            {1:~                         }| @@ -490,28 +512,27 @@ describe('ext_multigrid', function()            {1:~                         }|            {1:~                         }|            {1:~                         }| -        ]]) +        ]]}        end)        it('resizes grids', function ()          command('vsp')          command('vertical resize 10') -        -- see "Note 1" for info about why there are two vseps -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| -          [3:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]| +          [4:----------]{12:│}[2:------------------------------------------]|            {11:<No Name]  }{12:[No Name]                                 }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                                      |            {1:~                                         }| @@ -526,6 +547,8 @@ describe('ext_multigrid', function()            {1:~                                         }|            {1:~                                         }|          ## grid 3 +                                                               | +        ## grid 4            ^          |            {1:~         }|            {1:~         }| @@ -538,27 +561,27 @@ describe('ext_multigrid', function()            {1:~         }|            {1:~         }|            {1:~         }| -        ]]) +        ]]}        end)        it('splits horizontally', function ()          command('vsp')          command('sp') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          {11:[No Name]                 }{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]| -          [4:--------------------------]{12:│}[2:--------------------------]| -          {11:[No Name]                 }{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]|            {12:[No Name]                  [No Name]                 }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                      |            {1:~                         }| @@ -573,36 +596,38 @@ describe('ext_multigrid', function()            {1:~                         }|            {1:~                         }|          ## grid 3 +                                                               | +        ## grid 4                                      |            {1:~                         }|            {1:~                         }|            {1:~                         }|            {1:~                         }| -        ## grid 4 +        ## grid 5            ^                          |            {1:~                         }|            {1:~                         }|            {1:~                         }|            {1:~                         }|            {1:~                         }| -        ]]) +        ]]}          insert('hello') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          [5:--------------------------]{12:│}[2:--------------------------]| +          {11:[No Name] [+]             }{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]|            [4:--------------------------]{12:│}[2:--------------------------]| -          [4:--------------------------]{12:│}[2:--------------------------]| -          {11:[No Name] [+]             }{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]|            {12:[No Name] [+]              [No Name] [+]             }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2            hello                     |            {1:~                         }| @@ -617,38 +642,40 @@ describe('ext_multigrid', function()            {1:~                         }|            {1:~                         }|          ## grid 3 +                                                               | +        ## grid 4            hello                     |            {1:~                         }|            {1:~                         }|            {1:~                         }|            {1:~                         }| -        ## grid 4 +        ## grid 5            hell^o                     |            {1:~                         }|            {1:~                         }|            {1:~                         }|            {1:~                         }|            {1:~                         }| -        ]]) +        ]]}        end)        it('closes splits', function ()          command('vsp') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1 -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| -          [3:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]| +          [4:--------------------------]{12:│}[2:--------------------------]|            {11:[No Name]                  }{12:[No Name]                 }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2                                      |            {1:~                         }| @@ -663,6 +690,8 @@ describe('ext_multigrid', function()            {1:~                         }|            {1:~                         }|          ## grid 3 +                                                               | +        ## grid 4            ^                          |            {1:~                         }|            {1:~                         }| @@ -675,9 +704,9 @@ describe('ext_multigrid', function()            {1:~                         }|            {1:~                         }|            {1:~                         }| -        ]]) +        ]]}          command('q') -        screen:expect([[ +        screen:expect{grid=[[          ## grid 1            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]| @@ -692,7 +721,7 @@ describe('ext_multigrid', function()            [2:-----------------------------------------------------]|            [2:-----------------------------------------------------]|            {11:[No Name]                                            }| -                                                               | +          [3:-----------------------------------------------------]|          ## grid 2            ^                                                     |            {1:~                                                    }| @@ -706,7 +735,9 @@ describe('ext_multigrid', function()            {1:~                                                    }|            {1:~                                                    }|            {1:~                                                    }| -        ]]) +        ## grid 3 +                                                               | +        ]]}        end)      end)    end) @@ -714,49 +745,56 @@ describe('ext_multigrid', function()    describe('on resize', function ()      it('rebuilds all grids', function ()        screen:try_resize(25, 6) -      screen:expect([[ +      screen:expect{grid=[[        ## grid 1          [2:-------------------------]|          [2:-------------------------]|          [2:-------------------------]|          [2:-------------------------]|          {11:[No Name]                }| -                                 | +        [3:-------------------------]|        ## grid 2          ^                         |          {1:~                        }|          {1:~                        }|          {1:~                        }| -      ]]) +      ## grid 3 +                                 | +      ]]}      end)      it('has minimum width/height values', function()        screen:try_resize(1, 1) -      screen:expect([[ +      screen:expect{grid=[[        ## grid 1          [2:------------]|          {11:[No Name]   }| -                    | +        [3:------------]|        ## grid 2          ^            | -      ]]) +      ## grid 3 +                    | +      ]]}        feed('<esc>:ls') -      screen:expect([[ +      screen:expect{grid=[[        ## grid 1          [2:------------]|          {11:[No Name]   }| -        :ls^         | +        [3:------------]|        ## grid 2                      | -      ]]) +      ## grid 3 +        :ls^         | +      ]]}      end)    end)    describe('grid of smaller inner size', function()      it('is rendered correctly', function()        screen:try_resize_grid(2, 8, 5) -      screen:expect([[ + +      screen:expect{grid=[[        ## grid 1          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]| @@ -771,21 +809,24 @@ describe('ext_multigrid', function()          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]|          {11:[No Name]                                            }| -                                                             | +        [3:-----------------------------------------------------]|        ## grid 2          ^        |          {1:~       }|          {1:~       }|          {1:~       }|          {1:~       }| -      ]]) +      ## grid 3 +                                                             | +      ]]}      end)    end)    describe('grid of bigger inner size', function()      it('is rendered correctly', function()        screen:try_resize_grid(2, 80, 20) -      screen:expect([[ + +      screen:expect{grid=[[        ## grid 1          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]| @@ -800,7 +841,7 @@ describe('ext_multigrid', function()          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]|          {11:[No Name]                                            }| -                                                             | +        [3:-----------------------------------------------------]|        ## grid 2          ^                                                                                |          {1:~                                                                               }| @@ -822,7 +863,9 @@ describe('ext_multigrid', function()          {1:~                                                                               }|          {1:~                                                                               }|          {1:~                                                                               }| -      ]]) +      ## grid 3 +                                                             | +      ]]}      end)    end) @@ -833,7 +876,8 @@ describe('ext_multigrid', function()      end)      it('gets written till grid width', function()        insert(('a'):rep(60).."\n") -      screen:expect([[ + +      screen:expect{grid=[[        ## grid 1          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]| @@ -848,7 +892,7 @@ describe('ext_multigrid', function()          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]|          {11:[No Name] [+]                                        }| -                                                             | +        [3:-----------------------------------------------------]|        ## grid 2          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|          ^                                                            | @@ -870,12 +914,14 @@ describe('ext_multigrid', function()          {1:~                                                           }|          {1:~                                                           }|          {1:~                                                           }| -      ]]) +      ## grid 3 +                                                             | +      ]]}      end)      it('wraps with grid width', function()        insert(('b'):rep(80).."\n") -      screen:expect([[ +      screen:expect{grid=[[        ## grid 1          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]| @@ -890,7 +936,7 @@ describe('ext_multigrid', function()          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]|          {11:[No Name] [+]                                        }| -                                                             | +        [3:-----------------------------------------------------]|        ## grid 2          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb|          bbbbbbbbbbbbbbbbbbbb                                        | @@ -912,13 +958,15 @@ describe('ext_multigrid', function()          {1:~                                                           }|          {1:~                                                           }|          {1:~                                                           }| -      ]]) +      ## grid 3 +                                                             | +      ]]}      end)      it('displays messages with default grid width', function()        command('echomsg "this is a very very very very very very very very'..          ' long message"') -      screen:expect([[ +      screen:expect{grid=[[        ## grid 1          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]| @@ -933,7 +981,7 @@ describe('ext_multigrid', function()          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]|          {11:[No Name]                                            }| -        this is a very very very...ry very very long message | +        [3:-----------------------------------------------------]|        ## grid 2          ^                                                            |          {1:~                                                           }| @@ -955,13 +1003,15 @@ describe('ext_multigrid', function()          {1:~                                                           }|          {1:~                                                           }|          {1:~                                                           }| -      ]]) +      ## grid 3 +        this is a very very very...ry very very long message | +      ]]}      end)      it('creates folds with grid width', function()        insert('this is a fold\nthis is inside fold\nthis is outside fold')        feed('kzfgg') -      screen:expect([[ +      screen:expect{grid=[[        ## grid 1          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]| @@ -976,7 +1026,7 @@ describe('ext_multigrid', function()          [2:-----------------------------------------------------]|          [2:-----------------------------------------------------]|          {11:[No Name] [+]                                        }| -                                                             | +        [3:-----------------------------------------------------]|        ## grid 2          {13:^+--  2 lines: this is a fold································}|          this is outside fold                                        | @@ -998,21 +1048,23 @@ describe('ext_multigrid', function()          {1:~                                                           }|          {1:~                                                           }|          {1:~                                                           }| -      ]]) +      ## grid 3 +                                                             | +      ]]}      end)    end)    it('multiline messages scroll over windows', function()      command('sp')      command('vsp') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1020,7 +1072,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                                             |        {1:~                                                    }| @@ -1028,38 +1080,40 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5        ^                          |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}      feed(":echoerr 'very' | echoerr 'much' | echoerr 'fail'<cr>") -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| -      {11:                                                     }| -      {14:very}                                                 | -      {14:much}                                                 | -      {14:fail}                                                 | -      {15:Press ENTER or type command to continue}^              | +      [2:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]|      ## grid 2                                                             |        {1:~                                                    }| @@ -1067,30 +1121,35 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +      {14:very}                                                 | +      {14:much}                                                 | +      {14:fail}                                                 | +      {15:Press ENTER or type command to continue}^              | +    ## grid 4                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}      feed('<cr>') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1098,7 +1157,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                                             |        {1:~                                                    }| @@ -1106,20 +1165,22 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5        ^                          |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}      command([[        func! ErrMsg() @@ -1128,8 +1189,29 @@ describe('ext_multigrid', function()          endfor        endfunc]])      feed(":call ErrMsg()<cr>") -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +      [3:-----------------------------------------------------]| +    ## grid 2 +                                                           | +      {1:~                                                    }| +      {1:~                                                    }| +      {1:~                                                    }| +      {1:~                                                    }| +    ## grid 3        {14:Error detected while processing function ErrMsg:}     |        {19:line    2:}                                           |        {14:error 0}                                              | @@ -1144,37 +1226,31 @@ describe('ext_multigrid', function()        {14:error 9}                                              |        {14:error 10}                                             |        {15:Press ENTER or type command to continue}^              | -    ## grid 2 -                                                           | -      {1:~                                                    }| -      {1:~                                                    }| -      {1:~                                                    }| -      {1:~                                                    }| -    ## grid 3 +    ## grid 4                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}      feed("<c-c>") -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| -      [4:--------------------------]{12:│}[3:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]| +      [5:--------------------------]{12:│}[4:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1182,7 +1258,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                                             |        {1:~                                                    }| @@ -1190,40 +1266,42 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4                                  |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5        ^                          |        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}    end)    it('handles switch tabs', function()      command('vsp') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                  |        {1:~                         }| @@ -1238,6 +1316,8 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|      ## grid 3 +                                                           | +    ## grid 4        ^                          |        {1:~                         }|        {1:~                         }| @@ -1250,27 +1330,27 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}      command('tabnew')      -- note the old grids aren't resized yet -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        {16: }{17:2}{16: [No Name] }{7: [No Name] }{12:                            }{16:X}| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]| +      [5:-----------------------------------------------------]|        {11:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2 (hidden)                                  |        {1:~                         }| @@ -1284,7 +1364,9 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 3 (hidden) +    ## grid 3 +                                                           | +    ## grid 4 (hidden)                                  |        {1:~                         }|        {1:~                         }| @@ -1297,7 +1379,7 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5        ^                                                     |        {1:~                                                    }|        {1:~                                                    }| @@ -1309,25 +1391,25 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]}      command('sp') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        {16: }{17:2}{16: [No Name] }{7: }{18:2}{7: [No Name] }{12:                          }{16:X}| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      {11:[No Name]                                            }|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]| -      {11:[No Name]                                            }| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]|        {12:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2 (hidden)                                  |        {1:~                         }| @@ -1341,7 +1423,9 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 3 (hidden) +    ## grid 3 +                                                           | +    ## grid 4 (hidden)                                  |        {1:~                         }|        {1:~                         }| @@ -1354,37 +1438,37 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5                                                             |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ## grid 5 +    ## grid 6        ^                                                     |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]}      command('tabnext') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        {7: }{18:2}{7: [No Name] }{16: }{17:2}{16: [No Name] }{12:                          }{16:X}| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                  |        {1:~                         }| @@ -1398,6 +1482,8 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|      ## grid 3 +                                                           | +    ## grid 4        ^                          |        {1:~                         }|        {1:~                         }| @@ -1409,37 +1495,37 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 (hidden) +    ## grid 5 (hidden)                                                             |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ## grid 5 (hidden) +    ## grid 6 (hidden)                                                             |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]}      command('tabnext') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        {16: }{17:2}{16: [No Name] }{7: }{18:2}{7: [No Name] }{12:                          }{16:X}| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      [6:-----------------------------------------------------]| +      {11:[No Name]                                            }|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]|        [5:-----------------------------------------------------]| -      {11:[No Name]                                            }| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]| -      [4:-----------------------------------------------------]|        {12:[No Name]                                            }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2 (hidden)                                  |        {1:~                         }| @@ -1452,7 +1538,9 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 3 (hidden) +    ## grid 3 +                                                           | +    ## grid 4 (hidden)                                  |        {1:~                         }|        {1:~                         }| @@ -1464,37 +1552,37 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ## grid 4 +    ## grid 5                                                             |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ## grid 5 +    ## grid 6        ^                                                     |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]}      command('tabclose') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| -      [3:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]| +      [4:--------------------------]{12:│}[2:--------------------------]|        {11:[No Name]                  }{12:[No Name]                 }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2                                  |        {1:~                         }| @@ -1509,6 +1597,8 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|      ## grid 3 +                                                           | +    ## grid 4        ^                          |        {1:~                         }|        {1:~                         }| @@ -1521,12 +1611,12 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}    end)    it('supports mouse', function()      insert('some text\nto be clicked') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1541,7 +1631,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {11:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be clicke^d                                        | @@ -1555,10 +1645,12 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ## grid 3 +                                                           | +    ]]}      meths.input_mouse('left', 'press', '', 2, 0, 5) -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1573,7 +1665,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {11:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some ^text                                            |        to be clicked                                        | @@ -1587,19 +1679,21 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ## grid 3 +                                                           | +    ]]}      feed(':new<cr>')      insert('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmo') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {11:[No Name] [+]                                        }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1607,7 +1701,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be clicked                                        | @@ -1615,23 +1709,25 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing el|        it, sed do eiusm^o                                    |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]}      meths.input_mouse('left', 'press', '', 2, 1, 6) -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {12:[No Name] [+]                                        }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1639,7 +1735,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {11:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be ^clicked                                        | @@ -1647,23 +1743,25 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing el|        it, sed do eiusmo                                    |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]} -    meths.input_mouse('left', 'press', '', 3, 1, 4) -    screen:expect([[ +    meths.input_mouse('left', 'press', '', 4, 1, 4) +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {11:[No Name] [+]                                        }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1671,7 +1769,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be clicked                                        | @@ -1679,23 +1777,25 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing el|        it, ^sed do eiusmo                                    |        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }|        {1:~                                                    }| -    ]]) +    ]]} -    screen:try_resize_grid(3, 80, 2) -    screen:expect([[ +    screen:try_resize_grid(4, 80, 2) +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {11:[No Name] [+]                                        }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1703,7 +1803,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be clicked                                        | @@ -1711,19 +1811,21 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing elit, ^sed do eiusmo          |        {1:~                                                                               }| -    ]]) +    ]]} -    meths.input_mouse('left', 'press', '', 3, 0, 64) -    screen:expect([[ +    meths.input_mouse('left', 'press', '', 4, 0, 64) +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {11:[No Name] [+]                                        }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1731,7 +1833,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be clicked                                        | @@ -1739,9 +1841,11 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ^eiusmo          |        {1:~                                                                               }| -    ]]) +    ]]}      meths.input_mouse('left', 'press', '', 1,6, 20)      -- TODO(bfredl): "batching" input_mouse is formally not supported yet. @@ -1749,12 +1853,12 @@ describe('ext_multigrid', function()      -- but add a wait be sure.      wait()      meths.input_mouse('left', 'drag', '', 1, 4, 20) -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {11:[No Name] [+]                                        }|        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]| @@ -1764,7 +1868,7 @@ describe('ext_multigrid', function()        [2:-----------------------------------------------------]|        [2:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                                            |        to be clicked                                        | @@ -1774,27 +1878,29 @@ describe('ext_multigrid', function()        {1:~                                                    }|        {1:~                                                    }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ^eiusmo          |        {1:~                                                                               }| -    ]]) +    ]]}      feed('<c-w><c-w><c-w>v') -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -      [4:--------------------------]{12:│}[2:--------------------------]| -      [4:--------------------------]{12:│}[2:--------------------------]| -      [4:--------------------------]{12:│}[2:--------------------------]| -      [4:--------------------------]{12:│}[2:--------------------------]| -      [4:--------------------------]{12:│}[2:--------------------------]| -      [4:--------------------------]{12:│}[2:--------------------------]| -      [4:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]| +      [5:--------------------------]{12:│}[2:--------------------------]|        {11:[No Name] [+]              }{12:[No Name] [+]             }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text                 |        to be clicked             | @@ -1804,9 +1910,11 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmo          |        {1:~                                                                               }| -    ## grid 4 +    ## grid 5        some text                 |        to be ^clicked             |        {1:~                         }| @@ -1814,27 +1922,27 @@ describe('ext_multigrid', function()        {1:~                         }|        {1:~                         }|        {1:~                         }| -    ]]) +    ]]}      meths.input_mouse('left', 'press', '', 1,8, 26)      wait()      meths.input_mouse('left', 'drag', '', 1, 6, 30) -    screen:expect([[ +    screen:expect{grid=[[      ## grid 1 -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| -      [3:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]| +      [4:-----------------------------------------------------]|        {12:[No Name] [+]                                        }| -      [4:------------------------------]{12:│}[2:----------------------]| -      [4:------------------------------]{12:│}[2:----------------------]| -      [4:------------------------------]{12:│}[2:----------------------]| -      [4:------------------------------]{12:│}[2:----------------------]| -      [4:------------------------------]{12:│}[2:----------------------]| -      [4:------------------------------]{12:│}[2:----------------------]| -      [4:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]| +      [5:------------------------------]{12:│}[2:----------------------]|        {11:[No Name] [+]                  }{12:[No Name] [+]         }| -                                                           | +      [3:-----------------------------------------------------]|      ## grid 2        some text             |        to be clicked         | @@ -1844,9 +1952,11 @@ describe('ext_multigrid', function()        {1:~                     }|        {1:~                     }|      ## grid 3 +                                                           | +    ## grid 4        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmo          |        {1:~                                                                               }| -    ## grid 4 +    ## grid 5        some text                     |        to be ^clicked                 |        {1:~                             }| @@ -1854,6 +1964,6 @@ describe('ext_multigrid', function()        {1:~                             }|        {1:~                             }|        {1:~                             }| -    ]]) +    ]]}    end)  end)  | 
