aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt14
-rw-r--r--test/functional/api/extmark_spec.lua38
-rw-r--r--test/functional/api/keymap_spec.lua51
-rw-r--r--test/functional/core/channels_spec.lua39
-rw-r--r--test/functional/fixtures/CMakeLists.txt2
-rw-r--r--test/functional/lua/glob_spec.lua8
-rw-r--r--test/functional/lua/version_spec.lua34
-rw-r--r--test/functional/lua/vim_spec.lua112
-rw-r--r--test/functional/treesitter/fold_spec.lua2
-rw-r--r--test/functional/treesitter/highlight_spec.lua6
-rw-r--r--test/functional/ui/embed_spec.lua50
-rw-r--r--test/functional/ui/screen.lua6
-rw-r--r--test/old/testdir/test_filetype.vim1
-rw-r--r--test/old/testdir/test_syntax.vim6
14 files changed, 320 insertions, 49 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index da2c29010b..3ae11bd1a7 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -7,7 +7,7 @@ set(TEST_OPTIONS
-D CIRRUS_CI=$ENV{CIRRUS_CI}
-D CI_BUILD=${CI_BUILD}
-D DEPS_INSTALL_DIR=${DEPS_INSTALL_DIR}
- -D NVIM_PRG=$<TARGET_FILE:nvim>
+ -D NVIM_PRG=$<TARGET_FILE:nvim_bin>
-D TEST_DIR=${CMAKE_CURRENT_SOURCE_DIR}
-D WORKING_DIR=${PROJECT_SOURCE_DIR})
@@ -18,9 +18,8 @@ if(LUA_HAS_FFI)
-D TEST_TYPE=unit
${TEST_OPTIONS}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
- DEPENDS nvim
USES_TERMINAL)
- add_dependencies(unittest lua-dev-deps)
+ add_dependencies(unittest lua-dev-deps nvim)
else()
message(WARNING "disabling unit tests: no Luajit FFI in ${LUA_PRG}")
endif()
@@ -34,16 +33,15 @@ add_custom_target(functionaltest
-D TEST_TYPE=functional
${TEST_OPTIONS}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
- DEPENDS nvim printenv-test printargs-test shell-test pwsh-test streams-test tty-test ${GENERATED_HELP_TAGS} ${GENERATED_SYN_VIM}
+ DEPENDS printenv-test printargs-test shell-test pwsh-test streams-test tty-test
USES_TERMINAL)
+add_dependencies(functionaltest lua-dev-deps nvim)
add_custom_target(benchmark
COMMAND ${CMAKE_COMMAND}
-D TEST_TYPE=benchmark
${TEST_OPTIONS}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
- DEPENDS nvim tty-test
+ DEPENDS tty-test
USES_TERMINAL)
-
-add_dependencies(functionaltest lua-dev-deps)
-add_dependencies(benchmark lua-dev-deps)
+add_dependencies(benchmark lua-dev-deps nvim)
diff --git a/test/functional/api/extmark_spec.lua b/test/functional/api/extmark_spec.lua
index 54f4aaab03..cb16f49e7c 100644
--- a/test/functional/api/extmark_spec.lua
+++ b/test/functional/api/extmark_spec.lua
@@ -1639,6 +1639,40 @@ describe('API/extmarks', function()
right_gravity = true,
},
}, get_extmark_by_id(ns, marks[3], { details = true }))
+ set_extmark(ns, marks[4], 0, 0, {
+ end_col = 1,
+ conceal = 'a',
+ spell = true,
+ })
+ eq({
+ 0,
+ 0,
+ {
+ conceal = 'a',
+ end_col = 1,
+ end_right_gravity = false,
+ end_row = 0,
+ ns_id = 1,
+ right_gravity = true,
+ spell = true,
+ },
+ }, get_extmark_by_id(ns, marks[4], { details = true }))
+ set_extmark(ns, marks[5], 0, 0, {
+ end_col = 1,
+ spell = false,
+ })
+ eq({
+ 0,
+ 0,
+ {
+ end_col = 1,
+ end_right_gravity = false,
+ end_row = 0,
+ ns_id = 1,
+ right_gravity = true,
+ spell = false,
+ },
+ }, get_extmark_by_id(ns, marks[5], { details = true }))
api.nvim_buf_clear_namespace(0, ns, 0, -1)
-- legacy sign mark includes sign name
command('sign define sign1 text=s1 texthl=Title linehl=LineNR numhl=Normal culhl=CursorLine')
@@ -1712,6 +1746,10 @@ describe('API/extmarks', function()
aaa bbb ccc |*2
|
]])
+ -- decor is not removed twice
+ command('d3')
+ api.nvim_buf_del_extmark(0, ns, 1)
+ command('silent undo')
-- mark is deleted with undo_restore == false
set_extmark(ns, 1, 0, 0, { invalidate = true, undo_restore = false, sign_text = 'S1' })
set_extmark(ns, 2, 1, 0, { invalidate = true, undo_restore = false, sign_text = 'S2' })
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
index 4f57f6d0bd..0decd710e9 100644
--- a/test/functional/api/keymap_spec.lua
+++ b/test/functional/api/keymap_spec.lua
@@ -460,6 +460,57 @@ describe('nvim_get_keymap', function()
desc = 'map description',
}, api.nvim_get_keymap('n')[1])
end)
+
+ it('can get abbreviations', function()
+ command('inoreabbr foo bar')
+ command('cnoreabbr <buffer> foo baz')
+
+ local mapargs_i = {
+ abbr = 1,
+ buffer = 0,
+ expr = 0,
+ lhs = 'foo',
+ lhsraw = 'foo',
+ lnum = 0,
+ mode = 'i',
+ mode_bits = 0x10,
+ noremap = 1,
+ nowait = 0,
+ rhs = 'bar',
+ script = 0,
+ scriptversion = 1,
+ sid = 0,
+ silent = 0,
+ }
+ local mapargs_c = {
+ abbr = 1,
+ buffer = 1,
+ expr = 0,
+ lhs = 'foo',
+ lhsraw = 'foo',
+ lnum = 0,
+ mode = 'c',
+ mode_bits = 0x08,
+ noremap = 1,
+ nowait = 0,
+ rhs = 'baz',
+ script = 0,
+ scriptversion = 1,
+ sid = 0,
+ silent = 0,
+ }
+
+ local curbuf = api.nvim_get_current_buf()
+
+ eq({ mapargs_i }, api.nvim_get_keymap('ia'))
+ eq({}, api.nvim_buf_get_keymap(curbuf, 'ia'))
+
+ eq({}, api.nvim_get_keymap('ca'))
+ eq({ mapargs_c }, api.nvim_buf_get_keymap(curbuf, 'ca'))
+
+ eq({ mapargs_i }, api.nvim_get_keymap('!a'))
+ eq({ mapargs_c }, api.nvim_buf_get_keymap(curbuf, '!a'))
+ end)
end)
describe('nvim_set_keymap, nvim_del_keymap', function()
diff --git a/test/functional/core/channels_spec.lua b/test/functional/core/channels_spec.lua
index ce13c4755d..56a2f5a571 100644
--- a/test/functional/core/channels_spec.lua
+++ b/test/functional/core/channels_spec.lua
@@ -4,7 +4,7 @@ local clear, eq, eval, next_msg, ok, source =
local command, fn, api = helpers.command, helpers.fn, helpers.api
local sleep = vim.uv.sleep
local spawn, nvim_argv = helpers.spawn, helpers.nvim_argv
-local set_session = helpers.set_session
+local get_session, set_session = helpers.get_session, helpers.set_session
local nvim_prog = helpers.nvim_prog
local is_os = helpers.is_os
local retry = helpers.retry
@@ -59,6 +59,43 @@ describe('channels', function()
eq({ 'notification', 'data', { id, { '' } } }, next_msg())
end)
+ it('dont crash due to garbage in rpc #23781', function()
+ local client = get_session()
+ local server = spawn(nvim_argv, nil, nil, true)
+ set_session(server)
+ local address = fn.serverlist()[1]
+ set_session(client)
+
+ api.nvim_set_var('address', address)
+ command("let g:id = sockconnect('pipe', address, {'on_data':'OnEvent'})")
+ local id = eval('g:id')
+ ok(id > 0)
+
+ command("call chansend(g:id, 'F')")
+ eq({ 'notification', 'data', { id, { '' } } }, next_msg())
+ set_session(server)
+ assert_alive()
+
+ set_session(client)
+ command('call chanclose(g:id)')
+ command("let g:id = sockconnect('pipe', address, {'on_data':'OnEvent'})")
+ id = eval('g:id')
+ ok(id > 0)
+
+ command("call chansend(g:id, msgpackdump([[2, 'redraw', 'F']], 'B')[:-4])")
+ set_session(server)
+ assert_alive()
+ set_session(client)
+ command("call chansend(g:id, 'F')")
+ eq({ 'notification', 'data', { id, { '' } } }, next_msg())
+
+ set_session(server)
+ assert_alive()
+ set_session(client)
+ command('call chanclose(g:id)')
+ server:close()
+ end)
+
it('can use stdio channel', function()
source([[
let g:job_opts = {
diff --git a/test/functional/fixtures/CMakeLists.txt b/test/functional/fixtures/CMakeLists.txt
index 6e64b1e4dc..150407fe46 100644
--- a/test/functional/fixtures/CMakeLists.txt
+++ b/test/functional/fixtures/CMakeLists.txt
@@ -5,7 +5,7 @@ endif()
if(WIN32)
target_compile_definitions(test_lib INTERFACE MSWIN)
endif()
-target_link_libraries(test_lib INTERFACE nvim)
+target_link_libraries(test_lib INTERFACE nvim_bin)
add_executable(tty-test EXCLUDE_FROM_ALL tty-test.c)
add_executable(shell-test EXCLUDE_FROM_ALL shell-test.c)
diff --git a/test/functional/lua/glob_spec.lua b/test/functional/lua/glob_spec.lua
index c7ef498008..1eac037575 100644
--- a/test/functional/lua/glob_spec.lua
+++ b/test/functional/lua/glob_spec.lua
@@ -67,18 +67,16 @@ describe('glob', function()
eq(true, match('dir/*/file.txt', 'dir/subdir/file.txt'))
eq(false, match('dir/*/file.txt', 'dir/subdir/subdir/file.txt'))
- -- TODO: The spec does not describe this, but VSCode only interprets ** when it's by
+ -- The spec does not describe this, but VSCode only interprets ** when it's by
-- itself in a path segment, and otherwise interprets ** as consecutive * directives.
- -- The following tests show how this behavior should work, but is not yet fully implemented.
- -- Currently, "a**" parses incorrectly as "a" "**" and "**a" parses correctly as "*" "*" "a".
-- see: https://github.com/microsoft/vscode/blob/eef30e7165e19b33daa1e15e92fa34ff4a5df0d3/src/vs/base/common/glob.ts#L112
eq(true, match('a**', 'abc')) -- '**' should parse as two '*'s when not by itself in a path segment
eq(true, match('**c', 'abc'))
- -- eq(false, match('a**', 'ab')) -- each '*' should still represent at least one character
+ eq(false, match('a**', 'ab')) -- each '*' should still represent at least one character
eq(false, match('**c', 'bc'))
eq(true, match('a**', 'abcd'))
eq(true, match('**d', 'abcd'))
- -- eq(false, match('a**', 'abc/d'))
+ eq(false, match('a**', 'abc/d'))
eq(false, match('**d', 'abc/d'))
end)
diff --git a/test/functional/lua/version_spec.lua b/test/functional/lua/version_spec.lua
index c321421ad0..3bc9e26d41 100644
--- a/test/functional/lua/version_spec.lua
+++ b/test/functional/lua/version_spec.lua
@@ -288,21 +288,55 @@ describe('version', function()
eq(vim.version.last({ v('2.0.0'), v('1.2.3') }), v('2.0.0'))
end)
+ it('le()', function()
+ eq(true, vim.version.le('1', '1'))
+ eq(true, vim.version.le({ 3, 1, 4 }, '3.1.4'))
+ eq(true, vim.version.le('1', '2'))
+ eq(true, vim.version.le({ 0, 7, 4 }, { 3 }))
+ eq(false, vim.version.le({ 3 }, { 0, 7, 4 }))
+ eq(false, vim.version.le({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 }))
+ eq(false, vim.version.le('2', '1'))
+ end)
+
it('lt()', function()
+ eq(false, vim.version.lt('1', '1'))
+ eq(false, vim.version.lt({ 3, 1, 4 }, '3.1.4'))
eq(true, vim.version.lt('1', '2'))
+ eq(true, vim.version.lt({ 0, 7, 4 }, { 3 }))
eq(false, vim.version.lt({ 3 }, { 0, 7, 4 }))
eq(false, vim.version.lt({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 }))
+ eq(false, vim.version.lt('2', '1'))
+ end)
+
+ it('ge()', function()
+ eq(true, vim.version.ge('1', '1'))
+ eq(true, vim.version.ge({ 3, 1, 4 }, '3.1.4'))
+ eq(true, vim.version.ge('2', '1'))
+ eq(true, vim.version.ge({ 3 }, { 0, 7, 4 }))
+ eq(true, vim.version.ge({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 }))
+ eq(false, vim.version.ge('1', '2'))
+ eq(false, vim.version.ge({ 0, 7, 4 }, { 3 }))
end)
it('gt()', function()
+ eq(false, vim.version.gt('1', '1'))
+ eq(false, vim.version.gt({ 3, 1, 4 }, '3.1.4'))
eq(true, vim.version.gt('2', '1'))
eq(true, vim.version.gt({ 3 }, { 0, 7, 4 }))
eq(true, vim.version.gt({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 }))
+ eq(false, vim.version.gt('1', '2'))
+ eq(false, vim.version.gt({ 0, 7, 4 }, { 3 }))
end)
it('eq()', function()
eq(true, vim.version.eq('2', '2'))
eq(true, vim.version.eq({ 3, 1, 0 }, '3.1.0'))
eq(true, vim.version.eq({ major = 3, minor = 3, patch = 0 }, { 3, 3, 0 }))
+ eq(false, vim.version.eq('2', '3'))
+
+ -- semver: v3 == v3.0 == v3.0.0
+ eq(true, vim.version.eq('3', { 3, 0, 0 }))
+ eq(true, vim.version.eq({ 3, 0 }, { 3 }))
+ eq(true, vim.version.eq({ 3, 0, 0 }, { 3 }))
end)
end)
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua
index 98968f3695..6e05728b0c 100644
--- a/test/functional/lua/vim_spec.lua
+++ b/test/functional/lua/vim_spec.lua
@@ -128,33 +128,93 @@ describe('lua stdlib', function()
eq(1, fn.luaeval('vim.stricmp("\\0C\\0", "\\0B\\0")'))
end)
- it('vim.deprecate', function()
+ local function test_vim_deprecate(current_version)
-- vim.deprecate(name, alternative, version, plugin, backtrace)
- eq(
- dedent [[
- foo.bar() is deprecated, use zub.wooo{ok=yay} instead. :help deprecated
- This feature will be removed in Nvim version 0.10]],
- exec_lua('return vim.deprecate(...)', 'foo.bar()', 'zub.wooo{ok=yay}', '0.10')
- )
- -- Same message, skipped.
- eq(vim.NIL, exec_lua('return vim.deprecate(...)', 'foo.bar()', 'zub.wooo{ok=yay}', '0.10'))
- -- Don't show error if not hard deprecated
- eq(vim.NIL, exec_lua('return vim.deprecate(...)', 'foo.bar()', 'nil', '5000.0.0'))
- -- When `plugin` is specified, don't show ":help deprecated". #22235
- eq(
- dedent [[
- foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
- This feature will be removed in my-plugin.nvim version 0.3.0]],
- exec_lua(
- 'return vim.deprecate(...)',
- 'foo.bar()',
- 'zub.wooo{ok=yay}',
- '0.3.0',
- 'my-plugin.nvim',
- false
- )
- )
- end)
+ -- See MAINTAIN.md for the soft/hard deprecation policy
+
+ describe(('vim.deprecate [current_version = %s]'):format(current_version), function()
+ before_each(function()
+ -- mock vim.version() behavior, should be pinned for consistent testing
+ exec_lua(
+ [[
+ local current_version_mock = vim.version.parse(...)
+ getmetatable(vim.version).__call = function()
+ return current_version_mock
+ end
+ ]],
+ current_version
+ )
+ end)
+
+ it('when plugin = nil', function()
+ eq(
+ dedent [[
+ foo.bar() is deprecated, use zub.wooo{ok=yay} instead. :help deprecated
+ This feature will be removed in Nvim version 0.10]],
+ exec_lua('return vim.deprecate(...)', 'foo.bar()', 'zub.wooo{ok=yay}', '0.10')
+ )
+ -- Same message, skipped.
+ eq(vim.NIL, exec_lua('return vim.deprecate(...)', 'foo.bar()', 'zub.wooo{ok=yay}', '0.10'))
+
+ -- Don't show error if not hard-deprecated (only soft-deprecated)
+ eq(
+ vim.NIL,
+ exec_lua('return vim.deprecate(...)', 'foo.baz()', 'foo.better_baz()', '0.12.0')
+ )
+
+ -- Show error if hard-deprecated
+ eq(
+ dedent [[
+ foo.hard_dep() is deprecated, use vim.new_api() instead. :help deprecated
+ This feature will be removed in Nvim version 0.11]],
+ exec_lua('return vim.deprecate(...)', 'foo.hard_dep()', 'vim.new_api()', '0.11')
+ )
+
+ -- To be deleted in the next major version (1.0)
+ eq(
+ dedent [[
+ foo.baz() is deprecated. :help deprecated
+ This feature will be removed in Nvim version 1.0]],
+ exec_lua [[ return vim.deprecate('foo.baz()', nil, '1.0') ]]
+ )
+ end)
+
+ it('when plugin is specified', function()
+ -- When `plugin` is specified, don't show ":help deprecated". #22235
+ eq(
+ dedent [[
+ foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
+ This feature will be removed in my-plugin.nvim version 0.3.0]],
+ exec_lua(
+ 'return vim.deprecate(...)',
+ 'foo.bar()',
+ 'zub.wooo{ok=yay}',
+ '0.3.0',
+ 'my-plugin.nvim',
+ false
+ )
+ )
+
+ -- plugins: no soft deprecation period
+ eq(
+ dedent [[
+ foo.bar() is deprecated, use zub.wooo{ok=yay} instead.
+ This feature will be removed in my-plugin.nvim version 0.11.0]],
+ exec_lua(
+ 'return vim.deprecate(...)',
+ 'foo.bar()',
+ 'zub.wooo{ok=yay}',
+ '0.11.0',
+ 'my-plugin.nvim',
+ false
+ )
+ )
+ end)
+ end)
+ end
+
+ test_vim_deprecate('0.10')
+ test_vim_deprecate('0.10-dev+g0000000')
it('vim.startswith', function()
eq(true, fn.luaeval('vim.startswith("123", "1")'))
diff --git a/test/functional/treesitter/fold_spec.lua b/test/functional/treesitter/fold_spec.lua
index 2302cf869e..ac9d227bb6 100644
--- a/test/functional/treesitter/fold_spec.lua
+++ b/test/functional/treesitter/fold_spec.lua
@@ -729,7 +729,7 @@ void qsort(void *base, size_t nel, size_t width, int (*compar)(const void *, con
feed('ggVGzf')
screen:expect {
grid = [[
- {2:^void}{1: }{3:qsort}{4:(}{2:void}{1: }{5:*}{3:base}{4:,}{1: }{2:size_t}{1: }{3:nel}{4:,}{1: }{2:size_t}{1: }{3:width}{4:,}{1: }{2:int}{1: }{4:(}{5:*}{3:compa}|
+ {4:^void}{1: }{3:qsort}{4:(void}{1: }{5:*}{3:base}{4:,}{1: }{4:size_t}{1: }{3:nel}{4:,}{1: }{4:size_t}{1: }{3:width}{4:,}{1: }{4:int}{1: }{4:(}{5:*}{3:compa}|
{0:~ }|*3
|
]],
diff --git a/test/functional/treesitter/highlight_spec.lua b/test/functional/treesitter/highlight_spec.lua
index f4f7bc691c..932af0332b 100644
--- a/test/functional/treesitter/highlight_spec.lua
+++ b/test/functional/treesitter/highlight_spec.lua
@@ -766,7 +766,7 @@ describe('treesitter highlighting (help)', function()
{1:>ruby} |
{1: -- comment} |
{1: local this_is = 'actually_lua'} |
- < |
+ {1:<} |
^ |
|
]],
@@ -779,7 +779,7 @@ describe('treesitter highlighting (help)', function()
{1:>lua} |
{1: -- comment} |
{1: }{3:local}{1: }{4:this_is}{1: }{3:=}{1: }{5:'actually_lua'} |
- < |
+ {1:<} |
^ |
|
]],
@@ -792,7 +792,7 @@ describe('treesitter highlighting (help)', function()
{1:>ruby} |
{1: -- comment} |
{1: local this_is = 'actually_lua'} |
- < |
+ {1:<} |
^ |
|
]],
diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua
index e655ee1b54..f6bdd2215d 100644
--- a/test/functional/ui/embed_spec.lua
+++ b/test/functional/ui/embed_spec.lua
@@ -171,6 +171,56 @@ describe('--embed UI', function()
}
eq({ [16711935] = true }, seen) -- we only saw the last one, despite 16777215 was set internally earlier
end)
+
+ it('updates cwd of attached UI #21771', function()
+ clear { args_rm = { '--headless' } }
+
+ local screen = Screen.new(40, 8)
+ screen:attach()
+
+ screen:expect {
+ condition = function()
+ eq(helpers.paths.test_source_path, screen.pwd)
+ end,
+ }
+
+ -- Change global cwd
+ helpers.command(string.format('cd %s/src/nvim', helpers.paths.test_source_path))
+
+ screen:expect {
+ condition = function()
+ eq(string.format('%s/src/nvim', helpers.paths.test_source_path), screen.pwd)
+ end,
+ }
+
+ -- Split the window and change the cwd in the split
+ helpers.command('new')
+ helpers.command(string.format('lcd %s/test', helpers.paths.test_source_path))
+
+ screen:expect {
+ condition = function()
+ eq(string.format('%s/test', helpers.paths.test_source_path), screen.pwd)
+ end,
+ }
+
+ -- Move to the original window
+ helpers.command('wincmd p')
+
+ screen:expect {
+ condition = function()
+ eq(string.format('%s/src/nvim', helpers.paths.test_source_path), screen.pwd)
+ end,
+ }
+
+ -- Change global cwd again
+ helpers.command(string.format('cd %s', helpers.paths.test_source_path))
+
+ screen:expect {
+ condition = function()
+ eq(helpers.paths.test_source_path, screen.pwd)
+ end,
+ }
+ end)
end)
describe('--embed --listen UI', function()
diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua
index 644ee910b6..07333f2e21 100644
--- a/test/functional/ui/screen.lua
+++ b/test/functional/ui/screen.lua
@@ -140,6 +140,7 @@ function Screen.new(width, height)
suspended = false,
mode = 'normal',
options = {},
+ pwd = '',
popupmenu = nil,
cmdline = {},
cmdline_block = {},
@@ -212,7 +213,6 @@ function Screen:attach(options, session)
if options.ext_linegrid == nil then
options.ext_linegrid = true
end
-
self._session = session
self._options = options
self._clear_attrs = (not options.ext_linegrid) and {} or nil
@@ -1108,6 +1108,10 @@ function Screen:_handle_option_set(name, value)
self.options[name] = value
end
+function Screen:_handle_chdir(path)
+ self.pwd = vim.fs.normalize(path, { expand_env = false })
+end
+
function Screen:_handle_popupmenu_show(items, selected, row, col, grid)
self.popupmenu = { items = items, pos = selected, anchor = { grid, row, col } }
end
diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim
index 50e60de484..e0c3fdd6c4 100644
--- a/test/old/testdir/test_filetype.vim
+++ b/test/old/testdir/test_filetype.vim
@@ -140,6 +140,7 @@ func s:GetFilenameChecks() abort
\ 'chatito': ['file.chatito'],
\ 'chill': ['file..ch'],
\ 'chordpro': ['file.chopro', 'file.crd', 'file.cho', 'file.crdpro', 'file.chordpro'],
+ \ 'chuck': ['file.ck'],
\ 'cl': ['file.eni'],
\ 'clean': ['file.dcl', 'file.icl'],
\ 'clojure': ['file.clj', 'file.cljs', 'file.cljx', 'file.cljc'],
diff --git a/test/old/testdir/test_syntax.vim b/test/old/testdir/test_syntax.vim
index 10dc798df7..711b2adf7c 100644
--- a/test/old/testdir/test_syntax.vim
+++ b/test/old/testdir/test_syntax.vim
@@ -197,14 +197,14 @@ func Test_syntax_completion()
" Check that clearing "Aap" avoids it showing up before Boolean.
hi @Aap ctermfg=blue
call feedkeys(":syn list \<C-A>\<C-B>\"\<CR>", 'tx')
- call assert_match('^"syn list @Aap @boolean @character ', @:)
+ call assert_match('^"syn list @Aap @attribute @boolean @character ', @:)
hi clear @Aap
call feedkeys(":syn list \<C-A>\<C-B>\"\<CR>", 'tx')
- call assert_match('^"syn list @boolean @character ', @:)
+ call assert_match('^"syn list @attribute @boolean @character ', @:)
call feedkeys(":syn match \<C-A>\<C-B>\"\<CR>", 'tx')
- call assert_match('^"syn match @boolean @character ', @:)
+ call assert_match('^"syn match @attribute @boolean @character ', @:)
syn cluster Aax contains=Aap
call feedkeys(":syn list @A\<C-A>\<C-B>\"\<CR>", 'tx')