42 lines
1.4 KiB
Lua
42 lines
1.4 KiB
Lua
---@brief
|
|
---
|
|
--- https://github.com/qiuxiang/solidity-ls
|
|
---
|
|
--- npm i solidity-ls -g
|
|
---
|
|
--- Make sure that solc is installed and it's the same version of the file. solc-select is recommended.
|
|
---
|
|
--- Solidity language server is a LSP with autocomplete, go to definition and diagnostics.
|
|
---
|
|
--- If you use brownie, use this root_markers:
|
|
--- root_markers = { 'brownie-config.yaml', '.git' }
|
|
---
|
|
--- on includePath, you can add an extra path to search for external libs, on remapping you can remap lib <> path, like:
|
|
---
|
|
--- ```lua
|
|
--- { solidity = { includePath = '/Users/your_user/.brownie/packages/', remapping = { ["@OpenZeppelin/"] = 'OpenZeppelin/openzeppelin-contracts@4.6.0/' } } }
|
|
--- ```
|
|
---
|
|
--- **For brownie users**
|
|
--- Change the root_markers to:
|
|
---
|
|
--- ```lua
|
|
--- root_markers = { 'brownie-config.yaml', '.git' }
|
|
--- ```
|
|
---
|
|
--- The best way of using it is to have a package.json in your project folder with the packages that you will use.
|
|
--- After installing with package.json, just create a `remappings.txt` with:
|
|
---
|
|
--- ```
|
|
--- @OpenZeppelin/=node_modules/OpenZeppelin/openzeppelin-contracts@4.6.0/
|
|
--- ```
|
|
---
|
|
--- You can omit the node_modules as well.
|
|
|
|
---@type vim.lsp.Config
|
|
return {
|
|
cmd = { 'solidity-ls', '--stdio' },
|
|
filetypes = { 'solidity' },
|
|
root_markers = { '.git', 'package.json' },
|
|
settings = { solidity = { includePath = '', remapping = {} } },
|
|
}
|