django-language-server¶
A language server for the Django web framework.
New to language servers, or unsure whether you need one? Start with Why a language server?
Warning
This project is in early stages. All Most features are incomplete and missing.
Features¶
- Completions - Template tag and filter autocompletion with snippets

- Diagnostics - Real-time error checking and validation

- Command-line checks - Validate template files and directories with
djls check - Go to definition - Jump to template, block, and registered Python definitions
- Template navigation for
{% extends %}and{% include %} - Template Library, Tag, Filter, and selective-load symbol navigation
- Exact source highlighting in editors that support definition links
- Block definitions across template inheritance
- Variable definitions
- Template navigation for
- Find references - See where templates and inherited blocks are used
- Template references for
{% extends %}and{% include %} - Block references across template inheritance
- Variable references
- Template references for
- Document links - Click through resolved template references and template libraries
- Template names in
{% extends %}and{% include %} - Template libraries in
{% load %}
- Template names in
- Folding ranges - Fold Django template regions

- Hover - View documentation for Django template tags, filters, libraries, and template references

- Code actions - Quick fixes for unloaded tags or filters and mismatched closing block names
- Formatting - Opt-in LSP document formatting through
djangofmt - Rename - Refactor names across files
- Document symbols - Outline view of template structure
- Workspace symbols - Search across all project templates
- Signature help - Parameter hints while typing
Getting Started¶
Follow the getting started guide to go from nothing to a working setup: install the server, configure your editor, and open a template.
The short version:
Then set up your editor's LSP client to run the server:
- VS Code - Install the extension from the marketplace
- Neovim - Configure with
vim.lsp.config() - Sublime Text - Set up with LSP package
- Zed - Install the extension
Any other editor with an LSP client works too; see Editor setup. The Installation reference covers Homebrew, pip, standalone binaries, and source builds. The djls CLI can check templates without an editor.