Fix pygments language to Ace mode translation
This commit is contained in:
@@ -244,6 +244,27 @@ function highlight( element, language ) {
|
|||||||
element.parentNode.parentNode.replaceChild( newDiv, element.parentNode );
|
element.parentNode.parentNode.replaceChild( newDiv, element.parentNode );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pygments and Ace have different names for languages.
|
||||||
|
function pygmentsLanguageToAceMode( declaredLanguage ) {
|
||||||
|
switch ( declaredLanguage ) {
|
||||||
|
case 'c':
|
||||||
|
case 'c++':
|
||||||
|
case 'cpp':
|
||||||
|
case 'objective-c':
|
||||||
|
return 'c_cpp';
|
||||||
|
case 'c#':
|
||||||
|
return 'csharp';
|
||||||
|
case 'coffeescript':
|
||||||
|
return 'coffee';
|
||||||
|
case 'html+erb':
|
||||||
|
return 'html'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Assume language name is the same
|
||||||
|
// if it's not handled above.
|
||||||
|
return declaredLanguage;
|
||||||
|
}
|
||||||
|
|
||||||
var makePreviewHtml = function () {
|
var makePreviewHtml = function () {
|
||||||
var text = editorSession.getValue();
|
var text = editorSession.getValue();
|
||||||
|
|
||||||
@@ -294,21 +315,7 @@ var makePreviewHtml = function () {
|
|||||||
// the syntax for code highlighting means all code, even one line, contains newlines.
|
// the syntax for code highlighting means all code, even one line, contains newlines.
|
||||||
if ( txt.length > 1 && codeHTML.match( /\n/ ) ) {
|
if ( txt.length > 1 && codeHTML.match( /\n/ ) ) {
|
||||||
var declaredLanguage = element.className.toLowerCase();
|
var declaredLanguage = element.className.toLowerCase();
|
||||||
var aceMode = declaredLanguage;
|
var aceMode = pygmentsLanguageToAceMode( declaredLanguage );
|
||||||
|
|
||||||
// GitHub supports 'c', 'c++', 'cpp'
|
|
||||||
// which must trigger the 'c_cpp' mode in Ace.
|
|
||||||
if ( declaredLanguage === 'c' ||
|
|
||||||
declaredLanguage === 'c++' ||
|
|
||||||
declaredLanguage === 'cpp' ) {
|
|
||||||
aceMode = 'c_cpp';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pygments's name for CoffeeScript is 'coffeescript', but Ace
|
|
||||||
// calls it 'coffee'.
|
|
||||||
if ( declaredLanguage === 'coffeescript' ) {
|
|
||||||
aceMode = 'coffee';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $.inArray( declaredLanguage, languages ) === -1 ) {
|
if ( $.inArray( declaredLanguage, languages ) === -1 ) {
|
||||||
// Unsupported language.
|
// Unsupported language.
|
||||||
|
|||||||
Reference in New Issue
Block a user