一种基于Java的代码编辑器实现方法技术

技术编号:37789064 阅读:32 留言:0更新日期:2023-06-09 09:19
本发明专利技术涉及一种基于Java的代码编辑器实现方法,包括:高亮内容,选择Java关键字、逻辑运算符、数字、高亮字符串、高亮单行注释、高亮多行注释;文本编辑器,使用Java中提供的多行文本编辑器;着色时间,当文本编辑器中有字符被插入或者删除时,进行检查并进行着色;着色范围标定,采用Pos指变化前光标的位置,Len指变化的字符数;关键字着色,从着色范围的开始下标起进行判断,如果是以字母或者下划线开头,则说明是单词,先取得这个单词,如果这个单词是关键字,就进行关键字着色,如果不是,就进行普通的着色。本发明专利技术实现了一种基于Java代码规范的代码编辑器规范,可以提高代码的的编写效率。效率。

【技术实现步骤摘要】
一种基于Java的代码编辑器实现方法


[0001]本专利技术属于及计算机软件开发
,涉及在软件开发过程中,基于Java代码规范的代码编辑器实现方法。

技术介绍

[0002]Java做为Web时代的先驱者,一直在软件开发
占据极大的市场份额。一般在进行原有业务应用软件重构的时候,会优先选择Java来做为新系统的编程语言。
[0003]Java源代码本质上其实就是普通的文本文件,从理论上来说任何可以编辑文本文件的编辑器都可以作为java代码编辑工具。比如:记事本、写字板、WPS等。但是这些简单工具却没有语法的高亮提示、自动补全关键词等功能,这些功能的缺失会大大降低代码的编写效率。

技术实现思路

[0004]本专利技术的目的是针对上述问题,提供一种基于Java的代码编辑器实现方法,以提高代码的的编写效率。
[0005]本专利技术的技术方案如下:
[0006]一种基于Java的代码编辑器实现方法,其特征在于,包括以下内容:
[0007](1)高亮内容选择,包括:Java关键字,逻辑运算符,数字,高亮字符串,高亮单行注释,高亮多行注释;
[0008](2)文本编辑器选择:使用Java中提供的多行文本编辑器,包括JTextComponent、JTextArea、JTextPane、JEditorPane;因为语法着色中文本要使用多种风格的样式,所以上述文本编辑器的document要使用StyledDocument;
[0009](3)着色时间选择:当文本编辑器中有字符被插入或者删除时,文本的内容就发生了变化,这时进行检查并进行着色;为了监视到文本的内容发生了变化,给document添加一个DocumentListener监听器,在他的removeUpdate和insertUpdate中进行着色处理;
[0010](4)着色范围标定:采用Pos指变化前光标的位置,Len指变化的字符数;
[0011](5)关键字着色:从着色范围的开始下标起进行判断,如果是以字母开或者下划线开头,则说明是单词,那么先取得这个单词;如果这个单词是关键字,就进行关键字着色,如果不是,就进行普通的着色;着色完这个单词后,继续后面的着色处理。
[0012]本专利技术实现了一种基于Java代码规范的代码编辑器规范,通过打包二次开发包的方式,对于其他领域的应用也能有较好的适用性。
具体实施方式
[0013]代码编辑器通常包括以下三个特性:
[0014](1)Java处理命令输入输出流:
[0015]流代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象,
一个流可以理解为一个数据的序列。输入流表示从一个数据源读取数据,输出流表示向一个目标写数据。Progress对象默认情况下没有自己的终端或控制台,其所有的I/O输出(即标准输入、标准输出、错误输出)将会重定向到父进程。通过Java对流的支持,向Progress对象的输入流中写入输入,重定向Progress对象的标准输出流保存到字符串中。
[0016](2)高并发下的文件处理:
[0017]调用java命令运行Java源文件时,必要的条件是源文件得存在,所以需要Java将代码写入源文件,web项目高并发时因为文件被占用容易导致死锁。Web应用中,通过session来标识唯一用户,每个session都有着一个id,将文件放在${servletContentPath}/${sessionId}/${source File}下,就可以保证源文件唯一。
[0018](3)沙箱安全机制:
[0019]沙箱(sandbox)是一个限制程序运行的环境。限制程序运行一方面是为了保护系统资源,同时另一方面也为了保护程序自己。沙箱主要限制系统资源访问(包括CPU、内存、文件系统、网络)。不同级别的沙箱对这些资源访问的限制也可以不一样。Java安全模型的核心就是Java沙箱,采用策略文件控制沙箱的管理要素。通过加入

Djava.security.policy=<URL>参数来使用策略文件启动Java安全机制。
[0020]根据上述特性,本专利技术提供一种实现代码编辑器的方法,具体包括以下内容:
[0021]一、高亮内容选择:
[0022]需要高亮的内容有:
[0023]1.Java关键字,如public,int,true等;
[0024]2.逻辑运算符,如+,

,*,/等;
[0025]3.数字;
[0026]4.高亮字符串,如"example of string";
[0027]5.高亮单行注释;
[0028]6.高亮多行注释。
[0029]二、文本编辑器选择:
[0030]Java中提供的多行文本编辑器有JTextComponent,JTextArea,JTextPane,JEditorPane等,都可以使用。但是因为语法着色中文本要使用多种风格的样式,所以这些文本编辑器的document要使用StyledDocument。
[0031]为了实现语法着色,可以继承自DefaultStyledDocument,设置其为这些文本编辑器的documet,或者也可以直接使用JTextPane、JEditorPane来做。
[0032]三、着色时间选择:
[0033]当文本编辑器中有字符被插入或者删除时,文本的内容就发生了变化,这时检查,进行着色。为了监视到文本的内容发生了变化,要给document添加一个DocumentListener监听器,在他的removeUpdate和insertUpdate中进行着色处理。而changedUpdate方法在文本的属性例如前景色、背景色、字体等风格改变时才会被调用。
[0034]四、着色范围标定:
[0035]Pos:指变化前光标的位置。
[0036]Len:指变化的字符数。
[0037]例如有关键字public,int;
[0038]单词"publicint",在"public"和"int"中插入一个空格后变成"public int",一个单词变成了两个,这时对"public"和"int"进行着色。
[0039]着色范围是public中p的位置和int中t的位置加1,即是pos前面单词开始的下标和pos+len开始单词结束的下标。所以上例中要着色的范围是"public int"。
[0040]提供了方法indexOfWordStart来取得pos前单词开始的下标,方法indexOfWordEnd来取得pos后单词结束的下标。
[0041]五、关键字着色。
[0042]从着色范围的开始下标起进行判断,如果是以字母开或者下划线开头,则说明是单词,那么先取得这个单词;如果这个单词是关键字,就进行关键字着色,如果不是,就进行普本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Java的代码编辑器实现方法,其特征在于,包括以下内容:(1)高亮内容选择,包括:Java关键字,逻辑运算符,数字,高亮字符串,高亮单行注释,高亮多行注释;(2)文本编辑器选择:使用Java中提供的多行文本编辑器,包括JTextComponent、JTextArea、JTextPane、JEditorPane;因为语法着色中文本要使用多种风格的样式,所以上述文本编辑器的document要使用StyledDocument;(3)着色时间选择:当文本编辑器中有字符被插入或者删除时,文本的内容就发...

【专利技术属性】
技术研发人员:海文涛马英红
申请(专利权)人:北京航天长峰科技工业集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1