Proposal: Add Chrome-like tabs for TeXmacs

What

  • https://github.com/XmacsLabs/mogan/pull/142
  • Previously, someone attempted to implement a similar feature, but found that his PR would cause the program to crash. Students should refine this feature to enable TeXmacs to support multiple tabs.

Why

Supporting multi-tab functionality can make the program more user-friendly. Especially for people who have multiple documents that need to be switched between edits.

How

  • Investigate and study how the display interface is originally implemented.
  • Add a tab bar UI.
  • Implement multi-tab switching

Or in details:

  • Determine user needs: Gather users’ specific needs and expectations for multi-tab functionality.
  • Functional planning: Define the specific functions to be implemented, including basic tab behaviors (such as opening, closing, switching tabs) and any additional features (such as drag-and-drop reordering of tabs, restoring closed tabs, etc.).
  • Interface design: Design the user interface layout and interaction method of multi-tab pages.
  • Architecture design: Determine how to integrate multi-tab functionality into the existing architecture of TeXmacs, including the design or modification of data structures, module interfaces, etc.
    accomplish:
  • Implement it!
  • Add Unit test
  • Integration testing
  • Performance testing
  • User testing
  • Release
3 Likes

For multiple tabs support, the merged but reverted pull request could be improved and well tested. It is feasible as a OSPP project.

For chrome-like tabs in Qt, we need to make a border-less window in Qt, see https://github.com/antonypro/QGoodWindow

It might not be a good idea and increase the complexity of the project. To make this proposal as a project, I think chrome-like tabs should be optional, and multi tabs must be implemented.

There are many tech spec of the multiple tabs, like:

  • Drag and drop
  • could be converted to a separated window

Multiple tabs feature in VSCode is also a good example to learn from.