Subject: Re: bug#63433: Eglot "eglot--apply-workspace-edit > documentChanges > create" fails

From: Felician Nemeth <[email-masked]>
Date: Thu, 11 May 2023 08:35:57 +0200

In its initializationOptions, Eglot do not state that it supports any
resourceOperations.  So the server made a mistake when it sent a
"create" kind.

Sure, Eglot could handle better the server's mistake or support this
feature, but this is primarily a server bug in my opinion.

Background:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspaceEditClientCapabilities

Misha Zharov <[email-masked]> writes:

> When I declare a module that does not exist in Rust,
> `M-x eglot-code-actions` suggests that I create the file. However, when I
> select this option I get the following traceback and the change is not
> applied:
>
> ```
> Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
>   file-truename(nil)
>   find-buffer-visiting(nil)
>   cl-every(find-buffer-visiting (nil))
>   cl-notevery(find-buffer-visiting (nil))
>   eglot--apply-workspace-edit((:documentChanges [(:kind "create" :uri
> "file:///home/misha/sweet/repos/tmp/thing.rs")]))
>   eglot--read-execute-code-action(((:title "Create module at
> `thing.rs`" :kind "quickfix" :edit (:documentChanges [(:kind "create"
> :uri "file:///home/misha/sweet/repos/tmp/thing.rs")])) (:title "Create
> module at `thing/mod.rs`" :kind "quickfix" :edit (:documentChanges
> [(:kind "create" :uri
> "file:///home/misha/sweet/repos/tmp/thing/mod.rs")])))
> #<eglot-lsp-server eglot-lsp-server-156498df5f36> nil)
>   eglot-code-actions(5 10 nil t)
>   funcall-interactively(eglot-code-actions 5 10 nil t)
>   command-execute(eglot-code-actions record)
>   execute-extended-command(nil "eglot-code-actions" "eglot-code-actions")
>   funcall-interactively(execute-extended-command nil
> "eglot-code-actions" "eglot-code-actions")
>   command-execute(execute-extended-command)
> ```
>
> Reproduction (from `emacs -Q`):
> Create a `Cargo.toml`:
> ```
> [package]
> name = "tmp"
> version = "0.1.0"
> edition = "2021"
>
> # See more keys and their definitions at
> https://doc.rust-lang.org/cargo/reference/manifest.html
>
> [dependencies]
>
> [[bin]]
> name = "tmp"
> path = "main.rs"
> ```
>
> Create a `main.rs`:
> ```
> mod thing;
>
> fn main() {
>    println!("Hello world");
> }
> ```
>
> Enable `rust-ts-mode` (the treesit grammar has to be installed I
> assume). Flymake and ElDoc appear to be enabled as well. Enable eglot:
> `M-x eglot`.
>
> Eglot should prompt us to choose a language server. This reproduces with
> rust-analyzer which is shipped with Rust 1.69 (can be obtained at
> `https://www.rust-lang.org/tools/install`). RLS should not be used.
>
> Now there should be a code action to fix the issue with the missing
> module (by creating the file `thing.rs`). However, we see that the code
> action is not applied successfully.
>
> `M-x eglot-events-buffer`:
> ```
> [internal] Wed May 10 21:26:58 2023:
> (:message "Running language server: /home/misha/.cargo/bin/rust-analyzer")
> [client-request] (id:1) Wed May 10 21:26:58 2023:
> (:jsonrpc "2.0" :id 1 :method "initialize" :params
>       (:processId 14861 :rootPath "/home/misha/sweet/repos/tmp/"
> :rootUri "file:///home/misha/sweet/repos/tmp" :initializationOptions
> #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125
> data
>                                                                             ())
>               :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 :json-false
> :deprecatedSupport t :resolveSupport
>                                    (:properties
>                                 ["documentation" "details"
> "additionalTextEdits"])
>                                    :tagSupport
>                                    (:valueSet
>                                 [1]))
>                           :contextSupport t)
>             :hover
>             (:dynamicRegistration :json-false :contentFormat
>                           ["plaintext"])
>             :signatureHelp
>             (:dynamicRegistration :json-false :signatureInformation
>                           (:parameterInformation
>                            (:labelOffsetSupport t)
>                            :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 :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
>                (: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:///home/misha/sweet/repos/tmp" :name
> "~/sweet/repos/tmp/")]))
> [server-reply] (id:1) Wed May 10 21:27:00 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" "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"
> "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 "1.69.0 (84c898d 2023-04-16)")))
> [client-notification] Wed May 10 21:27:00 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] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "textDocument/didOpen" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 0
> :languageId "rust-ts" :text "mod thing;\n\nfn main() {\n
> println!(\"Hello world\");\n}")))
> [client-notification] Wed May 10 21:27:00 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
>                    ())))
> [client-request] (id:2) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 2 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 4 :character 1))))
> [stderr] [ERROR rust_analyzer::config] failed to find any projects in
> [AbsPathBuf("/home/misha/sweet/repos/tmp")]
> [stderr] [ERROR rust_analyzer::lsp_utils] rust-analyzer failed to
> discover workspace
> [server-notification] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "window/showMessage" :params
>       (:type 1 :message "rust-analyzer failed to discover workspace"))
> [stderr] [ERROR rust_analyzer::lsp_utils] rust-analyzer failed to
> discover workspace
> [server-request] (id:0) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 0 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:0) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 0 :result nil)
> [server-notification] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [server-notification] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "window/showMessage" :params
>       (:type 1 :message "rust-analyzer failed to discover workspace"))
> [server-notification] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:1) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 1 :method "workspace/configuration" :params
>       (:items
>        [(:section "rust-analyzer")]))
> [client-reply] (id:1) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 1 :result
>       [nil])
> [server-request] (id:2) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 2 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Indexing"))
> [client-reply] (id:2) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 2 :result nil)
> [server-notification] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "begin" :title "Indexing" :cancellable :json-false
> :percentage 0)))
> [server-notification] Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "end")))
> [server-reply] (id:2) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 2 :result
>       [])
> [client-request] (id:3) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 3 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 3 :character 24)))
> [client-request] (id:4) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 4 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 3 :character 24)))
> [client-request] (id:5) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 5 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 3 :character 24)))
> [server-reply] (id:3) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 3 :result nil)
> [server-reply] (id:4) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 4 :result nil)
> [server-reply] (id:5) Wed May 10 21:27:00 2023:
> (:jsonrpc "2.0" :id 5 :result nil)
> [client-request] (id:6) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 6 :method "shutdown" :params nil)
> [server-reply] (id:6) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 6 :result nil)
> [client-notification] Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :method "exit" :params nil)
> [internal] Wed May 10 21:29:29 2023:
> (:message "Connection state changed" :change "killed\n")
>
> ----------b---y---e---b---y---e----------
> [stderr]
> [stderr]
> [stderr] nil
> [stderr] nil
> [stderr] Process EGLOT (tmp/(rust-ts-mode rust-mode)) stderr finished
> [client-request] (id:1) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 1 :method "initialize" :params
>       (:processId 14861 :rootPath "/home/misha/sweet/repos/tmp/"
> :rootUri "file:///home/misha/sweet/repos/tmp" :initializationOptions
> #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125
> data
>                                                                             ())
>               :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 :json-false
> :deprecatedSupport t :resolveSupport
>                                    (:properties
>                                 ["documentation" "details"
> "additionalTextEdits"])
>                                    :tagSupport
>                                    (:valueSet
>                                 [1]))
>                           :contextSupport t)
>             :hover
>             (:dynamicRegistration :json-false :contentFormat
>                           ["plaintext"])
>             :signatureHelp
>             (:dynamicRegistration :json-false :signatureInformation
>                           (:parameterInformation
>                            (:labelOffsetSupport t)
>                            :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 :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
>                (: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:///home/misha/sweet/repos/tmp" :name
> "~/sweet/repos/tmp/")]))
> [server-reply] (id:1) Wed May 10 21:29:29 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" "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"
> "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 "1.69.0 (84c898d 2023-04-16)")))
> [client-notification] Wed May 10 21:29:29 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] Wed May 10 21:29:29 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) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 0 :method "workspace/configuration" :params
>       (:items
>        [(:section "rust-analyzer")]))
> [client-reply] (id:0) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 0 :result
>       [nil])
> [server-request] (id:1) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 1 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:1) Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :id 1 :result nil)
> [server-notification] Wed May 10 21:29:29 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [server-notification] Wed May 10 21:29:32 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "report" :cancellable :json-false :message "metadata")))
> [server-request] (id:2) Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :id 2 :method "client/registerCapability" :params
>       (:registrations
>        [(:id "workspace/didChangeWatchedFiles" :method
> "workspace/didChangeWatchedFiles" :registerOptions
>          (:watchers
>           [(:globPattern "/home/misha/sweet/repos/tmp/**/*.rs")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.toml")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.lock")]))]))
> [client-reply] (id:2) Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :id 2 :result nil)
> [server-notification] Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:3) Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :id 3 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Roots Scanned"))
> [client-reply] (id:3) Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :id 3 :result nil)
> [server-notification] Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "begin" :title "Roots Scanned" :cancellable
> :json-false :message "0/2" :percentage 0)))
> [server-notification] Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "report" :cancellable :json-false :message "1/2"
> :percentage 50)))
> [server-request] (id:4) Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :id 4 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:4) Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :id 4 :result nil)
> [server-notification] Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [server-notification] Wed May 10 21:29:35 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "report" :cancellable :json-false :message "metadata")))
> [server-notification] Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:5) Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :id 5 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Loading"))
> [client-reply] (id:5) Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :id 5 :result nil)
> [server-notification] Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "begin" :title "Loading" :cancellable :json-false)))
> [server-notification] Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "report" :cancellable :json-false :message "building
> proc-macros: tmp")))
> [server-notification] Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "report" :cancellable :json-false :message "building
> proc-macros: tmp")))
> [server-request] (id:6) Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :id 6 :method "client/registerCapability" :params
>       (:registrations
>        [(:id "workspace/didChangeWatchedFiles" :method
> "workspace/didChangeWatchedFiles" :registerOptions
>          (:watchers
>           [(:globPattern "/home/misha/sweet/repos/tmp/**/*.rs")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.toml")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.lock")]))]))
> [client-reply] (id:6) Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :id 6 :result nil)
> [server-notification] Wed May 10 21:29:36 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "end")))
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "end" :message "2/2")))
> [server-request] (id:7) Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :id 7 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Roots Scanned"))
> [client-reply] (id:7) Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :id 7 :result nil)
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "begin" :title "Roots Scanned" :cancellable
> :json-false :message "0/2" :percentage 0)))
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "report" :cancellable :json-false :message "1/2"
> :percentage 50)))
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "end" :message "2/2")))
> [server-request] (id:8) Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :id 8 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:8) Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :id 8 :result nil)
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "report" :cancellable :json-false :message "metadata")))
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:9) Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :id 9 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Indexing"))
> [client-reply] (id:9) Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :id 9 :result nil)
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "begin" :title "Indexing" :cancellable :json-false
> :percentage 0)))
> [server-notification] Wed May 10 21:29:48 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "0/5 (test
> + 1 more)" :percentage 0)))
> [server-request] (id:10) Wed May 10 21:29:49 2023:
> (:jsonrpc "2.0" :id 10 :method "window/workDoneProgress/create" :params
>       (:token "rust-analyzer/flycheck/0"))
> [client-reply] (id:10) Wed May 10 21:29:49 2023:
> (:jsonrpc "2.0" :id 10 :result nil)
> [server-notification] Wed May 10 21:29:49 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "begin" :title "cargo check" :cancellable t)))
> [server-notification] Wed May 10 21:29:49 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "1/5
> (core)" :percentage 20)))
> [server-notification] Wed May 10 21:29:49 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "E0583" :codeDescription
>           (:href "https://doc.rust-lang.org/error-index.html#E0583")
>           :source "rustc" :message "file not found for module
> `thing`\nto create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"" :data
>           (:rendered "error[E0583]: file not found for module
> `thing`\n --> main.rs:1:1\n  |\n1 | mod thing;\n  | ^^^^^^^^^^\n  |\n
> = help: to create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"\n\n"))]))
> [server-notification] Wed May 10 21:29:52 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 40)))
> [server-notification] Wed May 10 21:29:52 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "2/5
> (alloc)" :percentage 40)))
> [server-notification] Wed May 10 21:29:52 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 60)))
> [server-notification] Wed May 10 21:29:52 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "3/5
> (std)" :percentage 60)))
> [server-notification] Wed May 10 21:29:53 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 80)))
> [server-notification] Wed May 10 21:29:53 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "4/5
> (proc_macro)" :percentage 80)))
> [server-notification] Wed May 10 21:29:53 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 100)))
> [server-notification] Wed May 10 21:29:53 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "end")))
> [server-notification] Wed May 10 21:29:54 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "end")))
> [client-notification] Wed May 10 21:30:01 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/[email-masked]%3A1683769648"
> :type 1)]))
> [client-notification] Wed May 10 21:30:08 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/main.rs" :type 1)]))
> [client-notification] Wed May 10 21:30:08 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/main.rs" :type 2)]))
> [client-notification] Wed May 10 21:30:08 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/.%23main.rs" :type 3)]))
> [stderr]
> [stderr]
> [stderr] nil
> [stderr] nil
> [stderr] Process EGLOT (tmp/(rust-ts-mode rust-mode)) stderr finished
> [internal] Wed May 10 21:30:16 2023:
> (:message "Running language server: /home/misha/.cargo/bin/rust-analyzer")
> [client-request] (id:1) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 1 :method "initialize" :params
>       (:processId 14861 :rootPath "/home/misha/sweet/repos/tmp/"
> :rootUri "file:///home/misha/sweet/repos/tmp" :initializationOptions
> #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125
> data
>                                                                             ())
>               :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 :json-false
> :deprecatedSupport t :resolveSupport
>                                    (:properties
>                                 ["documentation" "details"
> "additionalTextEdits"])
>                                    :tagSupport
>                                    (:valueSet
>                                 [1]))
>                           :contextSupport t)
>             :hover
>             (:dynamicRegistration :json-false :contentFormat
>                           ["plaintext"])
>             :signatureHelp
>             (:dynamicRegistration :json-false :signatureInformation
>                           (:parameterInformation
>                            (:labelOffsetSupport t)
>                            :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 :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
>                (: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:///home/misha/sweet/repos/tmp" :name
> "~/sweet/repos/tmp/")]))
> [server-reply] (id:1) Wed May 10 21:30:16 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" "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"
> "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 "1.69.0 (84c898d 2023-04-16)")))
> [client-notification] Wed May 10 21:30:16 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] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "textDocument/didOpen" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 0
> :languageId "rust-ts" :text "fn main() {\n   println!(\"Hello
> world\");\n}\n")))
> [client-notification] Wed May 10 21:30:16 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
>                    ())))
> [client-request] (id:2) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 2 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 3 :character 0))))
> [server-request] (id:0) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 0 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:0) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 0 :result nil)
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [server-request] (id:1) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 1 :method "workspace/configuration" :params
>       (:items
>        [(:section "rust-analyzer")]))
> [client-reply] (id:1) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 1 :result
>       [nil])
> [server-reply] (id:2) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 2 :result
>       [])
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "report" :cancellable :json-false :message "metadata")))
> [server-request] (id:2) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 2 :method "client/registerCapability" :params
>       (:registrations
>        [(:id "workspace/didChangeWatchedFiles" :method
> "workspace/didChangeWatchedFiles" :registerOptions
>          (:watchers
>           [(:globPattern "/home/misha/sweet/repos/tmp/**/*.rs")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.toml")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.lock")]))]))
> [client-reply] (id:2) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 2 :result nil)
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:3) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 3 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Roots Scanned"))
> [client-reply] (id:3) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 3 :result nil)
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "begin" :title "Roots Scanned" :cancellable
> :json-false :message "0/2" :percentage 0)))
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "report" :cancellable :json-false :message "1/2"
> :percentage 50)))
> [server-request] (id:4) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 4 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:4) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 4 :result nil)
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [client-request] (id:3) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 3 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 0)))
> [client-request] (id:4) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 4 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 0)))
> [client-request] (id:5) Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :id 5 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 0)))
> [server-notification] Wed May 10 21:30:16 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "end" :message "2/2")))
> [server-reply] (id:3) Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :id 3 :result nil)
> [server-reply] (id:4) Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :id 4 :result nil)
> [server-notification] Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "report" :cancellable :json-false :message "metadata")))
> [server-notification] Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:5) Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :id 5 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Fetching"))
> [client-reply] (id:5) Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :id 5 :result nil)
> [server-notification] Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "begin" :title "Fetching" :cancellable :json-false)))
> [server-notification] Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "report" :cancellable :json-false :message "metadata")))
> [server-notification] Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Fetching" :value
>           (:kind "end")))
> [server-request] (id:6) Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :id 6 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Loading"))
> [client-reply] (id:6) Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :id 6 :result nil)
> [server-notification] Wed May 10 21:30:17 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "begin" :title "Loading" :cancellable :json-false)))
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "report" :cancellable :json-false :message "building
> proc-macros: tmp")))
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "report" :cancellable :json-false :message "building
> proc-macros: tmp")))
> [server-request] (id:7) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 7 :method "client/registerCapability" :params
>       (:registrations
>        [(:id "workspace/didChangeWatchedFiles" :method
> "workspace/didChangeWatchedFiles" :registerOptions
>          (:watchers
>           [(:globPattern "/home/misha/sweet/repos/tmp/**/*.rs")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.toml")
>            (:globPattern "/home/misha/sweet/repos/tmp/**/Cargo.lock")]))]))
> [client-reply] (id:7) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 7 :result nil)
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Loading" :value
>           (:kind "end")))
> [server-request] (id:8) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 8 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Roots Scanned"))
> [client-reply] (id:8) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 8 :result nil)
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "begin" :title "Roots Scanned" :cancellable
> :json-false :message "0/2" :percentage 0)))
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "report" :cancellable :json-false :message "1/2"
> :percentage 50)))
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Roots Scanned" :value
>           (:kind "end" :message "2/2")))
> [server-request] (id:9) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 9 :method "window/workDoneProgress/create" :params
>       (:token "rustAnalyzer/Indexing"))
> [client-reply] (id:9) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 9 :result nil)
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "begin" :title "Indexing" :cancellable :json-false
> :percentage 0)))
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "0/5 (core
> + 1 more)" :percentage 0)))
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "1/5
> (core)" :percentage 20)))
> [server-request] (id:10) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 10 :method "window/workDoneProgress/create" :params
>       (:token "rust-analyzer/flycheck/0"))
> [client-reply] (id:10) Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :id 10 :result nil)
> [server-notification] Wed May 10 21:30:18 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "begin" :title "cargo check" :cancellable t)))
> [server-notification] Wed May 10 21:30:19 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "report" :cancellable t :message "tmp")))
> [server-notification] Wed May 10 21:30:19 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "report" :cancellable t :message "tmp")))
> [server-notification] Wed May 10 21:30:19 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "end")))
> [server-notification] Wed May 10 21:30:20 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "2/5
> (alloc)" :percentage 40)))
> [server-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 60)))
> [server-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "3/5
> (std)" :percentage 60)))
> [server-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 80)))
> [server-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :message "4/5
> (proc_macro)" :percentage 80)))
> [client-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/[email-masked]%3A1683769648"
> :type 1)]))
> [client-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/[email-masked]%3A1683769648"
> :type 1)]))
> [server-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "report" :cancellable :json-false :percentage 100)))
> [server-notification] Wed May 10 21:30:21 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rustAnalyzer/Indexing" :value
>           (:kind "end")))
> [server-reply] (id:5) Wed May 10 21:30:23 2023:
> (:jsonrpc "2.0" :id 5 :result
>       [])
> [server-notification] Wed May 10 21:30:23 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         []
>         :version 0))
> [client-notification] Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :method "textDocument/didChange" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 9)
>        :contentChanges
>        [(:range
>          (:start
>           (:line 0 :character 0)
>           :end
>           (:line 0 :character 0))
>          :rangeLength 0 :text "\n")
>         (:range
>          (:start
>           (:line 1 :character 0)
>           :end
>           (:line 1 :character 0))
>          :rangeLength 0 :text "\n")
>         (:range
>          (:start
>           (:line 0 :character 0)
>           :end
>           (:line 0 :character 0))
>          :rangeLength 0 :text "m")
>         (:range
>          (:start
>           (:line 0 :character 1)
>           :end
>           (:line 0 :character 1))
>          :rangeLength 0 :text "d")
>         (:range
>          (:start
>           (:line 0 :character 1)
>           :end
>           (:line 0 :character 2))
>          :rangeLength 1 :text "")
>         (:range
>          (:start
>           (:line 0 :character 1)
>           :end
>           (:line 0 :character 1))
>          :rangeLength 0 :text "d")
>         (:range
>          (:start
>           (:line 0 :character 2)
>           :end
>           (:line 0 :character 2))
>          :rangeLength 0 :text " ")
>         (:range
>          (:start
>           (:line 0 :character 2)
>           :end
>           (:line 0 :character 3))
>          :rangeLength 1 :text "")
>         (:range
>          (:start
>           (:line 0 :character 1)
>           :end
>           (:line 0 :character 2))
>          :rangeLength 1 :text "")]))
> [client-request] (id:6) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 6 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 1)))
> [client-request] (id:7) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 7 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 1)))
> [client-request] (id:8) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 8 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 1)))
> [client-request] (id:9) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 9 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 5 :character 0))))
> [server-reply] (id:6) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 6 :result nil)
> [server-reply] (id:7) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 7 :result nil)
> [server-reply] (id:8) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 8 :result nil)
> [server-reply] (id:9) Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :id 9 :result
>       [])
> [server-notification] Wed May 10 21:30:24 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 1)
>            :end
>            (:line 0 :character 1))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected BANG")
>          (:range
>           (:start
>            (:line 0 :character 1)
>            :end
>            (:line 0 :character 1))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected
> `{`, `[`, `(`")
>          (:range
>           (:start
>            (:line 0 :character 1)
>            :end
>            (:line 0 :character 1))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected SEMICOLON")]
>         :version 9))
> [client-notification] Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :method "textDocument/didChange" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 12)
>        :contentChanges
>        [(:range
>          (:start
>           (:line 0 :character 1)
>           :end
>           (:line 0 :character 1))
>          :rangeLength 0 :text "o")
>         (:range
>          (:start
>           (:line 0 :character 2)
>           :end
>           (:line 0 :character 2))
>          :rangeLength 0 :text "d")
>         (:range
>          (:start
>           (:line 0 :character 3)
>           :end
>           (:line 0 :character 3))
>          :rangeLength 0 :text " ")]))
> [client-request] (id:10) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 10 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 4)))
> [client-request] (id:11) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 11 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 4)))
> [client-request] (id:12) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 12 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 4)))
> [client-request] (id:13) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 13 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 5 :character 0))))
> [server-notification] Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 2 :character 0)
>            :end
>            (:line 2 :character 0))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected a name")
>          (:range
>           (:start
>            (:line 2 :character 2)
>            :end
>            (:line 2 :character 2))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected `;` or `{`")
>          (:range
>           (:start
>            (:line 2 :character 7)
>            :end
>            (:line 2 :character 7))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected BANG")
>          (:range
>           (:start
>            (:line 2 :character 9)
>            :end
>            (:line 2 :character 9))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected SEMICOLON")
>          (:range
>           (:start
>            (:line 2 :character 10)
>            :end
>            (:line 2 :character 10))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected an item")]
>         :version 12))
> [server-reply] (id:10) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 10 :result nil)
> [server-reply] (id:11) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 11 :result nil)
> [server-reply] (id:12) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 12 :result nil)
> [server-reply] (id:13) Wed May 10 21:30:25 2023:
> (:jsonrpc "2.0" :id 13 :result
>       [])
> [client-notification] Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :method "textDocument/didChange" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 15)
>        :contentChanges
>        [(:range
>          (:start
>           (:line 0 :character 4)
>           :end
>           (:line 0 :character 4))
>          :rangeLength 0 :text "t")
>         (:range
>          (:start
>           (:line 0 :character 5)
>           :end
>           (:line 0 :character 5))
>          :rangeLength 0 :text "m")
>         (:range
>          (:start
>           (:line 0 :character 6)
>           :end
>           (:line 0 :character 6))
>          :rangeLength 0 :text "p")]))
> [client-request] (id:14) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 14 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 7)))
> [client-request] (id:15) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 15 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 7)))
> [client-request] (id:16) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 16 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 7)))
> [client-request] (id:17) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 17 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 5 :character 0))))
> [server-notification] Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 7)
>            :end
>            (:line 0 :character 7))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected `;` or `{`")]
>         :version 15))
> [server-reply] (id:14) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 14 :result nil)
> [server-reply] (id:17) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 17 :result
>       [])
> [server-reply] (id:15) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 15 :result
>       (:contents
>        (:kind "plaintext" :value "tmp\n\nmod tmp")
>        :range
>        (:start
>         (:line 0 :character 4)
>         :end
>         (:line 0 :character 7))))
> [server-reply] (id:16) Wed May 10 21:30:27 2023:
> (:jsonrpc "2.0" :id 16 :result
>       [(:range
>         (:start
>          (:line 0 :character 4)
>          :end
>          (:line 0 :character 7)))])
> [internal] (id:18) Wed May 10 21:30:29 2023:
> (:deferring :textDocument/signatureHelp :id 18 :params
>         (:textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>          :position
>          (:line 0 :character 8)))
> [internal] (id:19) Wed May 10 21:30:29 2023:
> (:deferring :textDocument/hover :id 19 :params
>         (:textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>          :position
>          (:line 0 :character 8)))
> [internal] (id:20) Wed May 10 21:30:29 2023:
> (:deferring :textDocument/documentHighlight :id 20 :params
>         (:textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>          :position
>          (:line 0 :character 8)))
> [client-notification] Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :method "textDocument/didChange" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 16)
>        :contentChanges
>        [(:range
>          (:start
>           (:line 0 :character 7)
>           :end
>           (:line 0 :character 7))
>          :rangeLength 0 :text ";")]))
> [internal] Wed May 10 21:30:29 2023:
> (:maybe-run-deferred
>  (20 19 18))
> [client-request] (id:20) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 20 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 8)))
> [client-request] (id:19) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 19 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 8)))
> [client-request] (id:18) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 18 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 8)))
> [client-request] (id:21) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 21 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 5 :character 0))))
> [server-reply] (id:20) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 20 :result nil)
> [server-reply] (id:19) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 19 :result nil)
> [server-reply] (id:18) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 18 :result nil)
> [server-notification] Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 8))
>           :severity 1 :code "unresolved-module" :codeDescription
>           (:href
> "https://rust-analyzer.github.io/manual.html#unresolved-module")
>           :source "rust-analyzer" :message "unresolved module, can't
> find module file: tmp.rs, or tmp/mod.rs")]
>         :version 16))
> [server-reply] (id:21) Wed May 10 21:30:29 2023:
> (:jsonrpc "2.0" :id 21 :result
>       [])
> [client-notification] Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :method "textDocument/didChange" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 19)
>        :contentChanges
>        [(:range
>          (:start
>           (:line 0 :character 6)
>           :end
>           (:line 0 :character 7))
>          :rangeLength 1 :text "")
>         (:range
>          (:start
>           (:line 0 :character 5)
>           :end
>           (:line 0 :character 6))
>          :rangeLength 1 :text "")
>         (:range
>          (:start
>           (:line 0 :character 4)
>           :end
>           (:line 0 :character 5))
>          :rangeLength 1 :text "")]))
> [client-request] (id:22) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 22 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 4)))
> [client-request] (id:23) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 23 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 4)))
> [client-request] (id:24) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 24 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 4)))
> [client-request] (id:25) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 25 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 5 :character 0))))
> [server-notification] Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 4)
>            :end
>            (:line 0 :character 4))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected a name")
>          (:range
>           (:start
>            (:line 0 :character 5)
>            :end
>            (:line 0 :character 5))
>           :severity 1 :code "syntax-error" :codeDescription
>           (:href "https://rust-analyzer.github.io/manual.html#syntax-error")
>           :source "rust-analyzer" :message "Syntax Error: expected `;` or `{`")]
>         :version 19))
> [server-reply] (id:22) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 22 :result nil)
> [server-reply] (id:23) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 23 :result nil)
> [server-reply] (id:24) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 24 :result nil)
> [server-reply] (id:25) Wed May 10 21:30:31 2023:
> (:jsonrpc "2.0" :id 25 :result
>       [])
> [client-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "textDocument/didChange" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :version 24)
>        :contentChanges
>        [(:range
>          (:start
>           (:line 0 :character 4)
>           :end
>           (:line 0 :character 4))
>          :rangeLength 0 :text "t")
>         (:range
>          (:start
>           (:line 0 :character 5)
>           :end
>           (:line 0 :character 5))
>          :rangeLength 0 :text "h")
>         (:range
>          (:start
>           (:line 0 :character 6)
>           :end
>           (:line 0 :character 6))
>          :rangeLength 0 :text "i")
>         (:range
>          (:start
>           (:line 0 :character 7)
>           :end
>           (:line 0 :character 7))
>          :rangeLength 0 :text "n")
>         (:range
>          (:start
>           (:line 0 :character 8)
>           :end
>           (:line 0 :character 8))
>          :rangeLength 0 :text "g")]))
> [client-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "textDocument/didSave" :params
>       (:text "mod thing;\n\nfn main() {\n   println!(\"Hello
> world\");\n}\n" :textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")))
> [server-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "unresolved-module" :codeDescription
>           (:href
> "https://rust-analyzer.github.io/manual.html#unresolved-module")
>           :source "rust-analyzer" :message "unresolved module, can't
> find module file: thing.rs, or thing/mod.rs")]
>         :version 24))
> [client-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/main.rs" :type 2)]))
> [client-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/main.rs" :type 2)]))
> [client-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/.%23main.rs" :type 3)]))
> [client-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
>       (:changes
>        [(:uri "file:///home/misha/sweet/repos/tmp/.%23main.rs" :type 3)]))
> [server-request] (id:11) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 11 :method "window/workDoneProgress/create" :params
>       (:token "rust-analyzer/flycheck/0"))
> [client-reply] (id:11) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 11 :result nil)
> [server-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "begin" :title "cargo check" :cancellable t)))
> [server-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
>       (:uri "file:///home/misha/sweet/repos/tmp/main.rs" :diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "unresolved-module" :codeDescription
>           (:href
> "https://rust-analyzer.github.io/manual.html#unresolved-module")
>           :source "rust-analyzer" :message "unresolved module, can't
> find module file: thing.rs, or thing/mod.rs")
>          (:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "E0583" :codeDescription
>           (:href "https://doc.rust-lang.org/error-index.html#E0583")
>           :source "rustc" :message "file not found for module
> `thing`\nto create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"" :data
>           (:rendered "error[E0583]: file not found for module
> `thing`\n --> main.rs:1:1\n  |\n1 | mod thing;\n  | ^^^^^^^^^^\n  |\n
> = help: to create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"\n\n"))]
>         :version 24))
> [server-notification] Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :method "$/progress" :params
>       (:token "rust-analyzer/flycheck/0" :value
>           (:kind "end")))
> [client-request] (id:26) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 26 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 9)))
> [client-request] (id:27) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 27 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 9)))
> [client-request] (id:28) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 28 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 9)))
> [client-request] (id:29) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 29 :method "textDocument/inlayHint" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 0)
>         :end
>         (:line 5 :character 0))))
> [server-reply] (id:26) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 26 :result nil)
> [server-reply] (id:27) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 27 :result
>       (:contents
>        (:kind "plaintext" :value "tmp\n\nmod thing")
>        :range
>        (:start
>         (:line 0 :character 4)
>         :end
>         (:line 0 :character 9))))
> [server-reply] (id:28) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 28 :result
>       [(:range
>         (:start
>          (:line 0 :character 4)
>          :end
>          (:line 0 :character 9)))])
> [server-reply] (id:29) Wed May 10 21:30:33 2023:
> (:jsonrpc "2.0" :id 29 :result
>       [])
> [internal] (id:18) Wed May 10 21:30:39 2023:
> (:timed-out :textDocument/signatureHelp :id 18 :params
>         (:textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>          :position
>          (:line 0 :character 8)))
> [internal] (id:19) Wed May 10 21:30:39 2023:
> (:timed-out :textDocument/hover :id 19 :params
>         (:textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>          :position
>          (:line 0 :character 8)))
> [internal] (id:20) Wed May 10 21:30:39 2023:
> (:timed-out :textDocument/documentHighlight :id 20 :params
>         (:textDocument
>          (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>          :position
>          (:line 0 :character 8)))
> [client-request] (id:30) Wed May 10 21:30:40 2023:
> (:jsonrpc "2.0" :id 30 :method "textDocument/codeAction" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 4)
>         :end
>         (:line 0 :character 9))
>        :context
>        (:diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "E0583" :codeDescription
>           (:href "https://doc.rust-lang.org/error-index.html#E0583")
>           :source "rustc" :message "file not found for module
> `thing`\nto create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"" :data
>           (:rendered "error[E0583]: file not found for module
> `thing`\n --> main.rs:1:1\n  |\n1 | mod thing;\n  | ^^^^^^^^^^\n  |\n
> = help: to create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"\n\n"))
>          (:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "unresolved-module" :codeDescription
>           (:href
> "https://rust-analyzer.github.io/manual.html#unresolved-module")
>           :source "rust-analyzer" :message "unresolved module, can't
> find module file: thing.rs, or thing/mod.rs")])))
> [server-reply] (id:30) Wed May 10 21:30:41 2023:
> (:jsonrpc "2.0" :id 30 :result
>       [(:title "Create module at `thing.rs`" :kind "quickfix" :edit
>            (:documentChanges
>             [(:kind "create" :uri
> "file:///home/misha/sweet/repos/tmp/thing.rs")]))
>        (:title "Create module at `thing/mod.rs`" :kind "quickfix" :edit
>            (:documentChanges
>             [(:kind "create" :uri
> "file:///home/misha/sweet/repos/tmp/thing/mod.rs")]))])
> [client-request] (id:31) Wed May 10 21:30:43 2023:
> (:jsonrpc "2.0" :id 31 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 9)))
> [client-request] (id:32) Wed May 10 21:30:43 2023:
> (:jsonrpc "2.0" :id 32 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 9)))
> [client-request] (id:33) Wed May 10 21:30:43 2023:
> (:jsonrpc "2.0" :id 33 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 9)))
> [server-reply] (id:31) Wed May 10 21:30:43 2023:
> (:jsonrpc "2.0" :id 31 :result nil)
> [server-reply] (id:32) Wed May 10 21:30:43 2023:
> (:jsonrpc "2.0" :id 32 :result
>       (:contents
>        (:kind "plaintext" :value "tmp\n\nmod thing")
>        :range
>        (:start
>         (:line 0 :character 4)
>         :end
>         (:line 0 :character 9))))
> [server-reply] (id:33) Wed May 10 21:30:43 2023:
> (:jsonrpc "2.0" :id 33 :result
>       [(:range
>         (:start
>          (:line 0 :character 4)
>          :end
>          (:line 0 :character 9)))])
> [client-request] (id:34) Wed May 10 21:31:45 2023:
> (:jsonrpc "2.0" :id 34 :method "textDocument/codeAction" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :range
>        (:start
>         (:line 0 :character 4)
>         :end
>         (:line 0 :character 9))
>        :context
>        (:diagnostics
>         [(:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "E0583" :codeDescription
>           (:href "https://doc.rust-lang.org/error-index.html#E0583")
>           :source "rustc" :message "file not found for module
> `thing`\nto create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"" :data
>           (:rendered "error[E0583]: file not found for module
> `thing`\n --> main.rs:1:1\n  |\n1 | mod thing;\n  | ^^^^^^^^^^\n  |\n
> = help: to create the module `thing`, create file \"thing.rs\" or
> \"thing/mod.rs\"\n\n"))
>          (:range
>           (:start
>            (:line 0 :character 0)
>            :end
>            (:line 0 :character 10))
>           :severity 1 :code "unresolved-module" :codeDescription
>           (:href
> "https://rust-analyzer.github.io/manual.html#unresolved-module")
>           :source "rust-analyzer" :message "unresolved module, can't
> find module file: thing.rs, or thing/mod.rs")])))
> [server-reply] (id:34) Wed May 10 21:31:45 2023:
> (:jsonrpc "2.0" :id 34 :result
>       [(:title "Create module at `thing.rs`" :kind "quickfix" :edit
>            (:documentChanges
>             [(:kind "create" :uri
> "file:///home/misha/sweet/repos/tmp/thing.rs")]))
>        (:title "Create module at `thing/mod.rs`" :kind "quickfix" :edit
>            (:documentChanges
>             [(:kind "create" :uri
> "file:///home/misha/sweet/repos/tmp/thing/mod.rs")]))])
> [client-request] (id:35) Wed May 10 21:38:05 2023:
> (:jsonrpc "2.0" :id 35 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 10)))
> [client-request] (id:36) Wed May 10 21:38:05 2023:
> (:jsonrpc "2.0" :id 36 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 10)))
> [client-request] (id:37) Wed May 10 21:38:05 2023:
> (:jsonrpc "2.0" :id 37 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 0 :character 10)))
> [server-reply] (id:35) Wed May 10 21:38:05 2023:
> (:jsonrpc "2.0" :id 35 :result nil)
> [server-reply] (id:36) Wed May 10 21:38:05 2023:
> (:jsonrpc "2.0" :id 36 :result nil)
> [server-reply] (id:37) Wed May 10 21:38:05 2023:
> (:jsonrpc "2.0" :id 37 :result nil)
> [client-request] (id:38) Wed May 10 21:38:08 2023:
> (:jsonrpc "2.0" :id 38 :method "textDocument/signatureHelp" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 5 :character 0)))
> [client-request] (id:39) Wed May 10 21:38:08 2023:
> (:jsonrpc "2.0" :id 39 :method "textDocument/hover" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 5 :character 0)))
> [client-request] (id:40) Wed May 10 21:38:08 2023:
> (:jsonrpc "2.0" :id 40 :method "textDocument/documentHighlight" :params
>       (:textDocument
>        (:uri "file:///home/misha/sweet/repos/tmp/main.rs")
>        :position
>        (:line 5 :character 0)))
> [server-reply] (id:38) Wed May 10 21:38:08 2023:
> (:jsonrpc "2.0" :id 38 :result nil)
> [server-reply] (id:39) Wed May 10 21:38:08 2023:
> (:jsonrpc "2.0" :id 39 :result nil)
> [server-reply] (id:40) Wed May 10 21:38:08 2023:
> (:jsonrpc "2.0" :id 40 :result nil)
> ```
>
> There's nothing in `M-x eglot-stderr-buffer`
>
>
> In GNU Emacs 29.0.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version
>  3.24.33, cairo version 1.16.0) of 2023-05-10 built on misha-N552VX
> Repository revision: 93005cd9dc2bab882e66ac7b81f593cd6c021e43
> Repository branch: emacs-29
> Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
> System Description: Ubuntu 22.04.2 LTS
>
> Configured using:
>  'configure --with-json --with-cairo --with-xwidgets
>  --prefix=/opt/emacs/ --with-x-toolkit=gtk3 --with-tree-sitter
>  --with-native-compilation --with-modules'
>
> Configured features:
> CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
> LIBSELINUX LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG
> SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11
> XDBE XIM XINPUT2 XPM XWIDGETS GTK3 ZLIB
>
> Important settings:
>   value of $LANG: en_CA.UTF-8
>   value of $XMODIFIERS: @im=ibus
>   locale-coding-system: utf-8-unix
>
> Major mode: Rust
>
> Minor modes in effect:
>   eglot-inlay-hints-mode: t
>   eglot--managed-mode: t
>   flymake-mode: t
>   tooltip-mode: t
>   global-eldoc-mode: t
>   eldoc-mode: t
>   show-paren-mode: t
>   electric-indent-mode: t
>   mouse-wheel-mode: t
>   tool-bar-mode: t
>   menu-bar-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   blink-cursor-mode: t
>   line-number-mode: t
>   transient-mark-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>
> Load-path shadows:
> None found.
>
> Features:
> (shadow sort mail-extr help-fns radix-tree cl-print cus-start cus-load
> emacsbug message mailcap yank-media puny rfc822 mml mml-sec epa derived
> epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode
> mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
> rfc2045 ietf-drums mm-util mail-prsvr mail-utils files-x find-dired grep
> misearch multi-isearch vc-git diff-mode easy-mmode vc-dispatcher
> conf-mode time-date eglot external-completion array filenotify jsonrpc
> ert pp ewoc debug backtrace find-func xref flymake-proc flymake
> thingatpt compile text-property-search comint ansi-osc ansi-color ring
> pcase url-util url-parse auth-source eieio eieio-core password-cache
> json map url-vars project byte-opt imenu rust-ts-mode c-ts-common
> treesit dired-aux cl-loaddefs comp comp-cstr warnings icons subr-x rx
> cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile cl-lib dired
> dired-loaddefs rmc iso-transl tooltip cconv eldoc paren electric
> uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
> term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
> regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
> prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
> timer select scroll-bar mouse jit-lock font-lock syntax font-core
> term/tty-colors frame minibuffer nadvice seq simple cl-generic
> indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
> tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
> romanian slovak czech european ethiopic indian cyrillic chinese
> composite emoji-zwj charscript charprop case-table epa-hook
> jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
> theme-loaddefs faces cus-face macroexp files window text-properties
> overlay sha1 md5 base64 format env code-pages mule custom widget keymap
> hashtable-print-readable backquote threads xwidget-internal dbusbind
> inotify dynamic-setting system-font-setting font-render-setting cairo
> move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
> native-compile emacs)
>
> Memory information:
> ((conses 16 156384 23572)
>  (symbols 48 13274 0)
>  (strings 32 39865 2264)
>  (string-bytes 1 1247909)
>  (vectors 16 27590)
>  (vector-slots 8 541569 23397)
>  (floats 8 51 48)
>  (intervals 56 943 0)
>  (buffers 984 23))