编辑代码的方法和装置与流程

文档序号:34259013发布日期:2023-05-25 04:12阅读:41来源:国知局
编辑代码的方法和装置与流程

本技术实施例涉及计算机,特别地,涉及一种编辑代码的方法和装置。


背景技术:

1、代码补全技术一直是软件工程领域的研究热点之一,该技术可以极大减少程序员的工作量,提升开发效率、质量及体验。当前所有主流集成开发环境(integrated developenvironment,ide)的核心功能中均包括了代码补全功能。

2、现有的代码补全技术可以利用描述文件对代码文件进行代码编辑,通过精确匹配光标位置在描述文件语义树中的相对位置,从而编辑光标位置的节点的代码,对其进行补全。

3、然而,大部分的代码文件的语义都比较复杂,用户在该类代码文件中使用代码补全功能进行代码编辑时,普遍存在工作效率低下的问题。


技术实现思路

1、本技术提供一种编辑代码方法和装置,可以一次性补全多个节点,有助于提升用户的开发效率和体验。

2、第一方面,提供了一种编辑代码的方法,包括:在代码编辑窗口中显示第一窗口,所述第一窗口包括至少一条候选路径,所述至少一条候选路径中的每条候选路径包括一个或多个节点;检测用户对所述第一窗口的第一操作,所述第一操作用于从所述至少一条候选路径中确定目标路径;响应于所述第一操作,在所述代码编辑窗口中生成所述目标路径。

3、根据该技术方案,可以一次性补全多个节点,例如一次性补全一条路径上的全部节点,避免了用户需要在不同位置进行多次代码补全,提高了用户编写代码的效率、质量,节省时间和精力,提升用户体验。

4、结合第一方面,在一种可能的实现方式中,所述方法还包括:检测用户的第二操作;所述在代码编辑窗口中显示第一窗口包括:响应于所述第二操作,在所述代码编辑窗口中显示所述第一窗口。

5、用户可以根据需要使用本技术提供的编辑代码的方法。

6、结合第一方面,在一种可能的实现方式中,所述第二操作为输入字符、输入命令、输入快捷键、输入快捷键组合和点击菜单调用中的任意一项操作。

7、结合第一方面,在一种可能的实现方式中,所述代码编辑窗口包括定位节点;所述在所述代码编辑窗口中生成所述目标路径,包括:从所述定位节点开始,在所述代码编辑窗口中生成所述目标路径。

8、应理解,该代码编辑窗口用于编写待编写文件,代码编辑窗口中的代码即为待编写文件中已经编写的代码。定位节点可以理解为待编辑窗口中光标位置所在的节点。

9、在该代码编辑窗口中生成该目标路径,是将该目标路径直接替换代码编辑窗口中的定位节点。或者,删除代码编辑窗口中的定位节点,再生成所述目标路径。或者,根据目标路径与代码编辑窗口中的定位节点,确定二者之间缺失的路径,生成所述缺失的路径。

10、还应理解,当光标处于某条路径的中间的节点处时,也就是说,当定位节点下属一个或多个已编写的子孙节点时,在该代码编辑窗口中生成该目标路径,是将该目标路径直接替换代码编辑窗口中的定位节点及其下属子孙节点。或者,删除代码编辑窗口中的定位节点及其下属子孙节点,再生成所述目标路径。或者,根据目标路径与代码编辑窗口中的定位节点及其下属子孙节点,确定二者之间缺失的路径,生成所述缺失的路径。

11、结合第一方面,在一种可能的实现方式中,所述至少一条候选路径中的每条候选路径的开始节点包括所述定位节点对应的字段。

12、结合第一方面,在一种可能的实现方式中,所述定位节点对应的字段为所述每条候选路径的开始节点的前缀。

13、这样可以提高候选路径的准确性,以为用户提供更可能被用户选择的路径。

14、结合第一方面,在一种可能的实现方式中,在所述检测用户对所述第一窗口的第一操作之前,还包括:检测用户对所述第一窗口的第三操作,所述第三操作为输入字符的操作;响应于所述第三操作,通过对所述至少一条候选路径进行筛选,得到一条或多条筛选后的候选路径,其中所述一条或多条筛选后的候选路径中的每条候选路径包括用户输入的字符;在所述第一窗口中显示所述筛选后的候选路径。

15、这样,用户可以在第一窗口中显示的多条候选路径中,进行进一步的筛选,以缩小候选路径的范围,特别是在候选路径很多时,该筛选操作可以提高代码编写的效率。

16、结合第一方面,在一种可能的实现方式中,在所述在代码编辑窗口中显示第一窗口之前,还包括:根据所述代码编辑窗口中的至少一个节点,从描述文件对应的第一路径集合中确定所述至少一条候选路径,其中所述代码编辑窗口用于编写待编写文件的代码,所述待编写文件与所述描述文件符合相同的语法结构。

17、应理解,用户正在根据该描述文件在代码编辑器中编写待编写文件,在编写待编写文件的过程中,待编写文件应该始终满足该描述文件所定义的规范,也就是说,待编写文件中的节点、节点与节点之间的关系、节点的相对位置都应与该描述文件中所描述的保持一致,使得待编写文件与描述文件符合相同的语法结构。

18、结合第一方面,在一种可能的实现方式中,所述代码编辑窗口包括定位节点;所述根据所述代码编辑器中的至少一个节点,从描述文件对应的第一路径集合中确定所述至少一条候选路径,包括:根据所述至少一个节点,从所述第一路径集合中确定至少一个候选节点,其中所述至少一个候选节点中的每个候选节点包括所述定位节点对应的字段;以所述至少一个候选节点中的每个候选节点为开始节点,从所述第一路径集合中确定所述至少一条候选路径。

19、结合第一方面,在一种可能的实现方式中,所述至少一个节点包括所述定位节点和所述定位节点的父节点;所述根据所述至少一个节点,从所述第一路径集合中确定至少一个候选节点,包括:根据所述定位节点的父节点,从所述第一路径集合中确定第一节点,其中所述第一节点与所述定位节点的父节点具有相同字段;根据所述定位节点对应的字段,从所述第一节点的子节点中确定所述至少一个候选节点。

20、结合第一方面,在一种可能的实现方式中,所述至少一个节点包括所述定位节点至所述定位节点的根节点之间的全部节点;所述根据所述至少一个节点,从所述第一路径集合中确定至少一个候选节点,包括:根据所述定位节点的根节点至所述定位节点的父节点的路径,从所述第一路径集合中确定第一路径,所述第一路径与所述定位节点的根节点至所述定位节点的父节点的路径相同;根据所述定位节点对应的字段,从所述第一路径的终端节点的子节点中确定所述至少一个候选节点。

21、结合第一方面,在一种可能的实现方式中,所述代码编辑窗口包括定位节点,且所述定位节点为空;所述根据所述代码编辑窗口中的至少一个节点,从描述文件对应的第一路径集合中确定所述至少一条候选路径,包括:根据所述定位节点的父节点,从所述第一路径集合中确定第一节点,其中所述第一节点与所述定位节点的父节点具有相同字段;以所述第一节点的每个子节点为开始节点,从所述第一路径集合中确定所述至少一条候选路径。

22、第二方面,提供了一种编辑代码的方法,包括:在代码编辑窗口中显示第二窗口,所述第二窗口包括多个节点,所述多个节点用于指示描述文件对应的第一路径集合;检测用户对所述第二窗口的第四操作,所述第四操作用于从所述多个节点中确定目标节点;响应于所述第四操作,在所述代码编辑窗口中生成目标路径,其中所述目标路径的终端节点为所述目标节点,所述目标路径包括的节点属于所述代码编辑窗口中未配置的节点。

23、应理解,该代码编辑窗口用于编写待编写文件,代码编辑窗口中的代码即为待编写文件中已经编写的代码。

24、根据该技术方案,可以显示全部可进行代码编辑的节点,即未配置的节点,当用户从中选择目标节点后,可以一次性生成以该目标节点为终端节点的目标路径中的全部未配置的节点。这样,用户可直观地看到待编写文件中未配置的节点,并且可以一次性生成多个未配置的节点,提高了用户编写代码的效率、质量,节省时间和精力,提升用户体验。

25、结合第二方面,在一种可能的实现方式中,所述在所述代码编辑窗口中生成目标路径,包括:从所述第一路径集合中确定根节点至目标节点之间的路径;根据所述根节点至目标节点之间的路径与所述代码编辑窗口中已配置的节点,确定所述目标路径。

26、这样,可以一次性生成根节点至目标节点之间的路径中全部未配置的节点,提高了用户编写代码的效率、质量,节省时间和精力,提升用户体验。

27、结合第二方面,在一种可能的实现方式中,所述多个节点排列为树形结构或者多级目录结构。

28、结合第二方面,在一种可能的实现方式中,所述多个节点包括第一节点集合和第二节点集合,其中所述第一节点集合中的节点为在所述代码编辑窗口中已配置的节点,所述第二节点集合中的节点为在所述代码编辑窗口中未配置的节点。

29、结合第二方面,在一种可能的实现方式中,所述第二窗口包括第一标识符,所述第一标识符用于指示所述第二节点集合中的节点。

30、这样,第一标识符可以直观地提示用户哪些节点已配置,哪些节点未配置,有助于提高编写效率。

31、结合第二方面,在一种可能的实现方式中,所述第二窗口包括第二标识符,所述第二标识符用于指示所述多个节点中的每个节点的类型。

32、这样,第二标识符可以表示每个节点的类型,便于用户选择某一类型需要配置的节点。

33、结合第二方面,在一种可能的实现方式中,所述第二窗口包括第一控件,所述第一控件用于显示或隐藏所述第二节点集合中的节点。

34、这样,用户可以根据需要选择隐藏或显示未配置的节点,在需要代码编辑时,可以快速调出第二窗口进行编辑。

35、第三方面,提供了一种编辑代码的装置,所述装置包括:显示单元,用于在代码编辑窗口中显示第一窗口,所述第一窗口包括至少一条候选路径,所述至少一条候选路径中的每条候选路径包括一个或多个节点。检测单元,用于检测用户对所述第一窗口的第一操作,所述第一操作用于从所述至少一条候选路径中确定目标路径。生成单元,用于响应于所述第一操作,在代码编辑窗口中生成所述目标路径。

36、结合第三方面,在一种可能的实现方式中,所述检测单元还用于检测用户的第二操作;所述显示单元还具体用于响应于所述第二操作,在所述代码编辑窗口中显示第一窗口。

37、结合第三方面,在一种可能的实现方式中,第二操作为输入字符、输入命令、输入快捷键、输入快捷键组合和点击菜单调用中的任意一项操作。

38、结合第三方面,在一种可能的实现方式中,所述生成单元具体用于从所述代码编辑窗口中的定位节点开始,在所述代码编辑窗口中生成所述目标路径。

39、结合第三方面,在一种可能的实现方式中,所述至少一条候选路径中的每条候选路径的开始节点包括所述定位节点对应的字段。

40、结合第三方面,在一种可能的实现方式中,所述定位节点对应的字段为所述每条候选路径的开始节点的前缀。

41、结合第三方面,在一种可能的实现方式中,所述装置还可以包括确定单元;所述检测单元还用于检测用户对所述第一窗口的第三操作,所述第三操作为输入字符的操作;所述确定单元用于响应于用户对所述第一窗口的第三操作,通过对所述至少一条候选路径进行筛选,得到一条或多条筛选后的候选路径,其中所述一条或多条筛选后的候选路径中的每条候选路径包括用户输入的字符;所述显示单元还用于在第一窗口显示所述筛选后的候选路径。

42、结合第三方面,在一种可能的实现方式中,所述确定单元还用于根据所述代码编辑窗口中的至少一个节点,从描述文件对应的第一路径集合中确定所述至少一条候选路径,其中所述代码编辑窗口用于编写待编写文件的代码,所述待编写文件与所述描述文件符合相同的语法结构。

43、结合第三方面,在一种可能的实现方式中,所述确定单元还可以具体用于:根据所述至少一个节点,从第一路径集合中确定至少一个候选节点,其中所述至少一个候选节点中的每个候选节点包括定位节点对应的字段;以所述至少一个候选节点中的每个候选节点为开始节点,从所述第一路径集合中确定至少一条候选路径。

44、结合第三方面,在一种可能的实现方式中,所述确定单元还可以具体用于:根据所述定位节点的父节点,从第一路径集合中确定第一节点,其中第一节点与所述定位节点的父节点具有相同字段;根据所述定位节点对应的字段,从所述第一节点的子节点中确定所述至少一个候选节点。

45、结合第三方面,在一种可能的实现方式中,所述确定单元还可以具体用于根据所述定位节点的根节点至所述定位节点的父节点的路径,从第一路径集合中确定第一路径,所述第一路径与所述定位节点的根节点至所述定位节点的父节点的路径相同;根据所述定位节点对应的字段,从所述第一路径的终端节点的子节点中确定所述至少一个候选节点。

46、结合第三方面,在一种可能的实现方式中,所述确定单元还可以具体用于:根据所述定位节点的父节点,从所述第一路径集合中确定第一节点,其中第一节点与定位节点的父节点具有相同字段;所述确定单元还可以具体用于以所述第一节点的每个子节点为开始节点,从所述第一路径集合中确定所述至少一条候选路径。

47、第四方面,提供了一种编辑代码的装置,所述装置包括:显示单元,用于在代码编辑窗口中显示第二窗口,所述第二窗口包括多个节点,所述多个节点用于指示描述文件对应的第一路径集合。检测单元,用于检测用户对所述第二窗口的第四操作,第四操作用于从所述多个节点中确定目标节点。生成单元,用于响应于所述第四操作,在所述代码编辑窗口中生成目标路径,其中所述目标路径的终端节点为所述目标节点,所述目标路径包括的节点属于所述代码编辑窗口中未配置的节点。

48、结合第四方面,在一种可能的实现方式中,所述装置还可以包括确定单元,所述确定单元用于:从第一路径集合中确定根节点至目标节点之间的路径;根据所述根节点至目标节点之间的路径与所述代码编辑窗口中已配置的节点,确定所述目标路径。

49、结合第四方面,在一种可能的实现方式中,所述多个节点排列为树形结构或者多级目录结构。

50、结合第四方面,在一种可能的实现方式中,所述多个节点包括第一节点集合和第二节点集合,其中第一节点集合中的节点为在所述代码编辑窗口中已配置的节点,所述第二节点集合中的节点为在所述代码编辑窗口中未配置的节点。

51、结合第四方面,在一种可能的实现方式中,所述第二窗口包括第一标识符,所述第一标识符用于指示第二节点集合中的节点。

52、结合第四方面,在一种可能的实现方式中,所述第二窗口包括第二标识符,所述第二标识符用于指示多个节点中的每个节点的类型。

53、结合第四方面,在一种可能的实现方式中,所述第二窗口包括第一控件,所述第一控件用于显示或隐藏所述第二节点集合中的节点。

54、第五方面,提供了一种编辑代码的装置,包括用于执行上述第一方面或第一方面中任一种可能实现方式中的方法的模块或单元。该模块或单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。

55、第六方面,提供了一种编辑代码的装置,包括用于执行上述第二方面或第二方面中任一种可能实现方式中的方法的模块或单元。该模块或单元可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。

56、第七方面,提供了一种编辑代码的装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,以使得所述装置执行第一方面或第二方面中任意一种实现方式中的方法。

57、结合七方面,在一种可能的实现方式中,所述装置为代码编辑器。

58、第八方面,提供一种芯片系统,包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述至少一个处理器执行上述第一方面或第二方面中任一种可能实现方式中的方法。

59、第九方面,提供了一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,当所述计算机可执行指令在计算机上运行时,使得所述计算机执行第一方面或第二方面中任意一种实现方式中的方法。

60、第十方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第二方面中任一种可能实现方式中的方法。

61、可以理解的是,上述提供的任一种编辑代码的装置、芯片系统、计算机可读存储介质或计算机程序产品等均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1