Skip to content

About

A language server for the Django web framework

Resources

Code of conduct

Contributing

Stars

206 stars

Watchers

5 watching

Forks

Latest commit

 

History

876 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

django-language-server

PyPI PyPI - Python Version Django Version

A language server for the Django web framework.

New to language servers, or unsure whether you need one? Start with Why a language server?

Caution

This project is in early stages. All Most features are incomplete and missing.

Features

  • Completions - Template tag and filter autocompletion with snippets Completions
  • Diagnostics - Real-time error checking and validation Diagnostics
  • 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
  • Find references - See where templates and inherited blocks are used
    • Template references for {% extends %} and {% include %}
    • Block references across template inheritance
    • Variable references
  • Document links - Click through resolved template references and template libraries
    • Template names in {% extends %} and {% include %}
    • Template libraries in {% load %}
  • Folding ranges - Fold Django template regions Folding ranges
  • Hover - View documentation for Django template tags, filters, libraries, and template references Hover tag Hover filter Hover template
  • 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:

uv tool install django-language-server
# or: pipx install django-language-server

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.

Documentation

Visit djls.joshthomas.dev for full documentation including installation guides, configuration options, and editor setup instructions.

Contributing

See the contributor guide for development setup, testing, snapshots, and code-quality workflows.

License

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.

About

A language server for the Django web framework

Resources

Code of conduct

Contributing

Stars

206 stars

Watchers

5 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages