探索 Elixir 开发新境界:elixir-tools.nvim 插件推荐
elixir-tools.nvimNeovim plugin for Elixir项目地址:https://gitcode.com/gh_mirrors/el/elixir-tools.nvim
项目介绍
elixir-tools.nvim
是一款专为 Neovim 设计的插件,旨在为开发者提供一个优雅的 Elixir 应用程序编写体验。无论你是 Elixir 新手还是资深开发者,这款插件都能显著提升你的开发效率。
项目技术分析
elixir-tools.nvim
的核心功能包括:
- Next LS 和 ElixirLS 的安装与配置:自动安装并配置 Next LS 和 ElixirLS,提供强大的语言服务器支持。
:Mix
命令:支持mix
命令的自动补全,方便开发者快速执行各种任务。- vim-projectionist 支持:集成 vim-projectionist,提供模块化的项目管理功能。
项目及技术应用场景
elixir-tools.nvim
适用于以下场景:
- Elixir 开发者:无论是开发小型项目还是大型应用,
elixir-tools.nvim
都能提供强大的支持。 - Neovim 用户:如果你是 Neovim 的忠实用户,这款插件将为你带来更加流畅的 Elixir 开发体验。
- 追求高效开发的开发者:通过自动化的工具配置和强大的命令支持,
elixir-tools.nvim
能够显著提升开发效率。
项目特点
- 自动化配置:自动安装并配置 Next LS 和 ElixirLS,减少手动配置的繁琐。
- 强大的命令支持:提供
:Mix
命令的自动补全,方便开发者快速执行各种任务。 - 模块化项目管理:集成 vim-projectionist,支持模块化的项目管理,提升开发效率。
- 灵活的配置选项:支持多种配置选项,满足不同开发者的个性化需求。
安装与使用
安装
使用 lazy.nvim
{
"elixir-tools/elixir-tools.nvim",
version = "*",
event = { "BufReadPre", "BufNewFile" },
config = function()
local elixir = require("elixir")
local elixirls = require("elixir.elixirls")
elixir.setup {
nextls = {enable = true},
elixirls = {
enable = true,
settings = elixirls.settings {
dialyzerEnabled = false,
enableTestLenses = false,
},
on_attach = function(client, bufnr)
vim.keymap.set("n", "<space>fp", ":ElixirFromPipe<cr>", { buffer = true, noremap = true })
vim.keymap.set("n", "<space>tp", ":ElixirToPipe<cr>", { buffer = true, noremap = true })
vim.keymap.set("v", "<space>em", ":ElixirExpandMacro<cr>", { buffer = true, noremap = true })
end,
},
projectionist = {
enable = true
}
}
end,
dependencies = {
"nvim-lua/plenary.nvim",
},
}
使用 packer.nvim
use({ "elixir-tools/elixir-tools.nvim", tag = "stable", requires = { "nvim-lua/plenary.nvim" }})
快速开始
最小化配置
require("elixir").setup()
高级配置
local elixir = require("elixir")
local elixirls = require("elixir.elixirls")
elixir.setup {
nextls = {
enable = false,
port = 9000,
cmd = "path/to/next-ls",
init_options = {
mix_env = "dev",
mix_target = "host",
experimental = {
completions = {
enable = false
}
}
},
on_attach = function(client, bufnr)
-- 自定义快捷键
end
},
elixirls = {
repo = "mhanberg/elixir-ls",
branch = "mh/all-workspace-symbols",
tag = "v0.14.6",
cmd = "/usr/local/bin/elixir-ls.sh",
settings = elixirls.settings {
dialyzerEnabled = true,
fetchDeps = false,
enableTestLenses = false,
suggestSpecs = false,
},
on_attach = function(client, bufnr)
vim.keymap.set("n", "<space>fp", ":ElixirFromPipe<cr>", { buffer = true, noremap = true })
vim.keymap.set("n", "<space>tp", ":ElixirToPipe<cr>", { buffer = true, noremap = true })
vim.keymap.set("v", "<space>em", ":ElixirExpandMacro<cr>", { buffer = true, noremap = true })
end
}
}
结语
elixir-tools.nvim
是一款功能强大且易于配置的 Neovim 插件,专为 Elixir 开发者设计。无论你是初学者还是经验丰富的开发者,这款插件都能帮助你提升开发效率,享受更加流畅的 Elixir 开发体验。立即尝试,开启你的 Elixir 开发新篇章!
elixir-tools.nvimNeovim plugin for Elixir项目地址:https://gitcode.com/gh_mirrors/el/elixir-tools.nvim