## 事象
```
.
├── lib.py
└── main.py
```
`lib.py`
```python
def hoge():
print("hoge")
```
のとき、`main.py` で `hoge` と入力しても補完候補に `hoge()` が表示されない。
`nvim/after/lsp/pyright.lua`
```lua
return {}
```
### 環境
| 対象 | バージョン |
| ------------------ | --------- |
| [[macOS]] | 15.7.2 |
| [[Python]] | 3.13.11 |
| [[Neovim]] | 0.11.5 |
| [[nvim-lspconfig]] | `92ee7d4` |
| [[Pyright]] | 1.1.407 |
## 原因
[[nvim-lspconfig]]のデフォルト設定で、[[Pyright]]の[[diagnosticMode]]が `"openFilesOnly"` になっていたから。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
nvim-lspconfig/doc/configs.md at master · neovim/nvim-lspconfig
</div>
<div class="link-card-v2-content">
Quickstart configs for Nvim LSP. Contribute to neovim/nvim-lspconfig development by creating an account on GitHu ...
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/37bbe1eb3abfc3f194b8505e1078fac659bb02b0f0af3a48b9473d0e4ebe9f94/neovim/nvim-lspconfig" />
<a href="https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#pyright"></a>
</div>
## 解決方法
diagnosticMode を `workspace` にする。
`nvim/after/lsp/pyright.lua`
```lua
return {
settings = {
python = {
analysis = {
diagnosticMode = "workspace",
},
},
},
}
```