## 事象 [[Neovim]] + [[Lspsaga]] + [[markdown-oxide]]で `:Lspsaga hover_doc` を実行し、[[フローティングウィンドウ (Neovim)|フローティングウィンドウ]]で[[Markdown]]のdocsを表示すると、以下のようなエラーが出ることがある。情報量が多い時だけ表示される印象がある。 ```warning Client markdown_oxide quit with exit code 101 and signal 0. Check log for errors: /Users/tadashi-aikawa/.local/state/nvim/lsp.log ``` 該当のログを表示するとERRORが。 ```error [ERROR][2026-01-11 11:36:41] ...p/_transport.lua:36 "rpc" "markdown-oxide" "stderr" "\nthread 'main' panicked at src/vault/mod.rs:597:14:\nfile should have file stem\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n" ``` 特に設定は入れていない。 `nvim/after/lsp/markdown_oxide.lua` ```lua return {} ``` なお、docsはちゃんと表示されているように見える。 ### 環境 | 対象 | バージョン | | ------------------ | --------- | | [[macOS]] | 15.7.2 | | [[Neovim]] | 0.11.5 | | [[Lspsaga]] | `8efe00d` | | [[markdown-oxide]] | 0.25.9 | | [[nvim-lspconfig]] | `92ee7d4` | ## 原因 [[フローティングウィンドウ (Neovim)|フローティングウィンドウ]]の[[ファイルタイプ (Vim)|ファイルタイプ]]が `markdown` になっているため、[[markdown-oxide]]が[[マークダウンファイル]]としてファイル名を取得しようとしているが、実際にファイルは存在していないからと思われる。 [[markdown-oxide]]の `src/vault/mod.rs` の 592行目付近に実装がある。 ```rust impl MDFile { fn new(context: &Settings, text: &str, path: PathBuf) -> MDFile { let code_blocks = MDCodeBlock::new(text).collect_vec(); let file_name = path .file_stem() .expect("file should have file stem") .to_str() .unwrap_or_default(); ``` ## 解決方法 > [!unresolved] > 不明 [[Marksman]]を使えば問題ないが、回避策とは言えない。