Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "zed_php"
version = "0.5.0"
edition = "2021"
edition = "2024"
publish = false
license = "Apache-2.0"

Expand Down
50 changes: 25 additions & 25 deletions src/language_servers/intelephense.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::{env, fs};

use zed::{CodeLabel, CodeLabelSpan};
use zed_extension_api::settings::LspSettings;
use zed_extension_api::{self as zed, serde_json, LanguageServerId, Result};
use zed_extension_api::{self as zed, LanguageServerId, Result, serde_json};

const SERVER_PATH: &str = "node_modules/intelephense/lib/intelephense.js";
const PACKAGE_NAME: &str = "intelephense";
Expand Down Expand Up @@ -98,7 +98,7 @@ impl Intelephense {
) -> Result<Option<serde_json::Value>> {
let settings = LspSettings::for_worktree("intelephense", worktree)
.ok()
.and_then(|lsp_settings| lsp_settings.settings.clone())
.and_then(|lsp_settings| lsp_settings.settings)
.unwrap_or_default();

Ok(Some(serde_json::json!({
Expand All @@ -112,17 +112,17 @@ impl Intelephense {
match completion.kind? {
zed::lsp::CompletionKind::Method => {
// __construct method doesn't have a detail
if let Some(ref detail) = completion.detail {
if detail.is_empty() {
return Some(CodeLabel {
spans: vec![
CodeLabelSpan::literal(label, Some("function.method".to_string())),
CodeLabelSpan::literal("()", None),
],
filter_range: (0..label.len()).into(),
code: completion.label,
});
}
if let Some(ref detail) = completion.detail
&& detail.is_empty()
{
return Some(CodeLabel {
spans: vec![
CodeLabelSpan::literal(label, Some("function.method".to_string())),
CodeLabelSpan::literal("()", None),
],
filter_range: (0..label.len()).into(),
code: completion.label,
});
}

let mut parts = completion.detail.as_ref()?.split(":");
Expand All @@ -146,18 +146,18 @@ impl Intelephense {
})
}
zed::lsp::CompletionKind::Constant | zed::lsp::CompletionKind::EnumMember => {
if let Some(ref detail) = completion.detail {
if !detail.is_empty() {
return Some(CodeLabel {
spans: vec![
CodeLabelSpan::literal(label, Some("constant".to_string())),
CodeLabelSpan::literal(" ", None),
CodeLabelSpan::literal(detail, Some("comment".to_string())),
],
filter_range: (0..label.len()).into(),
code: completion.label,
});
}
if let Some(ref detail) = completion.detail
&& !detail.is_empty()
{
return Some(CodeLabel {
spans: vec![
CodeLabelSpan::literal(label, Some("constant".to_string())),
CodeLabelSpan::literal(" ", None),
CodeLabelSpan::literal(detail, Some("comment".to_string())),
],
filter_range: (0..label.len()).into(),
code: completion.label,
});
}

Some(CodeLabel {
Expand Down
8 changes: 4 additions & 4 deletions src/language_servers/phpactor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ impl Phpactor {
return Ok(path);
}

if let Some(path) = &self.cached_binary_path {
if fs::metadata(path).is_ok_and(|stat| stat.is_file()) {
return Ok(path.clone());
}
if let Some(path) = &self.cached_binary_path
&& fs::metadata(path).is_ok_and(|stat| stat.is_file())
{
return Ok(path.clone());
}

zed::set_language_server_installation_status(
Expand Down
21 changes: 10 additions & 11 deletions src/language_servers/phpantom.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,13 @@ impl Phpantom {
if let Some(binary) = LspSettings::for_worktree("phpantom", worktree)
.ok()
.and_then(|settings| settings.binary)
&& let Some(path) = binary.path
{
if let Some(path) = binary.path {
return Ok(zed::Command {
command: path,
args: binary.arguments.unwrap_or_default(),
env: Default::default(),
});
}
return Ok(zed::Command {
command: path,
args: binary.arguments.unwrap_or_default(),
env: Default::default(),
});
}

Ok(zed::Command {
Expand All @@ -55,10 +54,10 @@ impl Phpantom {
return Ok(path);
}

if let Some(path) = &self.cached_binary_path {
if fs::metadata(path).is_ok_and(|stat| stat.is_file()) {
return Ok(path.clone());
}
if let Some(path) = &self.cached_binary_path
&& fs::metadata(path).is_ok_and(|stat| stat.is_file())
{
return Ok(path.clone());
}

zed::set_language_server_installation_status(
Expand Down
4 changes: 2 additions & 2 deletions src/language_servers/phptools.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::fs;
use zed::{Architecture, Os};
use zed_extension_api::settings::LspSettings;
use zed_extension_api::{self as zed, serde_json, LanguageServerId, Result};
use zed_extension_api::{self as zed, LanguageServerId, Result, serde_json};

const PACKAGE_NAME: &str = "devsense-php-ls";

Expand Down Expand Up @@ -118,7 +118,7 @@ impl PhpTools {
) -> Result<Option<serde_json::Value>> {
let settings = LspSettings::for_worktree("phptools", worktree)
.ok()
.and_then(|lsp_settings| lsp_settings.settings.clone())
.and_then(|lsp_settings| lsp_settings.settings)
.unwrap_or_default();

Ok(Some(serde_json::json!({
Expand Down
26 changes: 14 additions & 12 deletions src/php.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ mod xdebug;
use std::fs;
use zed::CodeLabel;
use zed_extension_api::{
self as zed, serde_json, DebugConfig, DebugScenario, LanguageServerId, Result,
StartDebuggingRequestArgumentsRequest,
self as zed, DebugConfig, DebugScenario, LanguageServerId, Result,
StartDebuggingRequestArgumentsRequest, serde_json,
};

use crate::{
Expand Down Expand Up @@ -100,15 +100,15 @@ impl zed::Extension for PhpExtension {
language_server_id: &LanguageServerId,
worktree: &zed::Worktree,
) -> Result<Option<serde_json::Value>> {
if language_server_id.as_ref() == PhpTools::LANGUAGE_SERVER_ID {
if let Some(phptools) = self.phptools.as_mut() {
return phptools.language_server_workspace_configuration(worktree);
}
if language_server_id.as_ref() == PhpTools::LANGUAGE_SERVER_ID
&& let Some(phptools) = self.phptools.as_mut()
{
return phptools.language_server_workspace_configuration(worktree);
}
if language_server_id.as_ref() == Intelephense::LANGUAGE_SERVER_ID {
if let Some(intelephense) = self.intelephense.as_mut() {
return intelephense.language_server_workspace_configuration(worktree);
}
if language_server_id.as_ref() == Intelephense::LANGUAGE_SERVER_ID
&& let Some(intelephense) = self.intelephense.as_mut()
{
return intelephense.language_server_workspace_configuration(worktree);
}

Ok(None)
Expand Down Expand Up @@ -143,7 +143,8 @@ impl zed::Extension for PhpExtension {
if config.adapter != XDebug::NAME {
return Err(format!(
"PHP extension does not support unknown adapter in `dap_config_to_scenario`: {} (supported: [{}])",
config.adapter, XDebug::NAME
config.adapter,
XDebug::NAME
));
}
self.xdebug.dap_config_to_scenario(config)
Expand All @@ -158,7 +159,8 @@ impl zed::Extension for PhpExtension {
if config.adapter != XDebug::NAME {
return Err(format!(
"PHP extension does not support unknown adapter in `get_dap_binary`: {} (supported: [{}])",
adapter_name, XDebug::NAME
adapter_name,
XDebug::NAME
));
}
self.xdebug
Expand Down
6 changes: 3 additions & 3 deletions src/xdebug.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use std::{env, path::Path, str::FromStr, sync::OnceLock};

use zed_extension_api::{
download_file, latest_github_release, node_binary_path, resolve_tcp_template,
serde_json::{self, json, Value},
DebugAdapterBinary, DebugConfig, DebugRequest, DebugScenario, DownloadedFileType,
GithubReleaseAsset, GithubReleaseOptions, StartDebuggingRequestArguments,
StartDebuggingRequestArgumentsRequest, TcpArguments, TcpArgumentsTemplate,
StartDebuggingRequestArgumentsRequest, TcpArguments, TcpArgumentsTemplate, download_file,
latest_github_release, node_binary_path, resolve_tcp_template,
serde_json::{self, Value, json},
};

pub(super) struct XDebug {
Expand Down