当前位置: 首页 > news >正文

PSPad自定义语法高亮,notepad++自定义语言格式

由于最近要用ISaGRAF来写结构化文本语言的程序,而ISaGRAF写代码的界面和记事本差不多,只能换其它的文本编辑器了。

先试了PSPad,自定义了语法高亮,由于要按Ctrl+J才能自动补全,而notepad++可以敲字母的时候直接自动补全就显示出来了,方便些,于是又试了下notepad++的自定义语言格式。就自定义的语法高亮来说,PSPad比notepad++好用。

先说PSPad的自定义语法高亮:

安装目录下的Syntax文件夹下的*.ini就是语言的配置文件。

“设置 - 自定义语法高亮”,由于是要新建一个,所以在弹出的“打开”对话框中选“取消”,(如果是要修改之前的,则选中之前的ini文件选“打开”)。

点击保存后ISaGRAF.ini保存在了Syntax文件夹下,上图右侧1对应的是[KeyWords],2 - [ReservedWords],3 - [KeyWords2],4 - [KeyWords3],内容如下:

;PSPad user HighLighter definition file
[Settings]
Name=ISaGRAF
HTMLGroup=0
Vectors=0
Label=1
FileType=.stf
CommentString=
ANSIComment=1
IndentChar=
UnIndentChar=
TabWidth=0
SingleQuote=1
EscString=0
EscChar=\
KeyWordChars=_
CodeExplorer=ftUnknown
DocComment=
[KeyWords]
BY=
CASE=
DO=
ELSE=
ELSIF=
END_CASE=
END_FOR=
END_IF=
END_REPEAT=
END_WHILE=
EXIT=
FOR=
IF=
OF=
REPEAT=
RETURN=
THEN=
TO=
UNTIL=
WHILE=
[ReservedWords]
[KeyWords2]
ABS=
ACOS=
AND=
AND_MASK=
ANY_TO_BOOL=
ANY_TO_DINT=
ANY_TO_REAL=
ANY_TO_SINT=
ANY_TO_STRING=
ANY_TO_TIME=
ASCII=
ASIN=
ATAN=
CHAT=
COS=
DELETE=
EXPT=
FIND=
INSERT=
LEFT=
LIMIT=
LOG=
MAX=
MID=
MIN=
MLEN=
MOD=
MOD=
MUX4=
MUX8=
NOT=
NOT_MASK=
ODD=
OFFSET=
OR=
OR_MASK=
POW=
RAND=
REPLACE=
RIGHT=
ROL=
ROR=
SEL=
SHL=
SHR=
SIN=
SQRT=
TAN=
TRUNC=
XOR=
XOR_MASK=
[KeyWords3]
CAN_IIRegID=
CAN_IIRX=
CAN_IITX=
CAN_II_Init=
Eth_udp_rx=
Eth_udp_tx=
RS232Init=
RS232Read=
RS232Write=
RS422Init=
RS422Read=
RS422Write=

然后“设置 - 语法高亮”,先在1处选中一个<not assigned>,然后在2处选中ISaGRAF,然后1处的<not assigned>就变为ISaGRAF了,选中ISaGRAF前面的框框,切换到“颜色”就可以配置颜色了。

 

notepad++自定义语言格式:

选择“语言 - 自定义语言 - 自定义语言格式”,点“新建”输入个名称“ISaGRAF”后定确定。“层次设置与默认格式”没动。

“关键字列表”中输入关键字,“样式”中可设置颜色,这样每组可设置不同的颜色,若不选前缀模式,则只有前后都有空格时才被认为是关键字,比方说“if(”后面紧跟了个括号,是不能被识别是关键字的,但如果选了前缀模式,则比方说“if(hello)”整个都会被认为是关键字,有点不智能哈。

“注释与数字”,按下面这样设置,单行注释有效,多行注释时不能被识别。但去掉“单行注释样式”中的(*和*),只保留“区块注释样式”中的,则单行、多行注释都能被识别。前缀1和后缀2是一对(https://www.cnblogs.com/xin04/p/12397641.html 这文章里有说明)。

“数字与运算符”,“运算符1”与“运算符2(需要分隔符)”的区别,比方说a=b,若=放在“运算符1”中,则可被识别为等号;若放在“运算符2(需要分隔符)”中则不能被识别,需要=前后有空格才能被识别。对于一些函数,比方说ANY_TO_DINT,由于后面跟着(,因此若放在“关键字列表”中,则不能被识别,因此干脆放在了“运算符1”中,这样就算后面紧跟括号也能被识别。

还有种办法是,比方说ANY_TO_DINT放在“关键字列表”中,在“数字与运算符”的“运算符1样式”中的开始填“(”、结尾填“)”,此时ANY_TO_DINT后就算紧跟“(”也能被识别,但如果嵌套了括号,如“( ( ) )”,则括号中的关键字就又有不能被识别的了。因此对于前后不是空格的关键字、函数等都放在了“运算符1”中。

在“语言”下选中“ISaGRAF”就可以按刚刚的设置来语法高亮了。

   

设置好后,可导出为xml文件,在其他地方导入后,若“语言”下没有“ISaGRAF”,则关闭notepad++再重新打开后应该就有了。


http://www.taodudu.cc/news/show-4919110.html

相关文章:

  • LORA学习笔记2——训练集处理
  • 性能优化 | el-table中内嵌大量el-input控件导致渲染卡顿的问题
  • RocketMQ学习笔记(一)
  • 力扣:300. 最长递增子序列(Java,动态规划)
  • 车规级低功耗汽车用晶振SG-9101CGA
  • Python从0到POC编写--模块
  • 滚动代码瀑布流代码效果国际站店铺装修代码生成器在线编辑器
  • “长沙银行杯”腾讯云启创新大赛——科技创新,原来还能这样玩?
  • 阿里国际站详情页上装修轮播功能代码怎么做动画gif图片步骤教程方法技巧
  • 怎么样装修好阿里巴巴国际站产品边框进度条环绕围绕效果动态gif制作代码全屏展示图片首页装修技巧方法教程视频全球旺铺阿里旺铺自定义内容装修 模板模块设置内容
  • 【边缘设备】基于RK3399核心板的nanoPC-T4 线刷桌面版系统
  • 大数据时代的历史机遇——产业变革与数据科学
  • 我的NO.旺
  • 旺铺入门版介绍
  • 旺铺入门版
  • 下载excel文件(旺铺助手)的方法
  • 基于pandas的电影评分差异分析
  • 蓝桥杯评分标准_第十一届蓝桥杯软件个人赛校内选拔赛评分标准和选拔标准
  • 计算机一级考if函数是哪套题,这个IF函数计算题必须要掌握! 考试难点!
  • es修改排序_ElasticSearch 评分排序
  • 2021/06/29计算机视觉期末复习笔记整理
  • 简答题文本自动评分
  • 五角星动态评分效果
  • 微信小游戏云开发数据库
  • mysql 游戏服务器设计_网络游戏服务器数据库设计和实现.doc
  • unity数据库
  • 怎样修改游戏服务器里的数据库,修改游戏服务器中的数据库
  • echart地图修改label标签位置
  • react中label标签关联的用法
  • html中调整lable位置右移,[转载]label标签右对齐
  • label标签和input标签之间的关系
  • java label 标签_Java标签(Label)
  • CSS3学习笔记(九)——UI元素状态伪类选择器 :checked
  • 学生专用计算机如何打游戏,学生党电脑差怎么办?推荐几款低配的联机游戏,渣机也畅玩!...
  • 心理测试小游戏
  • java游戏解救人质_抖音解救人质的游戏