Skip to main content

Mountain/RPC/CocoonService/GenericNotification/LanguageProviders/
Dispatch.rs

1#![allow(unused_variables, dead_code, unused_imports)]
2
3//! Dispatch a `register_*_provider` method string to the correct ProviderType.
4//! Returns `true` if recognised.
5
6use CommonLibrary::LanguageFeature::DTO::ProviderType::ProviderType;
7use serde_json::Value;
8
9use crate::RPC::CocoonService::CocoonServiceImpl;
10
11pub fn Fn(Method:&str, Params:Value, Service:&CocoonServiceImpl) -> bool {
12	let ProvType = match Method {
13		"register_hover_provider" => ProviderType::Hover,
14		"register_completion_item_provider" => ProviderType::Completion,
15		"register_definition_provider" => ProviderType::Definition,
16		"register_reference_provider" => ProviderType::References,
17		"register_code_actions_provider" => ProviderType::CodeAction,
18		"register_document_highlight_provider" => ProviderType::DocumentHighlight,
19		"register_document_symbol_provider" => ProviderType::DocumentSymbol,
20		"register_workspace_symbol_provider" => ProviderType::WorkspaceSymbol,
21		"register_rename_provider" => ProviderType::Rename,
22		"register_document_formatting_provider" => ProviderType::DocumentFormatting,
23		"register_document_range_formatting_provider" => ProviderType::DocumentRangeFormatting,
24		"register_on_type_formatting_provider" => ProviderType::OnTypeFormatting,
25		"register_signature_help_provider" => ProviderType::SignatureHelp,
26		"register_code_lens_provider" => ProviderType::CodeLens,
27		"register_folding_range_provider" => ProviderType::FoldingRange,
28		"register_selection_range_provider" => ProviderType::SelectionRange,
29		"register_semantic_tokens_provider" => ProviderType::SemanticTokens,
30		"register_inlay_hints_provider" => ProviderType::InlayHint,
31		"register_type_hierarchy_provider" => ProviderType::TypeHierarchy,
32		"register_call_hierarchy_provider" => ProviderType::CallHierarchy,
33		"register_linked_editing_range_provider" => ProviderType::LinkedEditingRange,
34		"register_document_link_provider" => ProviderType::DocumentLink,
35		"register_color_provider" => ProviderType::Color,
36		"register_implementation_provider" => ProviderType::Implementation,
37		"register_type_definition_provider" => ProviderType::TypeDefinition,
38		"register_declaration_provider" => ProviderType::Declaration,
39		"register_evaluatable_expression_provider" => ProviderType::EvaluatableExpression,
40		"register_inline_values_provider" => ProviderType::InlineValues,
41		"register_inline_completion_item_provider" => ProviderType::InlineCompletion,
42		_ => return false,
43	};
44
45	super::Register::Fn(Params, Service, ProvType);
46
47	true
48}