CotEditorの最前面のテキスト中で、空行で区切ったブロックを逆順にならべかえるAppleScriptです。
こういう(↑)状態のテキストを、
こういう(↑)状態にならべかえます。
ここでは、わかりやすく空行でブロックを区切っていますが、別のもので区切りを検出してみたり、テキスト全体から自動的にブロック検出をテキストエディタ自体がやってくれるといいのになー、と思っています。
AppleScript名:CotEditorの最前面のテキストで空行で区切ったブロックを逆順にする |
— Created 2018-07-07 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" –CotEditorから本文テキストを取得 tell application "CotEditor" tell front document set aText to contents of it end tell set aList to paragraphs of aText end tell –空行で区切られたテキストブロックをブロック単位で逆順に組み立てる set bText to makeRetrunSeparatedStrBlockReversed(aList) of me –計算結果をCotEditorの本文テキストに書き戻す tell application "CotEditor" tell front document set (contents of it) to bText end tell end tell on makeRetrunSeparatedStrBlockReversed(aList) –行ごとにリスト化した1D Listをブロック単位の2D List化 set newList to {} set tmpList to {} repeat with i in aList set j to contents of i if j = "" then if tmpList = {} then set tmpList to {} else set the end of newList to tmpList set the end of newList to {} set tmpList to {} end if else set the end of tmpList to j end if end repeat if tmpList is not equal to {} then set the end of newList to tmpList set the end of newList to {} end if set newBList to reverse of newList –ブロックを逆順に –2D Listをテキストに set newCList to FlattenList(newBList) of me set resBstr to retStrFromArrayWithDelimiter(newCList, return) of me return resBstr end makeRetrunSeparatedStrBlockReversed –By Paul Berkowitz –2009年1月27日 2:24:08:JST –Re: Flattening Nested Lists on FlattenList(aList) set oldDelims to AppleScript’s text item delimiters set AppleScript’s text item delimiters to {"????"} set aString to aList as text set aList to text items of aString set AppleScript’s text item delimiters to oldDelims return aList end FlattenList –リストを指定デリミタをはさんでテキスト化 on retStrFromArrayWithDelimiter(aList, aDelim) set anArray to current application’s NSArray’s arrayWithArray:aList set aRes to anArray’s componentsJoinedByString:aDelim return aRes as text end retStrFromArrayWithDelimiter |
More from my site
(Visited 112 times, 1 visits today)