artempyanykh / marksman

Write Markdown with code assist and intelligence in the comfort of your favourite editor.
MIT License
1.98k stars 35 forks source link

No Symbol Outline & Document Not Found In Newer Versions Of Marksman (KDE Kate Text Editor) #227

Closed Megaguy32 closed 1 year ago

Megaguy32 commented 1 year ago

Hi, I use Marksman in the Kate text editor primarily for the symbols outline on singular markdown files (no git repo or marksman.toml). and the symbol outline (list of headings) has been working fine until a recent update.

Under the Symbol Outline section, it displays nothing. instead of the typical headings, and also instead of "No LSP server for this document". I now get a Document not found warning when I try to edit the file.

marksman version: 20230605-1 (latest arch package) I've tried using 2023-06-23 from releases as well, but same issue.

Kate LSP config: ~/.config/kate/lspclient/settings.json

{
    "servers": {
        "markdown": 
        {
            "command": ["marksman", "server"],
            "rootIndicatorFileNames": [".git", ".marksman.toml"],
            "url": "https://github.com/artempyanykh/marksman",
            "highlightingModeRegex": "^Markdown$"
        }
    }
}

Kate LSP log in output widget:

[11:06:08  LSP Client Log] Started server markdown@/home/ethan: /usr/bin/marksman server
[11:06:08  LSP Server Log] markdown@/home/ethan
[11:06:08 INF]  Starting Marksman LSP server: {}
[11:06:14  LSP Server Log] markdown@/home/ethan
[11:06:13 WRN]  Document not found: {"uri": "{ uri = \"file:///home/ethan/work/work.md\"\n  data = AbsPath \"/home/ethan/work/work.md\" }", "method": "textDocumentDidChange"}
artempyanykh commented 1 year ago

@Megaguy32 thanks for reporting. What was the last version that worked for you?

Megaguy32 commented 1 year ago

@artempyanykh last version to work is 2023-04-12. 2023-06-01 has the issue

artempyanykh commented 1 year ago

Ok, good to know! @Megaguy32 could you please change the command to "command": ["marksman", "server", "-v=5"], and paste LSP log from Kate? I have a feeling that something might be off with path resolution but need to see verbose output from Marksman to debug further.

Would be extra great if you could do it both with 2023-04-12 (working) and 2023-06-01 (buggy)!

Megaguy32 commented 1 year ago

2023-04-12

[12:55:21  LSP Client Log] Started server markdown@/home/ethan: /home/ethan/.local/bin/marksman server -v=5
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 INF]  Starting Marksman LSP server: {}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 VRB]  Preparing to start background agent: {}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 VRB]  StatusAgent starting: {}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 DBG]  Obtained workspace folders: {"workspace": []}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 VRB]  No user config found: {"path": "/home/ethan/.config/marksman/config.toml"}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 DBG]  Completed reading workspace folders: {"numNotes": 0, "numFolders": 0}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 DBG]  Configured text sync: {"kind": "Full", "source": "default"}
[12:55:21  LSP Server Log] markdown@/home/ethan
[12:55:21 DBG]  Finished workspace initialization. Waiting for the `initialized` notification from the client.: {}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Received a message: {"type": "MutateState"}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 DBG]  Received `initialized` notification from the client. Setting up background services.: {}
[12:55:22 DBG]  Client doesn't support status notifications. Agent won't be initialized.: {}
[12:55:22 DBG]  Initialization complete.: {}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Processing a hook: {"curRev": 0, "prevRev": null, "name": "diag"}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Adding a hook: {"name": "diag"}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Received a message: {"type": "MutateState"}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Updating state: {"nextRev": 1, "curRev": 0}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Processing a hook: {"curRev": 1, "prevRev": "Some(0)", "name": "diag"}
[12:55:22 VRB]  Received a message: {"type": "ReadState"}
[12:55:22 VRB]  Received a message: {"type": "ReadState"}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Updating folder diag: {"num_docs": 1, "folder": "FolderId { uri = \"file:///home/ethan/work/work.md\"\n           localPath = \"/home/ethan/work/work.md\" }"}
[12:55:22  LSP Server Log] markdown@/home/ethan
[12:55:22 VRB]  Received a message: {"type": "ReadState"}
[12:55:28  LSP Server Log] markdown@/home/ethan
[12:55:28 VRB]  Received a message: {"type": "MutateState"}
[12:55:28  LSP Server Log] markdown@/home/ethan
[12:55:28 VRB]  Processing text change: {"newVersion": "Some(1)", "currentVersion": "Some(0)", "uri": "{ uri = \"file:///home/ethan/work/work.md\"\n  localPath = \"/home/ethan/work/work.md\" }"}
[12:55:28  LSP Server Log] markdown@/home/ethan
[12:55:28 VRB]  Updating state: {"nextRev": 2, "curRev": 1}
[12:55:28 VRB]  Processing a hook: {"curRev": 2, "prevRev": "Some(1)", "name": "diag"}
[12:55:28 VRB]  Received a message: {"type": "ReadState"}
[12:55:28  LSP Server Log] markdown@/home/ethan
[12:55:28 VRB]  Updating folder diag: {"num_docs": 1, "folder": "FolderId { uri = \"file:///home/ethan/work/work.md\"\n           localPath = \"/home/ethan/work/work.md\" }"}
[12:55:28  LSP Server Log] markdown@/home/ethan
[12:55:28 VRB]  Received a message: {"type": "ReadState"}

2023-06-01

[12:59:20  LSP Client Log] Started server markdown@/home/ethan: /home/ethan/.local/bin/marksman server -v=5
[12:59:20  LSP Server Log] markdown@/home/ethan
[12:59:20 INF]  Starting Marksman LSP server: {}
[12:59:20  LSP Server Log] markdown@/home/ethan
[12:59:20 VRB]  Preparing to start background agent: {}
[12:59:20  LSP Server Log] markdown@/home/ethan
[12:59:20 VRB]  StatusAgent starting: {}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 DBG]  Obtained workspace folders: {"workspace": []}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  No user config found: {"path": "/home/ethan/.config/marksman/config.toml"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 DBG]  Completed reading workspace folders: {"numNotes": 0, "numFolders": 0}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 DBG]  Configured text sync: {"kind": "Full", "source": "default"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 DBG]  Finished workspace initialization. Waiting for the `initialized` notification from the client.: {}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Received a message: {"type": "MutateState"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 DBG]  Received `initialized` notification from the client. Setting up background services.: {}
[12:59:21 DBG]  Client doesn't support status notifications. Agent won't be initialized.: {}
[12:59:21 DBG]  Initialization complete.: {}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Processing a hook: {"curRev": 0, "prevRev": null, "name": "diag"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Adding a hook: {"name": "diag"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Received a message: {"type": "MutateState"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Updating state: {"nextRev": 1, "curRev": 0}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Processing a hook: {"curRev": 1, "prevRev": "Some(0)", "name": "diag"}
[12:59:21 VRB]  Received a message: {"type": "ReadState"}
[12:59:21 VRB]  Received a message: {"type": "ReadState"}
[12:59:21  LSP Server Log] markdown@/home/ethan
[12:59:21 VRB]  Updating folder diag: {"num_docs": 1, "folder": "{ uri = \"file:///home/ethan/work/work.md/.\"\n  data = RootPath (AbsPath \"/home/ethan/work/work.md/.\") }"}
[12:59:26  LSP Server Log] markdown@/home/ethan
[12:59:26 VRB]  Received a message: {"type": "MutateState"}
[12:59:26  LSP Server Log] markdown@/home/ethan
[12:59:26 WRN]  Document not found: {"uri": "{ uri = \"file:///home/ethan/work/work.md\"\n  data = AbsPath \"/home/ethan/work/work.md\" }", "method": "textDocumentDidChange"}
[12:59:26 VRB]  Received a message: {"type": "ReadState"}
[12:59:26  LSP Server Log] markdown@/home/ethan
[12:59:26 VRB]  Received a message: {"type": "ReadState"}
artempyanykh commented 1 year ago

This is super-helpful @Megaguy32, thanks!

It seems the problem is in single-file mode. As a work-around you may want to create .marksman.toml inside /home/ethan/work -- I think this should fix path resolution problem. (more on this here https://github.com/artempyanykh/marksman/blob/main/docs/features.md#workspace-folders-project-roots-and-single-file-mode)

Megaguy32 commented 1 year ago

@artempyanykh

using v2023-06-01 working in a test folder now

despite making the file, the issue persists

touch .marksman.toml
[15:57:24  LSP Client Log] Started server markdown@/home/ethan: /home/ethan/.local/bin/marksman server -v=5
[15:57:24  LSP Server Log] markdown@/home/ethan
[15:57:24 INF]  Starting Marksman LSP server: {}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  StatusAgent starting: {}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Preparing to start background agent: {}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 DBG]  Obtained workspace folders: {"workspace": []}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  No user config found: {"path": "/home/ethan/.config/marksman/config.toml"}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 DBG]  Completed reading workspace folders: {"numNotes": 0, "numFolders": 0}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 DBG]  Configured text sync: {"kind": "Full", "source": "default"}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 DBG]  Finished workspace initialization. Waiting for the `initialized` notification from the client.: {}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Received a message: {"type": "MutateState"}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 DBG]  Received `initialized` notification from the client. Setting up background services.: {}
[15:57:25 DBG]  Client doesn't support status notifications. Agent won't be initialized.: {}
[15:57:25 DBG]  Initialization complete.: {}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Processing a hook: {"curRev": 0, "prevRev": null, "name": "diag"}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Adding a hook: {"name": "diag"}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Received a message: {"type": "MutateState"}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Updating state: {"nextRev": 1, "curRev": 0}
[15:57:25  LSP Server Log] markdown@/home/ethan
[15:57:25 VRB]  Processing a hook: {"curRev": 1, "prevRev": "Some(0)", "name": "diag"}
[15:57:25 VRB]  Received a message: {"type": "ReadState"}
[15:57:25 VRB]  Received a message: {"type": "ReadState"}
[15:57:26  LSP Server Log] markdown@/home/ethan
[15:57:26 VRB]  Updating folder diag: {"num_docs": 1, "folder": "{ uri = \"file:///home/ethan/test/test.md/.\"\n  data = RootPath (AbsPath \"/home/ethan/test/test.md/.\") }"}
[15:57:29  LSP Server Log] markdown@/home/ethan
[15:57:29 VRB]  Received a message: {"type": "MutateState"}
[15:57:29  LSP Server Log] markdown@/home/ethan
[15:57:29 WRN]  Document not found: {"uri": "{ uri = \"file:///home/ethan/test/test.md\"\n  data = AbsPath \"/home/ethan/test/test.md\" }", "method": "textDocumentDidChange"}
[15:57:29 VRB]  Received a message: {"type": "ReadState"}
[15:57:29  LSP Server Log] markdown@/home/ethan
[15:57:29 VRB]  Received a message: {"type": "ReadState"}

but making a git repo solves the problem

rm .marksman.toml
git init
[15:58:06  LSP Client Log] Started server markdown@/home/ethan: /home/ethan/.local/bin/marksman server -v=5
[15:58:06  LSP Server Log] markdown@/home/ethan
[15:58:06 INF]  Starting Marksman LSP server: {}
[15:58:06  LSP Server Log] markdown@/home/ethan
[15:58:06 VRB]  StatusAgent starting: {}
[15:58:06  LSP Server Log] markdown@/home/ethan
[15:58:06 VRB]  Preparing to start background agent: {}
[15:58:06  LSP Server Log] markdown@/home/ethan
[15:58:06 DBG]  Obtained workspace folders: {"workspace": []}
[15:58:06  LSP Server Log] markdown@/home/ethan
[15:58:06 VRB]  No user config found: {"path": "/home/ethan/.config/marksman/config.toml"}
[15:58:06  LSP Server Log] markdown@/home/ethan
[15:58:06 DBG]  Completed reading workspace folders: {"numNotes": 0, "numFolders": 0}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 DBG]  Configured text sync: {"kind": "Full", "source": "default"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 DBG]  Finished workspace initialization. Waiting for the `initialized` notification from the client.: {}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Received a message: {"type": "MutateState"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 DBG]  Received `initialized` notification from the client. Setting up background services.: {}
[15:58:07 DBG]  Client doesn't support status notifications. Agent won't be initialized.: {}
[15:58:07 DBG]  Initialization complete.: {}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Processing a hook: {"curRev": 0, "prevRev": null, "name": "diag"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Adding a hook: {"name": "diag"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Received a message: {"type": "MutateState"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Updating workspace folders: {"numRemoved": 0, "numAdded": 1}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Loading folder documents: {"uri": "file:///home/ethan/test"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  No folder config found: {"path": "/home/ethan/test/.marksman.toml"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Skipping ignored directory: {"file": "/home/ethan/test/.git"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Updating state: {"nextRev": 1, "curRev": 0}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Processing a hook: {"curRev": 1, "prevRev": "Some(0)", "name": "diag"}
[15:58:07 VRB]  Received a message: {"type": "MutateState"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Updating state: {"nextRev": 2, "curRev": 1}
[15:58:07 VRB]  Processing a hook: {"curRev": 2, "prevRev": "Some(1)", "name": "diag"}
[15:58:07 VRB]  Received a message: {"type": "ReadState"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Received a message: {"type": "ReadState"}
[15:58:07  LSP Server Log] markdown@/home/ethan
[15:58:07 VRB]  Updating folder diag: {"num_docs": 1, "folder": "{ uri = \"file:///home/ethan/test\"\n  data = RootPath (AbsPath \"/home/ethan/test\") }"}
[15:58:09  LSP Server Log] markdown@/home/ethan
[15:58:09 VRB]  Received a message: {"type": "MutateState"}
[15:58:09  LSP Server Log] markdown@/home/ethan
[15:58:09 VRB]  Processing text change: {"newVersion": "Some(1)", "currentVersion": "Some(0)", "uri": "file:///home/ethan/test/test.md"}
[15:58:09  LSP Server Log] markdown@/home/ethan
[15:58:09 VRB]  Updating state: {"nextRev": 3, "curRev": 2}
[15:58:09 VRB]  Processing a hook: {"curRev": 3, "prevRev": "Some(2)", "name": "diag"}
[15:58:09 VRB]  Received a message: {"type": "ReadState"}
[15:58:09  LSP Server Log] markdown@/home/ethan
[15:58:09 VRB]  Updating folder diag: {"num_docs": 1, "folder": "{ uri = \"file:///home/ethan/test\"\n  data = RootPath (AbsPath \"/home/ethan/test\") }"}
[15:58:10  LSP Server Log] markdown@/home/ethan
[15:58:10 VRB]  Received a message: {"type": "ReadState"}
artempyanykh commented 1 year ago

Thanks @Megaguy32!

I reproduced the issue. Shouldn't take long to prepare a fix.

artempyanykh commented 1 year ago

@Megaguy32 I've cut a new release that should fix the problem: https://github.com/artempyanykh/marksman/releases/tag/2023-07-01 Feel free to reopen the issue if something's still not working.