Skip to content

Instantly share code, notes, and snippets.

@abynim
Last active November 24, 2016 12:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abynim/e2df3ea4dc9ede209cc0 to your computer and use it in GitHub Desktop.
Save abynim/e2df3ea4dc9ede209cc0 to your computer and use it in GitHub Desktop.
// Include abstract search functions
// --------------------------
// 1. Search for Layers by Name
// layerName parameter is required. container and layerType are optional.
var findLayersNamed_inContainer_filterByType = function(layerName, container, layerType) {
var predicate = (typeof layerType === 'undefined' || layerType == nil) ? NSPredicate.predicateWithFormat("name == %@", layerName) : NSPredicate.predicateWithFormat("name == %@ && class == %@", layerName, layerType)
return findLayersMatchingPredicate_inContainer_filterByType(predicate, container)
}
// Example usage:
// Find Layers named `Rectangle 1`
log( findLayersNamed_inContainer_filterByType("Rectangle 1") )
// Find Text Layers named `Type something` in the current Page
log( findLayersNamed_inContainer_filterByType("Type something", doc.currentPage(), MSTextLayer) )
// --------------------------
// 2. Search for Artboards by Name
var findArtboardsNamed = function(artboardName) {
var predicate = NSPredicate.predicateWithFormat("name == %@", artboardName)
return findLayersMatchingPredicate_inContainer_filterByType(predicate, nil, MSArtboardGroup)
}
// Example usage:
// Find Artboards named `Artboard 1`
log( findArtboardsNamed("Artboard 1") )
// --------------------------
// 3. Search for Pages by Name
var findPagesNamed = function(pageName) {
var predicate = NSPredicate.predicateWithFormat("name == %@", pageName)
return findLayersMatchingPredicate_inContainer_filterByType(predicate, nil, MSPage)
}
// Example usage:
// Find Pages named `Page 1`
log( findPagesNamed("Page 1") )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment