copilot: Fix config dir logic to support Flatpak environments (#32901)

Closes #30784

In github copilot we were not handling the config path correctly for
FLATPAK.

* Only tested on mac don't have access to other platform. But this
should work on other platform as well. It follows the similar pattern
seen in zed config path resolution.
- [x] Macos
- [ ] Linux
- [ ] Linux with Flatpak
- [ ] Windows

Release Notes:

- Fix copilot config detection for flatpack
This commit is contained in:
Umesh Yadav 2025-06-19 20:02:02 +05:30 committed by GitHub
parent ec0f2fa79a
commit e914d84f00
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 5 deletions

1
Cargo.lock generated
View file

@ -3346,6 +3346,7 @@ dependencies = [
"collections",
"command_palette_hooks",
"ctor",
"dirs 4.0.0",
"editor",
"fs",
"futures 0.3.31",

View file

@ -29,6 +29,7 @@ chrono.workspace = true
client.workspace = true
collections.workspace = true
command_palette_hooks.workspace = true
dirs.workspace = true
fs.workspace = true
futures.workspace = true
gpui.workspace = true

View file

@ -424,12 +424,15 @@ pub fn copilot_chat_config_dir() -> &'static PathBuf {
static COPILOT_CHAT_CONFIG_DIR: OnceLock<PathBuf> = OnceLock::new();
COPILOT_CHAT_CONFIG_DIR.get_or_init(|| {
if cfg!(target_os = "windows") {
home_dir().join("AppData").join("Local")
let config_dir = if cfg!(target_os = "windows") {
dirs::data_local_dir().expect("failed to determine LocalAppData directory")
} else {
home_dir().join(".config")
}
.join("github-copilot")
std::env::var("XDG_CONFIG_HOME")
.map(PathBuf::from)
.unwrap_or_else(|_| home_dir().join(".config"))
};
config_dir.join("github-copilot")
})
}