Cargo.lock 🔗
@@ -3346,6 +3346,7 @@ dependencies = [
"collections",
"command_palette_hooks",
"ctor",
+ "dirs 4.0.0",
"editor",
"fs",
"futures 0.3.31",
Umesh Yadav created
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
Cargo.lock | 1 +
crates/copilot/Cargo.toml | 1 +
crates/copilot/src/copilot_chat.rs | 13 ++++++++-----
3 files changed, 10 insertions(+), 5 deletions(-)
@@ -3346,6 +3346,7 @@ dependencies = [
"collections",
"command_palette_hooks",
"ctor",
+ "dirs 4.0.0",
"editor",
"fs",
"futures 0.3.31",
@@ -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
@@ -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")
})
}