CN109947420A - 一种代码编辑器的快捷键机制实现方法及电子设备 - Google Patents
一种代码编辑器的快捷键机制实现方法及电子设备 Download PDFInfo
- Publication number
- CN109947420A CN109947420A CN201910083932.XA CN201910083932A CN109947420A CN 109947420 A CN109947420 A CN 109947420A CN 201910083932 A CN201910083932 A CN 201910083932A CN 109947420 A CN109947420 A CN 109947420A
- Authority
- CN
- China
- Prior art keywords
- shortcut key
- shortcut
- key mechanism
- completion
- editing machine
- 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.)
- Granted
Links
Landscapes
- Document Processing Apparatus (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开一种代码编辑器的快捷键机制实现方法及电子设备,方法包括步骤:引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。本发明通过引入第三方库,使代码编辑器具有完整的快捷键机制,给用户更加友好的使用体验。使用户在进行代码编辑操作时,效率更高,操作更流畅。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码编辑器的快捷键机制实现方法及电子设备。
背景技术
集成开发环境(IDE,Integrated Development Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。其集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。
虽然,代码编辑器具有代码编辑的功能,例如可进行代码编辑转换等操作。但现有的代码编辑器还不具有快捷键机制,导致进行代码编辑时效率不高。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种代码编辑器的快捷键机制实现方法及电子设备,旨在解决现有的代码编辑器还不具有快捷键机制,导致进行代码编辑时效率不高的问题。
本发明的技术方案如下:
一种代码编辑器的快捷键机制实现方法,其中,包括步骤:
引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;
在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
所述的代码编辑器的快捷键机制实现方法,其中,所述在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中的步骤具体包括:
当编辑器对象未加载完成时,自动触发生命周期函数;
将快捷键组合和执行函数传入至所述生命周期函数。
所述的代码编辑器的快捷键机制实现方法,其中,所述将快捷键组合和执行函数传入至所述生命周期函数的步骤之后包括:
判断编辑器对象是否加载完成,如果编辑器对象未加载完成,则将快捷键组合和执行函数放入到预设置的快捷列表中。
所述的代码编辑器的快捷键机制实现方法,其中,所述将快捷键组合和执行函数放入到预设置的快捷列表的步骤之后包括:
待编辑器对象加载完成,则触发编辑器对象的onload事件,通过所述onload事件读取预设置的快捷列表。
所述的代码编辑器的快捷键机制实现方法,其中,所述触发编辑器对象的onload事件,通过所述onload事件读取预设置的快捷列表的步骤之后包括:
遍历预设置的快捷列表,将所述生命周期函数中的快捷键组合及执行函数加入到编辑器对象中。
所述的代码编辑器的快捷键机制实现方法,其中,所述编辑器对象为ace对象。
所述的代码编辑器的快捷键机制实现方法,其中,所述第三方库为mousetrap第三方库。
一种电子设备,其中,包括:
处理器,适于实现各指令,以及
存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:
引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;
在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的代码编辑器的快捷键机制实现方法。
一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的代码编辑器的快捷键机制实现方法。
有益效果:本发明通过引入第三方库,使代码编辑器具有完整的快捷键机制,给用户更加友好的使用体验。使用户在进行代码编辑操作时,效率更高,操作更流畅。
附图说明
图1为本发明一种代码编辑器的快捷键机制实现方法较佳实施例的流程示意图。
图2为本发明一种电子设备较佳实施例的结构框图。
具体实施方式
本发明提供一种代码编辑器的快捷键机制实现方法及电子设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种代码编辑器的快捷键机制实现方法较佳实施例的流程示意图,如图所示,其包括步骤:
S1、引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;
S2、在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
本发明通过引入第三方库,使代码编辑器具有完整的快捷键机制,给用户更加友好的使用体验。使用户在进行代码编辑操作时,效率更高,操作更流畅。
具体地,在所述步骤S1中,引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上。
例如,引入第三方库mousetrap,通过mousetrap的bind函数(绑定函数),将指定事件绑定到对应的快捷键上。由于该快捷键在代码编辑器下会与代码编辑器自身的一些事件有冲突,因此需要重新改写代码编辑器中的实践绑定。
例如代码编辑器本身可能是通过快捷键组合ctrl+c实现全选效果,而目前的产品需求需要做到的效果是ctrl+c实现复制效果,因此需要重新改写代码编辑器中的快捷键的绑定事件。该实现能够通过代码编辑器的api来实现,具体如下:
本发明中,所述编辑器对象优选为ace对象。所述第三方库优选为mousetrap第三方库。mousetrap是一种较为常用的关于键盘快捷键的第三方库。
ace是一个开源的、独立的、基于浏览器的代码编辑器,可以嵌入到任何web页面或JavaScript应用程序中。ace支持超过60种语言语法高亮,并能够处理代码多达400万行的大型文档。ace在性能和功能上可以媲美本地代码编辑器(如Sublime Text、TextMate和Vim等)。ace是Mozilla Skywriter(以前称为Bespin)项目的继任者,并作为Cloud9的主要在线编辑器。
在所述步骤S2中,在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
由于代码编辑器(编辑器对象)的加载是异步的,即加入快捷键机制的时候需要判断编辑器对象是否已经加载完成,如果没有完成则加入的预设置的快捷列表中,当编辑器对象加载成功之后,再把快捷键机制批量转入所述编辑器对象中。
进一步,所述在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中的步骤具体包括:
当编辑器对象未加载完成时,自动触发生命周期函数;
将快捷键组合和执行函数传入至所述生命周期函数。
也就是说,在编辑器对象未加载完成时,会自动触发生命周期函数,然后将快捷键组合及其执行函数传入至所述生命周期函数。
例如要实现一个ctrl+c的效果,在编辑器对象未加载完成时,会自动触发componentdidmount函数(生命周期函数),在该函数中,触发事先封装好的函数add_shortcut,传入快捷键组合(shortcut)和执行函数(callback)到生命周期函数。
具体地,通过字符串形式传入快捷键组合(shortcut)和执行函数(callback)到生命周期函数。
callback,也称回调函数,是一个通过函数指针调用的函数,如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,就将其称为回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
shortcut类主要有两个方法组成:shortcut.add()、shortcut.remove()。
shortcut.add(key,func,options)
该方法有三个参数:
key:要设置的快捷键,比如“CTRL+A”,书写形式为:功能键[+功能键..]+其他键。详情见下面支持键列表;
func:响应快捷键的函数,当快捷键按下时,将执行该函数;
options:配置参数,以关联数组形式填写,参数包括下面几个:type、disable_in_input、target、propagate和keycode。其中,type(String)指事件类型,可以是'keydown','keyup','keypress'。disable_in_input(Boolean)表示是否在输入表单时屏蔽快捷键,如果该项设置为true,当光标焦点在input或textarea时,快捷键将屏蔽。target(DOM Node)表示响应快捷键的元素范围。propagate(Boolean)表示是否允许继承。keycode(Integer)表示监视的键盘编码。
进一步,所述将快捷键组合和执行函数传入至所述生命周期函数的步骤之后包括:
判断编辑器对象是否加载完成,如果编辑器对象未加载完成,则将快捷键组合和执行函数放入到预设置的快捷列表中。
即会判断编辑器对象是否存在?如果编辑器对象不存在,则将传入的参数shortcut和callback放入到对象pre_setting_shortcut(预设置的快捷列表,该名字可自定义)中,该对象的形式为{[shortcut]:callback}。
进一步,所述将快捷键组合和执行函数放入到预设置的快捷列表的步骤之后包括:
待编辑器对象加载完成,则触发编辑器对象的onload事件,通过所述onload事件读取预设置的快捷列表。
也就是说,在此步骤中,监听编辑器对象的onload事件,当编辑器对象加载成功后,自动触发onload事件,onload事件会去读取预先存好的pre_setting_shortcut。
进一步,所述触发编辑器对象的onload事件,通过所述onload事件读取预设置的快捷列表的步骤之后包括:
遍历预设置的快捷列表,将所述生命周期函数中的快捷键组合及执行函数加入到编辑器对象中。
此步骤是,遍历预先存好的pre_setting_shortcut,通将该快捷键组合及其执行函数加入到编辑器对象中。
本发明还提供一种电子设备10,如图2所示,其包括:
处理器110,适于实现各指令,以及
存储设备120,适于存储多条指令,所述指令适于由处理器110加载并执行:
引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;
在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
所述处理器110可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器还可以是任何传统处理器、微处理器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、任何其它这种配置。
存储设备120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的代码编辑器的快捷键机制实现方法对应的程序指令。处理器通过运行存储在存储设备中的非易失性软件程序、指令以及单元,从而执行代码编辑器的快捷键机制实现方法的各种功能应用以及数据处理,即实现上述方法实施例。
关于上述电子设备10的具体技术细节在前面的方法中已有详述,故不再赘述。
本发明还提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的代码编辑器的快捷键机制实现方法。
本发明还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的代码编辑器的快捷键机制实现方法。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种代码编辑器的快捷键机制实现方法,其特征在于,包括步骤:
引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;
在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
2.根据权利要求1所述的代码编辑器的快捷键机制实现方法,其特征在于,所述在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中的步骤具体包括:
当编辑器对象未加载完成时,自动触发生命周期函数;
将快捷键组合和执行函数传入至所述生命周期函数。
3.根据权利要求2所述的代码编辑器的快捷键机制实现方法,其特征在于,所述将快捷键组合和执行函数传入至所述生命周期函数的步骤之后包括:
判断编辑器对象是否加载完成,如果编辑器对象未加载完成,则将快捷键组合和执行函数放入到预设置的快捷列表中。
4.根据权利要求3所述的代码编辑器的快捷键机制实现方法,其特征在于,所述将快捷键组合和执行函数放入到预设置的快捷列表的步骤之后包括:
待编辑器对象加载完成,则触发编辑器对象的onload事件,通过所述onload事件读取预设置的快捷列表。
5.根据权利要求4所述的代码编辑器的快捷键机制实现方法,其特征在于,所述触发编辑器对象的onload事件,通过所述onload事件读取预设置的快捷列表的步骤之后包括:
遍历预设置的快捷列表,将所述生命周期函数中的快捷键组合及执行函数加入到编辑器对象中。
6.根据权利要求1所述的代码编辑器的快捷键机制实现方法,其特征在于,所述编辑器对象为ace对象。
7.根据权利要求1所述的代码编辑器的快捷键机制实现方法,其特征在于,所述第三方库为mousetrap第三方库。
8.一种电子设备,其特征在于,包括:
处理器,适于实现各指令,以及
存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:
引入第三方库,通过第三方库将指定事件绑定到相应的快捷键上;
在添加快捷键机制时,判断编辑器对象是否加载完成,若未加载完成,则将快捷键机制加入到预设置的快捷列表中,待加载完成后,将快捷列表中的快捷键机制批量转入所述编辑器对象中。
9.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的代码编辑器的快捷键机制实现方法。
10.一种计算机程序产品,其特征在于,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行权利要求1-7任一项所述的代码编辑器的快捷键机制实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910083932.XA CN109947420B (zh) | 2019-01-29 | 2019-01-29 | 一种代码编辑器的快捷键机制实现方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910083932.XA CN109947420B (zh) | 2019-01-29 | 2019-01-29 | 一种代码编辑器的快捷键机制实现方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947420A true CN109947420A (zh) | 2019-06-28 |
CN109947420B CN109947420B (zh) | 2022-08-23 |
Family
ID=67006562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910083932.XA Active CN109947420B (zh) | 2019-01-29 | 2019-01-29 | 一种代码编辑器的快捷键机制实现方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947420B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459298A (zh) * | 2020-03-30 | 2020-07-28 | 招商局金融科技有限公司 | 快捷键控制方法、电子装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727190A (zh) * | 2008-10-15 | 2010-06-09 | 钟桂琳 | 定义输入装置的快捷键的方法 |
KR20150000681A (ko) * | 2013-06-25 | 2015-01-05 | 엘지전자 주식회사 | 이동 단말기 및 그 동작 방법 |
CN106775432A (zh) * | 2016-12-22 | 2017-05-31 | 金蝶软件(中国)有限公司 | 一种快捷键设置方法及装置 |
CN108932095A (zh) * | 2018-07-06 | 2018-12-04 | 深圳点猫科技有限公司 | 一种基于人工智能通过快捷键处理图形的方法、电子设备 |
-
2019
- 2019-01-29 CN CN201910083932.XA patent/CN109947420B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727190A (zh) * | 2008-10-15 | 2010-06-09 | 钟桂琳 | 定义输入装置的快捷键的方法 |
KR20150000681A (ko) * | 2013-06-25 | 2015-01-05 | 엘지전자 주식회사 | 이동 단말기 및 그 동작 방법 |
CN106775432A (zh) * | 2016-12-22 | 2017-05-31 | 金蝶软件(中国)有限公司 | 一种快捷键设置方法及装置 |
CN108932095A (zh) * | 2018-07-06 | 2018-12-04 | 深圳点猫科技有限公司 | 一种基于人工智能通过快捷键处理图形的方法、电子设备 |
Non-Patent Citations (3)
Title |
---|
30度的风: "mousetrap.js使用详解", 《博客园 HTTPS://WWW.CNBLOGS.COM/JIASX/P/9945745.HTML》 * |
DFSGWE1231: "ipad键盘程序坞快捷键_将键盘快捷方式添加到您的Web应用程序", 《CSDN博客 HTTPS://BLOG.CSDN.NET/DFSGWE1231/ARTICLE/DETAILS/107269581》 * |
没想到啊: "用JAVASCRIPT设置快捷键,shortcut.js", 《博客园 HTTPS://WWW.CNBLOGS.COM/WHOKNOWS/ARTICLES/2227428.HTML》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459298A (zh) * | 2020-03-30 | 2020-07-28 | 招商局金融科技有限公司 | 快捷键控制方法、电子装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109947420B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Brant et al. | Wrappers to the Rescue | |
US8234623B2 (en) | System and method for using stream objects to perform stream processing in a text-based computing environment | |
CN109901764A (zh) | 一种代码编辑器右键菜单功能实现方法及电子设备 | |
CN102819492A (zh) | 一种基于Android的关键字驱动自动化测试框架 | |
JPH08512152A (ja) | インクリメンタル生成システム | |
US20100131745A1 (en) | Exceptional events | |
US20040025148A1 (en) | Computer-implemented system and method for code generation | |
CN102591777A (zh) | 一种单元测试代码生成方法及装置 | |
JP4001286B2 (ja) | プログラム保守支援装置、プログラム保守支援方法、およびプログラム | |
CN109375921A (zh) | 页面文件快速编译方法、装置及存储设备、计算机设备 | |
Crocker | Safe object-oriented software: the verified design-by-contract paradigm | |
US9817671B2 (en) | Rule-based activation of behaviors in an extensible software application | |
CN111381920A (zh) | 弹窗组件的显示方法、装置以及电子终端 | |
Alomari et al. | Comparative studies of six programming languages | |
CN109947420A (zh) | 一种代码编辑器的快捷键机制实现方法及电子设备 | |
CN111435312A (zh) | 应用程序管理方法、装置及电子设备 | |
Bilgin | Mastering Cross-Platform Development with Xamarin | |
CN111338626B (zh) | 一种界面渲染方法、装置、电子设备及介质 | |
Shute | Advanced JavaScript: Speed up web development with the powerful features and benefits of JavaScript | |
CN110045952B (zh) | 代码调用方法与装置 | |
Kurniawan | Java for Android | |
Krajewski | Hands-On High Performance Programming with Qt 5: Build cross-platform applications using concurrency, parallel programming, and memory management | |
CN110221821A (zh) | 一种基于编程教育的项目函数解耦方法及电子设备 | |
Chen et al. | Android stack machine | |
Troelsen et al. | Exploring Entity Framework Core |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |