mirror of
https://github.com/atom/atom.git
synced 2026-01-23 05:48:10 -05:00
Keep Packages submenu sorted
This ensures packages are in a predictable order regardless of whether they are bundled or installed to ~/.atom/packages Closes #3155
This commit is contained in:
@@ -15,6 +15,7 @@ class MenuManager
|
||||
@pendingUpdateOperation = null
|
||||
@template = []
|
||||
atom.keymaps.on 'bundled-keymaps-loaded', => @loadPlatformItems()
|
||||
atom.packages.on 'activated', => @sortPackagesMenu()
|
||||
|
||||
# Public: Adds the given item definition to the existing template.
|
||||
#
|
||||
@@ -130,3 +131,14 @@ class MenuManager
|
||||
# Get an {Array} of {String} classes for the given element.
|
||||
classesForElement: (element) ->
|
||||
element?.classList.toString().split(' ') ? []
|
||||
|
||||
sortPackagesMenu: ->
|
||||
packagesMenu = @template.find ({label}) => @normalizeLabel(label) is 'Packages'
|
||||
return unless packagesMenu?.submenu?
|
||||
|
||||
packagesMenu.submenu.sort (item1, item2) =>
|
||||
if item1.label and item2.label
|
||||
@normalizeLabel(item1.label).localeCompare(@normalizeLabel(item2.label))
|
||||
else
|
||||
0
|
||||
@update()
|
||||
|
||||
Reference in New Issue
Block a user