Skip to content

Neovim and Zellij Together

ในหัวข้อนี้จะอ้างอิงจากโครงสร้างของ Neovim configuration ที่ทำไว้ในหัวข้อการจัดโครงสร้างโฟลเดอร์ Neovim Configuration

การสั่งรัน Ruby Tests ผ่าน Neovim ใน Zellij

ที่ไฟล์ ~/.config/nvim/lua/config/keymaps.lua ให้เพิ่ม

-- Ruby
local run_ruby_test = function()
  local current_file = vim.fn.expand('%:p')
  local test_string = "silent !zellij run -d Down -n 'testing' -- ruby " .. current_file
  vim.api.nvim_command(test_string)
end

vim.api.nvim_create_user_command('RunRubyTest', run_ruby_test, {})

vim.keymap.set("n", "<leader>r", ":RunRubyTest<CR>", { desc = "run current file test" })

โค้ดด้านบนจะเป็นการเซต key map ของ Neovim ที่ normal mode เวลาที่กด <leader>r ก็จะไปรันฟังก์ชั่น run_ruby_test

การนำไปใช้กับ Rails

-- Rails
local run_test = function()
  local current_file = vim.fn.expand('%:p')
  local test_string = "silent !zellij run -d Down -n 'testing' -- bin/rails test " .. current_file
  vim.api.nvim_command(test_string)
end

vim.api.nvim_create_user_command('RunTest', run_test, {})

vim.keymap.set("n", "<leader>t", ":RunTest<CR>", { desc = "run current file test" })

โค้ดด้านบนจะเป็นการเซต key map ของ Neovim ที่ normal mode เวลาที่กด <leader>t ก็จะไปรันฟังก์ชั่น run_test

local run_all_tests = function()
  local test_string = "silent !zellij run -d Down -n 'testing' -- bin/rails test"
  vim.api.nvim_command(test_string)
end

vim.api.nvim_create_user_command('RunAllTests', run_all_tests, {})

vim.keymap.set("n", "<leader>a", ":RunAllTests<CR>", { desc = "run all tests" })

โค้ดด้านบนจะเป็นการเซต key map ของ Neovim ที่ normal mode เวลาที่กด <leader>a ก็จะไปรันฟังก์ชั่น run_all_tests