面向所有人的结构化编辑:从语法中推导可用的结构化编辑器
作者
编程教育与计算思维知识工作者工具与工作流软件工程师与开发者UI/UX 设计师
文献标题
Structured Editing for All: Deriving Usable Structured Editors from Grammars
文献信息
- 主题领域: 软件工程、编程语言的编辑工具设计
- 关键词: 结构化编辑,语法,类文本编辑,用户研究,Clojure,JavaScript,正则表达式,Tree-sitter,自动生成,输入协调
- 发表会议: CHI 2023
- 作者: Tom Beckmann, Patrick Rein, Stefan Ramson, Joana Bergsiek, Robert Hirschfeld
- 研究机构: Hasso Plattner Institute, University of Potsdam, Germany
研究背景与问题
-
发现的问题:
- 结构化编辑器(Structured Editors)能在编程工具中提供显著益处,包括提高可学习性、编辑效率和工具集成性。然而,开发通用且可用的结构化编辑器代价高昂且复杂,现有工作通常需要对每种语言进行单独的编辑交互设计。
- 部分已有自动生成的编辑器交互性差,操作体验不如文本编辑器自然,尤其对于复杂书写语言(如Rust、TypeScript等)。
-
重要性:
- 结构化编辑器能够始终保持程序语法有效,提供语法指导的潜力,可以简化语言的组合开发,并支持创新的工具集成。
- 结合文本编辑器的流畅输入优势,可大幅降低门槛,使不同语言的开发者都能使用结构化编辑器。
-
研究动机与相关工作:
- 现有工具在编辑器的易用性和语言兼容性之间存在重大权衡问题(Usability vs. Availability)。
- 前人工作虽展示了一些有效的结构化编辑器如Lamdu、GrammmarCells等,但大多无法扩展至通用语言或者需要对语法进行繁复的手工注解。
- 作者提出,尝试基于语言语法引擎(Tree-sitter)自动推导通用的编辑操作,可获得一致的使用体验。
解决方案
-
方法或解决方案:
- 提出名为Sandblocks的系统,从任意形式语法(如Tree-sitter格式的语法)自动生成流畅的结构化编辑器。
- 设计了一套输入协调(Input Reconciliation)过程,支持用户的键盘输入同步映射到语法树并生成对应的界面交互。
-
创新之处:
- 提出无需对语法手动注解的编辑生成过程,能够在用户输入过程中实时与语法树校对以生成符合直觉的结构。
- 在未损失传统优势(如自动语法校验)的前提下支持类文本的灵活编辑操作。
-
实施步骤及关键技术:
- 导入语法:从Tree-sitter语法中提取和精简规则并转换为可编辑的UI数据结构。
- 输入协调:根据三大设计原则,将用户对文本的操作动态映射为语法自动输入逻辑,主要基于以下关键策略:
- 导航遵循文本界面视觉布局。
- 字符输入如文本操控,以缓冲方式直到解析完全。
- 删除操作采取最小破坏性手段,显式捕获上下文。
- 界面生成与可交互设计:生成以块级元素组织语法树的编辑界面,同时支持插入弹框和实时错误机制。
研究成果
-
具体成果:
- 实现开源工具Sandblocks,成功自动生成多个常见语言(如JavaScript、Clojure、Python、TypeScript)的结构化编辑器。
- 提出的编辑模型使生成的编辑器兼容新语言,具备一致交互行为。
-
与现有方案的对比优势:
- 与只能支持特定领域语言的工具相比,Sandblocks通用性更高。
- 用户研究显示,该系统具有较低的学习成本,用户体验接近文本编辑器。
-
实验或评估结果:
- 用户体验:
- 开展用户研究(N=18),结果表明用户认为编辑体验自然性评分6/7(中位数),删除和导航稍次。
- 在心理负担评估中,与传统文本编辑器的差异较小(NASA TLX量表)。
- 学习迁移能力:
- 教程基于单一语言(Python),用户对其他语言(如JavaScript, Clojure, 和Regex)的任务同样取得高成功率,证实现象具语言一致性。
- 编辑效率:
- 总体上比文本编辑器慢20%-95%不等。Regex任务中效率损失更明显,但JavaScript/Clojure等任务仅1.2~1.3倍减速。
- 程序复现能力:
- 自动重新输入250个开源工程语法目标,正确率96%。部分失败归因于特定语法如模板字符串。
- 用户体验:
-
局限性与未来方向:
- 局限性:
- 输入歧义的弹窗机制令部分用户困惑。
- 高填充间距和不均匀布局对导航操作增加了用户学习曲线。
- 广告"可输入任何语法"但对定制字符(如逗号省略)经历不同用户感知和误差。
- 未来方向:
- 改进错误恢复机制,减少大范围回溯操作。
- 对交互式编辑体验如光标移动优化及提高大块嵌套的对齐方案合理化。
- 弹窗到树形集成探索,进一步验证编辑无缝过渡的友好性。
- 局限性:
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 如何从任意的语法规则自动生成流畅的结构化编辑器?分类: 编程助手与多轮代码支持同类问题arrow_forward
- 使用用户的键盘输入实时映射到语法树的过程中,如何设计用户交互以确保自然的编辑体验?分类: 编程助手与多轮代码支持同类问题arrow_forward
- 自动生成的结构化编辑器在语法兼容性和用户友好性上能否与传统文本编辑器竞争?分类: 编程助手与多轮代码支持同类问题arrow_forward
lightbulb
现实痛点
1- 程序员在使用结构化编辑器时,常因交互不自然或语言兼容性差而放弃使用。分类: 编程助手与多轮代码支持同类问题arrow_forward
- 67%
Colaroid:用于创作可探索的多阶段教程的文学编程方法
CHI '23· 编程教育与计算思维 +2
- 60%
工作场所技术支持的活动报告的挑战与机遇
CHI '18· 知识管理与团队意识 +1
- 60%
ActiveErgo:使用自我驱动家具实现自动和个性化的工效学
CHI '18· 全身交互与体感输入 +1
- 60%
通过文件简历探索网络世界的新型文件隐喻
CHI '18· 知识工作者工具与工作流 +1
- 60%
Doppio:追踪应用程序开发中的用户界面流程和代码更改
CHI '18· 知识工作者工具与工作流 +1
- 60%
用日常智能设备指向远处
CHI '18· 全身交互与体感输入 +1
- 60%
使用视觉历史来重构暂停活动的心理背景
CHI '18· 知识工作者工具与工作流 +1
- 60%
利用社区生成的视频和命令日志来分类和推荐软件工作流程
CHI '18· 众包任务设计与质量控制 +1
- 60%
HotStrokes:触控板上的词-手势快捷方式
CHI '19· 手部手势识别 +1
- 60%
GazeConduits:通过凝视和触摸进行的免校准跨设备协作
CHI '20· 眼动追踪与注视交互 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3544548.3580785
一眼看懂
fact_check论文快照
dataset
来源
CHI
calendar_month
年份
2023
emoji_events
奖项
未标记奖项
group
作者
5 位作者
sell
研究子方向
编程教育与计算思维、知识工作者工具与工作流
work
职业/产业
软件工程师与开发者、UI/UX 设计师
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文