Restore language query watcher in dev builds (#52543)

The watcher had been broken for some time, but became even more broken
after the recent move of the queries.

This PR restores the reloading behavior for debug builds so that
languages are reloaded once a scheme file is changed.

Release Notes:

- N/A
This commit is contained in:
Finn Evers 2026-03-27 11:10:57 +01:00 committed by GitHub
parent 354bc35974
commit 79347e8ca5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 12 additions and 18 deletions

12
Cargo.lock generated
View file

@ -14873,9 +14873,9 @@ dependencies = [
[[package]]
name = "rust-embed"
version = "8.7.2"
version = "8.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "025908b8682a26ba8d12f6f2d66b987584a4a87bc024abc5bbc12553a8cd178a"
checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27"
dependencies = [
"rust-embed-impl",
"rust-embed-utils",
@ -14884,9 +14884,9 @@ dependencies = [
[[package]]
name = "rust-embed-impl"
version = "8.7.2"
version = "8.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6065f1a4392b71819ec1ea1df1120673418bf386f50de1d6f54204d836d4349c"
checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa"
dependencies = [
"proc-macro2",
"quote",
@ -14897,9 +14897,9 @@ dependencies = [
[[package]]
name = "rust-embed-utils"
version = "8.7.2"
version = "8.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6cc0c81648b20b70c491ff8cce00c1c3b223bb8ed2b5d41f0e54c6c4c0a3594"
checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1"
dependencies = [
"globset",
"sha2",

View file

@ -680,7 +680,7 @@ rsa = "0.9.6"
runtimelib = { version = "1.4.0", default-features = false, features = [
"async-dispatcher-runtime", "aws-lc-rs"
] }
rust-embed = { version = "8.4", features = ["include-exclude"] }
rust-embed = { version = "8.11", features = ["include-exclude"] }
rustc-hash = "2.1.0"
rustls = { version = "0.23.26" }
rustls-platform-verifier = "0.5.0"

View file

@ -65,7 +65,7 @@ rand.workspace = true
similar = "2.7.0"
flate2 = "1.1.8"
toml.workspace = true
rust-embed = { workspace = true, features = ["debug-embed"] }
rust-embed.workspace = true
gaoya = "0.2.0"
# Wasmtime is included as a dependency in order to enable the same

View file

@ -362,7 +362,7 @@ fn register_language(
Arc::new(move || {
Ok(LoadedLanguage {
config: config.clone(),
queries: load_queries(name),
queries: grammars::load_queries(name),
context_provider: context.clone(),
toolchain_provider: toolchain.clone(),
manifest_name: manifest_name.clone(),
@ -384,7 +384,3 @@ fn load_config(name: &str) -> LanguageConfig {
let grammars_loaded = cfg!(any(feature = "load-grammars", test));
grammars::load_config_for_feature(name, grammars_loaded)
}
fn load_queries(name: &str) -> LanguageQueries {
grammars::load_queries(name)
}

View file

@ -27,7 +27,7 @@ log.workspace = true
migrator.workspace = true
paths.workspace = true
release_channel.workspace = true
rust-embed = { workspace = true, features = ["debug-embed"] }
rust-embed.workspace = true
schemars.workspace = true
serde.workspace = true
serde_json.workspace = true

View file

@ -811,6 +811,7 @@ fn main() {
let fs = app_state.fs.clone();
load_user_themes_in_background(fs.clone(), cx);
watch_themes(fs.clone(), cx);
#[cfg(debug_assertions)]
watch_languages(fs.clone(), app_state.languages.clone(), cx);
let menus = app_menus(cx);
@ -1834,7 +1835,7 @@ fn watch_languages(fs: Arc<dyn fs::Fs>, languages: Arc<LanguageRegistry>, cx: &m
use std::time::Duration;
cx.background_spawn(async move {
let languages_src = Path::new("crates/languages/src");
let languages_src = Path::new("crates/grammars/src");
let Some(languages_src) = fs.canonicalize(languages_src).await.log_err() else {
return;
};
@ -1864,9 +1865,6 @@ fn watch_languages(fs: Arc<dyn fs::Fs>, languages: Arc<LanguageRegistry>, cx: &m
.detach();
}
#[cfg(not(debug_assertions))]
fn watch_languages(_fs: Arc<dyn fs::Fs>, _languages: Arc<LanguageRegistry>, _cx: &mut App) {}
fn dump_all_gpui_actions() {
#[derive(Debug, serde::Serialize)]
struct ActionDef {