jenkins-bot has submitted this change and it was merged. Change subject: Enable conditional loading of ACE language modes ......................................................................
Enable conditional loading of ACE language modes require bypasses Ace's internal loadModule() logic which is capable of on demand loading of Ace modules. Because unloaded modules are not defined, they cannot be required, and because we don't use RL to preload all modes (because it's a lot of bytes), currently only very few of the available language modes were currently available. Also validate language mode names passed to Ace. Bug: T148518 Change-Id: I82d278920695be12aa80a79548abf8b8ce5445fd --- M modules/ve-mw/ui/widgets/ve.ui.MWAceEditorWidget.js 1 file changed, 8 insertions(+), 5 deletions(-) Approvals: Alex Monk: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWAceEditorWidget.js b/modules/ve-mw/ui/widgets/ve.ui.MWAceEditorWidget.js index 187c9d2..8cf0d44 100644 --- a/modules/ve-mw/ui/widgets/ve.ui.MWAceEditorWidget.js +++ b/modules/ve-mw/ui/widgets/ve.ui.MWAceEditorWidget.js @@ -70,8 +70,8 @@ */ ve.ui.MWAceEditorWidget.prototype.setup = function () { if ( !this.loadingPromise ) { - this.loadingPromise = mw.loader.getState( 'ext.codeEditor.ace.modes' ) ? - mw.loader.using( 'ext.codeEditor.ace.modes' ) : + this.loadingPromise = mw.loader.getState( 'ext.codeEditor.ace' ) ? + mw.loader.using( 'ext.codeEditor.ace' ) : $.Deferred().reject().promise(); // Resolved promises will run synchronously, so ensure #setupEditor // runs after this.loadingPromise is stored. @@ -327,9 +327,12 @@ ve.ui.MWAceEditorWidget.prototype.setLanguage = function ( lang ) { var widget = this; this.loadingPromise.done( function () { - // TODO: Just use ace.require once T127643 is resolved - var require = ace.require || require; - widget.editor.getSession().setMode( 'ace/mode/' + ( require( 'ace/mode/' + lang ) ? lang : 'text' ) ); + ace.config.loadModule( 'ace/ext/modelist', function ( modelist ) { + if ( !modelist || !modelist.modesByName[ lang ] ) { + lang = 'text'; + } + widget.editor.getSession().setMode( 'ace/mode/' + lang ); + } ); } ); return this; }; -- To view, visit https://gerrit.wikimedia.org/r/316572 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I82d278920695be12aa80a79548abf8b8ce5445fd Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: TheDJ <hartman.w...@gmail.com> Gerrit-Reviewer: Alex Monk <a...@wikimedia.org> Gerrit-Reviewer: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: TheDJ <hartman.w...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits