-
Notifications
You must be signed in to change notification settings - Fork 0
/
Align underlines.sketchplugin
42 lines (29 loc) · 1.13 KB
/
Align underlines.sketchplugin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Align underlines (alt cmd l)
var doc = context.document
var all_layers = [[doc currentPage] children]
console.log(all_layers);
for(var i=0; i < [all_layers.length]; i++) {
var group_layer = all_layers.objectAtIndex(i)
if(group_layer.isKindOfClass(MSLayerGroup)) {
var inner_layers = [group_layer layers]
var inner_layers_number = [inner_layers.length]
for(var j=0; j<inner_layers_number; j++) {
var underline_layer = inner_layers.objectAtIndex(j)
var splitLayer = [underline_layer name].split(':')
//log(splitLayer[1])
if(splitLayer[0] == "underline") {
for(var k=0; k<inner_layers_number; k++) {
var text_layer = inner_layers.objectAtIndex(k)
if(text_layer.isKindOfClass(MSTextLayer)) {
underline_layer.frame().setX(text_layer.frame().x())
underline_layer.frame().setY(parseFloat(text_layer.frame().height())+parseFloat(splitLayer[1]))
log(text_layer.frame().y())
log(text_layer.frame().height())
log(parseFloat(text_layer.frame().height())+parseFloat(splitLayer[1]))
underline_layer.frame().setWidth(text_layer.frame().width())
}
}
}
}
}
}