mhartington/formatter.nvim

Configurations are only read once, so using `vim.api.nvim_buf_get_name(0)` within a formatter config always returns the path to the first file opened when `:FormatWrite` is called

Opened this issue · 1 comments

If I open a file via the command-line, then I can call vim.api.nvim_buf_get_name(0) within a formatter to get the current buffer name, it works.

If I use :tabedit to or :edit to open a file later, then it returns the empty string "" if neovim was opened with no file, or the path to the initially opened file.

To reproduce:

  1. Open nvim without any files.
  2. Use :edit <file> to open a new file where util.get_current_buffer_file_path() is used in the formatting configuration.
  3. Try to write it.
  4. Notice that the formatting will fail since the empty string will be passed as an argument and vanish.

This is because the config setup is only run once.

util.get_current_buffer_file_path() doesn't help for the same reason, since the configuration is only evaluated once.