Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 #324

Open
insidewhy opened this issue Mar 17, 2024 · 1 comment

Comments

@insidewhy
Copy link

insidewhy commented Mar 17, 2024

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.

@insidewhy insidewhy changed the title vim.api.nvim_buf_get_name(0) doesn't work when :FormatWrite called from file opened with :tabedit vim.api.nvim_buf_get_name(0) doesn't work when :FormatWrite is called from file opened with :tabedit Mar 17, 2024
@insidewhy insidewhy changed the title vim.api.nvim_buf_get_name(0) doesn't work when :FormatWrite is called from file opened with :tabedit vim.api.nvim_buf_get_name(0) always returns the path to the first file opened when :FormatWrite is called Mar 17, 2024
@insidewhy
Copy link
Author

insidewhy commented Mar 17, 2024

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

@insidewhy insidewhy changed the title vim.api.nvim_buf_get_name(0) always returns the path to the first file opened when :FormatWrite is called 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 Mar 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant