当前位置: 首页 > Web前端 > HTML

代码智能输入法,每天可以帮你多写10行代码

时间:2023-03-28 16:52:58 HTML

作为一个有多年经验的复制粘贴工程师,我认为通过参考现有代码。模糊记忆快速调出对应的代码段,而不是手动全局查找,应该会在一定程度上提高代码输入的效率。基于这个想法,开发了一款vscode插件CodeFinder,欢迎使用。使用效果类似于中文的智能拼音输入法,我们输入一个词组,只需要通过首字母就可以找到最常用的词组。如果这样输入代码,效果就是CodeFinder是一种智能的代码输入法,只需输入少量的字符,就可以快速完成一行或多行代码。自动提取当前项目的所有代码片段,也可以添加自定义代码片段。支持所有编程语言,如Javascript、HTML、CSS、Python、Go、PHP、Vue、React...部分核心逻辑实现代码片段划分提示的代码片段大部分来自本地项目,所以需要对项目进行编码源代码片段提取。一开始想从语法和语义上切分,结果发现这是走投无路的地步。对于大多数编程语言,我们都是用缩进来表示代码的段落,我们可以直接根据代码的缩进来划分段落。定义一个简单的规则,前导空格的数量表示级别,低级代码行可以与高级代码行组成段落。同一级别的代码行应该属于不同的代码片段。然后递归划分得到每个代码片段。重新聚合相同的代码片段。索引和搜索本质上,这是一个搜索问题。对于输入,可以使用Trie树来索引每个代码片段。因为需要在本地运行,几十毫秒内就可以完成查找,所以当代码片段达到一定程度时,可能无法遍历,所以引入了剪枝的逻辑,当时间耗尽时,广度遍历过程是丢弃匹配不佳的分支。跳转输入为了减少对正常输入的干扰,需要区分哪些是正常输入,哪些是对输入法的调用。于是创造了“跳跃式输入”:连续输入多个单词,用空格隔开,忽略其他符号。如果使用这种不符合语法规则的省略输入,则说明是用户主动发起的;否则,它被视为常规输入。每次都会提示跳转输入,而常规输入仅在接近匹配时提示。