@@ -2,7 +2,8 @@ local regexplainer = require 'regexplainer'
2
2
local buffers = require ' regexplainer.buffers'
3
3
local parsers = require " nvim-treesitter.parsers"
4
4
5
- local get_node_text = vim .treesitter .get_node_text or vim .treesitter .query .get_node_text
5
+ local get_parser = vim .treesitter .get_parser
6
+ local get_node_text = vim .treesitter .get_node_text
6
7
7
8
local query = vim .treesitter .query .get (' javascript' , ' regexplainer_test' )
8
9
if not query then error (' could not get query' ) end
@@ -74,24 +75,27 @@ local function get_buffer_text(bufnr)
74
75
return table.concat (vim .api .nvim_buf_get_lines (bufnr , 0 , - 1 , false ), ' \n ' )
75
76
end
76
77
77
- --- @param text string contents of test fixture buffer
78
+ --- @param pattern string regexp pattern to test
78
79
--- @return number bufnr bufnr of test fixture buffer
79
- local function setup_test_buffer (text )
80
- local newbuf = vim .api .nvim_create_buf (true , true )
80
+ local function setup_test_buffer (pattern )
81
+ local newbuf = vim .api .nvim_create_buf (true , false )
82
+ vim .api .nvim_win_set_buf (0 , newbuf )
81
83
vim .opt_local .filetype = ' javascript'
82
- vim .api .nvim_set_current_line (text )
84
+ vim .api .nvim_set_current_line (' /' .. pattern .. ' /;' )
85
+ vim .treesitter .start (newbuf , ' javascript' )
83
86
return newbuf
84
87
end
85
88
86
- local function show_and_get_regexplainer_buffer ()
89
+ local function show_and_get_regexplainer_buffer (bufnr )
87
90
local buffer
88
91
repeat
92
+ get_parser (0 ):parse ()
89
93
vim .uv .sleep (10 )
90
94
local row , col = unpack (vim .api .nvim_win_get_cursor (0 ));
91
95
vim .api .nvim_win_set_cursor (0 , {row , col + 1 })
92
96
local cursor_node = vim .treesitter .get_node ()
93
97
if (cursor_node ) then
94
- for id , node in query :iter_captures (cursor_node , 0 ) do
98
+ for id , node in query :iter_captures (cursor_node , bufnr ) do
95
99
if query [id ] == ' test.pattern' and node then
96
100
local range = node :range ()
97
101
vim .api .nvim_win_set_cursor (0 , { range [0 ], range [1 ] })
@@ -129,9 +133,12 @@ function M.clear_test_state()
129
133
assert (vim .fn .getreg (M .register_name ) == ' ' , " Failed to properly clear register" )
130
134
end
131
135
132
- function M .assert_string (regexp , expected , message )
133
- local newbufnr = setup_test_buffer (regexp )
134
- local rebufnr = show_and_get_regexplainer_buffer ()
136
+ --- @param pattern string regexp pattern to test
137
+ --- @param expected string expected markdown output
138
+ --- @param message string test description
139
+ function M .assert_string (pattern , expected , message )
140
+ local newbufnr = setup_test_buffer (pattern )
141
+ local rebufnr = show_and_get_regexplainer_buffer (newbufnr )
135
142
local text = get_buffer_text (rebufnr )
136
143
-- Cleanup any remaining buffers
137
144
vim .api .nvim_buf_delete (newbufnr , { force = true })
0 commit comments