## 事象
[[trouble.nvim]]のバージョンは3.5.1の少し先(`4453fea`)。
### 最小構成の再現確認
ディレクトリを作成する。
```console
mkdir trouble-sandbox
cd trouble-sandbox
```
`repro.lua`を作成する。
```console
vim repro.lua
```
```lua
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end
-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.runtimepath:prepend(lazypath)
-- install plugins
local plugins = {
"folke/tokyonight.nvim",
{ "folke/trouble.nvim", opts = {} },
{
"folke/trouble.nvim",
cmd = "Trouble",
keys = {
{
"<C-j>h",
"<cmd>Trouble lsp_references<cr>",
},
},
config = function()
require("trouble").setup({
focus = true,
auto_refresh = false,
})
end,
},
{
"neovim/nvim-lspconfig",
config = function()
local lspconfig = require("lspconfig")
lspconfig.rust_analyzer.setup({
settings = {
["rust-analyzer"] = {},
},
})
end,
},
}
require("lazy").setup(plugins, {
root = root .. "/plugins",
})
vim.cmd.colorscheme("tokyonight")
-- add anything else here
```
再現例として[[Rust]]プロジェクトを作成する。
```console
cargo init
vim -u repro.lua main.rs
```
`main.rs`
```rust
fn hoge() {}
fn main() {
hoge();
hoge();
}
```
`main.rs`の`hoge()`にカーソルをあわせて `:Trouble lsp_references` を実行すると、Referencesが表示される。
![[Pasted image 20240707131419.png]]
この状態で、`main.rs`の領域でマウスカーソルを左クリックしてフォーカスを移動する。表示が消えてしまう。
![[Pasted image 20240707131518.png]]
## 原因
自動リフレッシュが発動しており、クリックした位置のシンボルに対して`lsp_refrences`が発動するから。
## 解決方法
デフォルトの設定が`auto_refresh = true`となっているので、明示的に`auto_refresh = false`を設定する。
```diff
config = function()
require("trouble").setup({
focus = true,
+ auto_refresh = false,
})
```