Integrated Development Environments (IDEs) provide tool support to automate many source code editing tasks. Traditionally, IDEs use only the spatial context, i.e., the location where the developer is editing, to generate candidate edit recommendations. However, spatial context alone is often not sufficient to confidently predict the developer's next edit, and thus IDEs generate many suggestions at a location. Therefore, IDEs generally do not actively offer suggestions and instead, the developer is usually required to click on a specific icon or menu and then select from a large list of potential suggestions. As a consequence, developers often miss the opportunity to use the tool support because they are not aware it exists or forget to use it. To better understand common patterns in developer behavior and produce better edit recommendations, we can additionally use the temporal context, i.e., the edits that a developer was recently performing. To enable edit recommendations based on temporal context, we present Overwatch, a novel technique for learning edit sequence patterns from traces of developers' edits performed in an IDE. Our experiments show that Overwatch has 78% precision and that Overwatch not only completed edits when developers missed the opportunity to use the IDE tool support but also predicted new edits that have no tool support in the IDE.
翻译:集成开发环境( IDES) 提供工具支持, 使许多源代码编辑任务自动化。 传统上, IDEs 仅使用空间环境支持, 即开发者编辑的位置, 来生成候选编辑建议。 然而, 光是空间环境往往不足以自信地预测开发者的下一个编辑, 因此, IDEs 在一个位置上产生许多建议。 因此, IDEs 通常不积极提供建议, 相反, 开发者通常需要点击特定的图标或菜单, 然后从大量的潜在建议列表中选择。 因此, 开发者往往会错失使用工具支持的机会, 因为他们不知道工具支持的存在或忘记使用它。 为了更好地了解开发者行为中的共同模式并产生更好的编辑建议, 我们还可以额外使用时间环境环境环境, 即开发者最近执行的编辑。 为了能够根据时间环境编辑建议, 我们演示, 一种从开发者在 IDE 中进行编辑的痕迹中学习编辑序列模式的新技术。 因此, 我们的实验显示, 超过 78% 的精确度, 并且 overwatch 没有在新的编辑工具中完成该工具的预估测。