2015-04-27 43 views
2

我想在Ace Editor中显示一些关于代码行的信息。 因此,我想知道是否有可能添加信息标签旁边或上面的行不是代码的一部分。Ace编辑器能够在代码旁边显示标签吗?

例如,在一个JavaScript文件,我们可以有:

var x = "some string";赋值表达式

用的 “赋值表达式” 文本一些额外的造型; 但是,保存文本时,我不希望“分配表达式”成为内容的一部分。

我很想知道这是否可能。

回答

0

也许使用CSS“之后”psuedo-class?

类似.ace_line.foo:after {content: 'assignment expression';}

0

你可以用类名标记不同的代码行,比如给var x = "some string";类“字符串赋值”。

要用类标记文本,您可以创建自己的模式荧光笔,它可以从您使用的任何语言继承。这是扩展了C#

ace.define("ace/mode/custom_highlight_rules", ["require", "exports", "module", "ace/lib/oop", "ace/mode/text_highlight_rules", "ace/mode/behaviour/xml", "ace/mode/behaviour/cstyle"], function (require, exports, module) { 
    "use strict"; 

    var oop = require("../lib/oop"); 
    var TextMode = require("../mode/text").Mode; 
    var Tokenizer = require("../tokenizer").Tokenizer; 
    var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 
    var CSharpHighlightRules = require("./csharp_highlight_rules").CSharpHighlightRules; 

var Mode = function() { 
    this.$tokenizer = new Tokenizer(new CustomHighlightRules().getRules()); 
} 


var CusomHighlightRules = function() { 
    this.embedRules(CSharpHighlightRules, 
     "", [ 
      { 
       token: "csharp.assignment", 
       regex: "/[a-zA-A] *= *[a-zA-Z/ 

      }, 
      { 
       token: "csharp.methodcall", 
       regex: "/[a-zA-Z]+\(\)/ 

     ]); 

这将使标记所有代码匹配你 添加一个类你选择的任何正则表达式的例子。

在这种情况下,uit找到字母,然后是空格或否,以及等号和更多字母。并赋予它两个类csharp和ace_assignment(ace添加ace_)

之后,你可以进入CSS和做:在psuedo类或jQuery查找之后。

+0

谢谢你的回答,但我希望做更动态的事情,而不必定义规则,也不必定义另一个ace模块。与此同时,我用工具提示解决了这个问题。 – Radu