siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
54 lines (40 loc) • 1.38 kB
JavaScript
/*
Siesta 5.6.1
Copyright(c) 2009-2022 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license
*/
Ext.define('Siesta.Project.Browser.UI.SourcePanel', {
extend : 'Ext.Panel',
alias : 'widget.sourcepanel',
__filled__ : false,
autoScroll : true,
cls : 'test-source-ct',
layout : 'absolute',
border : false,
bodyBorder : false,
setSource : function (source, linesToHighlight) {
var sourceCtEl = this.el;
if (!this.__filled__) {
this.__filled__ = true;
this.update(
Ext.String.format('<pre class="brush: javascript;">{0}</pre>', source)
);
// Disable the double click handling, which removes the code coloring
SyntaxHighlighter.defaults['quick-code'] = false;
SyntaxHighlighter.highlight(sourceCtEl);
}
sourceCtEl.select('.highlighted').removeCls('highlighted');
// Highlight rows
Ext.Array.each(linesToHighlight, function (line) {
sourceCtEl.select('.line.number' + line).addCls('highlighted');
});
if (linesToHighlight.length > 0) {
var el = sourceCtEl.down('.highlighted');
el && el.scrollIntoView(sourceCtEl);
}
},
clear : function () {
this.__filled__ = false;
}
});