Skip to content
New issue

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

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

Already on GitHub? # to your account

Global plugins not being found #352

Open
Todomir opened this issue May 25, 2022 · 8 comments
Open

Global plugins not being found #352

Todomir opened this issue May 25, 2022 · 8 comments
Labels
bug Something isn't working

Comments

@Todomir
Copy link

Todomir commented May 25, 2022

Hi, currently trying to use prettier-plugin-style-order and prettier-plugin-tailwindcss (both installed globally via npm), currently using neovim and null-ls to run prettierd.

local config = require("user.lsp.null-ls.formatting")
local formatting = null_ls.builtins.formatting
local sources = {
	formatting.prettierd.with({
		env = {
			PRETTIERD_DEFAULT_CONFIG = vim.fn.expand("$HOME/.config/nvim/.prettierrc.json"),
		},
	}),
}
null_ls.setup({
	sources = sources,
	debounce = 200,
	autostart = true,
	debug = true,
	on_attach = function(client, bufnr)
		config.setup(client, bufnr)
	end,
})

This is the prettier config

{
  "arrowParens": "avoid",
  "bracketSpacing": true,
  "endOfLine": "auto",
  "printWidth": 80,
  "semi": true,
  "tabWidth": 2,
  "bracketSameLine": true,
  "embeddedLanguageFormatting": "auto",
  "htmlWhitespaceSensitivity": "css",
  "insertPragma": false,
  "jsxSingleQuote": false,
  "proseWrap": "preserve",
  "quoteProps": "as-needed",
  "requirePragma": false,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "none",
  "useTabs": false,
  "configPrecedence": "prefer-file",
  "plugins": ["prettier-plugin-style-order", "prettier-plugin-tailwindcss"]
}

and the error log

[TRACE qua 25 mai 2022 20:35:50] .../site/pack/packer/start/null-ls.nvim/lua/null-ls/rpc.lua:121: received LSP request for method textDocument/formatting
[TRACE qua 25 mai 2022 20:35:50] ...ack/packer/start/null-ls.nvim/lua/null-ls/generators.lua:21: running generators for method NULL_LS_FORMATTING
[DEBUG qua 25 mai 2022 20:35:50] ...rt/null-ls.nvim/lua/null-ls/helpers/command_resolver.lua:35: attempting to find local executable node_modules/.bin/prettierd
[DEBUG qua 25 mai 2022 20:35:50] ...rt/null-ls.nvim/lua/null-ls/helpers/command_resolver.lua:41: Unable to resolve command [node_modules/.bin/prettierd], skipping further lookups
[DEBUG qua 25 mai 2022 20:35:50] ...t/null-ls.nvim/lua/null-ls/helpers/generator_factory.lua:286: Using dynamic command for [prettierd], got: "prettierd"
[DEBUG qua 25 mai 2022 20:35:50] ...t/null-ls.nvim/lua/null-ls/helpers/generator_factory.lua:346: spawning command "prettierd" at /home/todomir with args { "/home/todomir/dev/react/testing-fe/src/index.css" }
[TRACE qua 25 mai 2022 20:35:50] ...t/null-ls.nvim/lua/null-ls/helpers/generator_factory.lua:217: error output: Error: Cannot find module 'prettier-plugin-style-order'
Require stack:
- /home/todomir/.nvm/versions/node/v18.0.0/lib/node_modules/@fsouza/prettierd/node_modules/prettier/index.js
- /home/todomir/.nvm/versions/node/v18.0.0/lib/node_modules/@fsouza/prettierd/dist/service.js
- /home/todomir/.nvm/versions/node/v18.0.0/lib/node_modules/@fsouza/prettierd/node_modules/core_d/lib/server.js
- /home/todomir/.nvm/versions/node/v18.0.0/lib/node_modules/@fsouza/prettierd/node_modules/core_d/lib/daemon.js

[TRACE qua 25 mai 2022 20:35:50] ...t/null-ls.nvim/lua/null-ls/helpers/generator_factory.lua:218: output: nil
[TRACE qua 25 mai 2022 20:35:50] ...t/null-ls.nvim/lua/null-ls/helpers/generator_factory.lua:222: ignoring stderr due to generator options
[TRACE qua 25 mai 2022 20:35:50] .../site/pack/packer/start/null-ls.nvim/lua/null-ls/rpc.lua:146: received LSP notification for method textDocument/didSave
[TRACE qua 25 mai 2022 20:35:50] ...ack/packer/start/null-ls.nvim/lua/null-ls/generators.lua:21: running generators for method NULL_LS_DIAGNOSTICS_ON_SAVE
[DEBUG qua 25 mai 2022 20:35:50] ...ack/packer/start/null-ls.nvim/lua/null-ls/generators.lua:24: no generators available

@fsouza fsouza added the bug Something isn't working label Jun 2, 2022
@fsouza
Copy link
Owner

fsouza commented Jun 2, 2022

Created a simpler reproducer:

#!/usr/bin/env bash

set -euo pipefail

npm i -g @fsouza/prettierd prettier-plugin-style-order

cat >/tmp/prettierc.json <<EOF
{
  "arrowParens": "avoid",
  "bracketSpacing": true,
  "endOfLine": "auto",
  "printWidth": 80,
  "semi": true,
  "tabWidth": 2,
  "bracketSameLine": true,
  "embeddedLanguageFormatting": "auto",
  "htmlWhitespaceSensitivity": "css",
  "insertPragma": false,
  "jsxSingleQuote": false,
  "proseWrap": "preserve",
  "quoteProps": "as-needed",
  "requirePragma": false,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "none",
  "useTabs": false,
  "configPrecedence": "prefer-file",
  "plugins": ["prettier-plugin-style-order"]
}
EOF

env PRETTIERD_DEFAULT_CONFIG=/tmp/prettierc.json prettierd file.css <<EOF
body {
  margin: 0;
        }
EOF

Probably need to figure out the right parameters to make prettier discover global plugins. Will try to look into this some time next week.

@laughingman-hass
Copy link

Any movement on this one?
Also getting this with plugins installed globally by yarn

.prettierrc

{
  "plugins": ["prettier-plugin-go-tepmlate"]
}
Error: Cannot find module 'prettier-plugin-go-tepmlate'
Require stack:
- /Users/dev/.config/yarn/global/node_modules/prettier/index.js
- /Users/dev/.config/yarn/global/node_modules/@fsouza/prettierd/dist/service.js
- /Users/dev/.config/yarn/global/node_modules/core_d/lib/server.js
- /Users/dev/.config/yarn/global/node_modules/core_d/lib/daemon.js

@fsouza
Copy link
Owner

fsouza commented Sep 13, 2022

@laughingman-hass thanks for commenting. There aren't any updates, but perhaps you're running into a different issue? Do you have a typo in tepmlate (instead of template)?

@laughingman-hass
Copy link

doh! good catch. had attempted it number of times before I thought I'd log it here.
With the typo corrected it still provides the same error.

@fsouza
Copy link
Owner

fsouza commented Sep 13, 2022

doh! good catch. had attempted it number of times before I thought I'd log it here.
With the typo corrected it still provides the same error.

Thanks for confirming. I still haven't had a chance to look into this unfortunately

@Todomir
Copy link
Author

Todomir commented Jun 2, 2023

Any updates on this issue?

@gugahoi
Copy link

gugahoi commented Jun 20, 2023

I can also see the same problem with plugins and prettierd:

[TRACE Tue Jun 20 12:24:27 2023] /Users/guga/.local/share/nvim/lazy/null-ls.nvim/lua/null-ls/helpers/generator_factory.lua:205: error output: Error: Cannot find module 'prettier-plugin-jsdoc'
Require stack:
- /Users/guga/Projects/joinflux/flux/packages/api-service/node_modules/prettier/index.js
- /Users/guga/.local/share/nvim/mason/packages/prettierd/node_modules/@fsouza/prettierd/dist/service.js
- /Users/guga/.local/share/nvim/mason/packages/prettierd/node_modules/@fsouza/prettierd/node_modules/core_d/lib/server.js
- /Users/guga/.local/share/nvim/mason/packages/prettierd/node_modules/@fsouza/prettierd/node_modules/core_d/lib/daemon.js

@dpetka2001
Copy link

I too have come upon this problem and as I workaround I installed prettier globally and from Neovim i just run :!prettier --write "%"(created a keybinding for it) which is able to find the modules. Obviously, global prettier is able to find the modules from terminal as well when running the aforementioned command.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants