telescope-alternate.nvim
telescope-alternate.nvim copied to clipboard
help with wildcard
Thanks for the plugin!
How can I make use of wildcards ?
https://github.com/user-attachments/assets/b7f28dc6-984a-4d6d-b553-4e1242d0888c
Migrations in laravel have the pattern database/migration/*_create_[table_name]_table.php.
Unfortunately, this plugins is dealing with * literally and not as wildcard.
Here is my config:
config = function()
local laravelTargets = {
{
template = "app/Models/[1].php",
label = "Model",
},
{
template = "app/Policies/[1]Policy.php",
label = "Policy",
},
{
template = "app/Http/Controllers/[1]Controller.php",
label = "Controller",
},
{
template = "app/Http/Requests/Update[1]Request.php",
label = "Update Request",
},
{
template = "app/Http/Requests/Store[1]Request.php",
label = "Store Request",
},
{
template = "app/Http/Resources/[1]Resource.php",
label = "Resource",
},
{
template = "database/factories/[1]Factory.php",
label = "Factory",
},
{
template = "database/seeders/[1]Seeder.php",
label = "Seeder",
},
{
template = "database/migrations/*_create_[1:camel_to_kebap,pluralize]_table.php",
label = "Migration",
},
{
template = "tests/Feature/Models/[1]Test.php",
label = "Test Model",
},
{
template = "tests/Feature/Http/Controllers/[1]ControllerTest.php",
label = "Test Controller",
},
}
-- Function that filters myTable based on the label
function filterTargets(targets, labelToRemove)
local filteredTable = {}
for _, item in ipairs(targets) do
if item.label ~= labelToRemove then
table.insert(filteredTable, item)
end
end
return filteredTable
end
local opts = {
mappings = {
-- laravel preset
{
pattern = "app/Models/(.*).php",
targets = filterTargets(laravelTargets, "Model"),
},
{
pattern = "app/Http/Controllers/(.*)Controller.php",
targets = filterTargets(laravelTargets, "Controller"),
},
{
pattern = "app/Http/Requests/Update(.*)Request.php",
targets = filterTargets(laravelTargets, "Update Request"),
},
{
pattern = "app/Http/Requests/Store(.*)Request.php",
targets = filterTargets(laravelTargets, "Store Request"),
},
{
pattern = "app/Http/Resources/(.*)Resource.php",
targets = filterTargets(laravelTargets, "Resource"),
},
{
pattern = "app/Policies/(.*)Policy.php",
targets = filterTargets(laravelTargets, "Policy"),
},
{
pattern = "database/seeders/(.*)Seeder.php",
targets = filterTargets(laravelTargets, "Seeder"),
},
{
pattern = "database/factories/(.*)Factory.php",
targets = filterTargets(laravelTargets, "Factory"),
},
{
pattern = "tests/Feature/Models/(.*)Test.php",
targets = filterTargets(laravelTargets, "Test Model"),
},
{
pattern = "tests/Feature/Http/Controllers/(.*)ControllerTest.php",
targets = filterTargets(laravelTargets, "Test Controller"),
},
--
},
}
require("telescope-alternate").setup(opts)
require("telescope").load_extension("telescope-alternate")
end
After the fix, I can make a PR to add a Laravel preset.