From f957a8ea64d4ce98d0b5162a68b27f011c12e515 Mon Sep 17 00:00:00 2001 From: Otávio Schwanck dos Santos Date: Thu, 8 Sep 2022 12:20:36 +0100 Subject: feat: solidity LSP (#2119) --- lua/lspconfig/server_configurations/solidity.lua | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lua/lspconfig/server_configurations/solidity.lua (limited to 'lua') diff --git a/lua/lspconfig/server_configurations/solidity.lua b/lua/lspconfig/server_configurations/solidity.lua new file mode 100644 index 00000000..4e254bd9 --- /dev/null +++ b/lua/lspconfig/server_configurations/solidity.lua @@ -0,0 +1,49 @@ +local util = require 'lspconfig.util' + +return { + default_config = { + cmd = { 'solidity-ls', '--stdio' }, + filetypes = { 'solidity' }, + root_dir = util.root_pattern('.git', 'package.json'), + settings = { solidity = { includePath = '', remapping = {} } }, + }, + docs = { + description = [[ +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_dir: +root_dir = util.root_pattern('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_dir to: + +```lua +root_pattern("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. +]], + default_config = { + root_dir = [[root_pattern("package.json", ".git")]], + }, + }, +} -- cgit v1.2.3-70-g09d2