CN109683907A - 代码补全方法、装置、设备及存储介质 - Google Patents
代码补全方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109683907A CN109683907A CN201811638453.1A CN201811638453A CN109683907A CN 109683907 A CN109683907 A CN 109683907A CN 201811638453 A CN201811638453 A CN 201811638453A CN 109683907 A CN109683907 A CN 109683907A
- Authority
- CN
- China
- Prior art keywords
- code
- completion
- information
- code segment
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012790 confirmation Methods 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009885 systemic effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种代码补全方法、装置、设备及存储介质。所述方法包括:获取预先收集的补全代码信息;从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;当确定满足代码输入条件时,识别用户输入的字符串;当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。本发明实施例可以自定义需要补全的代码段以及相应的关键字,增加补全的代码段的多样性,提高代码段的补全效率。
Description
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种代码补全方法、装置、设备及存储介质。
背景技术
集成开发环境是用于提供程序开发环境的应用程序,通常包括代码编辑器、编译器和调试器等开发工具。
为了提升开发人员的代码编辑速度,在代码编辑器中通常会面向开发人员提供代码补全功能。代码补全是指开发人员在代码编辑器进行代码编辑时,代码编辑器可以根据开发人员输入的代码字符,自动匹配并输出用户可能还会需要的代码字符,从而,开发人员可以直接选择输出该代码字符进行补全,从而可以减少开发人员的输入的代码量,提升开发人员的代码编辑速度。
然而,在现有的代码补全功能中,只能通过系统自带的应用程序接口补全系统预设的补全代码段。
发明内容
本发明实施例提供了一种代码补全方法、装置、设备及存储介质,可以自定义需要补全的代码段以及相应的关键字,增加补全的代码段的多样性,提高代码段的补全效率。
第一方面,本发明实施例提供了一种代码补全方法,包括:
获取预先收集的补全代码信息;
从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;
从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;
当确定满足代码输入条件时,识别用户输入的字符串;
当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
第二方面,本发明实施例还提供了一种代码补全装置,包括:
补全代码信息获取模块,用于获取预先收集的补全代码信息;
代码段添加模块,用于从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;
关键字提取模块,用于从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;
输入字符串获取模块,用于当确定满足代码输入条件时,识别用户输入的字符串;
字符串补全模块,用于当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
第三方面,本发明实施例还提供了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的代码补全方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的代码补全方法。
本发明实施例通过收集补全代码信息,提取补全代码段添加到编辑器的配置文件中,提取关键字建立与补全代码段的匹配关系,实现在编辑器中配置自定义补全代码段,同时在检测到用户输入与预设的关键字匹配的字符串时,补全用户输入的字符串对应的代码段,解决了现有技术中只能通过系统自带的应用程序接口补全系统预设的补全代码段的问题,可以实现自定义补全代码段,提高代码补全的灵活性。
附图说明
图1是本发明实施例一中的一种代码补全方法的流程图;
图2是本发明实施例二中的一种代码补全装置的结构图;
图3是本发明实施例三中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种代码补全方法的流程图,本实施例可适用于补全输入的代码的情况,该方法可以由本发明实施例提供的代码补全装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成提供代码编辑功能的电子设备中,例如,客户端或服务器等。如图1所示,本实施例的方法具体包括:
S110,获取预先收集的补全代码信息。
其中,补全代码信息可以是指包括补全代码段的参数信息、属性信息、内容信息等信息,至少包括需要进行补全的代码段和代码段的关键字,此外还可以包括:代码段的名称信息、代码段的描述信息、代码段中的参数和代码段中的变量名等中的至少一种。具体的,代码段的关键字可以是指代表该代码段的至少两个字符,用于让用户快速了解该补全代码段的代码含义。
通常,代码段信息可以通过互联网收集各用户自定义的代码段,或者是使用电子设备的用户自定义的代码段,并从收集的代码段中提取代码段的相关信息,或者是在收集代码段时,同时收集代码段的相关信息,生成补全代码信息。
若收集的补全代码信息为网上收集的代码,可选的,在获取预先收集的补全代码信息之前,还包括:从预先建立的代码库中筛选成功提交次数达到预设阈值且标注状态为新提交状态的新代码段;获取所述新代码段匹配的关键字;根据所述新代码段和所述新代码段匹配的关键字生成补全代码信息,并删除所述新代码段的新提交状态。
具体的,可以在互联网中的开发社区或者开发论坛中收集代码段生成代码库。标注状态为新提交状态的新代码段是指未作为补全代码段录入到编辑器中。实际上,网络中流通的很多代码未经过验证,甚至存在错误,不能直接拿来作为补全代码段。可以对每个代码段进行应用次数统计,例如统计代码段的引用次数和/或提交次数。此外,在获取新代码段的同时,可以查找获取新代码段的位置处的上下文信息,确定关键字,例如,获取新代码段的内容栏中介绍该新代码段的功能为标记Error,从而可以将Error作为关键字。
当新代码段录入编辑器后,可以删除代码库中的该新代码对应的新提交状态,表示该新代码段已经录入编辑器,避免重复录入。
若收集的补全代码信息为用户自定义代码,可选的,在获取预先收集的补全代码信息之前,还可以包括:当接收到自定义补全代码指令时,显示自定义补全代码的输入提示信息;接收代码段和与所述代码段匹配的关键字,并生成补全代码信息。
具体的,自定义补全代码指令可以是指补全代码段的创建指令。输入提示信息可以是指提示用户输入补全代码段的内容和类型的信息,示例性的,如表1所示,表1提供了一种输入提示信息的示意图。用户可以在录入内容的位置处添加对应的信息,编辑器可以根据各部分的录入内容生成补全代码信息,并对应创建补全代码段。
表1输入提示信息
用户可以通过编辑器输入自定义补全代码指令,并对应提示信息,输入代码段和关键字,实现自定义配置补全代码段。
此外,用户可以仅输入代码段,并将代码段输入预先训练的机器学习模型,自动识别和标注代码段中代码段的关键字、代码段中的参数和代码段中的变量名。
可选的,所述补全代码信息还包括代码段描述信息;在显示补全代码的确认提示信息的同时,还包括:显示补全代码的代码段描述信息。
具体的,代码段的描述信息可以是指代码段的摘要信息,用于说明该代码段的功能和/或含义等信息。通过提示用户输入描述信息,使得自定义代码段时提供的信息更加全面,同时,有助于其他用户快速理解该补全代码段的功能,提高用户体验。
S120,从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中。
配置文件是指存储配置信息的文件,用于编辑器在代码编辑中读取。
可选的,所述从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中,包括:从所述补全代码信息中提取参数或变量名的标注信息和补全代码段,通过编辑器对所述补全代码段进行标注,并将附加标注结果的补全代码段添加至所述编辑器的配置文件中。
具体的,补全代码信息中还可以包括参数或变量名,编辑器接收到参数或变量名的标注信息时,可以直接在补全代码段中进行标注。标注结果可以包括区别标注和/或信息标注,示例性的,区别标注例可以是指采用不同颜色进行标注;标注描述信息可以是指当鼠标滑动到该参数或变量名所在位置时显示该描述信息,其中,标注描述信息可以是摘要内容,也可以是补全代码段。通过根据参数或变量名的标注信息对补全代码段进行标注,使补全代码段的内容更加丰富。
S130,从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系。
匹配关系可以用于当检测到关键字时,可以根据匹配关系快速确定关键字代表的补全代码段,从而在编辑器中输出并显示给用户。其中,关键字包括至少一个字符。
S140,当确定满足代码输入条件时,识别用户输入的字符串。
其中,代码输入条件是指用于检测用户是否在输入代码或者是编辑代码的条件。
在确定用户输入代码时,实时检测用户是否输入预存补全代码段对应的关键字。具体的,识别用户的输入的方式可以是通过键盘监听进行识别,键盘监听可以记录下键盘的每一次敲击的行为,从而快速准确识别用户输入的字符串,实现快速准确检测用户是否输入关键字。
S150,当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
代码补全条件可以是指检测当前输入代码的用户是否确认要补全代码的条件。根据预先建立的关键字与代码段的匹配关系,编辑器可以检索到关键字匹配的代码段,并输出。可以理解的是,补全的实际是用户输入的字符串之后的代码。
可选的,所述确定满足代码补全条件,可以包括:显示补全代码的确认提示信息;当接收到用户根据所述确认提示信息输入的确定补全代码指令时,确定满足代码补全条件。
其中,确认提示信息可以是指提示用户的补全代码段的信息。可以理解的是,用户输入的字符串包括的字符的数目小于关键字中包括的字符的数目,即用户输入一个字符串时,可以提示多个关键字,每个关键字对应不同的补全代码段。也就是说,该确认提示信息可以包括多个补全代码段的关键字。用户可以通过鼠标或者键盘等选择其中一个关键字作为目标关键字,此时可以显示确认提示框,由用户确认是否输出该目标关键字匹配的补全代码段。
确定补全代码指令可以是指用户输入的确认补全代码的指令,其中,该指令可以是用户选择关键字的指令,也可以是用户根据确认提示框输入的确认补全代码的指令。
本发明实施例通过收集补全代码信息,提取补全代码段添加到编辑器的配置文件中,提取关键字建立与补全代码段的匹配关系,实现在编辑器中配置自定义补全代码段,同时在检测到用户输入与预设的关键字匹配的字符串时,补全用户输入的字符串对应的代码段,解决了现有技术中只能通过系统自带的应用程序接口补全系统预设的补全代码段的问题,可以实现自定义补全代码段,提高代码补全的灵活性。
实施例二
图2是本发明实施例二提供的代码补全装置的示意图。实施例二是实现本发明上述实施例提供的代码补全方法的相应装置。
相应的,本实施例的装置可以包括:
补全代码信息获取模块210,用于获取预先收集的补全代码信息;
代码段添加模块220,用于从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;
关键字提取模块230,用于从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;
输入字符串获取模块240,用于当确定满足代码输入条件时,识别用户输入的字符串;
字符串补全模块250,用于当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
本发明实施例通过收集补全代码信息,提取补全代码段添加到编辑器的配置文件中,提取关键字建立与补全代码段的匹配关系,实现在编辑器中配置自定义补全代码段,同时在检测到用户输入与预设的关键字匹配的字符串时,补全用户输入的字符串对应的代码段,解决了现有技术中只能通过系统自带的应用程序接口补全系统预设的补全代码段的问题,可以实现自定义补全代码段,提高代码补全的灵活性。
进一步的,所述输入字符串获取模块240,具体用于:显示补全代码的确认提示信息;当接收到用户根据所述确认提示信息输入的确定补全代码指令时,确定满足代码补全条件。
进一步的,所述代码段添加模块220,具体用于:从所述补全代码信息中提取参数或变量名的标注信息和补全代码段,通过编辑器对所述补全代码段进行标注,并将附加标注结果的补全代码段添加至所述编辑器的配置文件中。
进一步的,所述代码补全装置,具体用于:当接收到自定义补全代码指令时,显示自定义补全代码的输入提示信息;接收代码段和与所述代码段匹配的关键字,并生成补全代码信息。
进一步的,所述代码补全装置,具体用于:从预先建立的代码库中筛选成功提交次数达到预设阈值且标注状态为新提交状态的新代码段;获取所述新代码段匹配的关键字;根据所述新代码段和所述新代码段匹配的关键字生成补全代码信息,并删除所述新代码段的新提交状态。
进一步的,所述补全代码信息还包括代码段描述信息;所述代码补全装置,具体用于:显示补全代码的代码段描述信息。
进一步的,所述输入字符串获取模块240,具体用于:通过键盘监听识别用户输入的字符串。
上述代码补全装置可执行本发明任意实施例所提供的代码补全方法,具备执行的代码补全方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三提供的一种设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性设备301的框图。图3显示的设备301仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,设备301以通用计算设备的形式表现。设备301的组件可以包括但不限于:一个或者多个处理器或者处理单元302,系统存储器303,连接不同系统组件(包括系统存储器303和处理单元302)的总线304。
总线304表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
设备301典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备301访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器303可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)305和/或高速缓存存储器306。设备301可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统307可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线304相连。系统存储器303可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块308的程序/实用工具309,可以存储在例如系统存储器303中,这样的程序模块308包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块308通常执行本发明所描述的实施例中的功能和/或方法。
设备301也可以与一个或多个外部设备310(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与该设备301交互的设备通信,和/或与使得该设备301能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口312进行。并且,设备301还可以通过网络适配器313与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide AreaNetwork,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器313通过总线304与设备301的其它模块通信。应当明白,尽管图3中未示出,可以结合设备301使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元302通过运行存储在系统存储器303中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种代码补全方法。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的代码补全方法:
也即,该程序被处理器执行时实现:获取预先收集的补全代码信息;从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;当确定满足代码输入条件时,识别用户输入的字符串;当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种代码补全方法,其特征在于,包括:
获取预先收集的补全代码信息;
从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;
从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;
当确定满足代码输入条件时,识别用户输入的字符串;
当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
2.根据权利要求1所述的方法,其特征在于,所述确定满足代码补全条件,包括:
显示补全代码的确认提示信息;
当接收到用户根据所述确认提示信息输入的确定补全代码指令时,确定满足代码补全条件。
3.根据权利要求1所述的方法,其特征在于,所述从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中,包括:
从所述补全代码信息中提取参数或变量名的标注信息和补全代码段,通过编辑器对所述补全代码段进行标注,并将附加标注结果的补全代码段添加至所述编辑器的配置文件中。
4.根据权利要求1所述的方法,其特征在于,在获取预先收集的补全代码信息之前,还包括:
当接收到自定义补全代码指令时,显示自定义补全代码的输入提示信息;
接收代码段和与所述代码段匹配的关键字,并生成补全代码信息。
5.根据权利要求1所述的方法,其特征在于,在获取预先收集的补全代码信息之前,还包括:
从预先建立的代码库中筛选成功提交次数达到预设阈值且标注状态为新提交状态的新代码段;
获取所述新代码段匹配的关键字;
根据所述新代码段和所述新代码段匹配的关键字生成补全代码信息,并删除所述新代码段的新提交状态。
6.根据权利要求2所述的方法,其特征在于,所述补全代码信息还包括代码段描述信息;
在显示补全代码的确认提示信息的同时,还包括:
显示补全代码的代码段描述信息。
7.根据权利要求1所述的方法,其特征在于,所述识别用户输入的字符串,包括:
通过键盘监听识别用户输入的字符串。
8.一种代码补全装置,其特征在于,包括:
补全代码信息获取模块,用于获取预先收集的补全代码信息;
代码段添加模块,用于从所述补全代码信息中提取补全代码段添加至编辑器的配置文件中;
关键字提取模块,用于从所述补全代码信息中提取关键字,通过所述编辑器建立与所述配置文件中所述补全代码段的匹配关系;
输入字符串获取模块,用于当确定满足代码输入条件时,识别用户输入的字符串;
字符串补全模块,用于当检测到用户输入的字符串与预设的关键字匹配,且确定满足代码补全条件时,通过所述编辑器检索与所述字符串匹配的代码段,并补全所述字符串。
9.一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的代码补全方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的代码补全方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811638453.1A CN109683907A (zh) | 2018-12-29 | 2018-12-29 | 代码补全方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811638453.1A CN109683907A (zh) | 2018-12-29 | 2018-12-29 | 代码补全方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109683907A true CN109683907A (zh) | 2019-04-26 |
Family
ID=66191343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811638453.1A Pending CN109683907A (zh) | 2018-12-29 | 2018-12-29 | 代码补全方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109683907A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078026A (zh) * | 2019-11-15 | 2020-04-28 | 北京乐我无限科技有限责任公司 | 一种输入提示方法、装置、电子设备及可读存储介质 |
CN111176629A (zh) * | 2019-12-24 | 2020-05-19 | 中国建设银行股份有限公司 | 一种应用开发的方法和装置 |
CN111368510A (zh) * | 2020-03-08 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种自动生成redfish字符串名称的方法和装置 |
CN111367513A (zh) * | 2020-02-20 | 2020-07-03 | 北京达佳互联信息技术有限公司 | 代码补全方法、装置、电子设备及存储介质 |
CN111679747A (zh) * | 2020-06-09 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 代码输入方法、装置、电子设备及存储介质 |
CN111913704A (zh) * | 2020-07-30 | 2020-11-10 | 山东浪潮通软信息科技有限公司 | 一种基于VSCode快速开发GSP7脚本的方法及插件工具 |
CN112579064A (zh) * | 2020-12-04 | 2021-03-30 | 深圳市大富网络技术有限公司 | 一种代码提示方法、系统、装置及可读存储介质 |
CN112764734A (zh) * | 2021-01-26 | 2021-05-07 | 维沃移动通信有限公司 | 代码编辑的辅助方法、装置及电子设备 |
CN113485688A (zh) * | 2021-07-01 | 2021-10-08 | 广州博冠信息科技有限公司 | 代码补全方法、装置、存储介质与电子设备 |
CN114327464A (zh) * | 2021-12-31 | 2022-04-12 | 北京瑞莱智慧科技有限公司 | 一种组件构建方法、装置及存储介质 |
CN115878127A (zh) * | 2022-11-17 | 2023-03-31 | 北京思明启创科技有限公司 | python解释器的输入信号确定方法、装置、设备及介质 |
CN117632106A (zh) * | 2023-11-21 | 2024-03-01 | 广州致远电子股份有限公司 | 代码补全方法、装置、设备以及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462399A (zh) * | 2014-06-30 | 2017-02-22 | 微软技术许可有限责任公司 | 代码推荐 |
-
2018
- 2018-12-29 CN CN201811638453.1A patent/CN109683907A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462399A (zh) * | 2014-06-30 | 2017-02-22 | 微软技术许可有限责任公司 | 代码推荐 |
Non-Patent Citations (2)
Title |
---|
TOM_殇子: "IDEA 自定义代码补全", 《CSDN博客 HTTPS://BLOG.CSDN.NET/TANGHUI270270/ARTICLE/DETAILS/80282033》 * |
YIXIAO YANG ET AL.: "A Language Model for Statements of Software Code", 《2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE)》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078026B (zh) * | 2019-11-15 | 2023-10-03 | 北京乐我无限科技有限责任公司 | 一种输入提示方法、装置、电子设备及可读存储介质 |
CN111078026A (zh) * | 2019-11-15 | 2020-04-28 | 北京乐我无限科技有限责任公司 | 一种输入提示方法、装置、电子设备及可读存储介质 |
CN111176629A (zh) * | 2019-12-24 | 2020-05-19 | 中国建设银行股份有限公司 | 一种应用开发的方法和装置 |
CN111367513A (zh) * | 2020-02-20 | 2020-07-03 | 北京达佳互联信息技术有限公司 | 代码补全方法、装置、电子设备及存储介质 |
CN111367513B (zh) * | 2020-02-20 | 2024-05-14 | 北京达佳互联信息技术有限公司 | 代码补全方法、装置、电子设备及存储介质 |
CN111368510A (zh) * | 2020-03-08 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种自动生成redfish字符串名称的方法和装置 |
CN111679747A (zh) * | 2020-06-09 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 代码输入方法、装置、电子设备及存储介质 |
CN111913704A (zh) * | 2020-07-30 | 2020-11-10 | 山东浪潮通软信息科技有限公司 | 一种基于VSCode快速开发GSP7脚本的方法及插件工具 |
CN112579064A (zh) * | 2020-12-04 | 2021-03-30 | 深圳市大富网络技术有限公司 | 一种代码提示方法、系统、装置及可读存储介质 |
CN112764734B (zh) * | 2021-01-26 | 2024-05-10 | 维沃移动通信有限公司 | 代码编辑的辅助方法、装置及电子设备 |
CN112764734A (zh) * | 2021-01-26 | 2021-05-07 | 维沃移动通信有限公司 | 代码编辑的辅助方法、装置及电子设备 |
CN113485688A (zh) * | 2021-07-01 | 2021-10-08 | 广州博冠信息科技有限公司 | 代码补全方法、装置、存储介质与电子设备 |
CN114327464A (zh) * | 2021-12-31 | 2022-04-12 | 北京瑞莱智慧科技有限公司 | 一种组件构建方法、装置及存储介质 |
CN115878127A (zh) * | 2022-11-17 | 2023-03-31 | 北京思明启创科技有限公司 | python解释器的输入信号确定方法、装置、设备及介质 |
CN117632106A (zh) * | 2023-11-21 | 2024-03-01 | 广州致远电子股份有限公司 | 代码补全方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683907A (zh) | 代码补全方法、装置、设备及存储介质 | |
CN108052577B (zh) | 一种通用文本内容挖掘方法、装置、服务器及存储介质 | |
CN1949179B (zh) | 利用只读进程组件对服务进程建模的方法和系统 | |
CN104584003B (zh) | 词检测和域字典推荐 | |
CN109949797A (zh) | 一种训练语料的生成方法、装置、设备及存储介质 | |
CN108897867A (zh) | 用于知识问答的数据处理方法、装置、服务器和介质 | |
US10853580B1 (en) | Generation of text classifier training data | |
CN109684634B (zh) | 情感分析方法、装置、设备及存储介质 | |
US9104709B2 (en) | Cleansing a database system to improve data quality | |
CN107832662A (zh) | 一种获取图片标注数据的方法和系统 | |
US11163806B2 (en) | Obtaining candidates for a relationship type and its label | |
US20180246867A1 (en) | Unified text analytics annotator development life cycle combining rule-based and machine learning based techniques | |
CN104866308A (zh) | 一种场景图像的生成方法及装置 | |
US9996209B2 (en) | Techniques for representing and comparing workflows | |
CN110163257A (zh) | 抽取结构化信息的方法、装置、设备和计算机存储介质 | |
CN109815147A (zh) | 测试案例生成方法、装置、服务器和介质 | |
KR20090058409A (ko) | 편집 가능한 개인 사전을 제공하고 활용하는 방법 및시스템 | |
CN106648819A (zh) | 一种基于编辑器的国际化代码转换方法 | |
CN111143556B (zh) | 软件功能点自动计数方法、装置、介质及电子设备 | |
CN110162786A (zh) | 构建配置文件以及抽取结构化信息的方法、装置 | |
CN109815481B (zh) | 对文本进行事件抽取的方法、装置、设备和计算机存储介质 | |
CN112507090A (zh) | 用于输出信息的方法、装置、设备和存储介质 | |
CN109214417A (zh) | 用户意图的挖掘方法及装置、计算机设备及可读介质 | |
US11423219B2 (en) | Generation and population of new application document utilizing historical application documents | |
CN104156373B (zh) | 编码格式检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |
|
RJ01 | Rejection of invention patent application after publication |