From 4354948d8851cec3c57d332485e98f9238a0fe36 Mon Sep 17 00:00:00 2001 From: Ade Attwood Date: Fri, 14 Jun 2024 18:13:38 +0100 Subject: [PATCH] refactor(vim): remove the ts-jest plugin This was a plugin I had started writing and using for running jest tests in a nvim buffer. This has now been split out into its own dedicated plugin. See: https://github.com/adeattwood/spec.nvim --- .../core/files/vim/plugin/ts-jest.lua | 91 ------------------- 1 file changed, 91 deletions(-) delete mode 100644 site-modules/core/files/vim/plugin/ts-jest.lua diff --git a/site-modules/core/files/vim/plugin/ts-jest.lua b/site-modules/core/files/vim/plugin/ts-jest.lua deleted file mode 100644 index 8699a06..0000000 --- a/site-modules/core/files/vim/plugin/ts-jest.lua +++ /dev/null @@ -1,91 +0,0 @@ -local ts_utils = require "nvim-treesitter.ts_utils" - -local function get_unquoted_node_text(node) - local node_text = vim.treesitter.get_node_text(node, 0) - local value, _ = string.gsub(node_text, '["]', "") - return value -end - -local function get_test_name_at_cursor() - local node = ts_utils.get_node_at_cursor() - local test_name = "" - while node do - if node:type() == "call_expression" then - local named = ts_utils.get_named_children(node) - local function_name = vim.treesitter.get_node_text(named[1], 0) - if function_name == "describe" or function_name == "it" then - test_name = get_unquoted_node_text(named[2]:child(1)) .. " " .. test_name - end - end - - node = node:parent() - end - - local value, _ = string.gsub(test_name, "%s+$", "") - return value -end - -local function get_all_tests() - local parser = vim.treesitter.get_parser(0, "javascript") - local tree, _ = unpack(parser:parse()) - - local function_name_query = vim.treesitter.query.parse( - "javascript", - [[((call_expression - function: (identifier) @function_name - arguments: (arguments (string) @test_name) - (#match? @function_name "(it|describe)")))]] - ) - - local tests = {} - local current_context = { tree } - local prefix = {} - for _, match, _ in function_name_query:iter_matches(tree:root(), 0) do - local function_name_node, test_name_node = unpack(match) - local function_name = get_unquoted_node_text(function_name_node) - local test_name = get_unquoted_node_text(test_name_node) - - if function_name == "describe" then - table.insert(current_context, 1, function_name_node:parent()) - table.insert(prefix, 1, test_name) - end - - if function_name == "it" then - if not vim.treesitter.is_ancestor(current_context[1], function_name_node) then - table.remove(prefix, 1) - table.remove(current_context, 1) - end - - local test_value = test_name - for _, v in ipairs(prefix) do - test_value = v .. " " .. test_value - end - - table.insert(tests, { content = test_value }) - end - end - - return tests -end - -local base_jest_command = "jest --maxWorkers=25\\% --silent" - -local function run_at_cursor() - local command = string.format("%s -t '%s' %s", base_jest_command, get_test_name_at_cursor(), vim.fn.expand "%") - vim.cmd("Run " .. command) -end - -local function run_file() - local command = string.format("%s %s", base_jest_command, vim.fn.expand "%") - vim.cmd("Run " .. command) -end - -local function run_all() - vim.cmd("Run " .. base_jest_command) -end - -vim.api.nvim_create_user_command("Jest", run_all, { bang = true }) -vim.api.nvim_create_user_command("JestFile", run_file, { bang = true }) -vim.api.nvim_create_user_command("JestAtCursor", run_at_cursor, { bang = true }) -vim.api.nvim_set_keymap("n", "tt", "JestAtCursor", { nowait = true, silent = true }) -vim.api.nvim_set_keymap("n", "tf", "JestFile", { nowait = true, silent = true })