organize modules

This commit is contained in:
kbwo 2024-07-06 11:20:41 +09:00
parent b86e08e588
commit f9c054ebd3
4 changed files with 8 additions and 56 deletions

View file

@ -1,46 +0,0 @@
use std::collections::HashMap;
use std::str::FromStr;
use strum::{AsRefStr, Display};
use once_cell::sync::Lazy;
type Extension<'a> = &'a str;
#[derive(Display, AsRefStr, Eq, PartialEq, Hash)]
pub enum AvailableFileType {
#[strum(serialize = "rust")]
Rust,
#[strum(serialize = "javascript")]
Javascript,
#[strum(serialize = "javascriptreact")]
JavascriptReact,
#[strum(serialize = "typescript")]
Typescript,
#[strum(serialize = "typescriptreact")]
TypescriptReact,
}
impl FromStr for AvailableFileType {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"rust" => Ok(AvailableFileType::Rust),
"javascript" => Ok(AvailableFileType::Javascript),
"javascriptreact" => Ok(AvailableFileType::JavascriptReact),
"typescript" => Ok(AvailableFileType::Typescript),
"typescriptreact" => Ok(AvailableFileType::TypescriptReact),
_ => Err(format!("Unknown file type: {}", s)),
}
}
}
pub static LANGUAGE_ID_MAP: Lazy<HashMap<AvailableFileType, Vec<Extension>>> = Lazy::new(|| {
let mut map = HashMap::new();
map.insert(AvailableFileType::Rust, vec!["rs"]);
map.insert(AvailableFileType::Javascript, vec!["js", "jsx"]);
map.insert(AvailableFileType::JavascriptReact, vec!["js", "jsx"]);
map.insert(AvailableFileType::Typescript, vec!["ts", "tsx"]);
map.insert(AvailableFileType::TypescriptReact, vec!["ts", "tsx"]);
map
});

View file

@ -1,6 +1,3 @@
pub mod error;
pub mod language;
pub mod log;
pub mod server;
pub mod spec;
pub mod util;

View file

@ -1,5 +1,11 @@
use testing_language_server::log::Log;
use testing_language_server::server::TestingLS;
mod error;
mod log;
mod server;
mod spec;
mod util;
use crate::log::Log;
use crate::server::TestingLS;
fn main() {
let mut server = TestingLS::new();

View file

@ -3,11 +3,6 @@ use serde::Serialize;
use std::io::stdout;
use std::io::Write;
/// Returns the extension which includes `.` from the url string
pub fn extension_from_url_str(url_str: &str) -> Option<String> {
Some(String::from(".") + url_str.split('.').last().unwrap())
}
pub fn send_stdout<T>(message: &T) -> Result<(), LSError>
where
T: ?Sized + Serialize + std::fmt::Debug,