en un clic
en un clic
| name | testing-zed |
| description | Test markdown-oxide LSP features in Zed |
markdown-oxide is an LSP server for markdown/Obsidian vaults. The Zed extension source is at https://github.com/Feel-ix-343/markdown-oxide-zed. It first checks PATH for the markdown-oxide binary via worktree.which(), then falls back to downloading from GitHub releases.
Verify that the markdown-oxide Zed extension works correctly by installing Zed, building the markdown-oxide binary, installing the extension, and testing LSP features (completions, go-to-definition, hover, tags) against the TestFiles/ directory. Testing is done in two recorded phases: first reproduce/demonstrate the current behavior, then validate the fix or expected behavior.
cd ~/repos/markdown-oxide && cargo build
sudo cp target/debug/markdown-oxide /usr/local/bin/markdown-oxide
Verify it's on PATH: which markdown-oxide
curl -fsSL https://zed.dev/install.sh | sh
Launch the Zed editor binary directly so you can capture logs:
RUST_LOG=info /home/ubuntu/.local/zed.app/libexec/zed-editor ~/repos/markdown-oxide/TestFiles > /tmp/zed.log 2>&1 &
Wait a few seconds for Zed to start, then check the screenshot to confirm it opened.
Ctrl+Shift+Xmarkdown-oxideZed opens projects in Restricted Mode which blocks language servers from starting. You MUST trust the project:
Without this, the LSP will NOT start. You can confirm the issue by checking /tmp/zed.log for:
Waiting for worktree "..." to be trusted, before starting language server markdown-oxide
After trusting, the log should show:
starting language server process. binary path: "/usr/local/bin/markdown-oxide"
Verify the LSP process is running: pgrep -a markdown-oxide
Open TestFiles/Test.md. Testing is split into two recorded phases:
Start a screen recording (recording_start). Demonstrate the current state of each feature before any fix. This establishes a baseline and captures any issues:
recording_stop) when doneAfter applying the fix (rebuild markdown-oxide, copy to PATH, restart LSP in Zed via Ctrl+Shift+P then editor: restart language server):
recording_start)recording_stop) when doneTest each feature:
[[[[Reso should show "Resolved File")[[This is another link]] (line 31)F12This is another link.mdCtrl+-![[This is another link#^9d273|test block link]] (line 24)#tatag, tag/subtag, tag/othersubtag, mapofcontent/tag, etc.# Heading 1Shift+F12 to find all references/backlinksAfter both recording phases are complete, post the recordings as comments on the PR:
Use git_comment_on_pr to post the Phase 1 recording with a comment like:
Phase 1: Reproducing current behavior in Zed
Use git_comment_on_pr to post the Phase 2 recording with a comment like:
Phase 2: Validating fix in Zed
This provides reviewers with visual evidence of the issue and its resolution.
Undo any test edits in the files. Report results to the user.
TestFiles/Test.md -- Main test file with headings, wiki links, block refs, tagsTestFiles/Resolved File.md -- Has # Resolved Heading and heading linksTestFiles/Another Test.md -- Has # This is a test heading and ## This is a nested test headingTestFiles/This is another link.md -- Target for wiki link navigation testsmarkdown-oxide) must be running (verify with pgrep)markdown-oxide binary via worktree.which(), then falls back to downloading from GitHub releases.Ctrl+Shift+P then dev: open language server logs to inspect LSP communication inside Zed.Ctrl+Shift+P then editor: restart language server if you need to restart the LSP.zed) just signals the running editor process -- to capture logs, launch the binary directly at ~/.local/zed.app/libexec/zed-editor.cargo build (debug) is much faster than cargo build --release -- use debug for testing iterations.Test markdown-oxide LSP changes by reproducing the issue and validating the fix in an editor (Neovim, Helix, or Zed).
Test markdown-oxide LSP features in Helix
Test markdown-oxide LSP features in Neovim