I need some advice how to handle project-specific plugin configuration for Neovim. My paid software gig involves work for several different client projects which are basically structured like this:
~/work-clientA
- repoA1
- repoA2
~/work-clientB
- repoB1
- repoB2
~/work-clientC
...
I manage the different environments using direnv.
What I struggle with is overriding/extending the config for Neovim plugins for each environment.
let’s say for example clientA uses a self-hosted GitLab instance which requires me to override the lazy.nvim config for some Git-related plugins. How could I achieve this?
I looked into exrc
. afaict this would require duplicating any client-specific configuration for each new repository. Instead what I would like is something like ~/work-clientA/init.lua
which would then be sourced automatically for each project (repo) inside work-clientA.
what about using exrc (with like a .nvim.lua file inside the repos) with the content of
dofile(“../init.lua”) -- maybe more repo specific config here
and then say
~/work-clientA/init.lua
with all client specific changes there.this would still require creating two separate files but the client setup will be the same for all client repos, and additionally you can add repo specific changes.