qiuxiang / coc-solidity

Solidity language server for coc.nvim
MIT License
48 stars 0 forks source link

Formatting using prettier-plugin-solidity fails if not installed locally. #10

Closed dcordb closed 2 years ago

dcordb commented 2 years ago

If we create a project and do not install prettier-solidity-plugin locally, then coc.nvim fails at formatting a solidity file. The error is the following:

[Error  - 2:22:27 PM] Request textDocument/formatting failed.
  Message: Request textDocument/formatting failed with message: Cannot find module '/home/dcordb/.config/coc/extensions/node_modules/coc-solidity/node_modules/solidity-ls/node_modules/prettier-plugin-solidity'
Require stack:
- /home/dcordb/.config/coc/extensions/node_modules/coc-solidity/node_modules/prettier/index.js
- /home/dcordb/.config/coc/extensions/node_modules/coc-solidity/node_modules/solidity-ls/dist/index.js
  Code: -32603 

Note that prettier-solidity-plugin exists on /home/dcordb/.config/coc/extensions/node_modules/coc-solidity/node_modules/prettier-solidity-plugin, since it is a dependency of solidity-ls.

To reproduce, just create inside a folder a contract (for example, Test.sol) and try to format it.

dcordb commented 2 years ago

Note that an easy fix for this is just to change the directory where coc.nvim is trying to find prettier-plugin-solidity to the correct directory (since this plugin comes as a dependency of solidity-ls).