せうぞーさんの
『選択テキストを長体(または平体)で指定ライン数に追い込む「shorten_line_selection 0.2」』をみてて
「二行ならば必ず一行に」という指示のときに、いちいち全体(段落)を選択するが面倒だなー、挿入点でもいいじゃない?って思ったのでためしに書いてみる。
挿入点ならその段落を対象に、それ以外は選択範囲を対象に一行減るまで長体平体をかけます。縦横兼用、リミッターは設けてません、マイナス一行専用版。
switchとifとwhileと三項演算子を織り交ぜてみる。outputしないとすぐ忘れちゃうから。
//気になるところを長体平体で一行減らす
if(app.documents.length!=0 && app.selection.length==1){
main();
}
function main(){
var selObj=app.selection[0];
var targetObj;
switch(selObj.constructor.name){
case "InsertionPoint": targetObj=selObj.paragraphs[0]; break;//挿入点ならその段落全体
// case "Character": //多分不要
// case "Line": //多分不要
case "Word":
case "TextStyleRange":
case "Paragraph":
case "Text":
case "TextColumn": targetObj=selObj; break;
default : exit();
}
var HorV = targetObj.parentStory.storyPreferences.storyOrientation == StoryHorizontalOrVertical.HORIZONTAL ? 'horizontalScale':'verticalScale';
if(targetObj.lines.length >= 2){
var L=targetObj.lines.length;
while(targetObj.lines.length > L-1){
if(targetObj.lines.length==1)break;
targetObj[HorV]--;
targetObj.recompose();
}
}
}