Skip to content

Configuration Recipes

Below is a collection of useful snippets to help with either configuration or creating language tables.

Different Languages Per Device

You may want to use different languages on different devices with the same neovim config. Here is a snippet that allows you to easily do that. This should be put into your init.lua before you initialize lazy.nvim.

lua
local langs = { 'lua', 'bash', 'markdown' } -- Languages you want on every machine
-- Try to source lua/languages.lua which should return a list of strings
local success, file_langs = pcall(require, 'languages')
if success then
  -- Iterate through the languages and insert it into the language list
  for _, language in ipairs(file_langs) do
    if not vim.list_contains(langs, language) then
      table.insert(langs, language)
    end
  end
end
vim.g.lazylangs = {
  override_path = 'languages', -- '.' separated path relative to the lua directory
  formatting_plugin = 'conform',
  completion_plugin = 'nvim-cmp',
  linting_plugin = 'nvim-lint',
  debugging_plugin = 'nvim-dap',
  langs = langs, -- string[] of language names
}