54 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| vim.fn["edit_alternate#rule#add"]("php", function(filename)
 | |
|   if filename:find "Test.php$" then
 | |
|     filename = filename:gsub("Test.php$", ".php")
 | |
| 
 | |
|     if filename:find "tests/src/" then
 | |
|       -- Drupal tests. Remove the `src/{type}` from the path.
 | |
|       return filename:gsub("tests/src/(.-)/", "src/")
 | |
|     else
 | |
|       return filename:gsub("tests/", "src/")
 | |
|     end
 | |
|   else
 | |
|     filename = filename:gsub(".php$", "Test.php")
 | |
| 
 | |
|     if filename:find "modules/custom" then
 | |
|       -- Drupal test types.
 | |
|       local test_types = { "Functional", "FunctionalJavaScript", "Kernel", "Unit" }
 | |
| 
 | |
|       for _, test_type in ipairs(test_types) do
 | |
|         local filename_with_test_type = filename:gsub("src/", string.format("tests/src/%s/", test_type))
 | |
| 
 | |
|         -- Return the first matching test file that exists.
 | |
|         if vim.fn.filereadable(filename_with_test_type) == 1 then
 | |
|           return filename_with_test_type
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end)
 | |
| 
 | |
| if vim.fn.filereadable "composer.json" == 1 then
 | |
|   vim.fn["edit_alternate#rule#add"]("json", function(filename)
 | |
|     if filename:find "composer.json" then
 | |
|       return (filename:gsub("%.json$", ".lock"))
 | |
|     end
 | |
|   end)
 | |
| 
 | |
|   vim.fn["edit_alternate#rule#add"]("lock", function(filename)
 | |
|     if filename:find "composer.lock" then
 | |
|       return (filename:gsub("%.lock$", ".json"))
 | |
|     end
 | |
|   end)
 | |
| end
 | |
| 
 | |
| if vim.fn.filereadable "fractal.config.js" == 1 then
 | |
|   vim.fn["edit_alternate#rule#add"]("twig", function(filename)
 | |
|     return (filename:gsub("%.twig$", ".config.yml"))
 | |
|   end)
 | |
| 
 | |
|   vim.fn["edit_alternate#rule#add"]("yml", function(filename)
 | |
|     return (filename:gsub("%.config.yml$", ".twig"))
 | |
|   end)
 | |
| end
 | |
| 
 | |
| vim.keymap.set("n", "<leader>ea", "<CMD>EditAlternate<CR>", { silent = true })
 |