unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications
@ 2023-10-21 19:10 Yuan Fu
  2023-10-21 21:01 ` João Távora
  2023-10-22  4:50 ` Eli Zaretskii
  0 siblings, 2 replies; 5+ messages in thread
From: Yuan Fu @ 2023-10-21 19:10 UTC (permalink / raw)
  To: 66669; +Cc: joaotavora

[-- Attachment #1: Type: text/plain, Size: 1097 bytes --]

X-Debbugs-CC: joaotavora@gmail.com

I use rust’s language server (rust-analyzer) with eglot. And whenever I turn eglot on for a project, Emacs freezes for a good 30 seconds, busy updating the eglot progress indicator, before I can do anything. I think the reason is that the rust language server sends a ton of progress notifications, which completely blocks Emacs before it’s done.

Setting eglot-report-progress to nil doesn’t help me, presumably because eglot still needs to process the notifications.

I wonder if we can only take a sample of the progress notifications, and ignore the majority, so that Emacs is free to respond to user input?

In the same vain, I wonder if we can instruct Emacs to filter out some messages from the server at process filter level and never call into lisp for these messages, such that some particularly noisy servers (eg, typescript-language-server) won’t slow down Emacs a perceivable amount?

I attached the events log during the start up of eglot in my rust project. As you can see, it sends a dozen notifications per second.

Yuan


[-- Attachment #2: indexing-events.log --]
[-- Type: application/octet-stream, Size: 190065 bytes --]

[internal] Sat Oct 21 11:49:15 2023:
(:message "Running language server: rust-analyzer")
[client-request] (id:1) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
          (:processId 58316 :clientInfo (:name "Eglot") :rootPath
                      "/Users/yuan/p/collab-mode/" :rootUri
                      "file:///Users/yuan/p/collab-mode"
                      :initializationOptions
                      (:rust-analyzer
                       (:procMacro (:attributes (:enable t) :enable t)
                                   :cargo (:buildScripts (:enable t))
                                   :diagnostics
                                   (:disabled
                                    ["unresolved-proc-macro"
                                     "unresolved-macro-call"])))
                      :capabilities
                      (:workspace
                       (:applyEdit t :executeCommand
                                   (:dynamicRegistration :json-false)
                                   :workspaceEdit (:documentChanges t)
                                   :didChangeWatchedFiles
                                   (:dynamicRegistration t) :symbol
                                   (:dynamicRegistration :json-false)
                                   :configuration t :workspaceFolders
                                   t)
                       :textDocument
                       (:synchronization
                        (:dynamicRegistration :json-false :willSave t
                                              :willSaveWaitUntil t
                                              :didSave t)
                        :completion
                        (:dynamicRegistration :json-false
                                              :completionItem
                                              (:snippetSupport t
                                                               :deprecatedSupport
                                                               t
                                                               :resolveSupport
                                                               (:properties
                                                                ["documentation"
                                                                 "details"
                                                                 "additionalTextEdits"])
                                                               :tagSupport
                                                               (:valueSet
                                                                [1]))
                                              :contextSupport t)
                        :hover
                        (:dynamicRegistration :json-false
                                              :contentFormat
                                              ["markdown" "plaintext"])
                        :signatureHelp
                        (:dynamicRegistration :json-false
                                              :signatureInformation
                                              (:parameterInformation
                                               (:labelOffsetSupport t)
                                               :documentationFormat
                                               ["markdown" "plaintext"]
                                               :activeParameterSupport
                                               t))
                        :references (:dynamicRegistration :json-false)
                        :definition
                        (:dynamicRegistration :json-false :linkSupport
                                              t)
                        :declaration
                        (:dynamicRegistration :json-false :linkSupport
                                              t)
                        :implementation
                        (:dynamicRegistration :json-false :linkSupport
                                              t)
                        :typeDefinition
                        (:dynamicRegistration :json-false :linkSupport
                                              t)
                        :documentSymbol
                        (:dynamicRegistration :json-false
                                              :hierarchicalDocumentSymbolSupport
                                              t :symbolKind
                                              (:valueSet
                                               [1 2 3 4 5 6 7 8 9 10
                                                  11 12 13 14 15 16 17
                                                  18 19 20 21 22 23 24
                                                  25 26]))
                        :documentHighlight
                        (:dynamicRegistration :json-false) :codeAction
                        (:dynamicRegistration :json-false
                                              :resolveSupport
                                              (:properties
                                               ["edit" "command"])
                                              :dataSupport t
                                              :codeActionLiteralSupport
                                              (:codeActionKind
                                               (:valueSet
                                                ["quickfix" "refactor"
                                                 "refactor.extract"
                                                 "refactor.inline"
                                                 "refactor.rewrite"
                                                 "source"
                                                 "source.organizeImports"]))
                                              :isPreferredSupport t)
                        :formatting (:dynamicRegistration :json-false)
                        :rangeFormatting
                        (:dynamicRegistration :json-false) :rename
                        (:dynamicRegistration :json-false) :inlayHint
                        (:dynamicRegistration :json-false)
                        :publishDiagnostics
                        (:relatedInformation :json-false
                                             :codeDescriptionSupport
                                             :json-false :tagSupport
                                             (:valueSet [1 2])))
                       :window
                       (:showDocument (:support t) :workDoneProgress t)
                       :general
                       (:positionEncodings ["utf-32" "utf-8" "utf-16"])
                       :experimental
                       #s(hash-table size 1 test eql rehash-size 1.5
                                     rehash-threshold 0.8125 data ()))
                      :workspaceFolders
                      [(:uri "file:///Users/yuan/p/collab-mode" :name
                             "~/p/collab-mode/")]))
[server-reply] (id:1) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 1 :result
          (:capabilities
           (:positionEncoding "utf-32" :textDocumentSync
                              (:openClose t :change 2 :save nil)
                              :selectionRangeProvider t :hoverProvider
                              t :completionProvider
                              (:resolveProvider t :triggerCharacters
                                                [":" "." "'" "("]
                                                :completionItem
                                                (:labelDetailsSupport
                                                 :json-false))
                              :signatureHelpProvider
                              (:triggerCharacters ["(" "," "<"])
                              :definitionProvider t
                              :typeDefinitionProvider t
                              :implementationProvider t
                              :referencesProvider t
                              :documentHighlightProvider t
                              :documentSymbolProvider t
                              :workspaceSymbolProvider t
                              :codeActionProvider
                              (:codeActionKinds
                               ["" "quickfix" "refactor"
                                "refactor.extract" "refactor.inline"
                                "refactor.rewrite"]
                               :resolveProvider t)
                              :codeLensProvider (:resolveProvider t)
                              :documentFormattingProvider t
                              :documentRangeFormattingProvider
                              :json-false
                              :documentOnTypeFormattingProvider
                              (:firstTriggerCharacter "="
                                                      :moreTriggerCharacter
                                                      ["." ">" "{"])
                              :renameProvider (:prepareProvider t)
                              :foldingRangeProvider t
                              :declarationProvider t :workspace
                              (:workspaceFolders
                               (:supported t :changeNotifications t)
                               :fileOperations
                               (:willRename
                                (:filters
                                 [(:scheme "file" :pattern
                                           (:glob "**/*.rs" :matches
                                                  "file"))
                                  (:scheme "file" :pattern
                                           (:glob "**" :matches
                                                  "folder"))])))
                              :callHierarchyProvider t
                              :semanticTokensProvider
                              (:legend
                               (:tokenTypes
                                ["comment" "decorator" "enumMember"
                                 "enum" "function" "interface"
                                 "keyword" "macro" "method"
                                 "namespace" "number" "operator"
                                 "parameter" "property" "string"
                                 "struct" "typeParameter" "variable"
                                 "angle" "arithmetic" "attribute"
                                 "attributeBracket" "bitwise"
                                 "boolean" "brace" "bracket"
                                 "builtinAttribute" "builtinType"
                                 "character" "colon" "comma"
                                 "comparison" "constParameter"
                                 "derive" "deriveHelper" "dot"
                                 "escapeSequence"
                                 "invalidEscapeSequence"
                                 "formatSpecifier" "generic" "label"
                                 "lifetime" "logical" "macroBang"
                                 "parenthesis" "punctuation"
                                 "selfKeyword" "selfTypeKeyword"
                                 "semicolon" "typeAlias" "toolModule"
                                 "union" "unresolvedReference"]
                                :tokenModifiers
                                ["documentation" "declaration"
                                 "static" "defaultLibrary" "async"
                                 "attribute" "callable" "constant"
                                 "consuming" "controlFlow" "crateRoot"
                                 "injected" "intraDocLink" "library"
                                 "macro" "mutable" "public"
                                 "reference" "trait" "unsafe"])
                               :range t :full (:delta t))
                              :inlayHintProvider (:resolveProvider t)
                              :experimental
                              (:externalDocs t :hoverRange t
                                             :joinLines t
                                             :matchingBrace t
                                             :moveItem t :onEnter t
                                             :openCargoToml t
                                             :parentModule t
                                             :runnables
                                             (:kinds ["cargo"]) :ssr t
                                             :workspaceSymbolScopeKindFiltering
                                             t))
           :serverInfo (:name "rust-analyzer" :version "0.0.0")))
[client-notification] Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :method "initialized" :params
          #s(hash-table size 1 test eql rehash-size 1.5
                        rehash-threshold 0.8125 data ()))
[client-notification] Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
          (:textDocument
           (:uri "file:///Users/yuan/p/collab-mode/src/op.rs" :version
                 0 :languageId "rust" :text
                 "//! This module defines OT operations and various types. [Op] is the\n//! one we actually use, [SimpleOp] was used for prototyping.\n\nuse serde::{Deserialize, Serialize};\nuse thiserror::Error;\n\n// *** Types\n\n/// Local sequence number, unique on the same site, starts from 1.\npub type LocalSeq = u32;\n/// Global sequence number, globally unique, starts from 1.\npub type GlobalSeq = u32;\n/// A DocId is a randomly generated integer. I'd really like to use\n/// u64, but JSON can't encode u64. u32 allows about 10k documents on\n/// a single server with reasonable collision. I intend collab-mode to\n/// be a small, personal tool, so 10k should be enough(TM).\npub type DocId = u32;\n/// SiteId is a monotonically increasing integer.\npub type SiteId = u32;\n/// Group sequence number. Consecutive ops with the same group seq\n/// number are undone together. Group seqs don't have to be\n/// continuous.\npub type GroupSeq = u32;\n\n#[derive(Debug, Eq, PartialEq, Clone, Copy, Deserialize, Serialize)]\npub enum OpKind {\n    /// Original op.\n    Original,\n    /// An undo op that undoes the ops this many counts before the\n    /// referrer op in history.\n    Undo(usize),\n}\n\n// *** Trait\n\npub trait Operation: std::fmt::Debug + Clone + PartialEq + Eq {\n    fn transform(&self, base: &Self, self_site: &SiteId, base_site: &SiteId) -> Self;\n    fn inverse(&mut self);\n}\n\n// *** Op and tranform functions\n\n/// An string-wise operation.\n#[derive(Clone, PartialEq, Eq, Serialize, Deserialize)]\npub enum Op {\n    /// Insertion.\n    //   pos  content\n    Ins((u64, String)),\n    /// Deletion.\n    //       pos  content   live/dead\n    Mark(Vec<(u64, String)>, bool),\n}\n\nfn pos_less_than(pos1: u64, pos2: u64, site1: &SiteId, site2: &SiteId) -> bool {\n    pos1 < pos2 || (pos1 == pos2 && site1 < site2)\n}\n\nfn transform_ii(\n    op: &(u64, String),\n    base: &(u64, String),\n    op_site: &SiteId,\n    base_site: &SiteId,\n) -> (u64, String) {\n    let pos1 = op.0;\n    let pos2 = base.0;\n    let content1 = &op.1;\n    let content2 = &base.1;\n\n    if pos_less_than(pos1, pos2, op_site, base_site) {\n        (pos1, content1.clone())\n    } else {\n        // If both pos and site are equal, the op is pushed forward\n        // (pos + 1), and base stays the same.\n        let new_pos = pos1 + content2.len() as u64;\n        (new_pos, content1.clone())\n    }\n}\n\nfn transform_di(\n    op: &(u64, String),\n    base: &(u64, String),\n    op_site: &SiteId,\n    base_site: &SiteId,\n) -> Vec<(u64, String)> {\n    let pos1 = op.0;\n    let pos2 = base.0;\n    let content1 = &op.1;\n    let content2 = &base.1;\n    let end1 = pos1 + content1.len() as u64;\n    let end2 = pos2 + content2.len() as u64;\n\n    if pos_less_than(end1, pos2, op_site, base_site) {\n        // op completely before base.\n        vec![(pos1, content1.clone())]\n    } else if pos_less_than(pos2, pos1, base_site, op_site) {\n        // op completely after base.\n        let new_pos = pos1 + content2.len() as u64;\n        vec![(new_pos, content1.clone())]\n    } else {\n        // base inside op.\n        let del_before_ins = (pos1, content1[..((pos2 - pos1) as usize)].to_string());\n        let del_after_ins = (end2, content1[((pos2 - pos1) as usize)..].to_string());\n        let mut res = vec![];\n        if del_before_ins.1.len() > 0 {\n            res.push(del_before_ins)\n        }\n        if del_after_ins.1.len() > 0 {\n            res.push(del_after_ins)\n        }\n        res\n    }\n}\nimpl Operation for Op {\n    /// Create the inverse of this op.\n    fn inverse(&mut self) {\n        match self {\n            Op::Ins((pos, str)) => *self = Op::Mark(vec![(*pos, str.clone())], false),\n            Op::Mark(ops, live) => *self = Op::Mark(ops.clone(), !(*live)),\n        }\n    }\n\n    fn transform(&self, base: &Op, self_site: &SiteId, base_site: &SiteId) -> Op {\n        match (self, base) {\n            (Op::Ins(op), Op::Ins(base)) => Op::Ins(transform_ii(op, base, self_site, base_site)),\n            (Op::Mark(ops, live), Op::Ins(base)) => {\n                let mut new_ops = vec![];\n                for op in ops.iter() {\n                    new_ops.extend(transform_di(op, base, self_site, base_site));\n                }\n                Op::Mark(new_ops, live.clone())\n            }\n            _ => self.clone(),\n        }\n    }\n}\n\nimpl std::fmt::Display for Op {\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        match self {\n            Op::Ins((pos, content)) => {\n                let mut content = content.to_string();\n                content = content.replace(\"\\t\", \"⭾\");\n                content = content.replace(\"\\n\", \"⮐\");\n                write!(f, \"ins({pos}, {content})\")\n            }\n            Op::Mark(ops, live) => {\n                let mut out = String::new();\n                for op in ops {\n                    if *live {\n                        out += format!(\"revive({}, {}) \", op.0, op.1).as_str();\n                    } else {\n                        out += format!(\"del({}, {}) \", op.0, op.1).as_str();\n                    }\n                }\n                write!(f, \"{}\", out)\n            }\n        }\n    }\n}\n\nimpl std::fmt::Debug for Op {\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        match self {\n            Op::Ins((pos, content)) => {\n                let content = content.to_string();\n                write!(f, \"ins({pos}, {:?})\", content)\n            }\n            Op::Mark(ops, live) => {\n                let mut out = String::new();\n                for op in ops {\n                    if *live {\n                        out += format!(\"revive({}, {}) \", op.0, op.1).as_str();\n                    } else {\n                        out += format!(\"del({}, {}) \", op.0, op.1).as_str();\n                    }\n                }\n                write!(f, \"{}\", out)\n            }\n        }\n    }\n}\n\n// *** FatOp\n\n/// Op with meta info.\n#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Error)]\npub struct FatOp<O> {\n    /// Global sequence number. If None, the op is a locally generated\n    /// op that hasn't been transmitted to the server yet. If not\n    /// None, it's a globally recognized op that has been\n    /// sequentialized by the server.\n    pub seq: Option<GlobalSeq>,\n    /// Document uuid.\n    pub doc: DocId,\n    /// The operation.\n    pub op: O,\n    /// Site uuid. The site that generated this op.\n    pub site: SiteId,\n    /// Site-local sequence number.\n    pub site_seq: LocalSeq,\n    /// The kind of this op.\n    pub kind: OpKind,\n    /// The group sequence.\n    pub group_seq: GroupSeq,\n}\n\nimpl<T> FatOp<T> {\n    /// Swap the op of this [FatOp] with `op`.\n    pub fn swap<P>(self, op: P) -> FatOp<P> {\n        FatOp {\n            seq: self.seq,\n            doc: self.doc,\n            op,\n            site: self.site,\n            site_seq: self.site_seq,\n            kind: self.kind,\n            group_seq: self.group_seq,\n        }\n    }\n}\n\nimpl<O: Operation> FatOp<O> {\n    /// Transform `self` against another op `base`. The two op must\n    /// have the same context.\n    pub fn transform(&mut self, base: &FatOp<O>) {\n        self.op = self.op.transform(&base.op, &self.site, &base.site);\n    }\n\n    /// Transform `self` against every op in `ops` sequentially.\n    pub fn batch_transform(&mut self, ops: &[FatOp<O>]) {\n        // let skip_map = find_ops_to_skip(ops);\n        let skip_map = vec![false; ops.len()];\n        self.batch_transform_1(ops, &skip_map[..])\n    }\n\n    /// Transform `self` against every op in `ops` sequentially.\n    /// `skip_map` is a bitmap that tells whether to skip an op in\n    /// `ops`. If skip_map[idx] is true, ops[idx] is considered as\n    /// identity.\n    fn batch_transform_1(&mut self, ops: &[FatOp<O>], skip_map: &[bool]) {\n        let mut idx = 0;\n        for op in ops {\n            if !skip_map[idx] {\n                self.transform(op);\n            }\n            idx += 0;\n        }\n    }\n\n    /// Transform `self` against every op in `ops` sequentially. In\n    /// the meantime, transform every op in `ops` against `self`, and\n    /// return the new `ops`.\n    pub fn symmetric_transform(&mut self, ops: &[FatOp<O>]) -> Vec<FatOp<O>> {\n        // let skip_map = find_ops_to_skip(ops);\n        let skip_map = vec![false; ops.len()];\n        self.symmetric_transform_1(ops, &skip_map[..])\n    }\n\n    /// Transform `self` against every op in `ops` sequentially. In\n    /// the meantime, transform every op in `ops` against `self`, and\n    /// return the new `ops`. `skip_map` is a bitmap that tells\n    /// whether to skip an op in `ops`. If skip_map[idx] is true,\n    /// ops[idx] is considered as identity. Regardless of skip_map,\n    /// every op in `ops` are transformed against `op`.\n    fn symmetric_transform_1(&mut self, ops: &[FatOp<O>], skip_map: &[bool]) -> Vec<FatOp<O>> {\n        let mut new_ops = vec![];\n        let mut idx = 0;\n        for op in ops {\n            let mut new_op = op.clone();\n            new_op.transform(self);\n            if !skip_map[idx] {\n                self.transform(op);\n            }\n            new_ops.push(new_op);\n            idx += 1;\n        }\n        new_ops\n    }\n\n    /// Inverse the op.\n    pub fn inverse(&mut self) {\n        self.op.inverse();\n    }\n}\n\n// *** Functions for Vec<FatOp>\n\n/// Iterate over `ops`, and finds out all the ops to skip during\n/// transformation. An op is skipped if there is an undo op that\n/// undoes it. Returns a bitmap, if bitmap[i] = true, skip ops[i]\n/// during transformation.\npub fn find_ops_to_skip<O>(ops: &[FatOp<O>]) -> Vec<bool> {\n    if ops.len() == 0 {\n        return vec![];\n    }\n    let mut bitmap = vec![false; ops.len()];\n    for idx in (0..ops.len()).rev() {\n        if let OpKind::Undo(delta) = ops[idx].kind {\n            if !bitmap[idx] && idx >= delta {\n                // It's possible for delta to be greater than idx, in\n                // that case the inverse is in `ops` but the original\n                // isn't, and we don't need to skip the inverse.\n                bitmap[idx] = true;\n                bitmap[idx - delta] = true;\n            }\n        }\n    }\n    bitmap\n}\n\n/// Transform ops1 against ops2, and transform ops2 against ops1. Return the transformed ops1 and ops2.\npub fn quatradic_transform<O: Operation>(\n    mut ops1: Vec<FatOp<O>>,\n    mut ops2: Vec<FatOp<O>>,\n) -> (Vec<FatOp<O>>, Vec<FatOp<O>>) {\n    // let skip1 = find_ops_to_skip(&ops1[..]);\n    // let skip2 = find_ops_to_skip(&ops2[..]);\n    let skip1 = vec![false; ops1.len()];\n    let skip2 = vec![false; ops2.len()];\n\n    let mut idx2 = 0;\n    for op2 in &mut ops2 {\n        if !skip2[idx2] {\n            // Every op in ops1 are transformed against op2, in the\n            // meantime, op2 are transformed against all non-identity\n            // ops in ops1.\n            ops1 = op2.symmetric_transform_1(&ops1[..], &skip1[..]);\n        } else {\n            // If op2 is identify, only transform op2 against ops1,\n            // but don't transform ops1 against op2.\n            op2.batch_transform_1(&ops1[..], &skip1[..]);\n        }\n        idx2 += 1;\n    }\n    (ops1, ops2)\n}\n\n// *** Tests\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    fn make_fatop<O: Operation>(op: O, site: SiteId) -> FatOp<O> {\n        FatOp {\n            seq: None,\n            site,\n            site_seq: 1, // Dummy value.\n            doc: 0,\n            op,\n            kind: OpKind::Original,\n            group_seq: 1, // Dummy value.\n        }\n    }\n\n    fn make_undo_fatop<O: Operation>(op: O, site: SiteId, undo_delta: usize) -> FatOp<O> {\n        FatOp {\n            seq: None,\n            site,\n            site_seq: 1, // Dummy value.\n            doc: 0,\n            op,\n            kind: OpKind::Undo(undo_delta),\n            group_seq: 1, // Dummy value.\n        }\n    }\n\n    fn test<O: Operation>(op: O, base: O, result: O) {\n        let mut op = make_fatop(op, 1);\n        let base = make_fatop(base, 2);\n        let result_op = make_fatop(result, 1);\n        op.transform(&base);\n        assert_eq!(op, result_op);\n    }\n\n    #[test]\n    fn test_transform_ii() {\n        println!(\"Ins Ins, op < base.\");\n        test(\n            Op::Ins((1, \"x\".to_string())),\n            Op::Ins((2, \"y\".to_string())),\n            Op::Ins((1, \"x\".to_string())),\n        );\n\n        println!(\"Ins Ins, op > base.\");\n        test(\n            Op::Ins((1, \"x\".to_string())),\n            Op::Ins((0, \"y\".to_string())),\n            Op::Ins((2, \"x\".to_string())),\n        );\n    }\n\n    #[test]\n    fn test_transform_id() {\n        println!(\"Ins Del, op < base.\");\n        test(\n            Op::Ins((1, \"x\".to_string())),\n            Op::Del(vec![(2, \"y\".to_string())], vec![]),\n            Op::Ins((1, \"x\".to_string())),\n        );\n\n        println!(\"Ins Del, op > base.\");\n        test(\n            Op::Ins((2, \"x\".to_string())),\n            Op::Del(vec![(0, \"y\".to_string())], vec![]),\n            Op::Ins((1, \"x\".to_string())),\n        );\n\n        println!(\"Ins Del, op inside base.\");\n        test(\n            Op::Ins((1, \"x\".to_string())),\n            Op::Del(vec![(0, \"yyy\".to_string())], vec![]),\n            Op::Ins((0, \"x\".to_string())),\n        );\n    }\n\n    // I'm too tired to refactor the tests below.\n    #[test]\n    fn test_transform_di() {\n        println!(\"Del Ins, op < base.\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"xxx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Ins((4, \"y\".to_string())), 2);\n        let result_op = make_fatop(Op::Del(vec![(1, \"xxx\".to_string())], vec![]), 1);\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Ins, base inside op.\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"xxx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Ins((2, \"y\".to_string())), 2);\n        let result_op = make_fatop(\n            Op::Del(vec![(1, \"x\".to_string()), (3, \"xx\".to_string())], vec![]),\n            1,\n        );\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Ins, op > base\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"xxx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Ins((0, \"y\".to_string())), 2);\n        let result_op = make_fatop(Op::Del(vec![(2, \"xxx\".to_string())], vec![]), 1);\n        op.transform(&base);\n        assert_eq!(op, result_op);\n    }\n\n    #[test]\n    fn test_transform_dd() {\n        println!(\"Del Del, op completely before base.\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"xxx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Del(vec![(4, \"y\".to_string())], vec![]), 2);\n        let result_op = make_fatop(Op::Del(vec![(1, \"xxx\".to_string())], vec![]), 1);\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Del, op partially before base.\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"oxx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Del(vec![(2, \"xxy\".to_string())], vec![]), 2);\n        let result_op = make_fatop(\n            Op::Del(vec![(1, \"o\".to_string())], vec![(2, \"xx\".to_string())]),\n            1,\n        );\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Del, op completely inside base.\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"xx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Del(vec![(0, \"ooxxy\".to_string())], vec![]), 2);\n        let result_op = make_fatop(\n            Op::Del(vec![(0, \"\".to_string())], vec![(1, \"xx\".to_string())]),\n            1,\n        );\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Del, op completely after base.\");\n        let mut op = make_fatop(Op::Del(vec![(4, \"xx\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Del(vec![(1, \"yy\".to_string())], vec![]), 2);\n        let result_op = make_fatop(Op::Del(vec![(2, \"xx\".to_string())], vec![]), 1);\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Del, op partially after base.\");\n        let mut op = make_fatop(Op::Del(vec![(2, \"xxyy\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Del(vec![(1, \"oxx\".to_string())], vec![]), 2);\n        let result_op = make_fatop(\n            Op::Del(vec![(1, \"yy\".to_string())], vec![(2, \"xx\".to_string())]),\n            1,\n        );\n        op.transform(&base);\n        assert_eq!(op, result_op);\n\n        println!(\"Del Del, op completely covers base.\");\n        let mut op = make_fatop(Op::Del(vec![(1, \"ooxxyy\".to_string())], vec![]), 1);\n        let base = make_fatop(Op::Del(vec![(3, \"xx\".to_string())], vec![]), 2);\n        let result_op = make_fatop(\n            Op::Del(vec![(1, \"ooyy\".to_string())], vec![(3, \"xx\".to_string())]),\n            1,\n        );\n        op.transform(&base);\n        assert_eq!(op, result_op);\n    }\n\n    // TODO: Better and more tricky tests.\n    #[test]\n    fn test_batch_transform_with_skip_1() {\n        // A do and an undo. Start with \"XX\" in the doc.\n        let ops = vec![\n            make_fatop(Op::Del(vec![(0, \"X\".to_string())], vec![]), 1),\n            make_fatop(Op::Ins((0, \"A\".to_string())), 1),\n            make_undo_fatop(Op::Ins((1, \"X\".to_string())), 1, 2),\n        ];\n        let mut op = make_fatop(Op::Ins((1, \"C\".to_string())), 2);\n        let result_op = make_fatop(Op::Ins((1, \"C\".to_string())), 2);\n        // We expect \"ACX\".\n        op.batch_transform(&ops[..]);\n        assert_eq!(op, result_op);\n    }\n\n    #[test]\n    fn test_batch_transform_with_skip_2() {\n        // A do and an undo and a redo. Start with \"XX\" in the doc.\n        let ops = vec![\n            make_fatop(Op::Del(vec![(0, \"X\".to_string())], vec![]), 1),\n            make_fatop(Op::Ins((0, \"A\".to_string())), 1),\n            make_undo_fatop(Op::Ins((1, \"X\".to_string())), 1, 2),\n            make_fatop(Op::Ins((1, \"B\".to_string())), 1),\n            make_undo_fatop(Op::Del(vec![(2, \"X\".to_string())], vec![]), 1, 2),\n        ];\n        let mut op = make_fatop(Op::Ins((1, \"C\".to_string())), 2);\n        let result_op = make_fatop(Op::Ins((2, \"C\".to_string())), 2);\n        // We expect \"ABCX\".\n        op.batch_transform(&ops[..]);\n        assert_eq!(op, result_op);\n    }\n\n    #[test]\n    fn test_find_ops_to_skip_1() {\n        let ops = vec![\n            make_fatop(Op::Del(vec![(0, \"X\".to_string())], vec![]), 1),\n            make_fatop(Op::Ins((0, \"A\".to_string())), 1),\n            make_undo_fatop(Op::Ins((1, \"X\".to_string())), 1, 2),\n            make_fatop(Op::Ins((1, \"B\".to_string())), 1),\n            make_undo_fatop(Op::Del(vec![(2, \"X\".to_string())], vec![]), 1, 2),\n        ];\n        let bitmap = find_ops_to_skip(&ops[..]);\n        assert_eq!(bitmap, vec![false, false, true, false, true]);\n    }\n\n    #[test]\n    fn test_find_ops_to_skip_2() {\n        let ops = vec![\n            make_fatop(Op::Del(vec![(0, \"X\".to_string())], vec![]), 1),\n            make_fatop(Op::Ins((0, \"A\".to_string())), 1),\n            make_undo_fatop(Op::Ins((1, \"X\".to_string())), 1, 3),\n            //                                                ^\n        ];\n        let bitmap = find_ops_to_skip(&ops[..]);\n        assert_eq!(bitmap, vec![false, false, false]);\n    }\n}\n")))
[client-notification] Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
          (:settings
           #s(hash-table size 1 test eql rehash-size 1.5
                         rehash-threshold 0.8125 data ())))
[server-request] (id:0) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 0 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Fetching"))
[client-reply] (id:0) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 0 :result nil)
[server-notification] Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "begin" :title "Fetching" :cancellable
                         :json-false)))
[server-request] (id:1) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 1 :method "workspace/configuration" :params
          (:items [(:section "rust-analyzer")]))
[client-reply] (id:1) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 1 :result [nil])
[client-request] (id:2) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///Users/yuan/p/collab-mode/src/op.rs")
           :position (:line 41 :character 0)))
[client-request] (id:3) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/signatureHelp" :params
          (:textDocument
           (:uri "file:///Users/yuan/p/collab-mode/src/op.rs")
           :position (:line 41 :character 0)))
[server-reply] (id:3) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[server-reply] (id:2) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 2 :result nil)
[server-notification] Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "report" :cancellable :json-false :message
                         "metadata")))
[server-request] (id:2) Sat Oct 21 11:49:15 2023:
(:jsonrpc "2.0" :id 2 :method "client/registerCapability" :params
          (:registrations
           [(:id "workspace/didChangeWatchedFiles" :method
                 "workspace/didChangeWatchedFiles" :registerOptions
                 (:watchers
                  [(:globPattern "/Users/yuan/p/collab-mode/**/*.rs")
                   (:globPattern
                    "/Users/yuan/p/collab-mode/**/Cargo.toml")
                   (:globPattern
                    "/Users/yuan/p/collab-mode/**/Cargo.lock")]))]))
[client-reply] (id:2) ERROR Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 2 :error (:code -32603 :message "Internal error"))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value (:kind "end")))
[server-request] (id:3) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 3 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Roots Scanned"))
[client-reply] (id:3) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 3 :result nil)
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "begin" :title "Roots Scanned" :cancellable
                         :json-false :message "0/138" :percentage 0)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "1/138" :percentage 0)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "2/138" :percentage 1)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "3/138" :percentage 2)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "4/138" :percentage 2)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "5/138" :percentage 3)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "6/138" :percentage 4)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "7/138" :percentage 5)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "8/138" :percentage 5)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "9/138" :percentage 6)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "10/138" :percentage 7)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "11/138" :percentage 7)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "12/138" :percentage 8)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "13/138" :percentage 9)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "14/138" :percentage 10)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "15/138" :percentage 10)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "16/138" :percentage 11)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "17/138" :percentage 12)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "18/138" :percentage 13)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "19/138" :percentage 13)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "20/138" :percentage 14)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "21/138" :percentage 15)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "22/138" :percentage 15)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "23/138" :percentage 16)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "24/138" :percentage 17)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "25/138" :percentage 18)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "26/138" :percentage 18)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "27/138" :percentage 19)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "28/138" :percentage 20)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "29/138" :percentage 21)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "30/138" :percentage 21)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "31/138" :percentage 22)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "32/138" :percentage 23)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "33/138" :percentage 23)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "34/138" :percentage 24)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "35/138" :percentage 25)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "36/138" :percentage 26)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "37/138" :percentage 26)))
[server-request] (id:4) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 4 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Fetching"))
[client-reply] (id:4) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 4 :result nil)
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "begin" :title "Fetching" :cancellable
                         :json-false)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "38/138" :percentage 27)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "39/138" :percentage 28)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "40/138" :percentage 28)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "41/138" :percentage 29)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "42/138" :percentage 30)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "43/138" :percentage 31)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "44/138" :percentage 31)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "45/138" :percentage 32)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "46/138" :percentage 33)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "47/138" :percentage 34)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "48/138" :percentage 34)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "49/138" :percentage 35)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "50/138" :percentage 36)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "51/138" :percentage 36)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "52/138" :percentage 37)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "53/138" :percentage 38)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "54/138" :percentage 39)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "55/138" :percentage 39)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "56/138" :percentage 40)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "57/138" :percentage 41)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "58/138" :percentage 42)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "59/138" :percentage 42)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "60/138" :percentage 43)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "61/138" :percentage 44)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "62/138" :percentage 44)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "63/138" :percentage 45)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "64/138" :percentage 46)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "65/138" :percentage 47)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "66/138" :percentage 47)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "67/138" :percentage 48)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "68/138" :percentage 49)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "69/138" :percentage 50)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "70/138" :percentage 50)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "71/138" :percentage 51)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "72/138" :percentage 52)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "73/138" :percentage 52)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "74/138" :percentage 53)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "75/138" :percentage 54)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "76/138" :percentage 55)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "77/138" :percentage 55)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "78/138" :percentage 56)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "79/138" :percentage 57)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "80/138" :percentage 57)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "81/138" :percentage 58)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "82/138" :percentage 59)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "83/138" :percentage 60)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "84/138" :percentage 60)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "85/138" :percentage 61)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "86/138" :percentage 62)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "87/138" :percentage 63)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "88/138" :percentage 63)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "89/138" :percentage 64)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "90/138" :percentage 65)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "91/138" :percentage 65)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "92/138" :percentage 66)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "93/138" :percentage 67)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "94/138" :percentage 68)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "95/138" :percentage 68)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "96/138" :percentage 69)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "97/138" :percentage 70)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "98/138" :percentage 71)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "99/138" :percentage 71)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "100/138" :percentage 72)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "101/138" :percentage 73)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "102/138" :percentage 73)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "103/138" :percentage 74)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "104/138" :percentage 75)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "105/138" :percentage 76)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "106/138" :percentage 76)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "107/138" :percentage 77)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "108/138" :percentage 78)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "109/138" :percentage 78)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "110/138" :percentage 79)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "111/138" :percentage 80)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "112/138" :percentage 81)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "113/138" :percentage 81)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "114/138" :percentage 82)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "115/138" :percentage 83)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "116/138" :percentage 84)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "117/138" :percentage 84)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "118/138" :percentage 85)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "119/138" :percentage 86)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "120/138" :percentage 86)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "121/138" :percentage 87)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "122/138" :percentage 88)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "123/138" :percentage 89)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "124/138" :percentage 89)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "125/138" :percentage 90)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "126/138" :percentage 91)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "127/138" :percentage 92)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "128/138" :percentage 92)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "129/138" :percentage 93)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "130/138" :percentage 94)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "131/138" :percentage 94)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "132/138" :percentage 95)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "133/138" :percentage 96)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "134/138" :percentage 97)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "135/138" :percentage 97)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "136/138" :percentage 98)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "report" :cancellable :json-false :message
                         "metadata")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "137/138" :percentage 99)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "end" :message "138/138")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value (:kind "end")))
[server-request] (id:5) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 5 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Fetching"))
[client-reply] (id:5) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 5 :result nil)
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "begin" :title "Fetching" :cancellable
                         :json-false)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "report" :cancellable :json-false :message
                         "metadata")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value (:kind "end")))
[server-request] (id:6) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 6 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Building"))
[client-reply] (id:6) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 6 :result nil)
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "begin" :title "Building" :cancellable
                         :json-false)))
[server-request] (id:7) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 7 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Loading"))
[client-reply] (id:7) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 7 :result nil)
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "begin" :title "Loading" :cancellable
                         :json-false)))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value (:kind "end")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: proc-macro2")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: proc-macro2")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: unicode-ident")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: quote")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: libc")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: autocfg")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: cfg-if")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: pin-project-lite")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: bitflags")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: quote")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: proc-macro2")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: libc")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: lock_api")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: parking_lot_core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: scopeguard")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: version_check")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: bytes")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: quote")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: libc")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: parking_lot_core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: lock_api")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: typenum")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: smallvec")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: log")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: generic-array")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: syn")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: getrandom")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: lock_api")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: parking_lot_core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: typenum")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: log")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tokio")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: cc")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: rand_core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: ppv-lite86")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: parking_lot")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: tokio")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: typenum")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tokio-macros")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: log")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: generic-array")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: rand_chacha")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: num_cpus")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: socket2")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: mio")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: signal-hook-registry")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: memchr")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: thiserror")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tokio")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: futures-core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: memchr")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: thiserror")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: rand")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: generic-array")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: thiserror-impl")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: memoffset")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: syn")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: thiserror")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: memchr")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: memoffset")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: async-trait")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tinyvec_macros")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: crypto-common")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: syn")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tinyvec")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: async-trait")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: memoffset")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: block-buffer")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: webrtc-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: slab")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-task")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: syn")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-channel")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: io-lifetimes")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-sink")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: unicode-normalization")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: nix")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: futures-task")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: webrtc-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: futures-channel")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: io-lifetimes")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: slab")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: async-trait")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: digest")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: fnv")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: ident_case")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: strsim")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: lazy_static")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: rustix")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: unicode-bidi")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: ipnet")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: percent-encoding")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: slab")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-channel")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: futures-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: rustix")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: form_urlencoded")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: idna")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: webrtc-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: io-lifetimes")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: darling_core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-task")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-macro")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: errno")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-io")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: pin-utils")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: crc-catalog")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: itoa")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: serde")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: darling_macro")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: serde")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: rustix")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: crc")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: url")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: serde_derive")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: ring")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: darling")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: serde")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: is-terminal")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: ring")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: utf8parse")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: untrusted")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: serde_json")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: httparse")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: crossbeam-utils")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: spin")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: httparse")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: serde_json")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: crossbeam-utils")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: anstyle-parse")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: derive_builder_core")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures-executor")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: md-5")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: ring")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: anstyle")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: fnv")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: colorchoice")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: cpufeatures")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: subtle")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: arc-swap")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: base64")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: anstyle-query")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: ryu")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: http")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: sha1")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: stun")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: crossbeam-utils")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: httparse")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: derive_builder_macro")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: anstream")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: serde_json")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: futures")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: aho-corasick")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: atomic-waker")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: utf-8")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: anyhow")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: clap_lex")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: data-encoding")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: regex-syntax")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: byteorder")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: heck")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: strsim")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: once_cell")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "running build-script: anyhow")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: waitgroup")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: clap_builder")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: regex")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: clap_derive")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tungstenite")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: turn")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: derive_builder")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: crossbeam-channel")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: webrtc-sctp")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: webrtc-mdns")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: uuid")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: str_indices")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: termcolor")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: humantime")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: once_cell")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: webrtc-data")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: clap")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: webrtc-ice")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: enum_dispatch")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: jumprope")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: env_logger")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tokio-tungstenite")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: lsp-server")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: anyhow")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: bincode")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tokio-util")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: tokio-stream")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: collab-mode")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: collab-mode")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: collab-mode")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: collab-mode")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: collab-mode")))
[server-notification] Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value
                  (:kind "report" :cancellable :json-false :message
                         "building proc-macros: collab-mode")))
[server-request] (id:8) Sat Oct 21 11:49:28 2023:
(:jsonrpc "2.0" :id 8 :method "client/registerCapability" :params
          (:registrations
           [(:id "workspace/didChangeWatchedFiles" :method
                 "workspace/didChangeWatchedFiles" :registerOptions
                 (:watchers
                  [(:globPattern "/Users/yuan/p/collab-mode/**/*.rs")
                   (:globPattern
                    "/Users/yuan/p/collab-mode/**/Cargo.toml")
                   (:globPattern
                    "/Users/yuan/p/collab-mode/**/Cargo.lock")]))]))
[client-reply] (id:8) ERROR Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 8 :error (:code -32603 :message "Internal error"))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Building" :value (:kind "end")))
[server-request] (id:9) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 9 :method "window/workDoneProgress/create" :params
          (:token "rustAnalyzer/Roots Scanned"))
[client-reply] (id:9) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 9 :result nil)
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "begin" :title "Roots Scanned" :cancellable
                         :json-false :message "0/138" :percentage 0)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "1/138" :percentage 0)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "2/138" :percentage 1)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "3/138" :percentage 2)))
[server-request] (id:10) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 10 :method "window/workDoneProgress/create"
          :params (:token "rustAnalyzer/Loading"))
[client-reply] (id:10) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 10 :result nil)
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "begin" :title "Loading" :cancellable
                         :json-false)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libtokio_macros-94545fde476351d3.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libderive_builder_macro-95278ae61a79f312.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "4/138" :percentage 2)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "5/138" :percentage 3)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libdarling_macro-d0f36f098326a1b9.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libasync_trait-f3f98d340bb5ffb4.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "6/138" :percentage 4)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "7/138" :percentage 5)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "8/138" :percentage 5)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "9/138" :percentage 6)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "10/138" :percentage 7)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "11/138" :percentage 7)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "12/138" :percentage 8)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "13/138" :percentage 9)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "14/138" :percentage 10)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "15/138" :percentage 10)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "16/138" :percentage 11)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "17/138" :percentage 12)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "18/138" :percentage 13)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libserde_derive-5e4baaeb76e34d2b.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libfutures_macro-0cafc1b1c3193b96.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libthiserror_impl-fbf1037c63999aa0.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libclap_derive-6cb2df487a726c08.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value
                  (:kind "report" :cancellable :json-false :message
                         "/Users/yuan/p/collab-mode/target/debug/deps/libenum_dispatch-b6c4a9198898ef49.dylib")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Loading" :value (:kind "end")))
[server-request] (id:11) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 11 :method "window/workDoneProgress/create"
          :params (:token "rustAnalyzer/Fetching"))
[client-reply] (id:11) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 11 :result nil)
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "begin" :title "Fetching" :cancellable
                         :json-false)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "19/138" :percentage 13)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "20/138" :percentage 14)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "21/138" :percentage 15)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "22/138" :percentage 15)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "23/138" :percentage 16)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "24/138" :percentage 17)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "25/138" :percentage 18)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "26/138" :percentage 18)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "27/138" :percentage 19)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "28/138" :percentage 20)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "29/138" :percentage 21)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "30/138" :percentage 21)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "31/138" :percentage 22)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "32/138" :percentage 23)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "33/138" :percentage 23)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "34/138" :percentage 24)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "35/138" :percentage 25)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "36/138" :percentage 26)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "37/138" :percentage 26)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "38/138" :percentage 27)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "39/138" :percentage 28)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "40/138" :percentage 28)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "41/138" :percentage 29)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "42/138" :percentage 30)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "43/138" :percentage 31)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "44/138" :percentage 31)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "45/138" :percentage 32)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "46/138" :percentage 33)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "47/138" :percentage 34)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "48/138" :percentage 34)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "49/138" :percentage 35)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "50/138" :percentage 36)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "51/138" :percentage 36)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "52/138" :percentage 37)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "53/138" :percentage 38)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "54/138" :percentage 39)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "55/138" :percentage 39)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "56/138" :percentage 40)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "57/138" :percentage 41)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "58/138" :percentage 42)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "59/138" :percentage 42)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "60/138" :percentage 43)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "61/138" :percentage 44)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "62/138" :percentage 44)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "63/138" :percentage 45)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "64/138" :percentage 46)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "65/138" :percentage 47)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "66/138" :percentage 47)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "67/138" :percentage 48)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "68/138" :percentage 49)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "69/138" :percentage 50)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "70/138" :percentage 50)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "report" :cancellable :json-false :message
                         "metadata")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "71/138" :percentage 51)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "72/138" :percentage 52)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "73/138" :percentage 52)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "74/138" :percentage 53)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "75/138" :percentage 54)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "76/138" :percentage 55)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "77/138" :percentage 55)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "78/138" :percentage 56)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "79/138" :percentage 57)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "80/138" :percentage 57)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "81/138" :percentage 58)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "82/138" :percentage 59)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "83/138" :percentage 60)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "84/138" :percentage 60)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "85/138" :percentage 61)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "86/138" :percentage 62)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "87/138" :percentage 63)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "88/138" :percentage 63)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "89/138" :percentage 64)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "90/138" :percentage 65)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "91/138" :percentage 65)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "92/138" :percentage 66)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "93/138" :percentage 67)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "94/138" :percentage 68)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "95/138" :percentage 68)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "96/138" :percentage 69)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "97/138" :percentage 70)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "98/138" :percentage 71)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "99/138" :percentage 71)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "100/138" :percentage 72)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "101/138" :percentage 73)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "102/138" :percentage 73)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "103/138" :percentage 74)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "104/138" :percentage 75)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "105/138" :percentage 76)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "106/138" :percentage 76)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "107/138" :percentage 77)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "108/138" :percentage 78)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "109/138" :percentage 78)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "110/138" :percentage 79)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "111/138" :percentage 80)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "112/138" :percentage 81)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "113/138" :percentage 81)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "114/138" :percentage 82)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "115/138" :percentage 83)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "116/138" :percentage 84)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "117/138" :percentage 84)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "118/138" :percentage 85)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "119/138" :percentage 86)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "120/138" :percentage 86)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "121/138" :percentage 87)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "122/138" :percentage 88)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "123/138" :percentage 89)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "124/138" :percentage 89)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "125/138" :percentage 90)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "126/138" :percentage 91)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "127/138" :percentage 92)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "128/138" :percentage 92)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "129/138" :percentage 93)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "130/138" :percentage 94)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "131/138" :percentage 94)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "132/138" :percentage 95)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "133/138" :percentage 96)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "134/138" :percentage 97)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "135/138" :percentage 97)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "136/138" :percentage 98)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "report" :cancellable :json-false :message
                         "137/138" :percentage 99)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Roots Scanned" :value
                  (:kind "end" :message "138/138")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value (:kind "end")))
[server-request] (id:12) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 12 :method "window/workDoneProgress/create"
          :params (:token "rustAnalyzer/Fetching"))
[client-reply] (id:12) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 12 :result nil)
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "begin" :title "Fetching" :cancellable
                         :json-false)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value
                  (:kind "report" :cancellable :json-false :message
                         "metadata")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Fetching" :value (:kind "end")))
[server-request] (id:13) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 13 :method "window/workDoneProgress/create"
          :params (:token "rustAnalyzer/Indexing"))
[client-reply] (id:13) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 13 :result nil)
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "begin" :title "Indexing" :cancellable
                         :json-false :percentage 0)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "0/31 (core + 1 more)" :percentage 0)))
[server-request] (id:14) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 14 :method "window/workDoneProgress/create"
          :params (:token "rust-analyzer/flycheck/0"))
[client-reply] (id:14) Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :id 14 :result nil)
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rust-analyzer/flycheck/0" :value
                  (:kind "begin" :title "cargo check" :cancellable t)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "1/31 (core)" :percentage 3)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rust-analyzer/flycheck/0" :value (:kind "end")))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         6)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "2/31 (alloc)" :percentage 6)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         9)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "3/31 (std)" :percentage 9)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         12)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "4/31 (proc_macro)" :percentage 12)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         16)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "5/31 (log + 3 more)" :percentage 16)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "6/31 (serde + 3 more)" :percentage 19)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "7/31 (serde + 3 more)" :percentage 22)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "8/31 (serde + 3 more)" :percentage 25)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "9/31 (serde + 3 more)" :percentage 29)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "10/31 (serde + 3 more)" :percentage 32)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "11/31 (serde + 3 more)" :percentage 35)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "12/31 (serde + 3 more)" :percentage 38)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "13/31 (serde + 3 more)" :percentage 41)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "14/31 (env_logger + 3 more)" :percentage 45)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "15/31 (tokio + 3 more)" :percentage 48)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "16/31 (tokio + 3 more)" :percentage 51)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "17/31 (tokio + 3 more)" :percentage 54)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "18/31 (tokio + 3 more)" :percentage 58)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "19/31 (tokio + 3 more)" :percentage 61)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "20/31 (tokio + 2 more)" :percentage 64)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "21/31 (tokio + 1 more)" :percentage 67)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "22/31 (tokio)" :percentage 70)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         74)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "23/31 (tokio_stream + 3 more)" :percentage
                         74)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "24/31 (tokio_stream + 2 more)" :percentage
                         77)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "25/31 (webrtc_util + 1 more)" :percentage 80)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "26/31 (tokio_tungstenite)" :percentage 83)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "26/31 (tokio_tungstenite + 2 more)"
                         :percentage 83)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "27/31 (tokio_tungstenite + 1 more)"
                         :percentage 87)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "27/31 (tokio_tungstenite + 2 more)"
                         :percentage 87)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "28/31 (tokio_tungstenite + 1 more)"
                         :percentage 90)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "29/31 (webrtc_ice)" :percentage 93)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         96)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :message
                         "30/31 (collab_mode)" :percentage 96)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value
                  (:kind "report" :cancellable :json-false :percentage
                         100)))
[server-notification] Sat Oct 21 11:49:38 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "rustAnalyzer/Indexing" :value (:kind "end")))
[server-notification] Sat Oct 21 11:49:51 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
          (:uri "file:///Users/yuan/p/collab-mode/src/op.rs"
                :diagnostics [] :version 0))

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications
  2023-10-21 19:10 bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications Yuan Fu
@ 2023-10-21 21:01 ` João Távora
  2023-10-22  4:50 ` Eli Zaretskii
  1 sibling, 0 replies; 5+ messages in thread
From: João Távora @ 2023-10-21 21:01 UTC (permalink / raw)
  To: Yuan Fu; +Cc: 66669

On Sat, Oct 21, 2023 at 8:11 PM Yuan Fu <casouri@gmail.com> wrote:
>
> X-Debbugs-CC: joaotavora@gmail.com
>
> I use rust’s language server (rust-analyzer) with eglot. And
> whenever I turn eglot on for a project, Emacs freezes for a good
> 30 seconds, busy updating the eglot progress indicator, before I
> can do anything. I think the reason is that the rust language server
> sends a ton of progress notifications, which completely blocks Emacs
> before it’s done.

hi Yuan,

Two things:

* Would be nice to have a reproduction recipe.  I have rust-analyzer but
  one project where I try it regularly, the "bevy" graphics engine [1]
  Seems to work OK there.  You say "a project", but for bevy
  it starts up fast (maybe not even half a second) and works quite well.

  No Emacs freeze at all.  Tried removing the cache with git clean -fdx and
  I get all the notifications cleanly with no slowdown.

  So please include Emacs versions (master preferred, should be trivial
  for you), Eglot version, rust-analyzer version and preferably an Emacs
  -Q invocation with the simplest Rust project you can share that
  exhibits this behaviour.

* Have you profiled?  Have you tried setting eglot-events-buffer-size
  to 0 (and restart Eglot) as suggested in the Eglot manual?  Many
  performance problems are due to JSON objects being pretty printed in
  the Eglot events buffer (BTW some users ask me to  turn it to 0 by
  default, but the pros don't outweigh the cons, which in this case is
  we would lose a valuable tool for newbie users with exotic servers to
  send me their debug data easily)

João

[1] https://github.com/bevyengine/bevy





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications
  2023-10-21 19:10 bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications Yuan Fu
  2023-10-21 21:01 ` João Távora
@ 2023-10-22  4:50 ` Eli Zaretskii
  2023-10-22 14:52   ` João Távora
  1 sibling, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-10-22  4:50 UTC (permalink / raw)
  To: Yuan Fu; +Cc: joaotavora, 66669

> Cc: joaotavora@gmail.com
> From: Yuan Fu <casouri@gmail.com>
> Date: Sat, 21 Oct 2023 12:10:49 -0700
> 
> I use rust’s language server (rust-analyzer) with eglot. And whenever I turn eglot on for a project, Emacs freezes for a good 30 seconds, busy updating the eglot progress indicator, before I can do anything. I think the reason is that the rust language server sends a ton of progress notifications, which completely blocks Emacs before it’s done.
> 
> Setting eglot-report-progress to nil doesn’t help me, presumably because eglot still needs to process the notifications.

Can't this information be processed in chunks, not in one go?





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications
  2023-10-22  4:50 ` Eli Zaretskii
@ 2023-10-22 14:52   ` João Távora
  2023-10-23  0:39     ` Yuan Fu
  0 siblings, 1 reply; 5+ messages in thread
From: João Távora @ 2023-10-22 14:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Yuan Fu, 66669

On Sun, Oct 22, 2023 at 5:50 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > Cc: joaotavora@gmail.com
> > From: Yuan Fu <casouri@gmail.com>
> > Date: Sat, 21 Oct 2023 12:10:49 -0700
> >
> > I use rust’s language server (rust-analyzer) with eglot. And whenever I turn eglot on for a project, Emacs freezes for a good 30 seconds, busy updating the eglot progress indicator, before I can do anything. I think the reason is that the rust language server sends a ton of progress notifications, which completely blocks Emacs before it’s done.
> >
> > Setting eglot-report-progress to nil doesn’t help me, presumably because eglot still needs to process the notifications.
>
> Can't this information be processed in chunks, not in one go?

Maybe, depending on what that means. I think it's important to
get to the bottom of Yuan's "presumably" first, preferably by
reproducing his problem.

João





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications
  2023-10-22 14:52   ` João Távora
@ 2023-10-23  0:39     ` Yuan Fu
  0 siblings, 0 replies; 5+ messages in thread
From: Yuan Fu @ 2023-10-23  0:39 UTC (permalink / raw)
  To: João Távora; +Cc: Eli Zaretskii, 66669-done



> On Oct 22, 2023, at 7:52 AM, João Távora <joaotavora@gmail.com> wrote:
> 
> On Sun, Oct 22, 2023 at 5:50 AM Eli Zaretskii <eliz@gnu.org> wrote:
>> 
>>> Cc: joaotavora@gmail.com
>>> From: Yuan Fu <casouri@gmail.com>
>>> Date: Sat, 21 Oct 2023 12:10:49 -0700
>>> 
>>> I use rust’s language server (rust-analyzer) with eglot. And whenever I turn eglot on for a project, Emacs freezes for a good 30 seconds, busy updating the eglot progress indicator, before I can do anything. I think the reason is that the rust language server sends a ton of progress notifications, which completely blocks Emacs before it’s done.
>>> 
>>> Setting eglot-report-progress to nil doesn’t help me, presumably because eglot still needs to process the notifications.
>> 
>> Can't this information be processed in chunks, not in one go?
> 
> Maybe, depending on what that means. I think it's important to
> get to the bottom of Yuan's "presumably" first, preferably by
> reproducing his problem.

Apologize for doubting eglot's ability to process messages :-) When trying to reproduce the problem, I eventually found out that it was project-files that was blocking. And project-files was blocking because I used a custom project method, which doesn’t properly ignore the build directory, which contains a ton of small files.

> * Have you profiled?  Have you tried setting eglot-events-buffer-size
>  to 0 (and restart Eglot) as suggested in the Eglot manual?  Many
>  performance problems are due to JSON objects being pretty printed in
>  the Eglot events buffer (BTW some users ask me to  turn it to 0 by
>  default, but the pros don't outweigh the cons, which in this case is
>  we would lose a valuable tool for newbie users with exotic servers to
>  send me their debug data easily)

I do have eglot-events-buffer-size set to 0. I observed the freeze, reset it to some large value, and saw a bunch of notifications, so I assumed that was the problem. That turns out to be very wrong :-)

Personally I also think the default value should be 0. (I wonder if disabling pp would improve it enough?) Eglot is really borderline non-usable when the value is non-0 and the language server is chatty (eg, rust, typescript). I certainly don’t want people to try out eglot, see the lag, and conclude that “Emacs is slow”.

Maybe providing a simple command like M-x eglot-enable-logging, and tell new users to turn this on and restart eglot, is good enough. But I’m not the one that dealt with eglot bug reports, maybe restarting eglot can’t reproduce the error in many cases?

Yuan




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-10-23  0:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-21 19:10 bug#66669: 30.0.50; [EGLOT] Emacs freezes when server sends a ton of progress notifications Yuan Fu
2023-10-21 21:01 ` João Távora
2023-10-22  4:50 ` Eli Zaretskii
2023-10-22 14:52   ` João Távora
2023-10-23  0:39     ` Yuan Fu

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).