requirements language server
Project description
requirements-language-server
Language server for requirements.txt.
- document hover: requires pip.
- completion: requires pip-cache.
Must
pip-cache update
before. - diagnostic: requires pip-compile.
Screenshots
Document Hover
Completion
Diagnostic
Usage
Vim/Neovim
coc.nvim
{
"languageserver": {
"requirements": {
"command": "requirements-language-server",
"filetypes": [
"requirements"
]
}
}
}
vim-lsp
if executable('requirements-language-server')
augroup lsp
autocmd!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'requirements',
\ 'cmd': {server_info->['requirements-language-server']},
\ 'whitelist': ['requirements'],
\ })
augroup END
endif
Neovim
vim.api.nvim_create_autocmd({ "BufEnter" }, {
pattern = { "requirements*.txt*" },
callback = function()
vim.lsp.start({
name = "requirements",
cmd = { "requirements-language-server" }
})
end,
})
Emacs
(make-lsp-client :new-connection
(lsp-stdio-connection
`(,(executable-find "requirements-language-server")))
:activation-fn (lsp-activate-on "requirements*.txt*")
:server-id "requirements")))
Sublime
{
"clients": {
"requirements": {
"command": [
"requirements-language-server"
],
"enabled": true,
"selector": "source.requirements"
}
}
}
Customization
You can customize the document hover template. A default template is here. The syntax rule is jinja. The template path is decided by your OS:
$ requirements-language-server --print-config template
/home/wzy/.config/pip/template.md.j2
You can generate cache by requirements-language-server --generate-cache
to
fasten document hover and completion. Every time you change template, the cache
must be regenerated.
$ requirements-language-server --print-config cache
/home/wzy/.cache/pip/pip.json
Related Projects
- requirements.txt.vim: syntax highlight for vim
- vim-polyglot: contains above
- bat: syntax highlight for less