fn get_parser()

in crates/llm-ls/src/document.rs [8:127]


fn get_parser(language_id: LanguageId) -> Result<Parser> {
    match language_id {
        LanguageId::Bash => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_bash::language())?;
            Ok(parser)
        }
        LanguageId::C => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_c::language())?;
            Ok(parser)
        }
        LanguageId::Cpp => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_cpp::language())?;
            Ok(parser)
        }
        LanguageId::CSharp => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_c_sharp::language())?;
            Ok(parser)
        }
        LanguageId::Elixir => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_elixir::language())?;
            Ok(parser)
        }
        LanguageId::Erlang => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_erlang::language())?;
            Ok(parser)
        }
        LanguageId::Go => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_go::language())?;
            Ok(parser)
        }
        LanguageId::Html => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_html::language())?;
            Ok(parser)
        }
        LanguageId::Java => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_java::language())?;
            Ok(parser)
        }
        LanguageId::JavaScript | LanguageId::JavaScriptReact => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_javascript::language())?;
            Ok(parser)
        }
        LanguageId::Json => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_json::language())?;
            Ok(parser)
        }
        LanguageId::Kotlin => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_kotlin::language())?;
            Ok(parser)
        }
        LanguageId::Lua => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_lua::language())?;
            Ok(parser)
        }
        LanguageId::Markdown => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_md::language())?;
            Ok(parser)
        }
        LanguageId::ObjectiveC => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_objc::language())?;
            Ok(parser)
        }
        LanguageId::Python => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_python::language())?;
            Ok(parser)
        }
        LanguageId::R => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_r::language())?;
            Ok(parser)
        }
        LanguageId::Ruby => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_ruby::language())?;
            Ok(parser)
        }
        LanguageId::Rust => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_rust::language())?;
            Ok(parser)
        }
        LanguageId::Scala => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_scala::language())?;
            Ok(parser)
        }
        LanguageId::Swift => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_swift::language())?;
            Ok(parser)
        }
        LanguageId::TypeScript => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_typescript::language_typescript())?;
            Ok(parser)
        }
        LanguageId::TypeScriptReact => {
            let mut parser = Parser::new();
            parser.set_language(tree_sitter_typescript::language_tsx())?;
            Ok(parser)
        }
        LanguageId::Unknown => Ok(Parser::new()),
    }
}