diff --git a/src/context-menu-manager.coffee b/src/context-menu-manager.coffee index bd5ff943e..0fdcf4ab6 100644 --- a/src/context-menu-manager.coffee +++ b/src/context-menu-manager.coffee @@ -105,9 +105,9 @@ class ContextMenuManager # Detect deprecated file path as first argument if itemsBySelector? and typeof itemsBySelector isnt 'object' Grim.deprecate """ - ContextMenuManager::add has changed to take a single object as its + `ContextMenuManager::add` has changed to take a single object as its argument. Please see - https://atom.io/docs/api/latest/ContextMenuManager for more info. + https://atom.io/docs/api/latest/ContextMenuManager#context-menu-cson-format for more info. """ itemsBySelector = arguments[1] devMode = arguments[2]?.devMode @@ -116,9 +116,9 @@ class ContextMenuManager for key, value of itemsBySelector unless _.isArray(value) Grim.deprecate """ - ContextMenuManager::add has changed to take a single object as its + `ContextMenuManager::add` has changed to take a single object as its argument. Please see - https://atom.io/docs/api/latest/ContextMenuManager for more info. + https://atom.io/docs/api/latest/ContextMenuManager#context-menu-cson-format for more info. """ itemsBySelector = @convertLegacyItemsBySelector(itemsBySelector, devMode) diff --git a/src/package.coffee b/src/package.coffee index a395dfb14..b16e76ba0 100644 --- a/src/package.coffee +++ b/src/package.coffee @@ -191,7 +191,20 @@ class Package for [menuPath, map] in @menus when map['context-menu']? try - @activationDisposables.add(atom.contextMenu.add(map['context-menu'])) + itemsBySelector = map['context-menu'] + + if includeDeprecatedAPIs + # Detect deprecated format for items object + for key, value of itemsBySelector + unless _.isArray(value) + deprecate(""" + The context menu CSON format has changed. Please see + https://atom.io/docs/api/latest/ContextMenuManager#context-menu-cson-format + for more info. + """, {packageName: @name}) + itemsBySelector = atom.contextMenu.convertLegacyItemsBySelector(itemsBySelector) + + @activationDisposables.add(atom.contextMenu.add(itemsBySelector)) catch error if error.code is 'EBADSELECTOR' error.message += " in #{menuPath}"