2015-04-27 56 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