aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/api/buffer_spec.lua7
-rw-r--r--test/functional/api/server_notifications_spec.lua2
-rw-r--r--test/functional/api/vim_spec.lua27
-rw-r--r--test/functional/api/window_spec.lua10
-rw-r--r--test/functional/autocmd/modechanged_spec.lua31
-rw-r--r--test/functional/core/fileio_spec.lua9
-rw-r--r--test/functional/core/startup_spec.lua2
-rw-r--r--test/functional/fixtures/api_level_8.mpackbin0 -> 28544 bytes
-rw-r--r--test/functional/legacy/059_utf8_spell_checking_spec.lua1010
-rw-r--r--test/functional/lua/diagnostic_spec.lua57
-rw-r--r--test/functional/lua/vim_spec.lua22
-rw-r--r--test/functional/treesitter/parser_spec.lua12
12 files changed, 153 insertions, 1036 deletions
diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua
index a0c97804b7..688f3abba5 100644
--- a/test/functional/api/buffer_spec.lua
+++ b/test/functional/api/buffer_spec.lua
@@ -629,6 +629,13 @@ describe('api/buf', function()
-- Doesn't change the global value
eq([[^\s*#\s*define]], nvim('get_option', 'define'))
end)
+
+ it('returns values for unset local options', function()
+ -- 'undolevels' is only set to its "unset" value when a new buffer is
+ -- created
+ command('enew')
+ eq(-123456, curbuf('get_option', 'undolevels'))
+ end)
end)
describe('nvim_buf_get_name, nvim_buf_set_name', function()
diff --git a/test/functional/api/server_notifications_spec.lua b/test/functional/api/server_notifications_spec.lua
index 6367cc5caa..1c00f001ff 100644
--- a/test/functional/api/server_notifications_spec.lua
+++ b/test/functional/api/server_notifications_spec.lua
@@ -81,6 +81,8 @@ describe('notify', function()
if isCI() then
pending('hangs on CI #14083 #15251')
return
+ elseif helpers.skip_fragile(pending) then
+ return
end
if helpers.pending_win32(pending) then return end
local catchan = eval("jobstart(['cat'], {'rpc': v:true})")
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 21de4925b5..d53208a915 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -949,6 +949,33 @@ describe('API', function()
end)
end)
+ describe('nvim_get_option_value, nvim_set_option_value', function()
+ it('works', function()
+ ok(nvim('get_option_value', 'equalalways', {}))
+ nvim('set_option_value', 'equalalways', false, {})
+ ok(not nvim('get_option_value', 'equalalways', {}))
+ end)
+
+ it('can get local values when global value is set', function()
+ eq(0, nvim('get_option_value', 'scrolloff', {}))
+ eq(-1, nvim('get_option_value', 'scrolloff', {scope = 'local'}))
+ end)
+
+ it('can set global and local values', function()
+ nvim('set_option_value', 'makeprg', 'hello', {})
+ eq('hello', nvim('get_option_value', 'makeprg', {}))
+ eq('', nvim('get_option_value', 'makeprg', {scope = 'local'}))
+ nvim('set_option_value', 'makeprg', 'world', {scope = 'local'})
+ eq('world', nvim('get_option_value', 'makeprg', {scope = 'local'}))
+ nvim('set_option_value', 'makeprg', 'goodbye', {scope = 'global'})
+ eq('goodbye', nvim('get_option_value', 'makeprg', {scope = 'global'}))
+ nvim('set_option_value', 'makeprg', 'hello', {})
+ eq('hello', nvim('get_option_value', 'makeprg', {scope = 'global'}))
+ eq('hello', nvim('get_option_value', 'makeprg', {}))
+ eq('', nvim('get_option_value', 'makeprg', {scope = 'local'}))
+ end)
+ end)
+
describe('nvim_{get,set}_current_buf, nvim_list_bufs', function()
it('works', function()
eq(1, #nvim('list_bufs'))
diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua
index 11755a9d97..4d2ffa316a 100644
--- a/test/functional/api/window_spec.lua
+++ b/test/functional/api/window_spec.lua
@@ -222,9 +222,9 @@ describe('API/win', function()
eq('', nvim('get_option', 'statusline'))
command("set modified")
command("enew") -- global-local: not preserved in new buffer
- eq("Failed to get value for option 'statusline'",
- pcall_err(curwin, 'get_option', 'statusline'))
- eq('', eval('&l:statusline')) -- confirm local value was not copied
+ -- confirm local value was not copied
+ eq('', curwin('get_option', 'statusline'))
+ eq('', eval('&l:statusline'))
end)
it('after switching windows #15390', function()
@@ -238,6 +238,10 @@ describe('API/win', function()
eq('window-status', window('get_option', win1, 'statusline'))
assert_alive()
end)
+
+ it('returns values for unset local options', function()
+ eq(-1, curwin('get_option', 'scrolloff'))
+ end)
end)
describe('get_position', function()
diff --git a/test/functional/autocmd/modechanged_spec.lua b/test/functional/autocmd/modechanged_spec.lua
new file mode 100644
index 0000000000..be5a291ac9
--- /dev/null
+++ b/test/functional/autocmd/modechanged_spec.lua
@@ -0,0 +1,31 @@
+local helpers = require('test.functional.helpers')(after_each)
+local clear, eval, eq = helpers.clear, helpers.eval, helpers.eq
+local feed, command = helpers.feed, helpers.command
+
+describe('ModeChanged', function()
+ before_each(function()
+ clear()
+ command('let g:count = 0')
+ command('au ModeChanged * let g:event = copy(v:event)')
+ command('au ModeChanged * let g:count += 1')
+ end)
+
+ it('picks up terminal mode changes', function()
+ command("term")
+ feed('i')
+ eq({
+ old_mode = 'nt',
+ new_mode = 't'
+ }, eval('g:event'))
+ feed('<c-\\><c-n>')
+ eq({
+ old_mode = 't',
+ new_mode = 'nt'
+ }, eval('g:event'))
+ eq(3, eval('g:count'))
+ command("bd!")
+
+ -- v:event is cleared after the autocommand is done
+ eq({}, eval('v:event'))
+ end)
+end)
diff --git a/test/functional/core/fileio_spec.lua b/test/functional/core/fileio_spec.lua
index f4c476560d..c68bc18eed 100644
--- a/test/functional/core/fileio_spec.lua
+++ b/test/functional/core/fileio_spec.lua
@@ -15,6 +15,7 @@ local read_file = helpers.read_file
local trim = helpers.trim
local currentdir = helpers.funcs.getcwd
local iswin = helpers.iswin
+local assert_alive = helpers.assert_alive
describe('fileio', function()
before_each(function()
@@ -26,6 +27,7 @@ describe('fileio', function()
os.remove('Xtest_startup_file1~')
os.remove('Xtest_startup_file2')
os.remove('Xtest_тест.md')
+ os.remove('Xtest-u8-int-max')
rmdir('Xtest_startup_swapdir')
rmdir('Xtest_backupdir')
end)
@@ -128,5 +130,12 @@ describe('fileio', function()
table.insert(text, '')
eq(text, funcs.readfile(fname, 'b'))
end)
+ it('read invalid u8 over INT_MAX doesn\'t segfault', function()
+ clear()
+ command('call writefile(0zFFFFFFFF, "Xtest-u8-int-max")')
+ -- This should not segfault
+ command('edit ++enc=utf32 Xtest-u8-int-max')
+ assert_alive()
+ end)
end)
diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua
index d1dce0f8da..4220d68ee1 100644
--- a/test/functional/core/startup_spec.lua
+++ b/test/functional/core/startup_spec.lua
@@ -560,7 +560,7 @@ describe('user config init', function()
it('loads default lua config, but shows an error', function()
clear{ args_rm={'-u'}, env=xenv }
- feed('<cr>') -- TODO check this, test execution is blocked without it
+ feed('<cr>') -- confirm "Conflicting config ..." message
eq(1, eval('g:lua_rc'))
matches('^E5422: Conflicting configs', meths.exec('messages', true))
end)
diff --git a/test/functional/fixtures/api_level_8.mpack b/test/functional/fixtures/api_level_8.mpack
new file mode 100644
index 0000000000..0447fce3ed
--- /dev/null
+++ b/test/functional/fixtures/api_level_8.mpack
Binary files differ
diff --git a/test/functional/legacy/059_utf8_spell_checking_spec.lua b/test/functional/legacy/059_utf8_spell_checking_spec.lua
deleted file mode 100644
index 8630ac58ef..0000000000
--- a/test/functional/legacy/059_utf8_spell_checking_spec.lua
+++ /dev/null
@@ -1,1010 +0,0 @@
--- Tests for spell checking with 'encoding' set to "utf-8".
-
-local helpers = require('test.functional.helpers')(after_each)
-local feed, insert, source = helpers.feed, helpers.insert, helpers.source
-local clear, feed_command, expect = helpers.clear, helpers.feed_command, helpers.expect
-local write_file, call = helpers.write_file, helpers.call
-
-local function write_latin1(name, text)
- text = call('iconv', text, 'utf-8', 'latin-1')
- write_file(name, text)
-end
-
-describe("spell checking with 'encoding' set to utf-8", function()
- setup(function()
- clear()
- feed_command("syntax off")
- write_latin1('Xtest1.aff',[[
- SET ISO8859-1
- TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
-
- FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-
- SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
- SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
-
- MIDWORD '-
-
- KEP =
- RAR ?
- BAD !
-
- PFX I N 1
- PFX I 0 in .
-
- PFX O Y 1
- PFX O 0 out .
-
- SFX S Y 2
- SFX S 0 s [^s]
- SFX S 0 es s
-
- SFX N N 3
- SFX N 0 en [^n]
- SFX N 0 nen n
- SFX N 0 n .
-
- REP 3
- REP g ch
- REP ch g
- REP svp s.v.p.
-
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
- ]])
- write_latin1('Xtest1.dic', [[
- 123456
- test/NO
- # comment
- wrong
- Comment
- OK
- uk
- put/ISO
- the end
- deol
- déôr
- ]])
- write_latin1('Xtest2.aff', [[
- SET ISO8859-1
-
- FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-
- PFXPOSTPONE
-
- MIDWORD '-
-
- KEP =
- RAR ?
- BAD !
-
- PFX I N 1
- PFX I 0 in .
-
- PFX O Y 1
- PFX O 0 out [a-z]
-
- SFX S Y 2
- SFX S 0 s [^s]
- SFX S 0 es s
-
- SFX N N 3
- SFX N 0 en [^n]
- SFX N 0 nen n
- SFX N 0 n .
-
- REP 3
- REP g ch
- REP ch g
- REP svp s.v.p.
-
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
- ]])
- write_latin1('Xtest3.aff', [[
- SET ISO8859-1
-
- COMPOUNDMIN 3
- COMPOUNDRULE m*
- NEEDCOMPOUND x
- ]])
- write_latin1('Xtest3.dic', [[
- 1234
- foo/m
- bar/mx
- mï/m
- la/mx
- ]])
- write_latin1('Xtest4.aff', [[
- SET ISO8859-1
-
- FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-
- COMPOUNDRULE m+
- COMPOUNDRULE sm*e
- COMPOUNDRULE sm+
- COMPOUNDMIN 3
- COMPOUNDWORDMAX 3
- COMPOUNDFORBIDFLAG t
-
- COMPOUNDSYLMAX 5
- SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
-
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
-
- NEEDAFFIX x
-
- PFXPOSTPONE
-
- MIDWORD '-
-
- SFX q N 1
- SFX q 0 -ok .
-
- SFX a Y 2
- SFX a 0 s .
- SFX a 0 ize/t .
-
- PFX p N 1
- PFX p 0 pre .
-
- PFX P N 1
- PFX P 0 nou .
- ]])
- write_latin1('Xtest4.dic', [[
- 1234
- word/mP
- util/am
- pro/xq
- tomato/m
- bork/mp
- start/s
- end/e
- ]])
- write_latin1('Xtest5.aff', [[
- SET ISO8859-1
-
- FLAG long
-
- NEEDAFFIX !!
-
- COMPOUNDRULE ssmm*ee
-
- NEEDCOMPOUND xx
- COMPOUNDPERMITFLAG pp
-
- SFX 13 Y 1
- SFX 13 0 bork .
-
- SFX a1 Y 1
- SFX a1 0 a1 .
-
- SFX aé Y 1
- SFX aé 0 aé .
-
- PFX zz Y 1
- PFX zz 0 pre/pp .
-
- PFX yy Y 1
- PFX yy 0 nou .
- ]])
- write_latin1('Xtest5.dic', [[
- 1234
- foo/a1aé!!
- bar/zz13ee
- start/ss
- end/eeyy
- middle/mmxx
- ]])
- write_latin1('Xtest6.aff', [[
- SET ISO8859-1
-
- FLAG caplong
-
- NEEDAFFIX A!
-
- COMPOUNDRULE sMm*Ee
-
- NEEDCOMPOUND Xx
-
- COMPOUNDPERMITFLAG p
-
- SFX N3 Y 1
- SFX N3 0 bork .
-
- SFX A1 Y 1
- SFX A1 0 a1 .
-
- SFX Aé Y 1
- SFX Aé 0 aé .
-
- PFX Zz Y 1
- PFX Zz 0 pre/p .
- ]])
- write_latin1('Xtest6.dic', [[
- 1234
- mee/A1AéA!
- bar/ZzN3Ee
- lead/s
- end/Ee
- middle/MmXx
- ]])
- write_latin1('Xtest7.aff', [[
- SET ISO8859-1
-
- FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-
- FLAG num
-
- NEEDAFFIX 9999
-
- COMPOUNDRULE 2,77*123
-
- NEEDCOMPOUND 1
- COMPOUNDPERMITFLAG 432
-
- SFX 61003 Y 1
- SFX 61003 0 meat .
-
- SFX 391 Y 1
- SFX 391 0 a1 .
-
- SFX 111 Y 1
- SFX 111 0 aé .
-
- PFX 17 Y 1
- PFX 17 0 pre/432 .
- ]])
- write_latin1('Xtest7.dic', [[
- 1234
- mee/391,111,9999
- bar/17,61003,123
- lead/2
- tail/123
- middle/77,1
- ]])
- write_latin1('Xtest8.aff', [[
- SET ISO8859-1
-
- NOSPLITSUGS
- ]])
- write_latin1('Xtest8.dic', [[
- 1234
- foo
- bar
- faabar
- ]])
- write_latin1('Xtest9.aff', [[
- ]])
- write_latin1('Xtest9.dic', [[
- 1234
- foo
- bar
- ]])
- write_latin1('Xtest-sal.aff', [[
- SET ISO8859-1
- TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
-
- FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-
- MIDWORD '-
-
- KEP =
- RAR ?
- BAD !
-
- PFX I N 1
- PFX I 0 in .
-
- PFX O Y 1
- PFX O 0 out .
-
- SFX S Y 2
- SFX S 0 s [^s]
- SFX S 0 es s
-
- SFX N N 3
- SFX N 0 en [^n]
- SFX N 0 nen n
- SFX N 0 n .
-
- REP 3
- REP g ch
- REP ch g
- REP svp s.v.p.
-
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
-
- SAL AH(AEIOUY)-^ *H
- SAL AR(AEIOUY)-^ *R
- SAL A(HR)^ *
- SAL A^ *
- SAL AH(AEIOUY)- H
- SAL AR(AEIOUY)- R
- SAL A(HR) _
- SAL À^ *
- SAL Å^ *
- SAL BB- _
- SAL B B
- SAL CQ- _
- SAL CIA X
- SAL CH X
- SAL C(EIY)- S
- SAL CK K
- SAL COUGH^ KF
- SAL CC< C
- SAL C K
- SAL DG(EIY) K
- SAL DD- _
- SAL D T
- SAL É< E
- SAL EH(AEIOUY)-^ *H
- SAL ER(AEIOUY)-^ *R
- SAL E(HR)^ *
- SAL ENOUGH^$ *NF
- SAL E^ *
- SAL EH(AEIOUY)- H
- SAL ER(AEIOUY)- R
- SAL E(HR) _
- SAL FF- _
- SAL F F
- SAL GN^ N
- SAL GN$ N
- SAL GNS$ NS
- SAL GNED$ N
- SAL GH(AEIOUY)- K
- SAL GH _
- SAL GG9 K
- SAL G K
- SAL H H
- SAL IH(AEIOUY)-^ *H
- SAL IR(AEIOUY)-^ *R
- SAL I(HR)^ *
- SAL I^ *
- SAL ING6 N
- SAL IH(AEIOUY)- H
- SAL IR(AEIOUY)- R
- SAL I(HR) _
- SAL J K
- SAL KN^ N
- SAL KK- _
- SAL K K
- SAL LAUGH^ LF
- SAL LL- _
- SAL L L
- SAL MB$ M
- SAL MM M
- SAL M M
- SAL NN- _
- SAL N N
- SAL OH(AEIOUY)-^ *H
- SAL OR(AEIOUY)-^ *R
- SAL O(HR)^ *
- SAL O^ *
- SAL OH(AEIOUY)- H
- SAL OR(AEIOUY)- R
- SAL O(HR) _
- SAL PH F
- SAL PN^ N
- SAL PP- _
- SAL P P
- SAL Q K
- SAL RH^ R
- SAL ROUGH^ RF
- SAL RR- _
- SAL R R
- SAL SCH(EOU)- SK
- SAL SC(IEY)- S
- SAL SH X
- SAL SI(AO)- X
- SAL SS- _
- SAL S S
- SAL TI(AO)- X
- SAL TH @
- SAL TCH-- _
- SAL TOUGH^ TF
- SAL TT- _
- SAL T T
- SAL UH(AEIOUY)-^ *H
- SAL UR(AEIOUY)-^ *R
- SAL U(HR)^ *
- SAL U^ *
- SAL UH(AEIOUY)- H
- SAL UR(AEIOUY)- R
- SAL U(HR) _
- SAL V^ W
- SAL V F
- SAL WR^ R
- SAL WH^ W
- SAL W(AEIOU)- W
- SAL X^ S
- SAL X KS
- SAL Y(AEIOU)- Y
- SAL ZZ- _
- SAL Z S
- ]])
- write_file('Xtest.utf-8.add', [[
- /regions=usgbnz
- elequint/2
- elekwint/3
- ]])
- end)
-
- teardown(function()
- os.remove('Xtest-sal.aff')
- os.remove('Xtest.aff')
- os.remove('Xtest.dic')
- os.remove('Xtest.utf-8.add')
- os.remove('Xtest.utf-8.add.spl')
- os.remove('Xtest.utf-8.spl')
- os.remove('Xtest.utf-8.sug')
- os.remove('Xtest1.aff')
- os.remove('Xtest1.dic')
- os.remove('Xtest2.aff')
- os.remove('Xtest3.aff')
- os.remove('Xtest3.dic')
- os.remove('Xtest4.aff')
- os.remove('Xtest4.dic')
- os.remove('Xtest5.aff')
- os.remove('Xtest5.dic')
- os.remove('Xtest6.aff')
- os.remove('Xtest6.dic')
- os.remove('Xtest7.aff')
- os.remove('Xtest7.dic')
- os.remove('Xtest8.aff')
- os.remove('Xtest8.dic')
- os.remove('Xtest9.aff')
- os.remove('Xtest9.dic')
- end)
-
- -- Function to test .aff/.dic with list of good and bad words. This was a
- -- Vim function in the original legacy test.
- local function test_one(aff, dic)
- -- Generate a .spl file from a .dic and .aff file.
- if helpers.iswin() then
- os.execute('copy /y Xtest'..aff..'.aff Xtest.aff')
- os.execute('copy /y Xtest'..dic..'.dic Xtest.dic')
- else
- os.execute('cp -f Xtest'..aff..'.aff Xtest.aff')
- os.execute('cp -f Xtest'..dic..'.dic Xtest.dic')
- end
- source([[
- set spellfile=
- function! SpellDumpNoShow()
- " spelling scores depend on what happens to be drawn on screen
- spelldump
- %yank
- quit
- endfunction
- $put =''
- $put ='test ]]..aff..'-'..dic..[['
- mkspell! Xtest Xtest
- " Use that spell file.
- set spl=Xtest.utf-8.spl spell
- " List all valid words.
- call SpellDumpNoShow()
- $put
- $put ='-------'
- " Find all bad words and suggestions for them.
- 1;/^]]..aff..[[good:
- normal 0f:]s
- let prevbad = ''
- while 1
- let [bad, a] = spellbadword()
- if bad == '' || bad == prevbad || bad == 'badend'
- break
- endif
- let prevbad = bad
- let lst = spellsuggest(bad, 3)
- normal mm
- $put =bad
- $put =string(lst)
- normal `m]s
- endwhile
- ]])
- end
-
- it('part 1-1', function()
- insert([[
- 1good: wrong OK puts. Test the end
- bad: inputs comment ok Ok. test déôl end the
- badend
-
- test2:
- elequint test elekwint test elekwent asdf
- ]])
- test_one(1, 1)
- feed_command([[$put =soundfold('goobledygoook')]])
- feed_command([[$put =soundfold('kóopërÿnôven')]])
- feed_command([[$put =soundfold('oeverloos gezwets edale')]])
- -- And now with SAL instead of SOFO items; test automatic reloading.
- if helpers.iswin() then
- os.execute('copy /y Xtest-sal.aff Xtest.aff')
- else
- os.execute('cp -f Xtest-sal.aff Xtest.aff')
- end
- feed_command('mkspell! Xtest Xtest')
- feed_command([[$put =soundfold('goobledygoook')]])
- feed_command([[$put =soundfold('kóopërÿnôven')]])
- feed_command([[$put =soundfold('oeverloos gezwets edale')]])
- -- Also use an addition file.
- feed_command('mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add')
- feed_command('set spellfile=Xtest.utf-8.add')
- feed_command('/^test2:')
- feed(']s')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed_command('set spl=Xtest_us.utf-8.spl')
- feed_command('/^test2:')
- feed(']smm')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed('`m]s')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed_command('set spl=Xtest_gb.utf-8.spl')
- feed_command('/^test2:')
- feed(']smm')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed('`m]s')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed_command('set spl=Xtest_nz.utf-8.spl')
- feed_command('/^test2:')
- feed(']smm')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed('`m]s')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed_command('set spl=Xtest_ca.utf-8.spl')
- feed_command('/^test2:')
- feed(']smm')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed('`m]s')
- feed_command('let [str, a] = spellbadword()')
- feed_command('$put =str')
- feed_command('1,/^test 1-1/-1d')
- expect([[
- test 1-1
- # file: Xtest.utf-8.spl
- Comment
- deol
- déôr
- input
- OK
- output
- outputs
- outtest
- put
- puts
- test
- testen
- testn
- the end
- uk
- wrong
- -------
- bad
- ['put', 'uk', 'OK']
- inputs
- ['input', 'puts', 'outputs']
- comment
- ['Comment', 'outtest', 'the end']
- ok
- ['OK', 'uk', 'put']
- Ok
- ['OK', 'Uk', 'Put']
- test
- ['Test', 'testn', 'testen']
- déôl
- ['deol', 'déôr', 'test']
- end
- ['put', 'uk', 'test']
- the
- ['put', 'uk', 'test']
- gebletegek
- kepereneven
- everles gesvets etele
- kbltykk
- kprnfn
- *fls kswts tl
- elekwent
- elequint
- elekwint
- elekwint
- elekwent
- elequint
- elekwent
- elequint
- elekwint]])
- end)
-
- it('part 2-1', function()
- insert([[
- 2good: puts
- bad: inputs comment ok Ok end the. test déôl
- badend
- ]])
- -- Postponed prefixes.
- test_one(2, 1)
- feed_command('1,/^test 2-1/-1d')
- expect([=[
- test 2-1
- # file: Xtest.utf-8.spl
- Comment
- deol
- déôr
- OK
- put
- input
- output
- puts
- outputs
- test
- outtest
- testen
- testn
- the end
- uk
- wrong
- -------
- bad
- ['put', 'uk', 'OK']
- inputs
- ['input', 'puts', 'outputs']
- comment
- ['Comment']
- ok
- ['OK', 'uk', 'put']
- Ok
- ['OK', 'Uk', 'Put']
- end
- ['put', 'uk', 'deol']
- the
- ['put', 'uk', 'test']
- test
- ['Test', 'testn', 'testen']
- déôl
- ['deol', 'déôr', 'test']]=])
- end)
-
- it('part 3-3', function()
- insert([[
- Test rules for compounding.
-
- 3good: foo mï foobar foofoobar barfoo barbarfoo
- bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar
- badend
- ]])
- test_one(3, 3)
- feed_command('1,/^test 3-3/-1d')
- expect([=[
- test 3-3
- # file: Xtest.utf-8.spl
- foo
- mï
- -------
- bad
- ['foo', 'mï']
- bar
- ['barfoo', 'foobar', 'foo']
- la
- ['mï', 'foo']
- foomï
- ['foo mï', 'foo', 'foofoo']
- barmï
- ['barfoo', 'mï', 'barbar']
- mïfoo
- ['mï foo', 'foo', 'foofoo']
- mïbar
- ['foobar', 'barbar', 'mï']
- mïmï
- ['mï mï', 'mï']
- lala
- []
- mïla
- ['mï', 'mï mï']
- lamï
- ['mï', 'mï mï']
- foola
- ['foo', 'foobar', 'foofoo']
- labar
- ['barbar', 'foobar']]=])
- end)
-
- it('part 4-4', function()
- insert([[
- Tests for compounding.
-
- 4good: word util bork prebork start end wordutil wordutils pro-ok
- bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
- tomato tomatotomato startend startword startwordword startwordend
- startwordwordend startwordwordwordend prebork preborkbork
- preborkborkbork
- nouword
- bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
- endstart endend startstart wordend wordstart
- preborkprebork preborkpreborkbork
- startwordwordwordwordend borkpreborkpreborkbork
- utilsbork startnouword
- badend
- ]])
- test_one(4, 4)
- feed_command('1,/^test 4-4/-1d')
- expect([=[
- test 4-4
- # file: Xtest.utf-8.spl
- bork
- prebork
- end
- pro-ok
- start
- tomato
- util
- utilize
- utils
- word
- nouword
- -------
- bad
- ['end', 'bork', 'word']
- wordutilize
- ['word utilize', 'wordutils', 'wordutil']
- pro
- ['bork', 'word', 'end']
- borkborkborkborkborkbork
- ['bork borkborkborkborkbork', 'borkbork borkborkborkbork', 'borkborkbork borkborkbork']
- tomatotomatotomato
- ['tomato tomatotomato', 'tomatotomato tomato', 'tomato tomato tomato']
- endstart
- ['end start', 'start']
- endend
- ['end end', 'end']
- startstart
- ['start start']
- wordend
- ['word end', 'word', 'wordword']
- wordstart
- ['word start', 'bork start']
- preborkprebork
- ['prebork prebork', 'preborkbork', 'preborkborkbork']
- preborkpreborkbork
- ['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork']
- startwordwordwordwordend
- ['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end']
- borkpreborkpreborkbork
- ['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork bork']
- utilsbork
- ['utilbork', 'utils bork', 'util bork']
- startnouword
- ['start nouword', 'startword', 'startborkword']]=])
- end)
-
- it('part 5-5', function()
- insert([[
- Test affix flags with two characters
-
- 5good: fooa1 fooaé bar prebar barbork prebarbork startprebar
- start end startend startmiddleend nouend
- bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
- startprobar startnouend
- badend
- ]])
- test_one(5, 5)
- feed_command('1,/^test 5-5/-1d')
- expect([=[
- test 5-5
- # file: Xtest.utf-8.spl
- bar
- barbork
- end
- fooa1
- fooaé
- nouend
- prebar
- prebarbork
- start
- -------
- bad
- ['bar', 'end', 'fooa1']
- foo
- ['fooa1', 'fooaé', 'bar']
- fooa2
- ['fooa1', 'fooaé', 'bar']
- prabar
- ['prebar', 'bar', 'bar bar']
- probarbirk
- ['prebarbork']
- middle
- []
- startmiddle
- ['startmiddleend', 'startmiddlebar']
- middleend
- []
- endstart
- ['end start', 'start']
- startprobar
- ['startprebar', 'start prebar', 'startbar']
- startnouend
- ['start nouend', 'startend']]=])
- end)
-
- it('part 6-6', function()
- insert([[
- 6good: meea1 meeaé bar prebar barbork prebarbork leadprebar
- lead end leadend leadmiddleend
- bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead
- leadprobar
- badend
- ]])
- test_one(6, 6)
- feed_command('1,/^test 6-6/-1d')
- expect([=[
- test 6-6
- # file: Xtest.utf-8.spl
- bar
- barbork
- end
- lead
- meea1
- meeaé
- prebar
- prebarbork
- -------
- bad
- ['bar', 'end', 'lead']
- mee
- ['meea1', 'meeaé', 'bar']
- meea2
- ['meea1', 'meeaé', 'lead']
- prabar
- ['prebar', 'bar', 'leadbar']
- probarbirk
- ['prebarbork']
- middle
- []
- leadmiddle
- ['leadmiddleend', 'leadmiddlebar']
- middleend
- []
- endlead
- ['end lead', 'lead', 'end end']
- leadprobar
- ['leadprebar', 'lead prebar', 'leadbar']]=])
- end)
-
- it('part 7-7', function()
- insert([[
- 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebar
- lead tail leadtail leadmiddletail
- bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead
- leadprobar
- badend
- ]])
- -- Compound words.
- test_one(7, 7)
- -- Assert buffer contents.
- feed_command('1,/^test 7-7/-1d')
- expect([=[
- test 7-7
- # file: Xtest.utf-8.spl
- bar
- barmeat
- lead
- meea1
- meeaé
- prebar
- prebarmeat
- tail
- -------
- bad
- ['bar', 'lead', 'tail']
- mee
- ['meea1', 'meeaé', 'bar']
- meea2
- ['meea1', 'meeaé', 'lead']
- prabar
- ['prebar', 'bar', 'leadbar']
- probarmaat
- ['prebarmeat']
- middle
- []
- leadmiddle
- ['leadmiddlebar']
- middletail
- []
- taillead
- ['tail lead', 'tail']
- leadprobar
- ['leadprebar', 'lead prebar', 'leadbar']]=])
- end)
-
- it('part 8-8', function()
- insert([[
- 8good: foo bar faabar
- bad: foobar barfoo
- badend
- ]])
- -- NOSPLITSUGS
- test_one(8, 8)
- -- Assert buffer contents.
- feed_command('1,/^test 8-8/-1d')
- expect([=[
- test 8-8
- # file: Xtest.utf-8.spl
- bar
- faabar
- foo
- -------
- bad
- ['bar', 'foo']
- foobar
- ['faabar', 'foo bar', 'bar']
- barfoo
- ['bar foo', 'bar', 'foo']]=])
- end)
-
- it('part 9-9', function()
- insert([[
- 9good: 0b1011 0777 1234 0x01ff
- badend
- ]])
- -- NOSPLITSUGS
- test_one(9, 9)
- -- Assert buffer contents.
- feed_command('1,/^test 9-9/-1d')
- expect([=[
- test 9-9
- # file: Xtest.utf-8.spl
- bar
- foo
- -------]=])
- end)
-end)
diff --git a/test/functional/lua/diagnostic_spec.lua b/test/functional/lua/diagnostic_spec.lua
index 348b9de816..eeb9316b06 100644
--- a/test/functional/lua/diagnostic_spec.lua
+++ b/test/functional/lua/diagnostic_spec.lua
@@ -111,7 +111,7 @@ describe('vim.diagnostic', function()
it('retrieves diagnostics from all buffers and namespaces', function()
local result = exec_lua [[
local other_bufnr = vim.api.nvim_create_buf(true, false)
- local lines = {"1st line of text", "2nd line of text", "wow", "cool", "more", "lines"}
+ local lines = vim.api.nvim_buf_get_lines(diagnostic_bufnr, 0, -1, true)
vim.api.nvim_buf_set_lines(other_bufnr, 0, 1, false, lines)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
@@ -128,6 +128,17 @@ describe('vim.diagnostic', function()
eq('Diagnostic #1', result[1].message)
end)
+ it('resolves buffer number 0 to the current buffer', function()
+ eq(2, exec_lua [[
+ vim.api.nvim_set_current_buf(diagnostic_bufnr)
+ vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
+ make_error('Diagnostic #1', 1, 1, 1, 1),
+ make_error('Diagnostic #2', 2, 1, 2, 1),
+ })
+ return #vim.diagnostic.get(0)
+ ]])
+ end)
+
it('saves and count a single error', function()
eq(1, exec_lua [[
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
@@ -346,7 +357,7 @@ describe('vim.diagnostic', function()
it("doesn't error after bwipeout on buffer", function()
exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, { lnum = 0, end_lnum = 0, col = 0, end_col = 0 })
+ vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {{ lnum = 0, end_lnum = 0, col = 0, end_col = 0 }})
vim.cmd("bwipeout! " .. diagnostic_bufnr)
vim.diagnostic.show(diagnostic_ns)
@@ -642,7 +653,7 @@ describe('vim.diagnostic', function()
it("doesn't error after bwipeout called on buffer", function()
exec_lua [[
- vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, { lnum = 0, end_lnum = 0, col = 0, end_col = 0 })
+ vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {{ lnum = 0, end_lnum = 0, col = 0, end_col = 0 }})
vim.cmd("bwipeout! " .. diagnostic_bufnr)
vim.diagnostic.reset(diagnostic_ns)
@@ -914,7 +925,7 @@ describe('vim.diagnostic', function()
]]
eq(1, exec_lua [[return count_diagnostics(diagnostic_bufnr, vim.diagnostic.severity.ERROR, diagnostic_ns)]])
- -- eq(1, exec_lua [[return count_extmarks(diagnostic_bufnr, diagnostic_ns)]])
+ eq(1, exec_lua [[return count_extmarks(diagnostic_bufnr, diagnostic_ns)]])
end)
it('allows filtering by severity', function()
@@ -1359,7 +1370,7 @@ describe('vim.diagnostic', function()
}
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
- local float_bufnr, winnr = vim.diagnostic.open_float(0, {header = false})
+ local float_bufnr, winnr = vim.diagnostic.open_float(0, {header = false, scope="buffer"})
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return lines
@@ -1376,7 +1387,7 @@ describe('vim.diagnostic', function()
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
vim.api.nvim_win_set_cursor(0, {2, 1})
- local float_bufnr, winnr = vim.diagnostic.open_float(0, {header=false, scope="line"})
+ local float_bufnr, winnr = vim.diagnostic.open_float(0, {header=false})
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return lines
@@ -1391,7 +1402,7 @@ describe('vim.diagnostic', function()
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
vim.api.nvim_win_set_cursor(0, {1, 1})
- local float_bufnr, winnr = vim.diagnostic.open_float(0, {header=false, scope="line", pos=1})
+ local float_bufnr, winnr = vim.diagnostic.open_float(0, {header=false, pos=1})
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return lines
@@ -1455,7 +1466,7 @@ describe('vim.diagnostic', function()
}
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
- local float_bufnr, winnr = vim.diagnostic.open_float(diagnostic_bufnr, {scope="line"})
+ local float_bufnr, winnr = vim.diagnostic.open_float(diagnostic_bufnr)
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return #lines
@@ -1522,7 +1533,7 @@ describe('vim.diagnostic', function()
}
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
- local float_bufnr, winnr = vim.diagnostic.open_float(diagnostic_bufnr, {header = false, scope = "line", pos = 5})
+ local float_bufnr, winnr = vim.diagnostic.open_float(diagnostic_bufnr, {header = false, pos = 5})
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return #lines
@@ -1654,7 +1665,7 @@ describe('vim.diagnostic', function()
}
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
- local float_bufnr, winnr = vim.diagnostic.open_float(0, {header = false})
+ local float_bufnr, winnr = vim.diagnostic.open_float(0, {header = false, scope = "buffer"})
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return lines
@@ -1667,7 +1678,7 @@ describe('vim.diagnostic', function()
}
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
- local float_bufnr, winnr = vim.diagnostic.open_float(0, {header = false, prefix = ""})
+ local float_bufnr, winnr = vim.diagnostic.open_float(0, {header = false, scope = "buffer", prefix = ""})
local lines = vim.api.nvim_buf_get_lines(float_bufnr, 0, -1, false)
vim.api.nvim_win_close(winnr, true)
return lines
@@ -1676,7 +1687,7 @@ describe('vim.diagnostic', function()
eq({'1. Syntax error', '2. Some warning'}, exec_lua [[
local diagnostics = {
make_error("Syntax error", 0, 1, 0, 3),
- make_warning("Some warning", 1, 1, 1, 3),
+ make_warning("Some warning", 0, 1, 0, 3),
}
vim.api.nvim_win_set_buf(0, diagnostic_bufnr)
vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, diagnostics)
@@ -1907,5 +1918,27 @@ describe('vim.diagnostic', function()
return {show_called, hide_called}
]])
end)
+
+ it('triggers the autocommand when diagnostics are set', function()
+ eq(1, exec_lua [[
+ vim.g.diagnostic_autocmd_triggered = 0
+ vim.cmd('autocmd DiagnosticChanged * let g:diagnostic_autocmd_triggered = 1')
+ vim.api.nvim_buf_set_name(diagnostic_bufnr, "test | test")
+ vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, {
+ make_error('Diagnostic', 0, 0, 0, 0)
+ })
+ return vim.g.diagnostic_autocmd_triggered
+ ]])
+ end)
+
+ it('triggers the autocommand when diagnostics are cleared', function()
+ eq(1, exec_lua [[
+ vim.g.diagnostic_autocmd_triggered = 0
+ vim.cmd('autocmd DiagnosticChanged * let g:diagnostic_autocmd_triggered = 1')
+ vim.api.nvim_buf_set_name(diagnostic_bufnr, "test | test")
+ vim.diagnostic.reset(diagnostic_ns, diagnostic_bufnr)
+ return vim.g.diagnostic_autocmd_triggered
+ ]])
+ end)
end)
end)
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua
index 3832d27a22..2515b37beb 100644
--- a/test/functional/lua/vim_spec.lua
+++ b/test/functional/lua/vim_spec.lua
@@ -396,6 +396,20 @@ describe('lua stdlib', function()
return t1.f() ~= t2.f()
]]))
+ ok(exec_lua([[
+ local t1 = {a = 5}
+ t1.self = t1
+ local t2 = vim.deepcopy(t1)
+ return t2.self == t2 and t2.self ~= t1
+ ]]))
+
+ ok(exec_lua([[
+ local mt = {mt=true}
+ local t1 = setmetatable({a = 5}, mt)
+ local t2 = vim.deepcopy(t1)
+ return getmetatable(t2) == mt
+ ]]))
+
eq('Error executing lua: vim/shared.lua:0: Cannot deepcopy object of type thread',
pcall_err(exec_lua, [[
local thread = coroutine.create(function () return 0 end)
@@ -1226,7 +1240,7 @@ describe('lua stdlib', function()
vim.opt.makeprg = "global-local"
table.insert(result, vim.api.nvim_get_option('makeprg'))
- table.insert(result, (pcall(vim.api.nvim_buf_get_option, 0, 'makeprg')))
+ table.insert(result, vim.api.nvim_buf_get_option(0, 'makeprg'))
vim.opt_local.mp = "only-local"
table.insert(result, vim.api.nvim_get_option('makeprg'))
@@ -1244,7 +1258,7 @@ describe('lua stdlib', function()
-- Set -> global & local
eq("global-local", result[1])
- eq(false, result[2])
+ eq("", result[2])
-- Setlocal -> only local
eq("global-local", result[3])
@@ -1254,9 +1268,9 @@ describe('lua stdlib', function()
eq("only-global", result[5])
eq("only-local", result[6])
- -- set -> doesn't override previously set value
+ -- Set -> sets global value and resets local value
eq("global-local", result[7])
- eq("only-local", result[8])
+ eq("", result[8])
end)
it('should allow you to retrieve window opts even if they have not been set', function()
diff --git a/test/functional/treesitter/parser_spec.lua b/test/functional/treesitter/parser_spec.lua
index ffaa4141c4..1138cfbf4c 100644
--- a/test/functional/treesitter/parser_spec.lua
+++ b/test/functional/treesitter/parser_spec.lua
@@ -231,11 +231,11 @@ void ui_refresh(void)
insert('char* astring = "\\n"; (1 + 1) * 2 != 2;')
local res = exec_lua([[
- cquery = vim.treesitter.parse_query("c", '((_) @plus (vim-match? @plus "^\\\\+$"))'..
- '((_) @times (vim-match? @times "^\\\\*$"))'..
- '((_) @paren (vim-match? @paren "^\\\\($"))'..
- '((_) @escape (vim-match? @escape "^\\\\\\\\n$"))'..
- '((_) @string (vim-match? @string "^\\"\\\\\\\\n\\"$"))')
+ cquery = vim.treesitter.parse_query("c", '([_] @plus (#vim-match? @plus "^\\\\+$"))'..
+ '([_] @times (#vim-match? @times "^\\\\*$"))'..
+ '([_] @paren (#vim-match? @paren "^\\\\($"))'..
+ '([_] @escape (#vim-match? @escape "^\\\\\\\\n$"))'..
+ '([_] @string (#vim-match? @string "^\\"\\\\\\\\n\\"$"))')
parser = vim.treesitter.get_parser(0, "c")
tree = parser:parse()[1]
res = {}
@@ -321,7 +321,7 @@ void ui_refresh(void)
insert('char* astring = "Hello World!";')
local res = exec_lua([[
- cquery = vim.treesitter.parse_query("c", '((_) @quote (vim-match? @quote "^\\"$")) ((_) @quote (lua-match? @quote "^\\"$"))')
+ cquery = vim.treesitter.parse_query("c", '([_] @quote (#vim-match? @quote "^\\"$")) ([_] @quote (#lua-match? @quote "^\\"$"))')
parser = vim.treesitter.get_parser(0, "c")
tree = parser:parse()[1]
res = {}