Re-add vim-projectionist

Whilst I wasn't able to get it to work for all my use cases previously,
it is useful for creating alternative files in Fractal, such as
switching between the `*.config.yml` and `*.twig` files for a component.

Other use cases, such as creating alternative files for classes and
tests in PHP and Drupal projects, I can look at again now the plugin is
installed.
This commit is contained in:
Oliver Davies 2024-06-08 19:54:25 +01:00
parent fadcf5945c
commit 8f9401594b
2 changed files with 58 additions and 0 deletions

View file

@ -70,6 +70,7 @@ rec {
vimPlugins.vim-highlightedyank
vimPlugins.vim-just
vimPlugins.vim-nix
vimPlugins.vim-projectionist
vimPlugins.nvim-spectre
vimPlugins.vim-obsession
vimPlugins.vim-pasta

57
plugin/projectionist.lua Normal file
View file

@ -0,0 +1,57 @@
vim.g.projectionist_heuristics = {
["composer.json"] = {
["src/*.php"] = {
type = "source",
alternate = "tests/{}Test.php",
},
["src/Controller/*.php"] = {
type = "controller",
},
["src/Model/*.php"] = {
type = "model",
},
["src/Service/*.php"] = {
type = "service",
},
["tests/*Test.php"] = {
type = "test",
alternate = "src/{}.php",
},
},
["fractal.config.js"] = {
["*.config.yml"] = {
type = "config",
alternate = "{dirname}/{basename}.twig",
},
["*.twig"] = {
type = "template",
alternate = "{dirname}/{basename}.config.yml",
},
},
["package.json"] = {
["src/*.ts"] = {
type = "source",
alternate = "tests/{}.test.ts",
},
["src/*.service.ts"] = {
type = "source",
alternate = "tests/{}.test.ts",
},
["tests/*.test.ts"] = {
type = "test",
alternate = "src/{}.ts",
},
},
}
-- Switch to an alternative file.
vim.keymap.set("n", "<leader>aa", "<cmd>A<cr>")