QtNovelUI/libTextEdit
codeboss 6ef70b57cf commit 2024-03-17 15:42:21 +08:00
..
README.md commit 2024-03-17 15:42:21 +08:00
libTextEdit.pro LibTextEdit起始 2024-02-18 20:53:57 +08:00
libtextedit.cpp 决定添加了自定义的文本编辑控件 2023-09-02 06:34:06 +08:00
libtextedit.h LibTextEdit起始 2024-02-18 20:53:57 +08:00
libtextedit_global.h LibTextEdit起始 2024-02-18 20:53:57 +08:00
text_modelx.cpp 删除乱码注释 2024-02-18 21:04:31 +08:00
text_modelx.h 删除乱码注释 2024-02-18 21:04:31 +08:00
text_present.cpp LibTextEdit起始 2024-02-18 20:53:57 +08:00
text_present.h 删除乱码注释 2024-02-18 21:04:31 +08:00

README.md

文本编辑控件

创建原因

  1. 实现一个可以自主掌控的源码编辑控件
  2. 验证自己的设计理念,学习基本的文本排版技术
  3. 市面上没有一个开源好用的源码编辑器需要以C++内存模型对外暴露文档模型,方便编辑和解析
  4. 需要多线程处理高亮渲染,以应对大规模关键词渲染需求
  5. 同一个文档模型多开视图窗口,自动同步修改内容,同一模型不同的渲染视图的渲染结果互不影响
  6. 自动补全功能
  7. 富文本元素排版
  8. Unicode内建支持

设计目标

  1. 富文本渲染控件
    1. 支持排版元素:“文本”、“图片”、“超链接”、“列表”、“表格”、“视频”、“音频”;
    2. 支持编辑内容:“文本”、“表格”、“列表”
    3. 支持编辑引用:“图片”,“超链接”,“视频”,“音频”;
    4. 支持元素折叠和展开
    5. 块级元素内建排版格式,行内元素排版方向内建
  2. 源码文本编辑控件
    1. 纯文本控件,支持编辑和呈现文本元素
    2. 多种文本格式混合排版
    3. 支持块级元素折叠和展开
    4. 全局统一排版方向,行内元素排版方向内建

开发路线图

  1. 基本的源码展示控件WsTextPresent
  2. 基本的源码编辑控件WsTextEdit
  3. 富文本渲染控件WsRichTextPresent

WsTextPresent项目开发

设计思路

  1. 纯文本输入和输出,除了换行符进行内建处理,其他的文本元素一视同仁;
  2. 多视角设计:基础内存模型视角,元素排版视角、文本编辑视角;
  3. 多线程语法高亮,关键词渲染
  4. 统一文档内存模型,多视图渲染
  5. 纸稿排版逻辑,基于预设排版位置
  6. 全局文档布局设置、段落文档布局设置、行文档布局设置、文本片段布局设置