Greasy Fork

Overleaf - File History

Lets you use the browser history to navigate between previously opened files

目前为 2023-04-19 提交的版本。查看 最新版本

// ==UserScript==
// @name         Overleaf - File History
// @namespace    https://github.com/BLumbye/overleaf-userscripts
// @version      0.1
// @description  Lets you use the browser history to navigate between previously opened files
// @author       Benjamin Lumbye
// @license      GPL-3
// @match        https://www.overleaf.com/project/*
// @grant        none
// ==/UserScript==

'use strict';

(function () {
  // Listen for file open events
  _ide.$scope.$on('doc:after-opened', onFileOpen);
  _ide.$scope.$on('file-view:file-opened', onFileOpen);

  // Listen for popstate event
  window.addEventListener('popstate', (event) => {
    if (event.state?.fileID) {
      openFile(event.state.fileID);
    }
  });
})();

function onFileOpen(event) {
  const fileID = _ide.fileTreeManager.selected_entity_id;
  if (history.state?.fileID === fileID) return;
  history.pushState({ fileID }, '');
}

function openFile(fileID) {
  const file = _ide.fileTreeManager.findEntityById(fileID);
  if (!file) return;
  if (file.type === 'file') {
    // BUG: File does not get highlighted in the file tree
    _ide.binaryFilesManager.openFile(file);
  } else if (file.type === 'doc') {
    _ide.editorManager.openDoc(file);
  }
}