suggested extensions (#9526)

Follow-up from #9138

Release Notes:

- Adds suggested extensions for some filetypes
([#7096](https://github.com/zed-industries/zed/issues/7096)).

---------

Co-authored-by: Felix Zeller <felixazeller@gmail.com>
This commit is contained in:
Conrad Irwin 2024-03-19 10:06:01 -06:00 committed by GitHub
parent 7573f35e8e
commit d6b7f14b51
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 318 additions and 37 deletions

View file

@ -283,6 +283,7 @@ pub enum Event {
LanguageServerLog(LanguageServerId, String),
Notification(String),
LanguageServerPrompt(LanguageServerPromptRequest),
LanguageNotFound(Model<Buffer>),
ActiveEntryChanged(Option<ProjectEntryId>),
ActivateProjectPanel,
WorktreeAdded,
@ -2797,18 +2798,31 @@ impl Project {
&mut self,
buffer_handle: &Model<Buffer>,
cx: &mut ModelContext<Self>,
) -> Option<()> {
) {
// If the buffer has a language, set it and start the language server if we haven't already.
let buffer = buffer_handle.read(cx);
let file = buffer.file()?;
let Some(file) = buffer.file() else {
return;
};
let content = buffer.as_rope();
let new_language = self
let Some(new_language_result) = self
.languages
.language_for_file(file, Some(content), cx)
.now_or_never()?
.ok()?;
self.set_language_for_buffer(buffer_handle, new_language, cx);
None
.now_or_never()
else {
return;
};
match new_language_result {
Err(e) => {
if e.is::<language::LanguageNotFound>() {
cx.emit(Event::LanguageNotFound(buffer_handle.clone()))
}
}
Ok(new_language) => {
self.set_language_for_buffer(buffer_handle, new_language, cx);
}
};
}
pub fn set_language_for_buffer(