basyura's blog

あしたになったらほんきだす。

Inkdrop - vim plugin とカーソルの色 : その2

カーソルの blink を止めたのはいいけど、フォーカスが外れた時は非表示にしたい。 お試し中。

inkdrop.onEditorLoad((e) => {
  const editor = inkdrop.getActiveEditor();
  const { cm } = editor;
  const container = document.querySelector(".CodeMirror-lines");
  const changeVisibility = (visibility) => {
    const cursor = container.querySelector(".CodeMirror-cursor");
    cursor.style.visibility = visibility;
  };

  cm.on("update", () => {
    if (!cm.hasFocus()) {
      changeVisibility("hidden");
    }
  });
  cm.on("blur", () => changeVisibility("hidden"));
  cm.on("focus", () => changeVisibility("visible"));
});

update イベントは頻繁に走るので負荷が気になる。