Refactor to use SharedString in more places (#23813)

Splitting this off from
https://github.com/zed-industries/zed/pull/23808, per @maxdeviant's
suggestion!

Release Notes:

- N/A

---------

Co-authored-by: Nathan <nathan@zed.dev>
This commit is contained in:
Richard Feldman 2025-01-28 19:04:21 -05:00 committed by GitHub
parent 92a1cb893f
commit 33d1145c3f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 45 additions and 25 deletions

View file

@ -86,7 +86,7 @@ impl SignatureHelp {
} else {
let markdown = markdown.join(str_for_join);
let language_name = language
.map(|n| n.name().0.to_lowercase())
.map(|n| n.name().as_ref().to_lowercase())
.unwrap_or_default();
let markdown = if function_options_count >= 2 {

View file

@ -2579,7 +2579,7 @@ impl Project {
language_name: LanguageName,
) -> Option<SharedString> {
languages
.language_for_name(&language_name.0)
.language_for_name(language_name.as_ref())
.await
.ok()?
.toolchain_lister()

View file

@ -10,7 +10,7 @@ use std::{
use anyhow::{Context as _, Result};
use collections::{HashMap, HashSet, VecDeque};
use gpui::{App, AppContext as _, Entity, Task};
use gpui::{App, AppContext as _, Entity, SharedString, Task};
use itertools::Itertools;
use language::{ContextProvider, File, Language, LanguageToolchainStore, Location};
use settings::{parse_json_with_comments, SettingsLocation};
@ -53,7 +53,7 @@ pub enum TaskSourceKind {
abs_path: PathBuf,
},
/// Languages-specific tasks coming from extensions.
Language { name: Arc<str> },
Language { name: SharedString },
}
impl TaskSourceKind {
@ -91,7 +91,7 @@ impl Inventory {
cx: &App,
) -> Vec<(TaskSourceKind, TaskTemplate)> {
let task_source_kind = language.as_ref().map(|language| TaskSourceKind::Language {
name: language.name().0,
name: language.name().into(),
});
let global_tasks = self.global_templates_from_settings();
let language_tasks = language
@ -124,7 +124,7 @@ impl Inventory {
.as_ref()
.and_then(|location| location.buffer.read(cx).language_at(location.range.start));
let task_source_kind = language.as_ref().map(|language| TaskSourceKind::Language {
name: language.name().0,
name: language.name().into(),
});
let file = location
.as_ref()

View file

@ -316,7 +316,10 @@ impl LocalToolchainStore {
cx.background_executor()
.spawn(async move {
let language = registry.language_for_name(&language_name.0).await.ok()?;
let language = registry
.language_for_name(language_name.as_ref())
.await
.ok()?;
let toolchains = language.toolchain_lister()?;
Some(toolchains.list(root.to_path_buf(), project_env).await)
})