Vyper语言服务器,一种类似于Python的智能合约语言
项目描述
Vyper LSP服务器
需求
Vyper LSP需要至少0.3.7版本的vyper。为了全面支持,还需要确保虚拟环境中安装的vyper版本能够编译您的合约。
例如,带有#pragma version 0.3.8
的vyper合约不能使用0.3.10
编译,因此如果您想在使用此合约时获得全面支持,则必须安装vyper==0.3.8
。
带有#pragma version >=0.3.8
的合约将能够与任何大于要求的vyper版本一起正常工作,因此如果您已安装最新的vyper版本,则可以在编辑此合约时获得全面支持。
安装Vyper-LSP
通过pipx
我喜欢pipx
,因为它可以处理为可执行文件创建隔离环境并将它们添加到您的路径中。
pipx install git+https://github.com/vyperlang/vyper-lsp.git
通过pip
如果您通过其他方式管理环境,则可以使用pip
进行安装
待办事项:发布到PyPI
pip install git+https://github.com/vyperlang/vyper-lsp.git
验证安装
检查vyper-lsp
是否在您的路径中
在您的终端中运行which vyper-lsp
。如果安装成功,您应该看到已安装的可执行文件路径。
编辑器设置
Emacs
以下Emacs Lisp片段将创建一个从Python模式派生的Vyper模式,并设置vyper-lsp。
(define-derived-mode vyper-mode python-mode "Vyper" "Major mode for editing Vyper.")
(add-to-list 'auto-mode-alist '("\\.vy\\'" . vyper-mode))
(with-eval-after-load 'lsp-mode
(add-to-list 'lsp-language-id-configuration
'(vyper-mode . "vyper"))
(lsp-register-client
(make-lsp-client :new-connection
(lsp-stdio-connection `(,(executable-find "vyper-lsp")))
:activation-fn (lsp-activate-on "vyper")
:server-id 'vyper-lsp)))
Neovim
将以下内容添加到您的 neovim
lua 配置中。
它应该在 ~/.config/nvim/init.lua
vim.api.nvim_create_autocmd({ "BufEnter" }, {
pattern = { "*.vy" },
callback = function()
vim.lsp.start({
name = "vyper-lsp",
cmd = { "vyper-lsp" },
root_dir = vim.fs.dirname(vim.fs.find({ ".git" }, { upward = true })[1])
})
end,
})
vim.api.nvim_create_autocmd({ "BufEnter" }, {
pattern = { "*.vy" },
callback = function()
vim.lsp.start({
name = "vyper-lsp",
cmd = { "vyper-lsp" },
root_dir = vim.fs.dirname(vim.fs.find({ ".git" }, { upward = true })[1])
})
end,
})
vim.api.nvim_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', 'gr', '<Cmd>lua vim.lsp.buf.references()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', 'gi', '<Cmd>lua vim.lsp.buf.implementation()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<C-k>', '<Cmd>lua vim.lsp.buf.signature_help()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '[d', '<Cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', ']d', '<Cmd>lua vim.lsp.diagnostic.goto_next()<CR>', { noremap = true, silent = true })
VS Code
查看 vyper-lsp
VS Code 扩展
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
vyper-lsp-0.0.9.tar.gz (50.9 kB 查看哈希值)
构建分发
vyper_lsp-0.0.9-py3-none-any.whl (51.8 kB 查看哈希值)