Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configure vim-projectionist in Neovim with Lua

Tags:

lua

neovim

I'm using vim-projectionist with Neovim and have been able to get it working with a simple .projections.json file at the root of our project:

{
  "src/components/*.tsx": {
    "type": "components"
  }
}

Although this works, I can't check-in this file in our shared GitHub repository.

Rather than use the config file, the documentation suggests that you can set a global variable g:projectionist_heuristics for configuration instead.

As my Neovim config is entirely in Lua, I'm trying to get this working in my init.lua file.

Here is my attempt:

vim.cmd([[
let g:projectionist_heuristics = {
  \   "src/components/*.tsx": {
  \     "type": "components"
  \   }
  \ }
]])

When I open Neovim nothing happens...it seems that my vim.cmd snippet is ignored.

Or, perhaps I should be using Lua tables?

How can I configure vim-projectionist in Neovim with Lua?

like image 576
Jonathan.Brink Avatar asked Sep 12 '25 23:09

Jonathan.Brink


1 Answers

This is how I managed to configure it in AstroNvim (https://astronvim.com/)

  {
    "tpope/vim-projectionist",
    config = function()
      vim.g.projectionist_heuristics = {
        ["*"] = {
          ["src/main/java/*.java"] = {
            alternate = "src/test/java/{}Test.java",
          },
          ["src/test/java/*Test.java"] = {
            alternate = "src/main/java/{}.java",
          },
        },
      }
    end,
    event = "User AstroFile",
  },

The configuration above uses the Lazy package manager syntax: https://github.com/folke/lazy.nvim

like image 114
Anton Petrov Avatar answered Sep 15 '25 18:09

Anton Petrov