]> git.lizzy.rs Git - rust.git/blobdiff - crates/rust-analyzer/src/lsp_ext.rs
Replaced fold with for loop
[rust.git] / crates / rust-analyzer / src / lsp_ext.rs
index 34b53a7a808d480fcde32ca8c9afabf9b2dc75c6..ea98d099352964967f4319c40a0d154d337b06b2 100644 (file)
@@ -31,6 +31,14 @@ impl Request for MemoryUsage {
     const METHOD: &'static str = "rust-analyzer/memoryUsage";
 }
 
+pub enum ShuffleCrateGraph {}
+
+impl Request for ShuffleCrateGraph {
+    type Params = ();
+    type Result = ();
+    const METHOD: &'static str = "rust-analyzer/shuffleCrateGraph";
+}
+
 pub enum ReloadWorkspace {}
 
 impl Request for ReloadWorkspace {
@@ -62,14 +70,35 @@ impl Request for ViewHir {
     const METHOD: &'static str = "rust-analyzer/viewHir";
 }
 
+#[derive(Deserialize, Serialize, Debug)]
+#[serde(rename_all = "camelCase")]
+pub struct ViewCrateGraphParams {
+    /// Include *all* crates, not just crates in the workspace.
+    pub full: bool,
+}
+
 pub enum ViewCrateGraph {}
 
 impl Request for ViewCrateGraph {
-    type Params = ();
+    type Params = ViewCrateGraphParams;
     type Result = String;
     const METHOD: &'static str = "rust-analyzer/viewCrateGraph";
 }
 
+#[derive(Deserialize, Serialize, Debug)]
+#[serde(rename_all = "camelCase")]
+pub struct ViewItemTreeParams {
+    pub text_document: TextDocumentIdentifier,
+}
+
+pub enum ViewItemTree {}
+
+impl Request for ViewItemTree {
+    type Params = ViewItemTreeParams;
+    type Result = String;
+    const METHOD: &'static str = "rust-analyzer/viewItemTree";
+}
+
 pub enum ExpandMacro {}
 
 impl Request for ExpandMacro {
@@ -355,11 +384,28 @@ pub struct SnippetTextEdit {
 pub enum HoverRequest {}
 
 impl Request for HoverRequest {
-    type Params = lsp_types::HoverParams;
+    type Params = HoverParams;
     type Result = Option<Hover>;
     const METHOD: &'static str = "textDocument/hover";
 }
 
+#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
+#[serde(rename_all = "camelCase")]
+pub struct HoverParams {
+    pub text_document: TextDocumentIdentifier,
+    pub position: PositionOrRange,
+
+    #[serde(flatten)]
+    pub work_done_progress_params: WorkDoneProgressParams,
+}
+
+#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
+#[serde(untagged)]
+pub enum PositionOrRange {
+    Position(lsp_types::Position),
+    Range(lsp_types::Range),
+}
+
 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
 pub struct Hover {
     #[serde(flatten)]
@@ -450,6 +496,7 @@ impl Request for WorkspaceSymbol {
 }
 
 #[derive(Debug, Eq, PartialEq, Clone, Default, Deserialize, Serialize)]
+#[serde(rename_all = "camelCase")]
 pub struct WorkspaceSymbolParams {
     #[serde(flatten)]
     pub partial_result_params: PartialResultParams,
@@ -478,3 +525,20 @@ pub enum WorkspaceSymbolSearchKind {
     OnlyTypes,
     AllSymbols,
 }
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct CompletionResolveData {
+    pub position: lsp_types::TextDocumentPositionParams,
+    pub imports: Vec<CompletionImport>,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct CompletionImport {
+    pub full_import_path: String,
+    pub imported_name: String,
+}
+
+#[derive(Debug, Deserialize, Default)]
+pub struct ClientCommandOptions {
+    pub commands: Vec<String>,
+}