A language server for the Django web framework.
Caution
This project is in early stages. All Most features are incomplete and missing.
- Completions - Template tag and filter autocompletion with snippets

- Diagnostics - Real-time error checking and validation

- Go to definition - Jump to template, block, or variable definitions
- Template navigation for
{% extends %}and{% include %} - Exact template-name highlighting in editors that support definition links
- Block and variable definitions
- Template navigation for
- Find references - See where templates, blocks, and variables are used
- Template references for
{% extends %}and{% include %} - Block and 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 template libraries and mismatched closing block names
- Formatting - Opt-in whole-document Django template 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
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
See all client configurations.
Most editors can use uvx --from django-language-server djls serve to run the server on-demand without installing it. Alternatively, install it globally first:
uv tool install django-language-server
# or: pipx install django-language-serverSee the Installation guide for more options including pip, standalone binaries, and building from source.
Once configured, open any Django template file in your project to get:
- Template tag and filter completions with snippets
- Real-time syntax validation and diagnostics
- Hover documentation for template tags, filters, libraries, and template references
- Navigation to template definitions and references, including exact template-name highlighting for goto in supported editors
- Clickable links for
{% extends %},{% include %}, and{% load %}names - Quick fixes for unloaded template tags/filters and mismatched
{% endblock %}names - Folding for Django template regions
- Outline symbols for template structure
- Opt-in whole-document formatting through
djangofmt
Visit djls.joshthomas.dev for full documentation including installation guides, configuration options, and editor setup instructions.
django-language-server is licensed under the Apache License, Version 2.0. See the LICENSE file for more information.
django-language-server is not associated with the Django Software Foundation.
Django is a registered trademark of the Django Software Foundation.