2012-03-30 14 views
1

特定のテキストの強調表示にCodeMirrorを使用しようとしています。 このプロジェクトの特筆すべきことは、私が強調しなければならないのはあらかじめ定義されているのではなく、Webサービスコールを作成することで、webserviceの応答によって何が強調表示されるべきかの指標になります。これはNLPプロジェクトであり、Webサービスは私にコンテキスト固有の「知識」を与えており、それが私が強調したいものです。コードミラー現在の文字位置を取得

だけで、私は以下の

を強調表示するために文字の位置を示し、開始と終了の属性を持つJSONオブジェクトを取得していますが、私はこれまでモード定義として、私は「差分」モード

を編集したたものである置きます
CodeMirror.defineMode("diff", function() { 
    var i=-1; 
    return { 
     token: function(stream) { 
      i++; 
      //  stream.skipToEnd(); 
      var ch = stream.next(); 
      if (bufferedResponse != null && bufferedResponse != "" && bufferedResponse.allergies != null){ 
       $.each(bufferedResponse.allergies, function(key, value) 
       { 
        if (key != null && value != null && value != "") 
        { 
         if(i<value.start && i>value.end){ 
          return "minus"; 
         } 
        } 
       }); 

      } 
     } 
    }; 
}); 

CodeMirror.defineMIME("text/x-diff", "diff"); 

私の質問は、文字列(行ではない)の先頭にストリームの現在の相対値を取得する方法です。ストリームが149番目の文字を読み込んでいる場合は、どうすればこの番号を取得できますか? "pos"、 "start"、 "columns"は私の現在の行の位置だけを与えます!

これはCodeMirrorを使用して可能ですか?

答えて

1

旧問いますが、番号から純粋にライン/ chの値を見つけようとしている場合は、使用することができます。

var editor = CodeMirror.fromTextArea(... 
...); 

var obj = editor.posFromIndex(number); 
alert(obj.line + ', ' + obj.ch); 
関連する問題