]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - extensions/SyntaxHighlight_GeSHi/modules/ve-syntaxhighlight/ve.ce.MWSyntaxHighlightNode.js
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / extensions / SyntaxHighlight_GeSHi / modules / ve-syntaxhighlight / ve.ce.MWSyntaxHighlightNode.js
diff --git a/extensions/SyntaxHighlight_GeSHi/modules/ve-syntaxhighlight/ve.ce.MWSyntaxHighlightNode.js b/extensions/SyntaxHighlight_GeSHi/modules/ve-syntaxhighlight/ve.ce.MWSyntaxHighlightNode.js
new file mode 100644 (file)
index 0000000..0d1cc57
--- /dev/null
@@ -0,0 +1,92 @@
+/*!
+ * VisualEditor ContentEditable MWSyntaxHighlightNode class.
+ *
+ * @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * ContentEditable MediaWiki syntax highlight node.
+ *
+ * @class
+ * @abstract
+ *
+ * @constructor
+ */
+ve.ce.MWSyntaxHighlightNode = function VeCeMWSyntaxHighlightNode() {
+};
+
+/* Inheritance */
+
+OO.initClass( ve.ce.MWSyntaxHighlightNode );
+
+/* Static Properties */
+
+ve.ce.MWSyntaxHighlightNode.static.name = 'mwSyntaxHighlight';
+
+/* Methods */
+
+// Inherits from ve.ce.GeneratedContentNode
+ve.ce.MWSyntaxHighlightNode.prototype.generateContents = function () {
+       var node = this,
+               args = arguments;
+       // Parent method
+       return mw.loader.using( 'ext.pygments' ).then( function () {
+               return ve.ce.MWExtensionNode.prototype.generateContents.apply( node, args );
+       } );
+};
+
+// Inherits from ve.ce.BranchNode
+ve.ce.MWSyntaxHighlightNode.prototype.onSetup = function () {
+       // Parent method
+       ve.ce.MWExtensionNode.prototype.onSetup.call( this );
+
+       // DOM changes
+       this.$element.addClass( 've-ce-mwSyntaxHighlightNode' );
+};
+
+// Inherits from ve.ce.FocusableNode
+ve.ce.MWSyntaxHighlightNode.prototype.getBoundingRect = function () {
+       // HACK: Because nodes can overflow due to the pre tag, just use the
+       // first rect (of the wrapper div) for placing the context.
+       return this.rects[ 0 ];
+};
+
+/* Concrete subclasses */
+
+ve.ce.MWBlockSyntaxHighlightNode = function VeCeMWBlockSyntaxHighlightNode() {
+       // Parent method
+       ve.ce.MWBlockExtensionNode.super.apply( this, arguments );
+
+       // Mixin method
+       ve.ce.MWSyntaxHighlightNode.call( this );
+};
+
+OO.inheritClass( ve.ce.MWBlockSyntaxHighlightNode, ve.ce.MWBlockExtensionNode );
+
+OO.mixinClass( ve.ce.MWBlockSyntaxHighlightNode, ve.ce.MWSyntaxHighlightNode );
+
+ve.ce.MWBlockSyntaxHighlightNode.static.name = 'mwBlockSyntaxHighlight';
+
+ve.ce.MWBlockSyntaxHighlightNode.static.primaryCommandName = 'syntaxhighlightDialog';
+
+ve.ce.MWInlineSyntaxHighlightNode = function VeCeMWInlineSyntaxHighlightNode() {
+       // Parent method
+       ve.ce.MWInlineExtensionNode.super.apply( this, arguments );
+
+       // Mixin method
+       ve.ce.MWSyntaxHighlightNode.call( this );
+};
+
+OO.inheritClass( ve.ce.MWInlineSyntaxHighlightNode, ve.ce.MWInlineExtensionNode );
+
+OO.mixinClass( ve.ce.MWInlineSyntaxHighlightNode, ve.ce.MWSyntaxHighlightNode );
+
+ve.ce.MWInlineSyntaxHighlightNode.static.name = 'mwInlineSyntaxHighlight';
+
+ve.ce.MWInlineSyntaxHighlightNode.static.primaryCommandName = 'syntaxhighlightInspector';
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.MWBlockSyntaxHighlightNode );
+ve.ce.nodeFactory.register( ve.ce.MWInlineSyntaxHighlightNode );