Lorgnette:创建可塑形代码投影
知识工作者工具与工作流计算方法在HCI中的应用软件工程师与开发者HCI 研究员
文献标题
lorgnette: Creating Malleable Code Projections
文献信息
- 主题领域: 编程语言、代码编辑器的人机交互设计
- 关键词: lorgnette, 投影, 语义交互, 编程工具, 用户定制, 代码编辑器, 可修改界面, 多语言支持, 模型驱动工程, 可视化编程
研究背景与问题
-
发现的问题与挑战:
- 现有的代码“投影”(projections)(一种代码片段的交互式替代表示)通常被硬编码,仅支持特定语言或场景开发。
- 用户在语言符号层面的“语法交互”(syntactic interaction)往往无法很好地理解或操作代码表达的语义层面。
- 当前编程环境中支持投影的系统,不允许普通用户灵活创建或修改投影,不利于个性化需求的实现。
-
重要性: 提升代码编辑器的用户体验和效率,使开发者能够基于语义交互更直观地查看、修改代码,并降低技术门槛,让每位开发者都能参与到工具的创新中。
-
研究动机与相关工作:
- 投影提供了让用户在更贴合其心理模型的表示形式中查看和操作代码的可能性。
- 尽管已有一些支持投影的框架,例如 JetBrains MPS 和 Visual HDL 等,但这些系统更加偏向高成本的专业场景,有限制多语言适配性,且缺乏终端用户层面的易用性和可塑性。
- 随着现代编程逐渐由操作性向探索性和实时性靠拢,需要能动态定制的跨语言可扩展代码投影方案。
解决方案
-
核心方法或解决方案: 提出了一个名为lorgnette的框架,用户可以在其代码编辑器中自定义并实现交互式代码投影,用于基于代码的片段展示、数据的不同解析方法,以及多语言的配置。
-
创新之处:
- 支持多种资源类型:框架通过抽象,实现了对代码文本、语法树节点以及运行时信息的投影。
- 多语言与语言无关性:支持多种语言的直接适配,并提供投影模板,降低扩展或迁移语言的成本。
- 低门槛与高自由度:由用户决定如何定制、修改、使用投影,而无需每一次都依赖开发者。
- 后向和前向映射支持:可将用户交互结果立即映射回代码,完成双向更新。
-
实施步骤与关键技术:
- 定义代码片段的检测和资源提取方式。
- 使用前向映射将资源转化为模型,供用户界面操作。
- 借助后向映射更新代码资源以保持代码与界面状态的同步。
- 提供投影的模板支持用户快速生成常见的界面,例如表单、表格、颜色选择器等。
研究成果
-
具体成果:
- 通过对62种投影案例的分析,总结了代码投影的特性、范围和需求。
- 使用 lorgnette 实现了 5 个实际案例,包括颜色选择器、Markdown 表格编辑、正则表达式可视化、变量追踪可视化和配置表单,展示了其广泛适应性的能力。
-
与现有解决方案比较:
- lorgnette 是目前唯一支持文本、语法树和运行时资源三者的框架,也是极少全面兼容多语言的投影开发工具。
- 相比其他系统(如 JetBrains MPS 和 mage),lorgnette 更强调用户的自定义自由,从而提升了灵活性和实用性。
-
实验或评估结果:
- 实际投影功能展示涵盖了不同语言和不同需求的案例。
- 在五种投影场景测试中,证明了框架既能够支持静态内容(如 Markdown 表格),也能动态处理数据(如 JavaScript 的变量值追踪),为多种用户需求提供了可能性。
-
局限性与未来方向:
- 目前的限制:
- lorgnette 在支持多文件交互(例如 HTML 和 CSS 同时操作)上的能力有限。
- 尚未支持整体程序(如全局调用图)的复杂投影。
- 嵌入文档输出的能力尚未开发。
- 未来改进方向:
- 深入探索如何更高效地创建双向映射。
- 支持跨文件、跨文档的投影耦合。
- 研究与协同程序开发、AI 编码助手(如 ChatGPT)深度集成的可能性,帮助开发者更高效地迭代代码与投影。
- 目前的限制:
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 如何设计一套框架,使用户能够灵活地创建和修改代码编辑器中的交互式代码投影?分类: 代码投影与可视化编辑同类问题arrow_forward
- 如何使代码投影工具支持多种编程语言并降低用户的技术门槛?分类: 代码投影与可视化编辑同类问题arrow_forward
- 代码投影的前向和后向映射如何在用户交互和代码同步之间实现高效连接?分类: 代码投影与可视化编辑同类问题arrow_forward
lightbulb
现实痛点
1- 开发者难以直观查看和修改代码,现有投影工具不够灵活。分类: 代码投影与可视化编辑同类问题arrow_forward
- 100%
分页符:计算笔记本中的多单元作用域
CHI '25· 知识工作者工具与工作流 +1
- 100%
利用注释促进代码理解
UIST '22· 知识工作者工具与工作流 +1
- 75%
计算交互:理论与实践
CHI '18· 计算方法在HCI中的应用
- 75%
基于模型的回溯交互技术评估
CHI '24· 计算方法在HCI中的应用
- 75%
小步进示例实时编程
UIST '20· 计算方法在HCI中的应用
- 60%
大规模可视化API使用示例
CHI '18· 交互式数据可视化 +1
- 60%
Doppio:追踪应用程序开发中的用户界面流程和代码更改
CHI '18· 知识工作者工具与工作流 +1
- 60%
指向你周围的所有地方:全覆盖显示器中鼠标和光线投射指向的选择性能
CHI '18· 知识工作者工具与工作流 +1
- 60%
来自1.36亿次按键的打字观察
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
从现有代码中交互式提取示例
CHI '18· 开源协作与代码审查 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3586183.3606817
一眼看懂
fact_check论文快照
dataset
来源
UIST
calendar_month
年份
2023
emoji_events
奖项
未标记奖项
group
作者
2 位作者
sell
研究子方向
知识工作者工具与工作流、计算方法在HCI中的应用
work
职业/产业
软件工程师与开发者、HCI 研究员
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文