2012-01-20 3 views
6

이 같은 (안 편집기), 뭔가 강조 독립형 사용하고 있습니다 : 하이 라이터를 실행할 때 http://codemirror.net/demo/runmode.htmlCodeMirror - 언어 자동 감지

어떻게 사용할 언어를 자동으로 감지 할 수 있습니까? 여기 모드 autochanging 데모가있다

: http://codemirror.net/demo/changemode.html

그러나 나는 Codemirror.runMode 작업이 적응할 수있는 방법을 모른다(). 자동 감지 된 구성표를 사용하여 전체 코드 블록을 강조하고 싶습니다.

답변

3

은 "changemode"데모는, 그래서이 자동으로 감지 다른 프로그래밍 언어로 작동하지 않습니다는 "계획"프로그래밍 언어와 "다른 모든 것들"을 구별

function looksLikeScheme(code) { 
    return !/^\s*\(\s*function\b/.test(code) && /^\s*[;\(]/.test(code); 
} 

의 구현을 볼 수 있습니다 그리고 데모 페이지에서 말한 것처럼, Scheme을 탐지하기조차도 매우 조잡합니다.

불행히도 소스 코드 스 니펫에서 광범위한 프로그래밍 언어를 자동 감지하는 것은 쉽지 않습니다. 작은 스 니펫의 경우 다른 프로그래밍 언어도 동일한 구문을 사용할 수도 있습니다. 그러나 합당한 접근법은 Detecting programming language from a snippet에 제안되어 있습니다.