Add configurable venv path and improve Python detection (#116)
Some checks failed
lint / pre-commit (push) Waiting to run
release / linux (map[runner:ubuntu-22.04 target:aarch64]) (push) Failing after 5s
release / linux (map[runner:ubuntu-22.04 target:armv7]) (push) Failing after 3s
release / linux (map[runner:ubuntu-22.04 target:ppc64le]) (push) Failing after 3s
release / linux (map[runner:ubuntu-22.04 target:s390x]) (push) Failing after 3s
release / test (push) Has been skipped
release / linux (map[runner:ubuntu-22.04 target:x86]) (push) Failing after 3s
release / linux (map[runner:ubuntu-22.04 target:x86_64]) (push) Failing after 3s
release / musllinux (map[runner:ubuntu-22.04 target:aarch64]) (push) Failing after 3s
release / musllinux (map[runner:ubuntu-22.04 target:armv7]) (push) Failing after 3s
release / musllinux (map[runner:ubuntu-22.04 target:x86]) (push) Failing after 3s
release / musllinux (map[runner:ubuntu-22.04 target:x86_64]) (push) Failing after 4s
release / sdist (push) Has been cancelled
release / windows (map[runner:windows-latest target:x64]) (push) Has been cancelled
release / windows (map[runner:windows-latest target:x86]) (push) Has been cancelled
release / macos (map[runner:macos-13 target:x86_64]) (push) Has been cancelled
release / macos (map[runner:macos-14 target:aarch64]) (push) Has been cancelled
release / release (push) Has been cancelled

This commit is contained in:
Josh Thomas 2025-04-29 23:01:00 -05:00 committed by GitHub
parent 36c57cff35
commit 3b7ffe0b70
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 562 additions and 31 deletions

View file

@ -159,6 +159,7 @@ impl LanguageServer for DjangoLanguageServer {
let project_arc = Arc::clone(&self.project);
let client = self.client.clone();
let settings_arc = Arc::clone(&self.settings);
let task = move || async move {
let mut project_guard = project_arc.write().await;
if let Some(project) = project_guard.as_mut() {
@ -173,7 +174,21 @@ impl LanguageServer for DjangoLanguageServer {
)
.await;
match project.initialize() {
let venv_path = {
let settings = settings_arc.read().await;
settings.venv_path().map(|s| s.to_string())
};
if let Some(ref path) = venv_path {
client
.log_message(
MessageType::INFO,
&format!("Using virtual environment from config: {}", path),
)
.await;
}
match project.initialize(venv_path.as_deref()) {
Ok(()) => {
client
.log_message(