From f97730e83cadf98d8b5e439d42d148ee51cd6b5e Mon Sep 17 00:00:00 2001 From: Sam El-Husseini Date: Thu, 25 Feb 2021 20:17:42 -0500 Subject: [PATCH] Sort requires (#4658) * Cleanup gulp method to sort requires --- core/block.js | 2 +- core/block_animations.js | 1 + core/block_dragger.js | 2 +- core/block_svg.js | 2 +- core/blockly.js | 4 +- core/contextmenu_items.js | 1 + core/events/events_selected.js | 1 + core/events/events_theme_change.js | 1 + core/events/events_toolbox_item_select.js | 1 + core/events/events_trashcan_open.js | 1 + core/events/events_viewport.js | 1 + core/field_colour.js | 1 + core/generator.js | 2 +- core/interfaces/i_flyout.js | 2 +- core/interfaces/i_metrics_manager.js | 2 +- core/options.js | 2 +- core/registry.js | 5 +- core/renderers/common/constants.js | 1 + core/renderers/common/drawer.js | 2 +- core/renderers/common/i_path_object.js | 2 +- core/renderers/common/info.js | 4 +- core/renderers/common/renderer.js | 2 +- core/renderers/geras/drawer.js | 2 +- core/renderers/geras/info.js | 18 ++--- core/renderers/geras/measurables/inputs.js | 2 +- core/renderers/geras/renderer.js | 3 +- core/renderers/minimalist/drawer.js | 2 +- core/renderers/minimalist/renderer.js | 2 +- core/renderers/thrasos/info.js | 2 +- core/renderers/zelos/drawer.js | 2 +- core/renderers/zelos/info.js | 2 +- core/renderers/zelos/measurables/rows.js | 2 +- core/renderers/zelos/path_object.js | 2 +- core/renderers/zelos/renderer.js | 2 +- core/toolbox/category.js | 2 +- core/toolbox/collapsible_category.js | 2 +- core/toolbox/toolbox.js | 2 +- core/toolbox/toolbox_item.js | 1 + core/tooltip.js | 1 + core/utils.js | 2 +- core/variables_dynamic.js | 2 +- core/workspace_comment_svg.js | 1 + core/workspace_svg.js | 4 +- core/xml.js | 2 +- core/zoom_controls.js | 1 + gulpfile.js | 2 + package.json | 1 + scripts/gulpfiles/cleanup_tasks.js | 85 ++++++++++++++++++++++ 48 files changed, 145 insertions(+), 46 deletions(-) create mode 100644 scripts/gulpfiles/cleanup_tasks.js diff --git a/core/block.js b/core/block.js index 65f4664d9..343fe0eb5 100644 --- a/core/block.js +++ b/core/block.js @@ -26,8 +26,8 @@ goog.require('Blockly.fieldRegistry'); goog.require('Blockly.Input'); goog.require('Blockly.Tooltip'); goog.require('Blockly.utils'); -goog.require('Blockly.utils.deprecation'); goog.require('Blockly.utils.Coordinate'); +goog.require('Blockly.utils.deprecation'); goog.require('Blockly.utils.object'); goog.require('Blockly.utils.Size'); goog.require('Blockly.utils.string'); diff --git a/core/block_animations.js b/core/block_animations.js index 6eb4627ed..82e2516b1 100644 --- a/core/block_animations.js +++ b/core/block_animations.js @@ -17,6 +17,7 @@ goog.require('Blockly.utils.Svg'); goog.requireType('Blockly.BlockSvg'); + /** * PID of disconnect UI animation. There can only be one at a time. * @type {number} diff --git a/core/block_dragger.js b/core/block_dragger.js index d7a539d4d..d3d9a42c0 100644 --- a/core/block_dragger.js +++ b/core/block_dragger.js @@ -15,8 +15,8 @@ goog.provide('Blockly.BlockDragger'); goog.require('Blockly.blockAnimations'); goog.require('Blockly.constants'); goog.require('Blockly.Events'); -goog.require('Blockly.Events.BlockMove'); goog.require('Blockly.Events.BlockDrag'); +goog.require('Blockly.Events.BlockMove'); goog.require('Blockly.InsertionMarkerManager'); goog.require('Blockly.utils.Coordinate'); goog.require('Blockly.utils.dom'); diff --git a/core/block_svg.js b/core/block_svg.js index 49b68ff23..1aacd4801 100644 --- a/core/block_svg.js +++ b/core/block_svg.js @@ -29,8 +29,8 @@ goog.require('Blockly.TabNavigateCursor'); goog.require('Blockly.Tooltip'); goog.require('Blockly.Touch'); goog.require('Blockly.utils'); -goog.require('Blockly.utils.deprecation'); goog.require('Blockly.utils.Coordinate'); +goog.require('Blockly.utils.deprecation'); goog.require('Blockly.utils.dom'); goog.require('Blockly.utils.object'); goog.require('Blockly.utils.Rect'); diff --git a/core/blockly.js b/core/blockly.js index 36902a643..471b5042f 100644 --- a/core/blockly.js +++ b/core/blockly.js @@ -16,14 +16,14 @@ */ goog.provide('Blockly'); -goog.require('Blockly.constants'); goog.require('Blockly.browserEvents'); +goog.require('Blockly.constants'); goog.require('Blockly.Events'); goog.require('Blockly.Events.BlockCreate'); goog.require('Blockly.Events.FinishedLoading'); -goog.require('Blockly.Events.VarCreate'); goog.require('Blockly.Events.Ui'); goog.require('Blockly.Events.UiBase'); +goog.require('Blockly.Events.VarCreate'); goog.require('Blockly.inject'); goog.require('Blockly.Procedures'); goog.require('Blockly.ShortcutRegistry'); diff --git a/core/contextmenu_items.js b/core/contextmenu_items.js index 11a8332bb..6d5c54e27 100644 --- a/core/contextmenu_items.js +++ b/core/contextmenu_items.js @@ -21,6 +21,7 @@ goog.require('Blockly.Events'); goog.requireType('Blockly.BlockSvg'); + /** Option to undo previous action. */ Blockly.ContextMenuItems.registerUndo = function() { /** @type {!Blockly.ContextMenuRegistry.RegistryItem} */ diff --git a/core/events/events_selected.js b/core/events/events_selected.js index 089885425..e1d71d32a 100644 --- a/core/events/events_selected.js +++ b/core/events/events_selected.js @@ -17,6 +17,7 @@ goog.require('Blockly.Events.UiBase'); goog.require('Blockly.registry'); goog.require('Blockly.utils.object'); + /** * Class for a selected event. * @param {?string=} opt_oldElementId The id of the previously selected diff --git a/core/events/events_theme_change.js b/core/events/events_theme_change.js index 39343846c..c0ecd889f 100644 --- a/core/events/events_theme_change.js +++ b/core/events/events_theme_change.js @@ -17,6 +17,7 @@ goog.require('Blockly.Events.UiBase'); goog.require('Blockly.registry'); goog.require('Blockly.utils.object'); + /** * Class for a theme change event. * @param {string=} opt_themeName The theme name. Undefined for a blank event. diff --git a/core/events/events_toolbox_item_select.js b/core/events/events_toolbox_item_select.js index 9f7226369..a7dbb5305 100644 --- a/core/events/events_toolbox_item_select.js +++ b/core/events/events_toolbox_item_select.js @@ -17,6 +17,7 @@ goog.require('Blockly.Events.UiBase'); goog.require('Blockly.registry'); goog.require('Blockly.utils.object'); + /** * Class for a toolbox item select event. * @param {?string=} opt_oldItem The previously selected toolbox item. Undefined diff --git a/core/events/events_trashcan_open.js b/core/events/events_trashcan_open.js index 7567de0c4..ab388d909 100644 --- a/core/events/events_trashcan_open.js +++ b/core/events/events_trashcan_open.js @@ -17,6 +17,7 @@ goog.require('Blockly.Events.UiBase'); goog.require('Blockly.registry'); goog.require('Blockly.utils.object'); + /** * Class for a trashcan open event. * @param {boolean=} opt_isOpen Whether the trashcan flyout is opening (false if diff --git a/core/events/events_viewport.js b/core/events/events_viewport.js index 744ec2d8d..43b9b6a8c 100644 --- a/core/events/events_viewport.js +++ b/core/events/events_viewport.js @@ -17,6 +17,7 @@ goog.require('Blockly.Events.UiBase'); goog.require('Blockly.registry'); goog.require('Blockly.utils.object'); + /** * Class for a viewport change event. * @param {number=} opt_top Top-edge of the visible portion of the workspace, diff --git a/core/field_colour.js b/core/field_colour.js index 36ae9f640..9059b3bc0 100644 --- a/core/field_colour.js +++ b/core/field_colour.js @@ -29,6 +29,7 @@ goog.require('Blockly.utils.Size'); goog.requireType('Blockly.ShortcutRegistry'); + /** * Class for a colour input field. * @param {string=} opt_value The initial value of the field. Should be in diff --git a/core/generator.js b/core/generator.js index 241574f88..c60f1aa8f 100644 --- a/core/generator.js +++ b/core/generator.js @@ -13,8 +13,8 @@ goog.provide('Blockly.Generator'); -goog.require('Blockly.constants'); goog.require('Blockly.Block'); +goog.require('Blockly.constants'); goog.requireType('Blockly.Names'); goog.requireType('Blockly.Workspace'); diff --git a/core/interfaces/i_flyout.js b/core/interfaces/i_flyout.js index f3a91e556..f0230ed3e 100644 --- a/core/interfaces/i_flyout.js +++ b/core/interfaces/i_flyout.js @@ -15,8 +15,8 @@ goog.provide('Blockly.IFlyout'); goog.requireType('Blockly.BlockSvg'); goog.requireType('Blockly.IRegistrable'); -goog.requireType('Blockly.utils.dom'); goog.requireType('Blockly.utils.Coordinate'); +goog.requireType('Blockly.utils.dom'); goog.requireType('Blockly.utils.Svg'); goog.requireType('Blockly.utils.toolbox'); goog.requireType('Blockly.WorkspaceSvg'); diff --git a/core/interfaces/i_metrics_manager.js b/core/interfaces/i_metrics_manager.js index f74a611dd..b3d267f2f 100644 --- a/core/interfaces/i_metrics_manager.js +++ b/core/interfaces/i_metrics_manager.js @@ -17,9 +17,9 @@ goog.requireType('Blockly.IFlyout'); goog.requireType('Blockly.IToolbox'); goog.requireType('Blockly.MetricsManager'); goog.requireType('Blockly.utils.Metrics'); +goog.requireType('Blockly.utils.Size'); goog.requireType('Blockly.utils.toolbox'); -goog.requireType('Blockly.utils.Size'); /** * Interface for a metrics manager. diff --git a/core/options.js b/core/options.js index a968a8698..c44a87de9 100644 --- a/core/options.js +++ b/core/options.js @@ -12,9 +12,9 @@ goog.provide('Blockly.Options'); +goog.require('Blockly.registry'); goog.require('Blockly.Theme'); goog.require('Blockly.Themes.Classic'); -goog.require('Blockly.registry'); goog.require('Blockly.utils.IdGenerator'); goog.require('Blockly.utils.Metrics'); goog.require('Blockly.utils.toolbox'); diff --git a/core/registry.js b/core/registry.js index 61538367a..a11b9b8a7 100644 --- a/core/registry.js +++ b/core/registry.js @@ -14,16 +14,15 @@ goog.provide('Blockly.registry'); goog.requireType('Blockly.blockRendering.Renderer'); +goog.requireType('Blockly.Cursor'); goog.requireType('Blockly.Events.Abstract'); goog.requireType('Blockly.Field'); goog.requireType('Blockly.IConnectionChecker'); goog.requireType('Blockly.IFlyout'); goog.requireType('Blockly.IToolbox'); -goog.requireType('Blockly.Theme'); - -goog.requireType('Blockly.Cursor'); goog.requireType('Blockly.MetricsManager'); goog.requireType('Blockly.Options'); +goog.requireType('Blockly.Theme'); goog.requireType('Blockly.ToolboxItem'); diff --git a/core/renderers/common/constants.js b/core/renderers/common/constants.js index c0db53522..aeb2af08e 100644 --- a/core/renderers/common/constants.js +++ b/core/renderers/common/constants.js @@ -24,6 +24,7 @@ goog.requireType('Blockly.blockRendering.Debug'); goog.requireType('Blockly.RenderedConnection'); goog.requireType('Blockly.Theme'); + /** * An object that provides constants for rendering blocks. * @constructor diff --git a/core/renderers/common/drawer.js b/core/renderers/common/drawer.js index 641ef74b2..0e1dc5312 100644 --- a/core/renderers/common/drawer.js +++ b/core/renderers/common/drawer.js @@ -23,9 +23,9 @@ goog.require('Blockly.blockRendering.Types'); goog.require('Blockly.utils.svgPaths'); goog.requireType('Blockly.blockRendering.ConstantProvider'); +goog.requireType('Blockly.blockRendering.Field'); goog.requireType('Blockly.blockRendering.Icon'); goog.requireType('Blockly.blockRendering.InlineInput'); -goog.requireType('Blockly.blockRendering.Field'); goog.requireType('Blockly.BlockSvg'); diff --git a/core/renderers/common/i_path_object.js b/core/renderers/common/i_path_object.js index 7435d60f5..708175168 100644 --- a/core/renderers/common/i_path_object.js +++ b/core/renderers/common/i_path_object.js @@ -14,9 +14,9 @@ goog.provide('Blockly.blockRendering.IPathObject'); +goog.requireType('Blockly.Block'); goog.requireType('Blockly.blockRendering.ConstantProvider'); goog.requireType('Blockly.Theme'); -goog.requireType('Blockly.Block'); /** diff --git a/core/renderers/common/info.js b/core/renderers/common/info.js index ef56cbdb7..4a262358a 100644 --- a/core/renderers/common/info.js +++ b/core/renderers/common/info.js @@ -16,8 +16,8 @@ goog.require('Blockly.blockRendering.BottomRow'); goog.require('Blockly.blockRendering.ExternalValueInput'); goog.require('Blockly.blockRendering.Hat'); goog.require('Blockly.blockRendering.InlineInput'); -goog.require('Blockly.blockRendering.InRowSpacer'); goog.require('Blockly.blockRendering.InputRow'); +goog.require('Blockly.blockRendering.InRowSpacer'); goog.require('Blockly.blockRendering.Measurable'); goog.require('Blockly.blockRendering.NextConnection'); goog.require('Blockly.blockRendering.OutputConnection'); @@ -25,8 +25,8 @@ goog.require('Blockly.blockRendering.PreviousConnection'); goog.require('Blockly.blockRendering.RoundCorner'); goog.require('Blockly.blockRendering.Row'); goog.require('Blockly.blockRendering.SpacerRow'); -goog.require('Blockly.blockRendering.StatementInput'); goog.require('Blockly.blockRendering.SquareCorner'); +goog.require('Blockly.blockRendering.StatementInput'); goog.require('Blockly.blockRendering.TopRow'); goog.require('Blockly.blockRendering.Types'); goog.require('Blockly.constants'); diff --git a/core/renderers/common/renderer.js b/core/renderers/common/renderer.js index d751a2ea1..1461b836f 100644 --- a/core/renderers/common/renderer.js +++ b/core/renderers/common/renderer.js @@ -15,8 +15,8 @@ goog.provide('Blockly.blockRendering.Renderer'); goog.require('Blockly.blockRendering.ConstantProvider'); goog.require('Blockly.blockRendering.Debug'); goog.require('Blockly.blockRendering.Drawer'); -goog.require('Blockly.blockRendering.MarkerSvg'); goog.require('Blockly.blockRendering.IPathObject'); +goog.require('Blockly.blockRendering.MarkerSvg'); goog.require('Blockly.blockRendering.PathObject'); goog.require('Blockly.blockRendering.RenderInfo'); goog.require('Blockly.constants'); diff --git a/core/renderers/geras/drawer.js b/core/renderers/geras/drawer.js index 414249aaa..9ff1c9cdb 100644 --- a/core/renderers/geras/drawer.js +++ b/core/renderers/geras/drawer.js @@ -19,8 +19,8 @@ goog.require('Blockly.geras.RenderInfo'); goog.require('Blockly.utils.object'); goog.require('Blockly.utils.svgPaths'); -goog.requireType('Blockly.geras.PathObject'); goog.requireType('Blockly.BlockSvg'); +goog.requireType('Blockly.geras.PathObject'); /** diff --git a/core/renderers/geras/info.js b/core/renderers/geras/info.js index 5c22e76e0..5b5fadc97 100644 --- a/core/renderers/geras/info.js +++ b/core/renderers/geras/info.js @@ -15,29 +15,29 @@ goog.provide('Blockly.geras'); goog.provide('Blockly.geras.RenderInfo'); goog.require('Blockly.blockRendering.BottomRow'); +goog.require('Blockly.blockRendering.BottomRow'); +goog.require('Blockly.blockRendering.ExternalValueInput'); +goog.require('Blockly.blockRendering.InputRow'); goog.require('Blockly.blockRendering.InputRow'); goog.require('Blockly.blockRendering.InRowSpacer'); goog.require('Blockly.blockRendering.Measurable'); -goog.require('Blockly.blockRendering.NextConnection'); -goog.require('Blockly.blockRendering.OutputConnection'); -goog.require('Blockly.blockRendering.PreviousConnection'); -goog.require('Blockly.blockRendering.RenderInfo'); -goog.require('Blockly.blockRendering.BottomRow'); -goog.require('Blockly.blockRendering.InputRow'); goog.require('Blockly.blockRendering.Measurable'); goog.require('Blockly.blockRendering.NextConnection'); +goog.require('Blockly.blockRendering.NextConnection'); +goog.require('Blockly.blockRendering.OutputConnection'); goog.require('Blockly.blockRendering.OutputConnection'); goog.require('Blockly.blockRendering.PreviousConnection'); +goog.require('Blockly.blockRendering.PreviousConnection'); +goog.require('Blockly.blockRendering.RenderInfo'); goog.require('Blockly.blockRendering.Types'); -goog.require('Blockly.blockRendering.ExternalValueInput'); goog.require('Blockly.constants'); goog.require('Blockly.geras.InlineInput'); goog.require('Blockly.geras.StatementInput'); goog.require('Blockly.utils.object'); -goog.requireType('Blockly.geras.Renderer'); -goog.requireType('Blockly.BlockSvg'); goog.requireType('Blockly.blockRendering.Field'); +goog.requireType('Blockly.BlockSvg'); +goog.requireType('Blockly.geras.Renderer'); /** diff --git a/core/renderers/geras/measurables/inputs.js b/core/renderers/geras/measurables/inputs.js index 53996dbe6..6aca47b77 100644 --- a/core/renderers/geras/measurables/inputs.js +++ b/core/renderers/geras/measurables/inputs.js @@ -14,9 +14,9 @@ goog.provide('Blockly.geras.InlineInput'); goog.provide('Blockly.geras.StatementInput'); -goog.require('Blockly.utils.object'); goog.require('Blockly.blockRendering.InlineInput'); goog.require('Blockly.blockRendering.StatementInput'); +goog.require('Blockly.utils.object'); goog.requireType('Blockly.blockRendering.ConstantProvider'); goog.requireType('Blockly.Input'); diff --git a/core/renderers/geras/renderer.js b/core/renderers/geras/renderer.js index 48eab0277..659cb42b6 100644 --- a/core/renderers/geras/renderer.js +++ b/core/renderers/geras/renderer.js @@ -21,13 +21,12 @@ goog.require('Blockly.geras.PathObject'); goog.require('Blockly.geras.RenderInfo'); goog.require('Blockly.utils.object'); -goog.requireType('Blockly.blockRendering.RenderInfo'); goog.requireType('Blockly.blockRendering.ConstantProvider'); +goog.requireType('Blockly.blockRendering.RenderInfo'); goog.requireType('Blockly.BlockSvg'); goog.requireType('Blockly.Theme'); - /** * The geras renderer. * @param {string} name The renderer name. diff --git a/core/renderers/minimalist/drawer.js b/core/renderers/minimalist/drawer.js index 41a8e496b..592710d6d 100644 --- a/core/renderers/minimalist/drawer.js +++ b/core/renderers/minimalist/drawer.js @@ -12,8 +12,8 @@ goog.provide('Blockly.minimalist.Drawer'); goog.require('Blockly.blockRendering.Drawer'); -goog.require('Blockly.utils.object'); goog.require('Blockly.minimalist.RenderInfo'); +goog.require('Blockly.utils.object'); /** diff --git a/core/renderers/minimalist/renderer.js b/core/renderers/minimalist/renderer.js index f85bd9a40..76db7d5c8 100644 --- a/core/renderers/minimalist/renderer.js +++ b/core/renderers/minimalist/renderer.js @@ -13,10 +13,10 @@ goog.provide('Blockly.minimalist.Renderer'); goog.require('Blockly.blockRendering'); goog.require('Blockly.blockRendering.Renderer'); -goog.require('Blockly.utils.object'); goog.require('Blockly.minimalist.ConstantProvider'); goog.require('Blockly.minimalist.Drawer'); goog.require('Blockly.minimalist.RenderInfo'); +goog.require('Blockly.utils.object'); /** diff --git a/core/renderers/thrasos/info.js b/core/renderers/thrasos/info.js index f5e95e04c..7adfc5418 100644 --- a/core/renderers/thrasos/info.js +++ b/core/renderers/thrasos/info.js @@ -17,8 +17,8 @@ goog.provide('Blockly.thrasos.RenderInfo'); goog.require('Blockly.blockRendering.BottomRow'); goog.require('Blockly.blockRendering.ExternalValueInput'); goog.require('Blockly.blockRendering.InlineInput'); -goog.require('Blockly.blockRendering.InRowSpacer'); goog.require('Blockly.blockRendering.InputRow'); +goog.require('Blockly.blockRendering.InRowSpacer'); goog.require('Blockly.blockRendering.Measurable'); goog.require('Blockly.blockRendering.NextConnection'); goog.require('Blockly.blockRendering.OutputConnection'); diff --git a/core/renderers/zelos/drawer.js b/core/renderers/zelos/drawer.js index b078b1c5f..d421dedf1 100644 --- a/core/renderers/zelos/drawer.js +++ b/core/renderers/zelos/drawer.js @@ -19,8 +19,8 @@ goog.require('Blockly.utils.object'); goog.require('Blockly.utils.svgPaths'); goog.require('Blockly.zelos.RenderInfo'); -goog.requireType('Blockly.BlockSvg'); goog.requireType('Blockly.blockRendering.Row'); +goog.requireType('Blockly.BlockSvg'); goog.requireType('Blockly.zelos.PathObject'); diff --git a/core/renderers/zelos/info.js b/core/renderers/zelos/info.js index c453e4f05..19d11e576 100644 --- a/core/renderers/zelos/info.js +++ b/core/renderers/zelos/info.js @@ -26,8 +26,8 @@ goog.require('Blockly.blockRendering.PreviousConnection'); goog.require('Blockly.blockRendering.RenderInfo'); goog.require('Blockly.blockRendering.RoundCorner'); goog.require('Blockly.blockRendering.Row'); -goog.require('Blockly.blockRendering.SquareCorner'); goog.require('Blockly.blockRendering.SpacerRow'); +goog.require('Blockly.blockRendering.SquareCorner'); goog.require('Blockly.blockRendering.TopRow'); goog.require('Blockly.blockRendering.Types'); goog.require('Blockly.constants'); diff --git a/core/renderers/zelos/measurables/rows.js b/core/renderers/zelos/measurables/rows.js index a336440d7..8ccbe2113 100644 --- a/core/renderers/zelos/measurables/rows.js +++ b/core/renderers/zelos/measurables/rows.js @@ -15,8 +15,8 @@ goog.provide('Blockly.zelos.BottomRow'); goog.provide('Blockly.zelos.TopRow'); goog.require('Blockly.blockRendering.BottomRow'); -goog.require('Blockly.blockRendering.TopRow'); goog.require('Blockly.blockRendering.SpacerRow'); +goog.require('Blockly.blockRendering.TopRow'); goog.require('Blockly.utils.object'); goog.requireType('Blockly.blockRendering.ConstantProvider'); diff --git a/core/renderers/zelos/path_object.js b/core/renderers/zelos/path_object.js index bd69e2371..391cd26fc 100644 --- a/core/renderers/zelos/path_object.js +++ b/core/renderers/zelos/path_object.js @@ -14,10 +14,10 @@ goog.provide('Blockly.zelos.PathObject'); goog.require('Blockly.blockRendering.PathObject'); -goog.require('Blockly.zelos.ConstantProvider'); goog.require('Blockly.utils.dom'); goog.require('Blockly.utils.object'); goog.require('Blockly.utils.Svg'); +goog.require('Blockly.zelos.ConstantProvider'); goog.requireType('Blockly.Theme'); diff --git a/core/renderers/zelos/renderer.js b/core/renderers/zelos/renderer.js index f9ada0701..7e948c15a 100644 --- a/core/renderers/zelos/renderer.js +++ b/core/renderers/zelos/renderer.js @@ -19,9 +19,9 @@ goog.require('Blockly.InsertionMarkerManager'); goog.require('Blockly.utils.object'); goog.require('Blockly.zelos.ConstantProvider'); goog.require('Blockly.zelos.Drawer'); +goog.require('Blockly.zelos.MarkerSvg'); goog.require('Blockly.zelos.PathObject'); goog.require('Blockly.zelos.RenderInfo'); -goog.require('Blockly.zelos.MarkerSvg'); goog.requireType('Blockly.blockRendering.MarkerSvg'); goog.requireType('Blockly.blockRendering.RenderInfo'); diff --git a/core/toolbox/category.js b/core/toolbox/category.js index fc5a5e37f..a11e3f15f 100644 --- a/core/toolbox/category.js +++ b/core/toolbox/category.js @@ -13,12 +13,12 @@ goog.provide('Blockly.ToolboxCategory'); goog.require('Blockly.registry'); +goog.require('Blockly.ToolboxItem'); goog.require('Blockly.utils'); goog.require('Blockly.utils.aria'); goog.require('Blockly.utils.dom'); goog.require('Blockly.utils.object'); goog.require('Blockly.utils.toolbox'); -goog.require('Blockly.ToolboxItem'); goog.requireType('Blockly.ICollapsibleToolboxItem'); goog.requireType('Blockly.IToolbox'); diff --git a/core/toolbox/collapsible_category.js b/core/toolbox/collapsible_category.js index a56d56aa1..f7693a97f 100644 --- a/core/toolbox/collapsible_category.js +++ b/core/toolbox/collapsible_category.js @@ -14,12 +14,12 @@ goog.provide('Blockly.CollapsibleToolboxCategory'); goog.require('Blockly.registry'); goog.require('Blockly.ToolboxCategory'); +goog.require('Blockly.ToolboxItem'); goog.require('Blockly.ToolboxSeparator'); goog.require('Blockly.utils.aria'); goog.require('Blockly.utils.dom'); goog.require('Blockly.utils.object'); goog.require('Blockly.utils.toolbox'); -goog.require('Blockly.ToolboxItem'); goog.requireType('Blockly.ICollapsibleToolboxItem'); goog.requireType('Blockly.IToolbox'); diff --git a/core/toolbox/toolbox.js b/core/toolbox/toolbox.js index 775f2e937..8bf98f2f9 100644 --- a/core/toolbox/toolbox.js +++ b/core/toolbox/toolbox.js @@ -26,10 +26,10 @@ goog.require('Blockly.utils.dom'); goog.require('Blockly.utils.Rect'); goog.require('Blockly.utils.toolbox'); -goog.requireType('Blockly.IKeyboardAccessible'); goog.requireType('Blockly.ICollapsibleToolboxItem'); goog.requireType('Blockly.IDeleteArea'); goog.requireType('Blockly.IFlyout'); +goog.requireType('Blockly.IKeyboardAccessible'); goog.requireType('Blockly.ISelectableToolboxItem'); goog.requireType('Blockly.IStyleable'); goog.requireType('Blockly.IToolbox'); diff --git a/core/toolbox/toolbox_item.js b/core/toolbox/toolbox_item.js index 7d70a4026..e7c807667 100644 --- a/core/toolbox/toolbox_item.js +++ b/core/toolbox/toolbox_item.js @@ -18,6 +18,7 @@ goog.requireType('Blockly.IToolboxItem'); goog.requireType('Blockly.utils.toolbox'); goog.requireType('Blockly.WorkspaceSvg'); + /** * Class for an item in the toolbox. * @param {!Blockly.utils.toolbox.ToolboxItemInfo} toolboxItemDef The JSON defining the diff --git a/core/tooltip.js b/core/tooltip.js index 663950879..a07884b95 100644 --- a/core/tooltip.js +++ b/core/tooltip.js @@ -24,6 +24,7 @@ goog.provide('Blockly.Tooltip'); goog.require('Blockly.browserEvents'); goog.require('Blockly.utils.string'); + /** * A type which can define a tooltip. * Either a string, an object containing a tooltip property, or a function which diff --git a/core/utils.js b/core/utils.js index d613b4c74..dd4687808 100644 --- a/core/utils.js +++ b/core/utils.js @@ -18,8 +18,8 @@ */ goog.provide('Blockly.utils'); -goog.require('Blockly.Msg'); goog.require('Blockly.constants'); +goog.require('Blockly.Msg'); goog.require('Blockly.utils.colour'); goog.require('Blockly.utils.Coordinate'); goog.require('Blockly.utils.global'); diff --git a/core/variables_dynamic.js b/core/variables_dynamic.js index 763e99524..f761e5273 100644 --- a/core/variables_dynamic.js +++ b/core/variables_dynamic.js @@ -13,11 +13,11 @@ goog.provide('Blockly.VariablesDynamic'); -goog.require('Blockly.Variables'); goog.require('Blockly.Blocks'); goog.require('Blockly.Msg'); goog.require('Blockly.utils.xml'); goog.require('Blockly.VariableModel'); +goog.require('Blockly.Variables'); goog.requireType('Blockly.Workspace'); diff --git a/core/workspace_comment_svg.js b/core/workspace_comment_svg.js index 8b828d958..c01f69da6 100644 --- a/core/workspace_comment_svg.js +++ b/core/workspace_comment_svg.js @@ -30,6 +30,7 @@ goog.requireType('Blockly.IBoundedElement'); goog.requireType('Blockly.IBubble'); goog.requireType('Blockly.ICopyable'); + /** * Class for a workspace comment's SVG representation. * @param {!Blockly.Workspace} workspace The block's workspace. diff --git a/core/workspace_svg.js b/core/workspace_svg.js index 5a4401465..c3b4bc78b 100644 --- a/core/workspace_svg.js +++ b/core/workspace_svg.js @@ -12,12 +12,12 @@ goog.provide('Blockly.WorkspaceSvg'); -goog.require('Blockly.BlockSvg'); goog.require('Blockly.blockRendering'); +goog.require('Blockly.BlockSvg'); +goog.require('Blockly.browserEvents'); goog.require('Blockly.ConnectionDB'); goog.require('Blockly.constants'); goog.require('Blockly.ContextMenuRegistry'); -goog.require('Blockly.browserEvents'); goog.require('Blockly.Events'); goog.require('Blockly.Events.BlockCreate'); goog.require('Blockly.Events.ThemeChange'); diff --git a/core/xml.js b/core/xml.js index 5aadaa894..1f58eae82 100644 --- a/core/xml.js +++ b/core/xml.js @@ -28,8 +28,8 @@ goog.requireType('Blockly.Block'); goog.requireType('Blockly.Comment'); goog.requireType('Blockly.Connection'); goog.requireType('Blockly.Field'); -goog.requireType('Blockly.Workspace'); goog.requireType('Blockly.VariableModel'); +goog.requireType('Blockly.Workspace'); /** diff --git a/core/zoom_controls.js b/core/zoom_controls.js index 7383855c1..eeb8e023b 100644 --- a/core/zoom_controls.js +++ b/core/zoom_controls.js @@ -24,6 +24,7 @@ goog.require('Blockly.utils.Svg'); goog.requireType('Blockly.WorkspaceSvg'); + /** * Class for a zoom controls. * @param {!Blockly.WorkspaceSvg} workspace The workspace to sit in. diff --git a/gulpfile.js b/gulpfile.js index 48369ce72..496211472 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -18,6 +18,7 @@ var gitTasks = require('./scripts/gulpfiles/git_tasks'); var licenseTasks = require('./scripts/gulpfiles/license_tasks'); var appengineTasks = require('./scripts/gulpfiles/appengine_tasks'); var releaseTasks = require('./scripts/gulpfiles/release_tasks'); +var cleanupTasks = require('./scripts/gulpfiles/cleanup_tasks'); module.exports = { deployDemos: appengineTasks.deployDemos, @@ -40,4 +41,5 @@ module.exports = { recompile: releaseTasks.recompile, publish: releaseTasks.publish, publishBeta: releaseTasks.publishBeta, + sortRequires: cleanupTasks.sortRequires, }; diff --git a/package.json b/package.json index b7c71ad33..9ab76e58c 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "bump": "npm --no-git-tag-version version 4.$(date +'%Y%m%d').0", "deployDemos": "gulp deployDemos", "format": "git-clang-format", + "format:sortrequires": "gulp sortRequires", "license": "gulp checkLicenses", "lint": "eslint .", "package": "gulp package", diff --git a/scripts/gulpfiles/cleanup_tasks.js b/scripts/gulpfiles/cleanup_tasks.js new file mode 100644 index 000000000..3387eab65 --- /dev/null +++ b/scripts/gulpfiles/cleanup_tasks.js @@ -0,0 +1,85 @@ +/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview Gulp tasks to complete various clean up tasks. + */ + +const gulp = require('gulp'); +const path = require('path'); +const through2 = require('through2'); + +/** + * Sorts goog.requires in core, blocks and generators. + */ +function sortRequires() { + const srcs = ['core/**/**/*.js', 'blocks/*.js', 'generators/**/*.js']; + const excludes = ['core/requires.js']; + return gulp.src(srcs, {base: './'}) + .pipe(through2.obj((file, _enc, next) => { + if (file.isNull() || file.isDirectory()) { + next(null, file); + return; + } + + if (file.extname !== '.js' && path.extname(file.history[0]) !== '.js') { + next(null, file); + return; + } + + const relPath = path.relative(path.join(file.cwd, file.base), file.path); + if (excludes.indexOf(relPath) > -1) { + next(null, file); + return; + } + + const contents = file.contents.toString(); + + // Capture requires. + const re = /goog\.(require|requireType)\('(.*)'\);/gm; + const requiresList = []; + const requireTypesList = []; + let firstIndex; + let lastIndex; + while ((match = re.exec(contents)) != null) { + if (match[1] == 'require') requiresList.push(match[2]); + if (match[1] == 'requireType') requireTypesList.push(match[2]); + if (firstIndex == undefined) { + firstIndex = match.index; + } else { + lastIndex = re.lastIndex; + } + } + + // Sort requires. + requiresList.sort( + (a, b) => a.toLowerCase().localeCompare(b.toLowerCase())); + requireTypesList.sort( + (a, b) => a.toLowerCase().localeCompare(b.toLowerCase())); + + // Replace in file. + const requiresSection = requiresList.length ? + requiresList.map(r => `goog.require('${r}');`).join('\n') + '\n\n' : + ''; + const requireTypesSection = requireTypesList.length ? + requireTypesList.map(r => `goog.requireType('${r}');`).join('\n') + + '\n\n' : + ''; + const requires = `${requiresSection}${requireTypesSection}\n`; + + if (firstIndex != undefined & lastIndex != undefined) { + file.contents = Buffer.from( + contents.substring(0, firstIndex) + requires + + contents.substring(lastIndex).trimStart()); + } + next(null, file); + })) + .pipe(gulp.dest('./')); +}; + +module.exports = { + sortRequires: sortRequires +};