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 模板引擎

Download history 138/week @ 2024-05-02 138/week @ 2024-05-09 117/week @ 2024-05-16 153/week @ 2024-05-23 118/week @ 2024-05-30 131/week @ 2024-06-06 140/week @ 2024-06-13 389/week @ 2024-06-20 247/week @ 2024-06-27 174/week @ 2024-07-04 158/week @ 2024-07-11 139/week @ 2024-07-18 133/week @ 2024-07-25 169/week @ 2024-08-01 148/week @ 2024-08-08 137/week @ 2024-08-15

606 每月下载量

MIT 许可证

160KB
4K SLoC

banner

jinja-lsp 通过为 Helix/Nvim 用户提供自动完成、语法高亮、悬停、跳转到定义、代码操作和代码检查等高级功能,增强了 minijinja 开发体验。

crates.io visualstudio.com

安装

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