SCSSを書いていると、{ を入力した瞬間に {@extend} になってしまうことがずっと気になっていました。

nvim-autopairsが } を自動挿入したタイミングで、blink.cmp側がその } に反応して補完を開いているようで、@extend という文字列が補完されてしまう感じです。毎回Escで閉じて消していたんですが、Codexに相談してみたら解決しました。

SCSSのときだけ、} を入力したタイミングで補完メニューが開かないように show_on_blocked_trigger_characters に追加できるらしい。

最初Codexは { 開きカッコ側を設定する方法を提案していて、それで試してみたんですが上手くいかなくて。念のためnvim-autopairsを一時的に切って動作を確認したら、{ では補完が開いていないことが分かりました。ということは補完が起動しているのは } の方だということで、閉じカッコを指定してみたら解決しました。

completion = {
  trigger = {
    show_on_blocked_trigger_characters = function()
      local blocked = { " ", "\n", "\t" }
      if vim.bo.filetype == "scss" then
        table.insert(blocked, "}")
      end
      return blocked
    end,
  },
}

{ ではなく } を塞ぐというのが直感に反していたので、一度autopairsを切って確認してみて正解でした。

たったこれだけでNeovimでCSS書くのがめっちゃ快適になりました。