Skip to content

Commit 074c10b

Browse files
regenerate docs index from recent changes (#90)
1 parent 7654334 commit 074c10b

File tree

1 file changed

+36
-13
lines changed

1 file changed

+36
-13
lines changed

docs/index.md

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ Generated via docs/processor.py from README.md
1010

1111
# django-language-server
1212

13+
[![PyPI](https://img.shields.io/pypi/v/django-language-server)](https://pypi.org/project/django-language-server/)
14+
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-language-server)
15+
![Django Version](https://img.shields.io/badge/django-4.2%20%7C%205.0%20%7C%205.1-%2344B78B?labelColor=%23092E20)
16+
<!-- https://shields.io/badges -->
17+
<!-- django-4.2 | 5.0 | 5.1-#44B78B -->
18+
<!-- labelColor=%23092E20 -->
19+
1320
A language server for the Django web framework.
1421

1522
!!! warning
@@ -57,7 +64,19 @@ See the [Versioning](#versioning) section for details on how this project's vers
5764

5865
## Installation
5966

60-
Install the Django Language Server in your project's environment:
67+
The Django Language Server can be installed using your preferred Python package manager.
68+
69+
For system-wide availability using either `uv` or `pipx`:
70+
71+
```bash
72+
uv tool install django-language-server
73+
74+
# or
75+
76+
pipx install django-language-server
77+
```
78+
79+
Or to try it out in your current project:
6180

6281
```bash
6382
uv add --dev django-language-server
@@ -72,11 +91,9 @@ The package provides pre-built wheels with the Rust-based LSP server compiled fo
7291

7392
!!! note
7493

75-
The server must currently be installed in each project's environment as it needs to run using the project's Python interpreter to access the correct Django installation and other dependencies.
76-
77-
Global installation is not yet supported as it would run against a global Python environment rather than your project's virtualenv. The server uses [PyO3](https://pyo3.rs) to interact with Django, and we aim to support global installation in the future, allowing the server to detect and use project virtualenvs, but this is a tricky problem involving PyO3 and Python interpreter management.
94+
The server will automatically detect and use your project's Python environment when you open a Django project. It needs access to your project's Django installation and other dependencies, but should be able to find these regardless of where the server itself is installed.
7895

79-
If you have experience with [PyO3](https://pyo3.rs) or [maturin](https://maturin.rs) and ideas on how to achieve this, please check the [Contributing](#contributing) section below.
96+
It's recommended to use `uv` or `pipx` to install it system-wide for convenience, but installing in your project's environment will work just as well to give it a test drive around the block.
8097

8198
## Editor Setup
8299

@@ -141,18 +158,24 @@ All feature requests should ideally start out as a discussion topic, to gather f
141158

142159
### Development
143160

144-
The project is written in Rust using PyO3 for Python integration:
161+
The project is written in Rust using PyO3 for Python integration. Here is a high-level overview of the project and the various crates:
145162

146-
- LSP server implementation (`crates/djls/`)
147-
- Template parsing and core functionality (`crates/djls-template-ast/`)
148-
- Python integration via PyO3 for Django project introspection
163+
- Main CLI interface ([`crates/djls/`](https://github.com/joshuadavidthomas/django-language-server/blob/main/crates/djls/))
164+
- Django and Python project introspection ([`crates/djls-project/`](https://github.com/joshuadavidthomas/django-language-server/blob/main/crates/djls-project/))
165+
- LSP server implementation ([`crates/djls-server/`](https://github.com/joshuadavidthomas/django-language-server/blob/main/crates/djls-server/))
166+
- Template parsing ([`crates/djls-templates/`](https://github.com/joshuadavidthomas/django-language-server/blob/main/crates/djls-templates/))
167+
- Tokio-based background task management ([`crates/djls-worker/`](https://github.com/joshuadavidthomas/django-language-server/blob/main/crates/djls-worker/))
149168

150-
Code contributions are welcome from developers of all backgrounds. Rust expertise is especially valuable for the LSP server and core components.
169+
Code contributions are welcome from developers of all backgrounds. Rust expertise is valuable for the LSP server and core components, but Python and Django developers should not be deterred by the Rust codebase - Django expertise is just as valuable. Understanding Django's internals and common development patterns helps inform what features would be most valuable.
151170

152-
One significant challenge we're trying to solve is supporting global installation of the language server while still allowing it to detect and use project virtualenvs for Django introspection. Currently, the server must be installed in each project's virtualenv to access the project's Django installation. If you have experience with PyO3 and ideas about how to achieve this, we'd love your help!
153-
154-
Python and Django developers should not be deterred by the Rust codebase - Django expertise is just as valuable. Understanding Django's internals and common development patterns helps inform what features would be most valuable. The Rust components were built by [a simple country CRUD web developer](https://youtu.be/7ij_1SQqbVo?si=hwwPyBjmaOGnvPPI&t=53) learning Rust along the way.
171+
So far it's all been built by a [a simple country CRUD web developer](https://youtu.be/7ij_1SQqbVo?si=hwwPyBjmaOGnvPPI&t=53) learning Rust along the way - send help!
155172

156173
## License
157174

158175
django-language-server is licensed under the Apache License, Version 2.0. See the [`LICENSE`](https://github.com/joshuadavidthomas/django-language-server/blob/main/LICENSE) file for more information.
176+
177+
---
178+
179+
django-language-server is not associated with the Django Software Foundation.
180+
181+
Django is a registered trademark of the Django Software Foundation.

0 commit comments

Comments
 (0)