From b84948711c731b5a4d219914df22b8cd567b7b49 Mon Sep 17 00:00:00 2001 From: Isaac Clayton Date: Fri, 3 Jun 2022 15:03:30 +0200 Subject: [PATCH] Start moving code from Zed to plugin --- crates/zed/src/languages/language_plugin.rs | 18 +++++++++++------- plugins/json_language/src/lib.rs | 9 +++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/crates/zed/src/languages/language_plugin.rs b/crates/zed/src/languages/language_plugin.rs index c5e521dcb7..0a9cb5592b 100644 --- a/crates/zed/src/languages/language_plugin.rs +++ b/crates/zed/src/languages/language_plugin.rs @@ -10,7 +10,13 @@ use smol::fs; use std::{any::Any, path::PathBuf, sync::Arc}; use util::{ResultExt, TryFutureExt}; -pub fn new_json() {} +pub fn new_json() -> LanguagePluginLspAdapter { + let plugin = WasmPlugin { + source_bytes: include_bytes!("../../../../plugins/bin/json_language.wasm").to_vec(), + store_data: (), + }; + LanguagePluginLspAdapter::new(plugin) +} pub struct LanguagePluginLspAdapter { runtime: Mutex>, @@ -47,14 +53,12 @@ impl LspAdapter for LanguagePluginLspAdapter { self.runtime.lock().call("fetch_latest_server_version", ()); async move { - if let Ok((language_version, server_version)) = versions { - Ok(Box::new(Versions { + versions.map(|(language_version, server_version)| { + Box::new(Versions { language_version, server_version, - }) as Box<_>) - } else { - panic!() - } + }) as Box<_> + }) } .boxed() } diff --git a/plugins/json_language/src/lib.rs b/plugins/json_language/src/lib.rs index 22b55633cf..f8796907be 100644 --- a/plugins/json_language/src/lib.rs +++ b/plugins/json_language/src/lib.rs @@ -1,6 +1,11 @@ use plugin::prelude::*; #[bind] -pub fn add(a: (f64, f64)) -> f64 { - a.0 + a.1 +pub fn name(_: ()) -> &'static str { + "vscode-json-languageserver" +} + +#[bind] +pub fn server_args(_: ()) -> Vec { + vec!["--stdio".into()] }