如何修改Komodo中Forth语言非字母数字符号的默认语法高亮行为
解决Komodo编辑器中Forth带符号Word的语法高亮拆分问题
找到并打开Komodo的
koForthLanguage.py文件
它一般在Komodo安装目录的lib/support/language文件夹里,或者你用户配置目录下的语言扩展文件夹中。修改关键词匹配的正则表达式
找到定义self._keywordRE的代码行,原来的正则大概率只支持字母数字,要改成能包含@、>这类符号的版本,比如:self._keywordRE = re.compile(r'\b[@>!+*-a-zA-Z0-9]+\b')把你需要支持的所有符号都加到字符集里就行。
把带符号的Word加入关键词列表
在self._keywords1(或你使用的对应关键词组)的集合里添上>r这类词,比如:self._keywords1 = set([ '>r', '@', 'r>', '!', '你自定义的其他关键词' ])调整规则的匹配顺序
Komodo的词法分析按规则顺序匹配,所以要把关键词匹配规则放到单个符号规则的前面。找到self._lexer.addRule的调用部分,改成这样:# 优先匹配完整关键词(包括带符号的) self._lexer.addRule(self._keywordRE, tokenizer.TOKEN_KEYWORD1) # 再匹配单独的符号(如果需要保留单独符号的高亮) self._lexer.addRule(r'@', tokenizer.TOKEN_OPERATOR) self._lexer.addRule(r'>', tokenizer.TOKEN_OPERATOR)保存文件并重启Komodo
此时>r这类带符号的Word会被完整识别为单个关键词,显示你设置的对应颜色。
如果单独的符号(比如单独的@)本身也是Forth的Word,你可以直接把它们加到关键词列表里,然后删掉单个符号的规则,让所有符号相关的匹配都走关键词规则。
内容的提问来源于stack exchange,提问作者Roger Levy
相关产品推荐
相关产品推荐

