private void updateState()

in src/main/java/com/maddyhome/idea/vim/VimPlugin.java [381:420]


  private void updateState() {
    if (stateUpdated) return;
    if (isEnabled() && !ApplicationManager.getApplication().isUnitTestMode()) {
      stateUpdated = true;
      if (SystemInfo.isMac) {
        final Boolean enabled = MacKeyRepeat.INSTANCE.isEnabled();
        final Boolean isKeyRepeat = getEditor().isKeyRepeat();
        if ((enabled == null || !enabled) && (isKeyRepeat == null || isKeyRepeat)) {
          // This system property is used in IJ ui robot to hide the startup tips
          boolean showNotification =
            Boolean.parseBoolean(System.getProperty("ide.show.tips.on.startup.default.value", "true"));
          LOG.info("Do not show mac repeat notification because ide.show.tips.on.startup.default.value=false");
          if (showNotification) {
            if (VimPlugin.getNotifications().enableRepeatingMode() == Messages.YES) {
              getEditor().setKeyRepeat(true);
              MacKeyRepeat.INSTANCE.setEnabled(true);
            }
            else {
              getEditor().setKeyRepeat(false);
            }
          }
        }
      }
      if (previousStateVersion > 0 && previousStateVersion < 3) {
        final KeymapManagerEx manager = KeymapManagerEx.getInstanceEx();
        Keymap keymap = null;
        if (previousKeyMap != null) {
          keymap = manager.getKeymap(previousKeyMap);
        }
        if (keymap == null) {
          keymap = manager.getKeymap(DefaultKeymap.getInstance().getDefaultKeymapName());
        }
        assert keymap != null : "Default keymap not found";
        manager.setActiveKeymap(keymap);
      }
      if (previousStateVersion > 0 && previousStateVersion < 4) {
        VimPlugin.getNotifications().noVimrcAsDefault();
      }
    }
  }