一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文本代码的编辑方法及系统与流程

2023-02-04 09:03:50 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种文本代码的编辑方法及系统。


背景技术:

2.集成开发环境(integrated development environment,ide)提供文本代码编辑器,软件开发人员可以在文本代码编辑器中编辑文本代码,以实现相应的软件功能。
3.软件开发人员在通过文本代码编辑器实现软件功能时,通常会反复修改文本代码,最终在文本代码编辑器中只保留一套用于实现软件功能的文本代码,较为单一。如果软件开发人员需要更换或优化软件功能,则需要重新对该套文本代码进行修改,效率低下。


技术实现要素:

4.本技术实施例提供一种文本代码的编辑方法及系统,支持多套文本代码的编辑与存储,便于软件开发人员快速替换代码,实现软件功能的更换或优化,能够提升编辑效率。
5.第一方面,本技术实施例提供一种文本代码的编辑方法,该编辑方法可以应用于文本代码的编辑系统,由该编辑系统执行如下步骤:接收用户的第一操作指令,所述第一操作指令用于指示将所述第一编辑区中的第一代码块替换为第二代码块,所述第二代码块为用于替换所述第一代码块的备选代码块中的一个。根据所述第一操作指令,更新所述第一编辑区对应的第一文本数据结构;其中,更新后的所述第一文本数据结构中不包含用于指示所述第一代码块的第一子文本数据结构,且更新后的所述第一文本数据结构中包含用于指示所述第二代码块的第二子文本数据结构。以及,根据更新后的所述第一文本数据结构,在所述第一编辑区中显示所述第二代码块。
6.上述设计中,通过设置备选代码块,可以实现快速更换代码块。例如,如果软件开发人员需要更换或优化软件功能,则利用备选代码块替换原有代码块即可,能够有效提升编辑效率。
7.在一种可能的设计中,在编辑系统获取用户的第一操作指令之前,所述第二代码块显示在第二编辑区中。这样的显示设计,便于用户快速确定或定位第一代码块的备选代码块,能够提升用户的编辑体验。基于此,编辑系统可以根据更新后的所述第一文本数据结构,在所述第二编辑区中显示所述第一代码块。
8.在一种可能的设计中,在更新所述第一编辑区对应的第一文本数据结构之前,所述第二编辑区对应的第二文本数据结构包含所述第二子文本数据结构,且不包含所述第一子文本数据结构;在更新所述第一编辑区对应的第一文本数据结构之后,所述第二编辑区对应的所述第二文本数据结构包含所述第一子文本数据结构,且不包含所述第二子文本数据结构。这样的设计中,通过底层逻辑即文本数据结构的变更,带动前端界面编辑区中显示代码块的变更,能够保证文本代码的正常运行。
9.在一种可能的设计中,所述第一子文本数据结构与用于指示所述第一代码块的备选代码块的文本数据结构之间存在映射关系;所述根据所述第一操作指令,更新所述第一
编辑区对应的第一文本数据结构,包括:根据所述第一操作指令,确定所述第一子文本数据结构和所述第二子文本数据结构;根据所述第一子文本数据结构与所述第二子文本数据结构之间的映射关系,将所述第一文本数据结构中的所述第一子文本数据结构替换为所述第二子文本数据结构。这样的设计,便于快速替换文本数据结构中的子文本数据结构。
10.在一种可能的设计中,编辑系统可以接收所述用户的第二操作指令,所述第二操作指令用于指示如下中的一项或多项:删除所述第一编辑区中的指定代码块,对所述第一编辑区中的指定代码块进行复制,将复制的代码块粘贴到所述第一编辑区中的指定位置,将所述第一编辑区中的指定代码块移动到第一编辑区中指定位置,或,在所述第一编辑区中添加代码块。编辑系统根据所述第二操作指令,更新所述第一文本数据结构;进而,根据所述第一文本数据结构,在所述第一编辑区中显示更新后的所述第一文本数据结构对应的代码块。这样的设计中,将代码文件中的文本代码划分为多个代码块,便于用户对代码块整体进行编辑操作,能够提升编辑效率。
11.在一种可能的设计中,编辑系统在获取用户的第一操作指令之前,还可以根据所述第一编辑区的第一文本数据结构确定所述第一编辑区中的代码块。这样的设计,可以将第一编辑区中显示的文本代码划分为多个代码块。
12.第二方面,本技术实施例提供一种文本代码的编辑系统,包括:用户交互单元,用于接收用户的第一操作指令,所述第一操作指令用于指示将所述第一编辑区中的第一代码块替换为第二代码块,所述第二代码块为用于替换所述第一代码块的备选代码块中的一个;处理单元,用于根据所述第一操作指令,更新所述第一编辑区对应的第一文本数据结构;其中,更新后的所述第一文本数据结构中不包含用于指示所述第一代码块的第一子文本数据结构,且更新后的所述第一文本数据结构中包含用于指示所述第二代码块的第二子文本数据结构;所述处理单元,还用于根据更新后的所述第一文本数据结构,在所述第一编辑区中显示所述第二代码块。
13.在一种可能的设计中,在用户交互单元接收用户的第一操作指令之前,所述第二代码块显示在第二编辑区中;所述处理单元,还用于根据更新后的所述第一文本数据结构,在所述第二编辑区中显示所述第一代码块。
14.在一种可能的设计中,在所述处理单元更新所述第一编辑区对应的第一文本数据结构之前,所述第二编辑区对应的第二文本数据结构包含所述第二子文本数据结构,且不包含所述第一子文本数据结构;在所述处理单元更新所述第一编辑区对应的第一文本数据结构之后,所述第二编辑区对应的第二文本数据结构包含所述第一子文本数据结构,且不包含所述第二子文本数据结构。
15.在一种可能的设计中,所述第一子文本数据结构和用于指示所述第一代码块的备选代码块的文本数据结构之间存在映射关系;所述处理单元,具体用于:根据所述第一操作指令,确定所述第一子文本数据结构和所述第二子文本数据结构;根据所述第一子文本数据结构与所述第二子文本数据结构之间的映射关系,将所述第一文本数据结构中的所述第一子文本数据结构替换为所述第二子文本数据结构。
16.在一种可能的设计中,所述用户交互单元,还用于接收所述用户的第二操作指令,所述第二操作指令用于指示如下中的一项或多项:删除所述第一编辑区中的指定代码块,对所述第一编辑区中的指定代码块进行复制,将复制的代码块粘贴到所述第一编辑区中的
指定位置,将所述第一编辑区中的指定代码块移动到第一编辑区中指定位置,或,在所述第一编辑区中添加代码块;所述处理单元,还用于根据所述第二操作指令,更新所述第一文本数据结构;所述处理单元,还用于在所述第一编辑区中显示更新后的所述第一文本数据结构对应的代码块。
17.在一种可能的设计中,在用户交互单元接收用户的第一操作指令之前,所述处理单元,还用于根据所述第一编辑区的第一文本数据结构确定所述第一编辑区中的代码块。
18.第三方面,本技术实施例提供一种计算设备,所述计算设备包括处理器和存储器;所述存储器用于存储计算机执行指令;所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述计算设备执行第一方面及第一方面的任意一个可能的设计中的方法。
19.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序指令,当所述计算机程序指令被计算机设备运行时,使得所述计算机设备执行第一方面及第一方面的任意一个可能设计中的方法。
20.第五方面,本技术实施例提供一种计算机程序产品,所述计算机程序产品包含指令,当所述指令被计算机设备运行时,使得所述计算机设备执行第一方面及第一方面的任意一个可能设计中的方法。
附图说明
21.图1为本技术实施例提供的一种文本代码的编辑系统的架构示意图;
22.图2为本技术实施例提供的一种文本代码的编辑方法流程示意图;
23.图3a为本技术实施例提供的文本代码显示的示意图之一;
24.图3b为本技术实施例提供的文本代码显示的示意图之一;
25.图3c为本技术实施例提供的文本代码显示的示意图之一;
26.图4a为本技术实施例提供的文本数据结构示意图之一;
27.图4b为本技术实施例提供的文本数据结构示意图之一;
28.图5a为本技术实施例提供的文本数据结构示意图之一;
29.图5b为本技术实施例提供的文本数据结构示意图之一;
30.图6a为本技术实施例提供的文本代码显示的示意图之一;
31.图6b为本技术实施例提供的文本代码显示的示意图之一;
32.图6c为本技术实施例提供的文本代码显示的示意图之一;
33.图7为本技术实施例提供的另一种文本代码的编辑方法流程示意图;
34.图8为本技术实施例提供的文本代码显示的示意图之一;
35.图9为本技术实施例提供的文本代码显示的示意图之一;
36.图10为本技术实施例提供的计算设备的结构示意图。
具体实施方式
37.为了使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例作进一步地详细描述。
38.本技术实施例如下涉及的至少一个(项),指示一个(项)或多个(项)。多个(项),是指两个(项)或两个(项)以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,
例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
39.本技术实施例如下描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何方法或设计方案不应被解释为比其它方法或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
40.本技术实施例提供的技术可以应用于文本代码的编辑系统。如图1示意,该文本代码的编辑系统100主要包括用户交互单元、处理单元以及存储单元。其中,用户交互单元与用户(例如软件开发人员)交互,为用户提供文本代码编辑、显示的功能。例如用户交互单元可以为用户提供文本代码编辑器,用户在文本代码编辑器中编辑文本代码,即用户交互单元通过文本代码编辑器接收用户的编辑文本代码的操作指令;处理单元可以分析该操作指令,在存储单元中创建或者更新相关的文本代码,以及文本代码对应的文本数据结构。
41.具体地,文本代码以代码文件为单位进行编辑以及存储,例如在软件功能实现场景中,一个代码文件对应软件程序中的一个页面,即一个代码文件中的文本代码用于实现软件程序中一个页面的软件功能。文本代码编辑器中支持创建一个或多个代码文件,针对各个代码文件提供独立的编辑区,编辑区也可以替换描述为编辑窗口。用户可以在代码文件对应的编辑区中编辑文本代码,相应地,文本代码显示在编辑区中。
42.处理单元可以监控并解析用户在文本代码编辑器中的操作,将用户在文本代码编辑器中创建编辑的代码文件保存在存储单元;以及处理单元还可以解析代码文件中的文本代码,生成代码文件对应的文本数据结构(text struct),并将代码文件对应的文本数据结构保存在存储单元。其中,一个代码文件对应的文本数据结构包括用于指示该代码文件中的文本代码的多个节点,节点之间的连接关系可以反映该代码文件中文本代码的执行(或,运行)逻辑或执行(或,运行)顺序。可选的,文本数据结构可以是一种树结构,一个文本数据结构可以对应一个或多个树。针对一个树而言,该树是由一定数量的节点组成的一个有层次关系的集合,一个树中没有父节点的节点可以称为根节点,一个树中除根节点以外的每个节点有且只有一个父节点。
43.可选的,可以在节点中保存该节点所指示文本代码中的方法名称、结构体名称或类名称,或者将节点命名为该节点所指示文本代码中的方法名称、结构体名称或类名称。例如,节点可以保存或者命名为class、function、block、int、set、get等等。可选的,处理单元也可以描述为文本管理单元(text manager),前述文本数据结构中的节点也可以描述为数据元素、或文本节点。
44.处理单元还可以对代码文件中的文本代码进行语义分析,以确定(或,识别)该代码文件中的代码块。可以理解的是,该代码文件对应的文本数据结构中包括用于指示多个代码块中任一代码块的子文本数据结构,任一代码块对应的子文本数据结构包括一个或多个节点。
45.作为示例,本技术实施例提供的文本代码的编辑系统可以是ide平台。ide平台可以在本地操作系统中搭建,该操作系统例如为windows系统,或者也可以是其他操作系统。其中,用户交互单元提供的文本代码编辑器可以是ide平台中前端界面的文本代码编辑器,例如该文本代码编辑器可以是vscode、intellij、sublime或者其他代码编辑器。存储单元可以占用计算机内存的资源,或者可以理解为,存储单元属于内存。目前,ide平台中的一个代码文件可对应于文本代码编辑器中的一个编辑区,即,该代码文件包括的文本代码可以显示在该代码文件对应的编辑区。软件开发人员可以在该代码文件对应的编辑区中修改文本代码,最终只保留用于实现软件功能的一套文本代码。这样实现软件功能的方式只有一套代码方案,较为单一。如果软件开发人员需要更换或优化软件功能,则需要重新对该套文本代码进行修改,效率低下。
46.基于此,本技术实施例提供一种文本代码的编辑方法,该方法可以应用于前述文本代码的编辑系统,如应用于ide平台。在本技术实施例中,支持设置备选代码块,例如,如果用户需要更换或优化软件功能,则利用备选代码块替换原有代码块即可,能够有效提升编辑效率。
47.下面结合图2对本技术实施例提供的编辑方法进行详细说明如图2示意,该编辑方法可由前述的文本代码的编辑系统(以下简称编辑系统)执行。
48.s201,编辑系统接收用户的第一操作指令。第一操作指令可用于指示将第一编辑区中的第一代码块替换为第二代码块。其中,第一代码块是编辑系统存储的任一代码文件中的一个代码块,第二代码块例如为第一代码块的备选代码块。其中,第一代码块的备选代码块可用于替换第一代码块,第一代码块的备选代码块的数量可以为1个或多个。可以理解的是,当备选代码块的数量为1个时,即第一代码块的备选代码块指的是第二代码块;或者,当备选代码块的数量大于1个时,第二代码块是第一代码块的备选代码块中的一个。此外,将第一代码块在第一编辑区中的位置记作第一位置,该第一位置可以是第一代码块包括的一行或多行文本代码在第一编辑区中的位置。基于此,还可以理解的是,第一代码块和第一代码块的备选代码块均可以看作是能够插入该第一位置的候选代码块。通过设置备选代码块,相当于提供了多套文本代码。例如,如果用户(例如软件开发人员)需要更换或优化软件功能,则可利用备选代码块替换原有代码块,相当于用一套文本代码替换了另一套文本代码,从而可以实现软件功能的优化、修改或升级等。
49.在一种可选的实施方式中,一个代码文件对应两个编辑区,例如分别为第一编辑区和第二编辑区。其中,第一编辑区显示当前生效的一套文本代码,或者也可以替换描述为第一编辑区显示待运行的一套文本代码,第一编辑区显示的一套文本代码可包含多个代码块;第二编辑区显示第一编辑区中的部分或全部代码块的备选代码块,其中,一个代码块的备选代码块的数量可以是1个或多个,可以理解为,第二编辑区中的备选代码块不生效或不运行。在显示生效文本代码的编辑区基础上,另外设置显示备选代码块的编辑区,便于用户快速选择替换代码块为相应的备选代码块,实现多套文本代码之间的切换。
50.在s201中,第一代码块显示在第一编辑区,第二代码块显示在第二编辑区。以第一代码块的备选代码块数量为1个为例,可参考如图3a示意的代码显示方式。代码文件1的第一编辑区和第二编辑区并排显示,第一代码块包括第一编辑区中第r1行到第r2行的文本代码,第二代码块包括第二编辑区中第r1行到第r3行的文本代码。其中,r1、r2、r3均为正整
数,r2与r3可以相同或者不同。也可以理解为,第二编辑区中显示的第二代码块与第一编辑区中显示的第一代码块的起始行相同,这样的设计可以方便用户快速确定第一代码块的备选代码块。第二代码块上设置有一个可选框,当用户勾选该可选框时,相当于输入了第一操作指令,则编辑系统可以接收用户输入的第一操作指令。用户勾选该可选框,表明用户期望将第一编码区中的第一代码块替换为第二代码块,因此第一操作指令可指示将第一编码区中的第一代码块替换为第二代码块。可选的,s201也可以替换描述为:响应于用户的操作,确定该用户的第一操作指令。
51.再以第一代码块的备选代码块的数量为多个为例,可参考如图3b示意的代码显示方式。代码文件1的第一编辑区和第二编辑区并排显示,第一代码块包括第一编辑区中第r1行到第r2行的文本代码;第二编辑区中以第r1行为起始位置,显示第一代码块的多个备选代码块。其中一个备选代码块的文本代码完整的显示于第二编辑区中,如占用第二编辑区中第r1行到第r3行,r1、r2、r3均为正整数,r2与r3可以相同或者不同。将文本代码完整显示的一个备选代码块记作第二代码块,第二代码块所在的位置上设置有第二下拉选项框;除第二代码块之外剩余的备选代码块以标识信息显示于该第二下拉选项框中,而不显示完整的文本代码。其中,一个备选代码块的标识信息可以是该备选代码块的编号,名称或者其他能够唯一指示该备选代码块的信息,本技术实施例对此不予限制。通过这样的设计使得第二编辑区中显示的第二代码块与第一编辑区中显示的第一代码块的起始行相同,用户可以基于第一代码块的位置,快速确定第一代码块的备选代码块。可选的,第二下拉选项框中可以包括第一代码块的全部备选代码块的标识信息,支持用户自行在该第二下拉选项框中选择一个备选代码块作为第二代码块,完整的显示在第二编辑区中。这样的设计能够增加与用户的交互,提升用户体验感。作为示例,图3b示意出第二下拉选项框中包括第一代码块的全部备选代码块的编号,如记作备选1、备选2、备选3;其中,备选1所指示的备选代码块以完整的文本代码显示在第二编辑区。
52.此外,第二代码块上可以设置有一个可选框,当用户勾选该可选框时,相当于输入了第一操作指令,则编辑系统可以接收用户输入的第一操作指令。用户勾选该可选框,表明用户期望将第一编码区中的第一代码块替换为第二代码块,因此第一操作指令可指示将第一编码区中的第一代码块替换为第二代码块。可选的,s201也可以替换描述为:响应于用户的操作,确定该用户的第一操作指令。
53.在另一种可选的实施方式中,一个代码文件对应一个编辑区,例如称为第一编辑区。其中,第一编辑区显示当前生效的一套文本代码,或者也可以替换描述为第一编辑区显示待运行的一套文本代码,第一编辑区显示的一套文本代码可包含多个代码块。在s201中,第一编辑区中的多个代码块包括第一代码块,编辑系统中存储第一代码块的备选代码块,第一代码块的备选代码块的数量可以是1个或多个。该第一代码块所在的位置上设置有第一下拉选项框,该第一下拉选项框中可以包括第一代码块的全部备选代码块的标识,一个备选代码块的标识例如为该备选代码块的编号、名称或者其他能够用于指示该备选代码块的信息,本技术实施例对此不予限制。可以理解,在s201中,显示在第一编辑区中的第一代码块为生效的可运行的代码块,第一代码块的备选代码块未显示,也不生效或不运行。可参见图3c,第一下拉选项框中包括第一代码块的全部备选代码块的编号,如分别为备选1、备选2、备选3。当用户在第一下拉选项框中勾选其中一个备选代码块时,相当于输入了第一操
作指令,则编辑系统可以接收用户输入的第一操作指令。例如,将用户勾选的备选代码块记作第二代码块(例如用户勾选的是“备选1”),用户勾选该第二代码块,表明用户期望将第一编码区中的第一代码块替换为第二代码块,因此第一操作指令可指示将第一编码区中的第一代码块替换为第二代码块。可选的,s201也可以替换描述为:响应于用户的操作,确定该用户的第一操作指令。
54.可选的,该s201由编辑系统中的用户交互单元执行,用户交互单元接收用户的第一操作指令。如用户交互单元为用户提供文本代码编辑器,用户在文本代码编辑器中触发将第一编辑区中的第一代码块替换为第二代码块的编辑操作时,用户交互单元接收用户的第一操作指令。
55.s202,编辑系统根据第一操作指令,更新第一编辑区对应的第一文本数据结构。
56.例如,编辑系统的存储单元可以预先存储第一编辑区对应的第一文本数据结构,第一文本数据结构包括的节点之间的连接关系可以反映第一编辑区中所显示的完整的文本代码的执行逻辑或执行顺序。可以理解的,对应第一编辑区显示的文本代码中的多个代码块,第一文本数据结构可以包含用于指示该多个代码块中任一代码块的子文本数据结构。类似地,编辑系统的存储单元还可以预先存储第二文本数据结构。第二文本数据结构用于指示在第一编辑区显示的文本代码中的部分或全部代码块的备选代码块。其中,第二文本数据结构可包括各个备选代码块对应的子文本数据结构,不同的备选代码块对应的子文本数据结构之间不存在连接关系,可以理解为,第二文本数据结构包括多个独立的子文本数据结构。其中,一个备选代码块对应的子文本数据结构可以反映该备选代码块中的文本代码的执行逻辑或执行顺序。以在第一编辑区中显示完整文本代码的第一代码块、第一代码块的备选代码块包括第二代码块和第三代码块为例,第二文本数据结构可包括用于指示第二代码块的第二子文本数据结构,第二文本数据结构包括用于指示第三代码块的第三子文本数据结构。第二子文本数据结构与第三子文本数据结构相互独立,不存在连接关系。
57.针对第一编辑区中的任一个有备选代码块的代码块而言,该代码块对应的子文本数据结构与该代码块的每个备选代码块对应的子文本数据结构之间具有映射关系,以第一代码块的备选代码块包括第二代码块和第三代码块为例,第一代码块对应的第一子文本数据结构与第二代码块对应的第二子文本数据结构具有映射关系。第一代码块对应的第一子文本数据结构与第三代码块对应的第三子文本数据结构具有映射关系。
58.在s201中介绍了,第一操作指令指示将第一编辑区中的第一代码块替换为第二代码块。编辑系统接收第一操作指令后,可以确定第一代码块对应的第一子文本数据结构以及第二代码块对应的第二子文本数据结构;进而,编辑系统可以基于第一子文本数据结构和第二子文本数据结构之间的映射关系,将第一编辑区中的第一文本数据结构中的第一子文本数据结构替换为第二子文本数据结构。例如,第一子文本数据结构中根节点的位置和第二子文本数据结构中根节点的位置之间具有映射关系,编辑系统基于该映射关系可以确定将第二子文本结构插入第一文本数据结构中的哪个位置。在执行s202之前,第一子文本数据结构中根节点位于第一文本数据结构中的位置1。那么编辑系统执行s202时,可以将第二子文本数据结构中的根节点插入到第一文本数据结构中的位置1。这样的设计能够减少对文本代码的执行逻辑的干扰,确保第一编辑区中文本代码的正常运行。
59.例如,对应于图3a示意的第一代码块显示在第一编辑区,第二代码块显示在第二
编辑区的情况,可参见图4a,在执行s202之前,第一文本数据结构中包含用于指示第一代码块的第一子文本数据结构,第二文本数据结构中包含用于指示第二代码块的第二子文本数据结构。可再参考图4b,在执行s202之后,更新后的第一文本数据结构中不包含第一子文本数据结构,但包含第二子文本数据结构;相应地,在s202中,编辑系统还可以根据第一操作指令更新第二文本数据结构,因此图4b中,更新后的第二文本数据结构中包含第一子文本数据结构,但不包含第二子文本数据结构。
60.又例如,对应于图3b示意第一代码块显示在第一编辑区,第二代码块显示在第二编辑区的情况,第二代码块上的下拉选项框中包括第一代码块的多个备选代码块的标识信息。以该多个备选代码块包括第二代码块和第三代码块为例,可参见图5a,在执行s202之前,第一文本数据结构中包含用于指示第一代码块的第一子文本数据结构,第二文本数据结构中包含用于指示第二代码块的第二子文本数据结构、以及用于指示第三代码块的第三子文本数据结构。其中,第二子文本数据结构与第三子文本数据结构之间不存在连接关系。可再参考图5b,在执行s202之后,更新后的第一文本数据结构中不包含第一子文本数据结构,但包含第二子文本数据结构;相应地,在s202中,编辑系统还可以根据第一操作指令更新第二文本数据结构,因此图5b中,更新后的第二文本数据结构中包含第一子文本数据结构以及第三子文本数据结构,但不包含第二子文本数据结构。
61.再例如,对应图3c示意第一代码块显示在第一编辑区,第一下拉选项框中包括第一代码块的全部备选代码块的编号的情况。以该第一代码块的备选代码块包括第二代码块和第三代码块为例,可参见图5a,在执行s202之前,第一文本数据结构中包含用于指示第一代码块的第一子文本数据结构,第二文本数据结构中包含用于指示第二代码块的第二子文本数据结构、以及用于指示第三代码块的第三子文本数据结构。其中,第二子文本数据结构与第三子文本数据结构之间不存在连接关系。可再参考图5b,在执行s202之后,更新后的第一文本数据结构中不包含第一子文本数据结构,但包含第二子文本数据结构;相应地,在s202中,编辑系统还可以根据第一操作指令更新第二文本数据结构,因此图5b中,更新后的第二文本数据结构中包含第一子文本数据结构以及第三子文本数据结构,但不包含第二子文本数据结构。
62.可选的,该步骤s202中的方案可以由编辑系统中的处理单元执行,即处理单元可以根据第一操作指令,更新第一编辑区对应的第一文本数据结构。处理单元更新第一文本数据结构的方式可参照前述内容理解,本技术实施例对此不进行赘述。
63.s203,编辑系统根据更新后的第一文本数据结构,在第一编辑区中显示第二代码块。
64.s203可以理解为编辑系统对用户操作的处理反馈。可选的,该步骤s203中可以由编辑系统中的处理单元执行,即处理单元可以根据更新后的第一文本数据结构,在第一编辑区中显示第二代码块。
65.在经过s201~s203之后,第一编辑区中原本显示第一代码块的位置会改为显示第二代码块。可以理解的是,经过s201~s203,第一编辑区的文本代码发生了变化,例如将s201之前第一编辑区的文本代码记作第一套文本代码,将在执行s201~s203之后第一编辑区的文本代码记作第二套文本代码。其中,第一套文本代码和第二套文本代码的区别在于:第一套文本代码中包括第一代码块,但不包括第二代码块;第二套文本代码中包括第二代
码块,但不包括第一代码块。
66.示例性的,在图3a的基础上,通过执行s202和s203,可得到图6a示意的结果。即,响应于图3a示意的用户勾选了第二代码块的可选框的操作,通过执行s202和s203,得到了图6a中示意的处理结果,该处理结果为,将第二代码块显示到了第一编辑区中原来第一代码块所在的位置,相应地,第二编辑区中第二代码块原来所在的位置上显示了第一代码块。可理解为,互换了第一代码块和第二代码块的位置。
67.示例性的,在图3b的基础上,通过执行s202和s203,可得到图6b示意的结果。即,响应于图3a示意的用户勾选了第二代码块的可选框的操作,通过执行s202和s203,得到了图6b中示意的处理结果,该处理结果为,将第二代码块显示到第一编辑区中原来第一代码块所在的位置,相应地,第二编辑区中第二代码块原来所在的位置上显示了第一代码块。可理解为,互换了第一代码块和第二代码块的位置。执行s202和s203之后,图6b中第二下拉选项框位于第二编辑区中第二代码块原来所在的位置上;或者也可以替换描述为:执行s202和s203之后,图6b中第二下拉选项框位于第二编辑区中第一代码块所在的位置。
68.示例性的,在图3c的基础上,通过执行s202和s203,可得到图6c示意的结果。即,响应于图3c示意的用户勾选第一下拉选项框中备选1的操作,即将备选1指示的备选代码块看作第二代码块。通过执行s202和s203,得到了图6c中示意的处理结果,该处理结果为,在第一编辑区中原来第一代码块所在的位置显示第二代码块,而第一下拉选项框中包括第一代码块的编号(例如备选4),不包括第二代码块的编号(如备选1),也即可以理解的是经过s202和s203后,第一代码块可以看作第二代码块的备选代码块,可以将第一代码块以编号(例如备选4)记录于第一下拉选项框中。
69.本技术实施例中,针对一套可运行的文本代码,编辑系统可以存储以及显示该套文本代码中的部分或全部代码块的备选代码块,并可以基于文本数据结构建立代码块和相应的备选代码块之间的映射关系,通过设置备选代码块,相当于提供了多套文本代码。例如,如果用户(例如软件开发人员)需要更换或优化软件功能,则可利用备选代码块替换原有代码块,相当于用一套文本代码替换了另一套文本代码,从而可以实现软件功能的优化、修改或升级等,能够有效提升编辑效率。
70.此外,基于代码文件中的代码块的划分,编辑系统还可以支持用户在第一编辑区中对代码块进行除切换备选代码块之外的其他编辑操作,例如增加、删除、复制、粘贴、移动等编辑操作,能够提升对第一编辑区中文本代码的编辑效率。可参见图7,介绍一种编辑方法,该方法可用于对代码块进行编辑。
71.s701,编辑系统接收用户的第二操作指令。
72.其中,所述第二操作指令用于指示如下中的一项或多项:删除所述第一编辑区中的指定代码块,对所述第一编辑区中的指定代码块进行复制,将复制的代码块粘贴到所述第一编辑区中的指定位置,将所述第一编辑区中的指定代码块移动到第一编辑区中指定位置,或,在所述第一编辑区中添加代码块。
73.可以理解的是,前述指定代码块可以包括用户通过第二操作指令指示的所述第一编辑区中的一个或多个代码块。指定位置可以是用户通过第二操作指令指示的第一编辑区中的位置。用户在第一编辑区中编辑新增的代码块的文本代码时,编辑系统可以接收到用于指示在第一编辑区中添加代码块的第二操作指令,第二操作指令中携带新增的代码块,
该新增的代码块包括一行或多行文本代码。
74.以用户第二操作指令用于指示将所述第一编辑区中的指定代码块移动到第一编辑区中指定位置为例。可参见图8,指定代码块指的是第一编辑区中的第四代码块,该第四代码块包括第一编辑区中第r4行到第r5行的文本代码。当用户将第一编辑区中的第四代码块移动到以第r6行为起始行的位置时,相当于输入了第二操作指令,则编辑系统可以接收用户输入的第二操作指令,即第二操作指令用于指示将所述第四代码块移动到第一编辑区中的指定位置,该指定位置包括以第r6行为起始行,第r7行为终止行的多行。其中,r7与r6之间的差值等于r5与r4之间的差值。划分代码块的方式可以实现将代码文件中的文本代码分组,一个代码块作为一个整体,在这样的设计中,用户可以直接对代码块整体进行一次编辑操作,无需先选中需要移动的文本代码,再进行移动,能够提升编辑效率以及用户体验。
75.可选的,该步骤s701可以由编辑系统中的用户交互单元执行,用户交互单元接收用户的第二操作指令。如用户交互单元为用户提供文本代码编辑器,用户在文本代码编辑器中触发指定代码块的编辑操作时,用户交互单元接收用户的第二操作指令。
76.s702,编辑系统根据第二操作指令,更新第一编辑区对应的第一文本数据结构。
77.其中,有关第一文本数据结构的定义可参照s202中的描述理解,本技术实施例对此不进行赘述。
78.编辑系统根据第二操作指令,可以确定用户对于第一编辑区中代码块的编辑需求,进而按照用户的编辑需求对第一编辑区对应的第一文本数据结构中的子文本数据结构进行修改。
79.例如,第二操作指令指示删除所述第一编辑区中的指定代码块,那么编辑系统可以确定用户期望从第一编辑中删除该指定代码块;进而,编辑系统可以在第一文本数据结构中删除与该指定代码块对应的子文本数据结构。
80.例如,第二操作指令指示复制所述第一编辑区中的指定代码块,以及将复制的代码块粘贴到第一编辑区中指定位置。那么编辑系统可以确定用户期望对第一编辑区中的指定代码块进行复制粘贴,且指示了粘贴的指定位置。以用户期望将第一编辑区中第四代码块复制并粘贴到第一编辑区中第五代码块之后的位置为例,编辑系统可以在第一文本数据结构中确定第四代码块对应的第四子文本数据结构以及第五代码块对应的第五子文本数据结构;进而按照特定的代码执行逻辑,如先执行完第五代码块再执行复制粘贴的第四代码块,编辑系统可以保留第一文本数据结构中原有的第四子文本数据结构基础上,在第五子文本数据结构的叶子节点后再插入第四子文本数据结构。
81.例如,第二操作指令指示将所述第一编辑区中的指定代码块移动到第一编辑区中的指定位置,那么编辑系统可以确定用户期望在第一编辑区中移动指定代码块,且指示了移动的指定位置(或称,目标位置);进而,编辑系统可以在第一文本数据结构中删除与该指定代码块对应的子文本数据结构。以用户期望将第一编辑区中第四代码块移动到第一编辑区中第五代码块之后的位置为例,编辑系统可以在第一文本数据结构中确定第四代码块对应的第四子文本数据结构以及第五代码块对应的第五子文本数据结构;进而按照特定的代码执行逻辑,如先执行完第五代码块再执行复制粘贴的第四代码块,编辑系统可以将第一文本数据结构中原有的第四子文本数据结构,移动插入到在第五子文本数据结构的叶子节点的后面。
82.又如,第二操作指令指示在所述第一编辑区中添加代码块,用户在第一编辑区中输入新代码块的文本代码,那么编辑系统可以通过用户第一编辑区获取用户输入的新代码块的文本代码以及输入位置,进而编辑系统可以按照特定的代码执行逻辑,在第一文本数据结构中添加新代码块对应的节点。
83.可选的,该步骤s702中的方案可以由编辑系统中的处理单元执行,即处理单元可以根据第二操作指令,更新第一编辑区对应的第一文本数据结构。处理单元更新第一文本数据结构的方式可参照前述内容理解,本技术实施例对此不进行赘述。
84.s703,编辑系统根据更新后的第一文本数据结构,在第一编辑区中显示更新后的第一文本数据结构对应的代码块。
85.s703可以理解为编辑系统对用户操作的处理反馈。可选的,该步骤s703中可以由编辑系统中的处理单元执行,即处理单元可以根据更新后的第一文本数据结构,在第一编辑区中显示更新后的第一文本数据结构对应的代码块。
86.例如,在图8的基础上,通过执行s702~s703,可得到图9示意的结果。即,响应于图8示意用户对第四代码块的移动操作,通过执行s702和s703,得到了图9中示意的处理结果,该处理结果为将第四代码块显示到了第一编辑区中第r6行到第r7行的位置。
87.可选的,图7所示的实施例与上述图2所示的实施例可以结合应用,例如用户可以基于图7所示的实施例提供的方式,对图2所示的实施例介绍的第一编辑区中的部分代码块或全部代码块进行编辑操作;或者,图7所示的实施例与图2所示的实施例也可以不结合,而是分别单独应用,本技术实施例对此不予限制,且不限制图2和图7这两个实施例的执行顺序。
88.基于上述实施例,本技术实施例还提供了一种计算设备1000。如图10所示,计算设备1000包括:总线102、处理器104、存储器106和通信接口108。处理器104、存储器106和通信接口108之间通过总线102通信。计算设备1000可以是笔记本电脑、台式电脑、服务器或终端设备。应理解,本技术不限定计算设备1000的处理器、存储器的个数。
89.总线102可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线104可包括在计算设备1000各个部件(例如,存储器106、处理器104、通信接口108)之间传送信息的通路。
90.处理器104可以包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
91.存储器106可以包括易失性存储器(volatile memory),如内存,例如随机存取存储器(random access memory,ram)。存储器106还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
92.例如,存储器106中存储有可执行的程序代码,处理器104执行该可执行的程序代码以分别实现前述用户交互单元、处理单元的功能,从而实现文本代码的编辑方法。也即,存储器106上存有文本代码的编辑系统用于执行文本代码的编辑方法的指令。存储器106中还存储有代码文件,以及代码文件对应的文本数据结构。
93.通信接口103使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备100与其他设备或通信网络之间的通信。当该计算设备100为芯片类的装置或者电路时,该计算设备100中的通信接口108也可以是输入输出电路,可以输入信息(或称,接收信息)和输出信息(或称,发送信息),处理器为集成的处理器或者微处理器或者集成电路或则逻辑电路,处理器可以根据输入信息确定输出信息。
94.本技术实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器104可能和存储器106、通信接口108协同操作。本技术实施例中不限定上述处理器104、存储器106以及通信接口108之间的具体连接介质。
95.本技术实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在计算设备集群上运行时,使得计算设备集群执行上述应用于文本代码的编辑系统用于执行文本代码的编辑方法,或使得计算设备集群执行上述应用于文本代码的编辑系统用于执行文本代码的编辑方法。
96.本技术实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备集群执行上述应用于文本代码的编辑系统用于执行文本代码的编辑方法,或指示计算设备集群执行上述应用于文本代码的编辑系统用于执行文本代码的编辑方法。
97.在本技术实施例中,在无逻辑矛盾的前提下,各示例之间可以相互引用,例如方法实施例之间的方法和/或术语可以相互引用,例如系统实施例之间的功能和/或术语可以相互引用,例如系统示例和方法示例之间的功能和/或术语可以相互引用。
98.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献