Set language id for PHP. LSP works!

This commit is contained in:
Piotr Osiewicz 2023-07-17 12:36:08 +02:00
parent 965cc2efbc
commit 94796e943b

View file

@ -2,6 +2,7 @@ use anyhow::{anyhow, Result};
use async_compression::futures::bufread::GzipDecoder; use async_compression::futures::bufread::GzipDecoder;
use async_tar::Archive; use async_tar::Archive;
use async_trait::async_trait; use async_trait::async_trait;
use collections::HashMap;
use futures::{future::BoxFuture, FutureExt}; use futures::{future::BoxFuture, FutureExt};
use gpui::AppContext; use gpui::AppContext;
use language::{LanguageServerName, LspAdapter, LspAdapterDelegate}; use language::{LanguageServerName, LspAdapter, LspAdapterDelegate};
@ -50,7 +51,6 @@ impl LspAdapter for IntelephenseLspAdapter {
// At the time of writing the latest vscode-eslint release was released in 2020 and requires // At the time of writing the latest vscode-eslint release was released in 2020 and requires
// special custom LSP protocol extensions be handled to fully initialize. Download the latest // special custom LSP protocol extensions be handled to fully initialize. Download the latest
// prerelease instead to sidestep this issue // prerelease instead to sidestep this issue
dbg!("Strarting fetching server binary version");
Ok(Box::new(IntelephenseVersion( Ok(Box::new(IntelephenseVersion(
self.node.npm_package_latest_version("intelephense").await?, self.node.npm_package_latest_version("intelephense").await?,
)) as Box<_>) )) as Box<_>)
@ -62,7 +62,6 @@ impl LspAdapter for IntelephenseLspAdapter {
container_dir: PathBuf, container_dir: PathBuf,
_delegate: &dyn LspAdapterDelegate, _delegate: &dyn LspAdapterDelegate,
) -> Result<LanguageServerBinary> { ) -> Result<LanguageServerBinary> {
dbg!("Strarting fetching server binary");
let version = version.downcast::<IntelephenseVersion>().unwrap(); let version = version.downcast::<IntelephenseVersion>().unwrap();
let server_path = container_dir.join(Self::SERVER_PATH); let server_path = container_dir.join(Self::SERVER_PATH);
@ -71,9 +70,8 @@ impl LspAdapter for IntelephenseLspAdapter {
.npm_install_packages(&container_dir, [("intelephense", version.0.as_str())]) .npm_install_packages(&container_dir, [("intelephense", version.0.as_str())])
.await?; .await?;
} }
dbg!("Fetched server binary");
Ok(LanguageServerBinary { Ok(LanguageServerBinary {
path: dbg!(self.node.binary_path().await)?, path: self.node.binary_path().await?,
arguments: intelephense_server_binary_arguments(&server_path), arguments: intelephense_server_binary_arguments(&server_path),
}) })
} }
@ -83,7 +81,6 @@ impl LspAdapter for IntelephenseLspAdapter {
container_dir: PathBuf, container_dir: PathBuf,
_: &dyn LspAdapterDelegate, _: &dyn LspAdapterDelegate,
) -> Option<LanguageServerBinary> { ) -> Option<LanguageServerBinary> {
dbg!("cached_server_binary");
get_cached_server_binary(container_dir, &self.node).await get_cached_server_binary(container_dir, &self.node).await
} }
@ -91,7 +88,6 @@ impl LspAdapter for IntelephenseLspAdapter {
&self, &self,
container_dir: PathBuf, container_dir: PathBuf,
) -> Option<LanguageServerBinary> { ) -> Option<LanguageServerBinary> {
dbg!("installation_test_binary");
get_cached_server_binary(container_dir, &self.node).await get_cached_server_binary(container_dir, &self.node).await
} }
@ -100,14 +96,15 @@ impl LspAdapter for IntelephenseLspAdapter {
_item: &lsp::CompletionItem, _item: &lsp::CompletionItem,
_language: &Arc<language::Language>, _language: &Arc<language::Language>,
) -> Option<language::CodeLabel> { ) -> Option<language::CodeLabel> {
dbg!(_item.kind);
None None
} }
async fn initialization_options(&self) -> Option<serde_json::Value> { async fn initialization_options(&self) -> Option<serde_json::Value> {
dbg!("init_options");
None None
} }
async fn language_ids(&self) -> HashMap<String, String> {
HashMap::from_iter([("PHP".into(), "php".into())])
}
} }
async fn get_cached_server_binary( async fn get_cached_server_binary(