2012-03-30 4 views
1

특정 텍스트를 강조 표시하기 위해 CodeMirror를 사용하려고합니다. 이 프로젝트의 특이한 점은 강조해야 할 것이 미리 정의되어 있지 않고 웹 서비스 호출을하고 웹 서 비스의 응답이 무엇을 강조해야하는지에 대한 색인을 제공한다는 것입니다. 이것은 NLP 프로젝트이며 webservice는 상황에 맞는 특정 "지식"을 제공하고 있으며 이는 내가 강조하고 싶은 것입니다.코드 미러 현재 위치 가져 오기

간단히 내가 JSON은 문자의 위치가

다음

을 강조하는 의미 시작 및 끝 속성을 가진 개체를 얻고 난 모드 정의로, 나는 "DIFF"모드

을 편집 한 지금까지 무엇을 가지고 넣어
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 번째 char을 읽는다면 어떻게이 번호를 검색 할 수 있습니까? "pos", "start"및 "columns"는 현재 행의 위치 만 제공합니다!

CodeMirror를 사용하면 가능합니까?

답변

1

오래된 질문하지만 숫자에서 순수 라인/채널 값을 찾기 위해 노력하는 경우 다음을 사용할 수 있습니다

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

var obj = editor.posFromIndex(number); 
alert(obj.line + ', ' + obj.ch); 
관련 문제