Skip to content

Instantly share code, notes, and snippets.

@abynim
Last active April 30, 2024 09:58
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save abynim/04f88d5e4fe47118bfe3 to your computer and use it in GitHub Desktop.
Save abynim/04f88d5e4fe47118bfe3 to your computer and use it in GitHub Desktop.
var doc = context.document
var selectLayersOfType_inContainer = function(layerType, containerLayer) {
// Filter layers using NSPredicate
var scope = (typeof containerLayer !== 'undefined') ? [containerLayer children] : [[doc currentPage] children],
predicate = NSPredicate.predicateWithFormat("(className == %@)", layerType),
layers = [scope filteredArrayUsingPredicate:predicate];
// Deselect current selection
[[doc currentPage] deselectAllLayers]
// Loop through filtered layers and select them
var loop = [layers objectEnumerator], layer;
while (layer = [loop nextObject]) {
[layer select:true byExpandingSelection:true]
}
log([layers count] + " " + layerType + "s selected")
}
// Select all Artboards in current page
selectLayersOfType_inContainer("MSArtboardGroup")
// Select all Text Layers in current page
//selectLayersOfType_inContainer("MSTextLayer")
// Types of layers that can be selected :
// MSLayerGroup
// MSShapeGroup
// MSShapePathLayer
// MSTextLayer
// MSArtboardGroup
@mischugo
Copy link

mischugo commented Jul 8, 2015

AWESOME!!!

@rodnem
Copy link

rodnem commented Jul 9, 2015

Hi !
This seems great and USEFULL
Will you create a version compatible with Sketch Toolbox ?

@abynim
Copy link
Author

abynim commented Jul 11, 2015

@rodnem I will as soon as I can find some time. Any other selection features that you think would make it more useful?

@twinvidia
Copy link

Hi, the command seems to not working anymore.

Here is my result "TypeError: doc. currentPage(). deselectAllLayers is not a function. (In 'doc. currentPage(). deselectAllLayers()', 'doc. currentPage(). deselectAllLayers' is undefined)
at selectLayersOfType_inContainer (/Users/A987SK/Library/Application Support/com.bohemiancoding.sketch3/Plugins/Untitled.sketchplugin:12:39)
at onRun (/Users/A987SK/Library/Application Support/com.bohemiancoding.sketch3/Plugins/Untitled.sketchplugin:23:31)
Script executed in 0.027800s"

does anyone have a solution ?
Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment