9 个版本
0.1.81 | 2024 年 6 月 24 日 |
---|---|
0.1.80 | 2024 年 4 月 5 日 |
0.1.70 | 2024 年 3 月 31 日 |
0.1.4 | 2024 年 1 月 6 日 |
#147 in 模板引擎
606 每月下载量
160KB
4K SLoC

jinja-lsp 通过为 Helix/Nvim 用户提供自动完成、语法高亮、悬停、跳转到定义、代码操作和代码检查等高级功能,增强了 minijinja 开发体验。
安装
cargo install jinja-lsp
功能
自动完成
为当前模板中的变量以及后端定义的变量、模板和过滤器提供智能建议。



代码检查
突出显示 jinja 模板中的错误和潜在的错误。



悬停预览
通过悬停在它上面来查看完整的过滤器或变量描述。


代码操作
建议在服务器上重置变量,以防你重命名或删除文件。

跳转到定义
快速跳转到定义。也适用于 Rust 标识符。
https://github.com/uros-5/jinja-lsp/assets/59397844/015e47b4-b6f6-47c0-8504-5ce79ebafb00
代码片段

文档符号

配置
语言服务器配置
{ "templates": "./TEMPLATES_DIR", "backend": ["./BACKEND_DIR"], "lang": "rust"}
Helix 配置
[language-server.jinja-lsp]
command = "jinja-lsp"
config = { templates = "./templates", backend = ["./src"], lang = "rust"}
timeout = 5
[[language]]
name = "jinja"
language-servers = ["jinja-lsp"]
Neovim 配置
vim.filetype.add {
extension = {
jinja = 'jinja',
jinja2 = 'jinja',
j2 = 'jinja',
},
}
-- if you want to debug
vim.lsp.set_log_level("debug")
local nvim_lsp = require('lspconfig')
local configs = require('lspconfig.configs')
if not configs.jinja_lsp then
configs.jinja_lsp = {
default_config = {
name = "jinja-lsp",
cmd = { 'path_to_lsp_or_command' },
filetypes = { 'jinja', 'rust' },
root_dir = function(fname)
return "."
--return nvim_lsp.util.find_git_ancestor(fname)
end,
init_options = {
templates = './templates',
backend = { './src' },
lang = "rust"
},
},
}
end
local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
nvim_lsp.jinja_lsp.setup {
capabilities = capabilities
}
nvim_lsp.jinja_lsp.setup {
}
支持的语言:Python、Rust
依赖项
~21–33MB
~668K SLoC