DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/RPC/CocoonService/GenericNotification/
LanguageProviders.rs1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3use CommonLibrary::LanguageFeature::DTO::ProviderType::ProviderType;
8use serde_json::Value;
9
10use crate::RPC::CocoonService::CocoonServiceImpl;
11
12pub fn HandleRegisterProvider(Params:Value, Service:&CocoonServiceImpl, ProvType:ProviderType) {
13 let Handle = Params.get("handle").and_then(|V| V.as_u64()).unwrap_or(0) as u32;
14 let Selector = Params.get("language_selector").and_then(|V| V.as_str()).unwrap_or("*");
15 let ExtId = Params.get("extension_id").and_then(|V| V.as_str()).unwrap_or("");
16 Service.RegisterProvider(Handle, ProvType, Selector, ExtId);
17}
18
19pub fn DispatchRegisterProvider(Method:&str, Params:Value, Service:&CocoonServiceImpl) -> bool {
22 let ProvType = match Method {
23 "register_hover_provider" => ProviderType::Hover,
24 "register_completion_item_provider" => ProviderType::Completion,
25 "register_definition_provider" => ProviderType::Definition,
26 "register_reference_provider" => ProviderType::References,
27 "register_code_actions_provider" => ProviderType::CodeAction,
28 "register_document_highlight_provider" => ProviderType::DocumentHighlight,
29 "register_document_symbol_provider" => ProviderType::DocumentSymbol,
30 "register_workspace_symbol_provider" => ProviderType::WorkspaceSymbol,
31 "register_rename_provider" => ProviderType::Rename,
32 "register_document_formatting_provider" => ProviderType::DocumentFormatting,
33 "register_document_range_formatting_provider" => ProviderType::DocumentRangeFormatting,
34 "register_on_type_formatting_provider" => ProviderType::OnTypeFormatting,
35 "register_signature_help_provider" => ProviderType::SignatureHelp,
36 "register_code_lens_provider" => ProviderType::CodeLens,
37 "register_folding_range_provider" => ProviderType::FoldingRange,
38 "register_selection_range_provider" => ProviderType::SelectionRange,
39 "register_semantic_tokens_provider" => ProviderType::SemanticTokens,
40 "register_inlay_hints_provider" => ProviderType::InlayHint,
41 "register_type_hierarchy_provider" => ProviderType::TypeHierarchy,
42 "register_call_hierarchy_provider" => ProviderType::CallHierarchy,
43 "register_linked_editing_range_provider" => ProviderType::LinkedEditingRange,
44 "register_document_link_provider" => ProviderType::DocumentLink,
45 "register_color_provider" => ProviderType::Color,
46 "register_implementation_provider" => ProviderType::Implementation,
47 "register_type_definition_provider" => ProviderType::TypeDefinition,
48 "register_declaration_provider" => ProviderType::Declaration,
49 "register_evaluatable_expression_provider" => ProviderType::EvaluatableExpression,
50 "register_inline_values_provider" => ProviderType::InlineValues,
51 _ => return false,
52 };
53 HandleRegisterProvider(Params, Service, ProvType);
54 true
55}