From d75db9a74fb5257d8ee2fac1cfab6f995f729e9e Mon Sep 17 00:00:00 2001 From: Ralph Azucena Date: Thu, 17 Apr 2025 14:57:55 -0700 Subject: [PATCH] thanks chatgpt for re-writing my test file opener script --- lazy-lock.json | 10 +++++----- lua/config/keymaps.lua | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 83d187b..8065975 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -5,13 +5,13 @@ "blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, - "conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" }, + "conform.nvim": { "branch": "master", "commit": "6632e7d788a85bf8405ea0c812d343fc308b7b8c" }, "crates.nvim": { "branch": "main", "commit": "73d2c590c74a0c582144987a4decb4a642755859" }, "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, "friendly-snippets": { "branch": "main", "commit": "31f2a2657b6261724313281fe0d8ba6f43f4a4fa" }, - "fzf-lua": { "branch": "main", "commit": "ba5ba606f11967e08165aeeb9d7abe04d0835f58" }, - "gitsigns.nvim": { "branch": "main", "commit": "fcfa7a989cd6fed10abf02d9880dc76d7a38167d" }, - "grug-far.nvim": { "branch": "main", "commit": "d6c682af0033b4fbb3645a997e3b4a9189ed1ed6" }, + "fzf-lua": { "branch": "main", "commit": "b62a34f5e4fbf36dd4c6d29920a61451eecd04ed" }, + "gitsigns.nvim": { "branch": "main", "commit": "d600d3922c1d001422689319a8f915136bb64e1e" }, + "grug-far.nvim": { "branch": "main", "commit": "1c9325f6ab18fc8ac4d4c57e765aa845af148277" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "lualine.nvim": { "branch": "master", "commit": "86fe39534b7da729a1ac56c0466e76f2c663dc42" }, @@ -24,7 +24,7 @@ "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, "nvim-lint": { "branch": "master", "commit": "3615c26c4922ae5f7366f0c1943a0e7cece04325" }, - "nvim-lspconfig": { "branch": "master", "commit": "3a7387a9c980304059b2bd7075684d6ef98ff331" }, + "nvim-lspconfig": { "branch": "master", "commit": "a56f4b9dde5daf3d4c7bb50cf78ab609537f2259" }, "nvim-tree.lua": { "branch": "master", "commit": "5bea2b37523a31288e0fcab42f3be5c1bd4516bb" }, "nvim-treesitter": { "branch": "master", "commit": "684eeac91ed8e297685a97ef70031d19ac1de25a" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "205e3369bc83d8cb83f7409c36120e24611f8c5c" }, diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua index 4384772..ba8fd5e 100644 --- a/lua/config/keymaps.lua +++ b/lua/config/keymaps.lua @@ -7,10 +7,20 @@ vim.keymap.del({ "n", "i", "v" }, "") vim.keymap.del({ "n", "i", "v" }, "") vim.keymap.set('v', 'y', '"+y') -- v-mode: yank to clipboard; -local toggle_rspec = [[:lcd `git rev-parse --show-toplevel` | if expand("%:r")[-5:-1] == "_spec" | - exe "e ".expand("%:h:s?spec?app?")."/".expand("%:t:s?_spec.rb?.rb?") | else | - exe "e ".expand("%:h:s?app?spec?")."/".expand("%:t:s?.rb?_spec.rb?") | endif -]] +local function toggle_rspec() + vim.cmd("lcd " .. vim.fn.system("git rev-parse --show-toplevel"):gsub("\n", "")) + -- Guard clause: Exit if the file is not a Ruby file or if not in a Rails project + if vim.fn.expand("%:e") ~= "rb" or not vim.fn.isdirectory("app") or vim.fn.filereadable("Gemfile") == 0 then + vim.notify("Not a Ruby file or Rails project", vim.log.levels.WARN) + return + end + -- Check if the current file is a spec file + if vim.fn.expand("%:t"):match("_spec%.rb$") then + vim.cmd("edit " .. vim.fn.expand("%:h"):gsub("spec", "app") .. "/" .. vim.fn.expand("%:t"):gsub("_spec%.rb$", ".rb")) + else + vim.cmd("edit " .. vim.fn.expand("%:h"):gsub("app", "spec") .. "/" .. vim.fn.expand("%:t"):gsub("%.rb$", "_spec.rb")) + end +end vim.keymap.set('n', 'ti', toggle_rspec, { silent = true, desc = "Toggle Test F(i)le" }) vim.keymap.set("n", "ci", vim.diagnostic.open_float, { desc = "Code D(i)agnostics" }) vim.keymap.set({ "n", "v" }, "*", [[:let @/='\<'.expand('').'\>'|set hls]], { silent = true, desc = "No jump highlight"}) -- https://superuser.com/a/255120