Properly use WorktreeId

This commit is contained in:
Kirill Bulatov 2023-09-23 00:04:49 +03:00
parent 8a807102a6
commit 658b58378e

View file

@ -841,22 +841,18 @@ impl Project {
for buffer in self.opened_buffers.values() {
if let Some(buffer) = buffer.upgrade(cx) {
let buffer = buffer.read(cx);
let buffer_file = buffer.file();
let buffer_file = File::from_dyn(buffer.file());
let buffer_language = buffer.language();
let settings = language_settings(buffer_language, buffer_file, cx);
let settings = language_settings(buffer_language, buffer.file(), cx);
if let Some(language) = buffer_language {
if settings.enable_language_server {
if let Some(file) = File::from_dyn(buffer_file) {
if let Some(file) = buffer_file {
language_servers_to_start
.push((file.worktree.clone(), Arc::clone(language)));
}
}
let worktree = buffer_file
// TODO kb wrong usage (+ look around for another one like this)
.map(|f| f.worktree_id())
.map(WorktreeId::from_usize);
language_formatters_to_check.push((
worktree,
buffer_file.map(|f| f.worktree_id(cx)),
Arc::clone(language),
settings.clone(),
));
@ -2665,14 +2661,12 @@ impl Project {
});
let buffer_file = buffer.read(cx).file().cloned();
let worktree = buffer_file
.as_ref()
.map(|f| f.worktree_id())
.map(WorktreeId::from_usize);
let settings = language_settings(Some(&new_language), buffer_file.as_ref(), cx).clone();
let buffer_file = File::from_dyn(buffer_file.as_ref());
let worktree = buffer_file.as_ref().map(|f| f.worktree_id(cx));
self.install_default_formatters(worktree, &new_language, &settings, cx);
if let Some(file) = File::from_dyn(buffer_file.as_ref()) {
if let Some(file) = buffer_file {
let worktree = file.worktree.clone();
if let Some(tree) = worktree.read(cx).as_local() {
self.start_language_servers(&worktree, tree.abs_path().clone(), new_language, cx);