conform.nvim icon indicating copy to clipboard operation
conform.nvim copied to clipboard

bug: deno fmt not recognizing --ext

Open jakubdonovan opened this issue 1 year ago • 4 comments

Neovim version (nvim -v)

NVIM v0.10.0

Operating system/version

MacOS 14.6.1

Read debugging tips

Add the debug logs

  • [X] I have set log_level = vim.log.levels.DEBUG and pasted the log contents below.

Log file

2024-10-21 17:05:06[INFO] deno_fmt exited with code 1 2024-10-21 17:05:06[DEBUG] deno_fmt stdout: { "" } 2024-10-21 17:05:06[DEBUG] deno_fmt stderr: { "\27[0m\27[1m\27[31merror\27[0m: a value is required for '--ext ' but none was supplied", " [possible values: ts, tsx, js, jsx, md, json, jsonc, css, scss, sass, less, html, svelte, vue, astro, yml, yaml, ipynb]", "", "" } 2024-10-21 17:05:06[ERROR] Formatter 'deno_fmt' error: [0m[1m[31merror[0m: a value is required for '--ext ' but none was supplied [possible values: ts, tsx, js, jsx, md, json, jsonc, css, scss, sass, less, html, svelte, vue, astro, yml, yaml, ipynb]

Formatters for this buffer: LSP: svelte deno_fmt ready (svelte, javascriptreact, markdown, jsonc, javascript, typescriptreact, json, html, css, typescript) /Users/jakubdonovan/.local/share/nvim/mason/bin/deno

Describe the bug

Unable to format svelte files with deno_fmt. Here's the relevant extract of my conform setup. All other files format as they should, but svelte files fail to format.

 formatters_by_ft = {
    svelte = {
      "deno_fmt",
      args = { "--ext", "svelte", "--stdin-filepath", "$FILENAME", "--unstable-component" },
    }
  },

  format_on_save = {
    enabled = true,
    timeout_ms = 2000,
    lsp_fallback = true,
  }

As you can see,deno supports formatting of svelte files.

Screenshot 2024-10-21 at 17 09 59

What is the severity of this bug?

minor (annoyance)

Steps To Reproduce

open svelte file and try to format it

Expected Behavior

it should format

Minimal example file

No response

Minimal init.lua

No response

Additional context

No response

jakubdonovan avatar Oct 21 '24 10:10 jakubdonovan

Having the same issue, NixOS. (if it means anything)

Ryoschin avatar Oct 21 '24 23:10 Ryoschin

Same here

AlbinFrick avatar Oct 31 '24 23:10 AlbinFrick

I don't know where you got this syntax from, but it is not correct

 formatters_by_ft = {
    svelte = {
      "deno_fmt",
      args = { "--ext", "svelte", "--stdin-filepath", "$FILENAME", "--unstable-component" },
    }
  },

The formatters_by_ft table is for specifying the formatters that run and some options that get passed to conform.format (e.g. stop_after_first or lsp_format). It is not for customizing how a specific formatter will run; that is done with the formatters table.

Another note, the deno_fmt formatter should automatically handle svelte files without any customization of args as of #552. If you are not on the most recent version of conform, try updating.

Lastly, if you're still having trouble please follow the instructions under debugging tips. I notice the logs do not include the line which tells you exactly which arguments are being passed to the deno fmt command. That is kind of important to know if you're trying to figure out what's going wrong.

stevearc avatar Oct 31 '24 23:10 stevearc

I had missed an update to conform. The latest version works fine for svelte files for me now.

AlbinFrick avatar Oct 31 '24 23:10 AlbinFrick