Apesar de o Lua Language Server vir com um formatador padrão, utilizaremos o StyLua, pois ele permite configurar a forma como o código será formatado conforme suas preferências.

<aside>

Instalação

<aside>

https://brew.sh/

brew install stylua

</aside>

<aside>

https://scoop.sh/

scoop bucket add main
scoop install main/stylua

</aside>

<aside>

https://www.rust-lang.org/

cargo install stylua

</aside>

</aside>

<aside>

Configuração

# stylua.toml
column_width = 100
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "None"

<aside>

return {
  'stevearc/conform.nvim',
  opts = {
    formatters_by_ft = {
      lua = { 'stylua' },
    },
    default_format_opts = {
      lsp_format = 'fallback',
      stop_after_first = true,
    },
    format_on_save = {
      timeout_ms = 500,
      stop_after_first = true,
      lsp_format = 'fallback',
    },
  },
  config = function(_, opts)
    local conform = require 'conform'
    conform.setup(opts)
    vim.api.nvim_create_user_command('Conform', function()
      conform.format {}
    end, {})
  end,
}

</aside>

</aside>