I am new to NeoVim ecosystem. I set up my config based from the ThePrimeage's video. After that I tried to install additional formatting using formatter.nvim package for NeoVim.
This is how my formatter.lua file looks like:
vim.cmd([[nnoremap <silent> <leader>fm :Format<CR>]])local util = require("formatter.util")local function prettier() return { exe = "prettier", args = {"--write","--config-precedence","prefer-file","--single-quote","--no-bracket-spacing","--prose-wrap","always","--arrow-parens","always","--trailing-comma","all","--no-semi","--end-of-line","lf","--print-width", vim.bo.textwidth,"--stdin-filepath", vim.fn.shellescape(vim.api.nvim_buf_get_name(0)), }, stdin = true, }endrequire("formatter").setup({ logging = true, log_level = vim.log.levels.WARN, filetype = { javascript = { prettier }, typescript = { prettier }, javascriptreact = { prettier }, typescriptreact = { prettier }, vue = { prettier }, ["javascript.jsx"] = { prettier }, ["typescript.tsx"] = { prettier }, markdown = { prettier }, css = { prettier }, json = { prettier }, jsonc = { prettier }, scss = { prettier }, less = { prettier }, yaml = { prettier }, graphql = { prettier }, html = { prettier }, reason = { function() return { exe = "refmt", stdin = true, } end, }, lua = { require("formatter.filetypes.lua").stylua, function() if util.get_current_buffer_file_name() == "special.lua" then return nil end return { exe = "stylua", args = {"--search-parent-directories","--stdin-filepath", util.escape_path(util.get_current_buffer_file_path()),"--","-", }, stdin = true, } end, }, go = { function() return { exe = "gofmt", args = { "-s", "-w", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)) }, stdin = false, } end, }, c = { function() return { exe = "clang-format", args = { "-i", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)) }, stdin = false, } end, }, rust = { function() return { exe = "rustfmt", args = { "--emit=stdout", "--edition=2018", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)) }, stdin = false, } end, }, },})I have prettier installed globally on my system: /usr/local/bin/prettier.
When I try to provide a relative path to the prettier executable instead of just writing prettier it does not find the formatter.
I have default prettier configuration file in my project directory (.prettierrc.json)
Note: I've tried other formats for config too, but without any results.
Note: Formatting for other files does work (Go, Rust, C). Only prettier seems to have a problem.
Note: I had prettier installed using Mason too, but it did not fix the issue, just changed the prettier path while executing the formatting (this command - print(vim.inspect(vim.fn["systemlist"]("which prettier"))))
What can I do to successfully utilize prettier formatting in my NeoVim setup?