Make language_settings take a language, not a language name

This commit is contained in:
Max Brunsfeld 2023-05-31 15:10:30 -07:00
parent 03a351fb26
commit 0dd7694ff5
10 changed files with 41 additions and 60 deletions

View file

@ -1807,8 +1807,7 @@ impl BufferSnapshot {
}
pub fn language_indent_size_at<T: ToOffset>(&self, position: T, cx: &AppContext) -> IndentSize {
let language_name = self.language_at(position).map(|language| language.name());
let settings = language_settings(language_name.as_deref(), self.file(), cx);
let settings = language_settings(self.language_at(position), self.file(), cx);
if settings.hard_tabs {
IndentSize::tab()
} else {
@ -2132,12 +2131,7 @@ impl BufferSnapshot {
position: D,
cx: &'a AppContext,
) -> &'a LanguageSettings {
let language = self.language_at(position);
language_settings(
language.map(|l| l.name()).as_deref(),
self.file.as_ref(),
cx,
)
language_settings(self.language_at(position), self.file.as_ref(), cx)
}
pub fn language_scope_at<D: ToOffset>(&self, position: D) -> Option<LanguageScope> {

View file

@ -1,4 +1,4 @@
use crate::File;
use crate::{File, Language};
use anyhow::Result;
use collections::HashMap;
use globset::GlobMatcher;
@ -15,7 +15,7 @@ pub fn init(cx: &mut AppContext) {
}
pub fn language_settings<'a>(
language: Option<&str>,
language: Option<&Arc<Language>>,
file: Option<&Arc<dyn File>>,
cx: &'a AppContext,
) -> &'a LanguageSettings {
@ -23,7 +23,7 @@ pub fn language_settings<'a>(
file.map(|f| (f.worktree_id(), f.path().as_ref())),
cx,
)
.language(language)
.language(language.map(|l| l.name()).as_deref())
}
pub fn all_language_settings<'a>(
@ -170,7 +170,7 @@ impl AllLanguageSettings {
.any(|glob| glob.is_match(path))
}
pub fn copilot_enabled(&self, language_name: Option<&str>, path: Option<&Path>) -> bool {
pub fn copilot_enabled(&self, language: Option<&Arc<Language>>, path: Option<&Path>) -> bool {
if !self.copilot.feature_enabled {
return false;
}
@ -181,7 +181,8 @@ impl AllLanguageSettings {
}
}
self.language(language_name).show_copilot_suggestions
self.language(language.map(|l| l.name()).as_deref())
.show_copilot_suggestions
}
}