mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Before calling "attach" a screen object is just a dummy container for (row, col) values whose purpose is to be sent as part of the "attach" function call anyway. Just create the screen in an attached state directly. Keep the complete (row, col, options) config together. It is still completely valid to later detach and re-attach as needed, including to another session.
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
-- See also: test/old/testdir/test_options.vim
 | 
						|
local t = require('test.testutil')
 | 
						|
local n = require('test.functional.testnvim')()
 | 
						|
local Screen = require('test.functional.ui.screen')
 | 
						|
 | 
						|
local command, clear = n.command, n.clear
 | 
						|
local source, expect = n.source, n.expect
 | 
						|
local exc_exec = n.exc_exec
 | 
						|
local matches = t.matches
 | 
						|
 | 
						|
describe('options', function()
 | 
						|
  setup(clear)
 | 
						|
 | 
						|
  it('should not throw any exception', function()
 | 
						|
    command('options')
 | 
						|
  end)
 | 
						|
end)
 | 
						|
 | 
						|
describe('set', function()
 | 
						|
  before_each(clear)
 | 
						|
 | 
						|
  it("should keep two comma when 'path' is changed", function()
 | 
						|
    source([[
 | 
						|
      set path=foo,,bar
 | 
						|
      set path-=bar
 | 
						|
      set path+=bar
 | 
						|
      $put =&path]])
 | 
						|
 | 
						|
    expect([[
 | 
						|
 | 
						|
      foo,,bar]])
 | 
						|
  end)
 | 
						|
 | 
						|
  it('winminheight works', function()
 | 
						|
    local _ = Screen.new(20, 11)
 | 
						|
    source([[
 | 
						|
      set wmh=0 stal=2
 | 
						|
      below sp | wincmd _
 | 
						|
      below sp | wincmd _
 | 
						|
      below sp | wincmd _
 | 
						|
      below sp
 | 
						|
    ]])
 | 
						|
    matches('E36: Not enough room', exc_exec('set wmh=1'))
 | 
						|
  end)
 | 
						|
 | 
						|
  it('winminheight works with tabline', function()
 | 
						|
    local _ = Screen.new(20, 11)
 | 
						|
    source([[
 | 
						|
      set wmh=0 stal=2
 | 
						|
      split
 | 
						|
      split
 | 
						|
      split
 | 
						|
      split
 | 
						|
      tabnew
 | 
						|
    ]])
 | 
						|
    matches('E36: Not enough room', exc_exec('set wmh=1'))
 | 
						|
  end)
 | 
						|
 | 
						|
  it('scroll works', function()
 | 
						|
    local screen = Screen.new(42, 16)
 | 
						|
    source([[
 | 
						|
      set scroll=2
 | 
						|
      set laststatus=2
 | 
						|
    ]])
 | 
						|
    command('verbose set scroll?')
 | 
						|
    screen:expect([[
 | 
						|
                                                |
 | 
						|
      {1:~                                         }|*11
 | 
						|
      {3:                                          }|
 | 
						|
        scroll=7                                |
 | 
						|
              Last set from changed window size |
 | 
						|
      {6:Press ENTER or type command to continue}^   |
 | 
						|
    ]])
 | 
						|
  end)
 | 
						|
 | 
						|
  it('foldcolumn and signcolumn to empty string is disallowed', function()
 | 
						|
    matches('E474: Invalid argument: fdc=', exc_exec('set fdc='))
 | 
						|
    matches('E474: Invalid argument: scl=', exc_exec('set scl='))
 | 
						|
  end)
 | 
						|
end)
 |