Merge pull request #6522 from atom/iz-more-deprecation-fixes

Add new Grim.deprecate call for context menu CSON format so that it can be correctly attributed to packages
This commit is contained in:
Ivan Žužak
2015-04-28 13:42:51 +02:00
2 changed files with 18 additions and 5 deletions

View File

@@ -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)

View File

@@ -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}"