Skip to content

Conversation

@notfoundzzz
Copy link
Contributor

@notfoundzzz notfoundzzz commented Jan 28, 2026

如何测试

  1. 在 Mogan 中插入:

    • 块级代码(Python / C++ / Scheme / Shell 等)
    • 行内代码
    • 代码清单
  2. 将鼠标悬浮到代码区域,右上角:

    • 应显示「复制」与「语言切换」按钮。
  3. 点击「复制」:

    • 粘贴到外部编辑器,应为纯文本代码。
  4. 使用语言菜单切换标签:

    • cpp-codepython-code
    • 应自动添加所需宏包。
  5. 移开鼠标:

    • 菜单应延迟约 0.5s 消失。

测试文档

  • TeXmacs/tests/tmu/209_13.tmu

2026/01/29 代码悬浮菜单-语言切换

What

  • 新增代码悬浮菜单(复制 + 语言切换),支持块级 / 行内 / 代码清单。
  • 菜单固定在代码块右上角,提升可点击性。
  • 悬浮离开后延迟约 0.5s 隐藏,避免移动过快无法点击。
  • 切换语言标签(如 cpp-codepython-code)自动补齐所需宏包。

How

  • 鼠标悬浮检测与显示逻辑:
    src/Edit/Interface/edit_mouse.cpp
  • Qt 菜单组件:
    src/Plugins/Qt/QTMCodePopup.cpp
    src/Plugins/Qt/QTMCodePopup.hpp
  • Scheme 复制与语言切换:
    TeXmacs/progs/prog/prog-edit.scm

2026/01/28 代码悬浮菜单-复制

What

  • 新增代码悬浮菜单(Qt 端)及显示 / 隐藏 / 滚动同步逻辑。
  • 鼠标悬浮检测支持块级与行内代码。
  • 复制操作通过 Scheme 导出为 verbatim
  • C++ 侧补齐 Scheme 端支持的代码环境标签。
  • 主题中增加 code popup 样式(浅色 / 深色)。

How

  • C++:新增 QTMCodePopup,并在 qt_simple_widget / QTMWidget 接入显示与滚动同步。
  • C++:在 edit_mouse.cpp 中沿祖先路径查找代码节点,使用 is_verbatim() 判断。
  • Scheme:新增 code-popup-copy,使用
    clipboard-copy-export "verbatim" 实现纯文本复制。
  • 主题:添加 #code_popup#code-popup-button 样式。
  • is_verbatim() 补齐 python-code 等标签,与 Scheme 侧定义对齐。

@notfoundzzz notfoundzzz changed the title [209_13] 添加代码悬浮菜单(复制) [209_13] 添加代码悬浮菜单 Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant