AppleScriptの書類を読み込んでNSAttributedStringに変換し、書式情報にもとづいてNSDictionary in NSArrayに変換。この状態でデータ抽出などを行なっていたのですが、このデータをもとにNSAttributedStringに再構成するAppleScriptです。
本Scriptの通しの処理内容としては、読み込んだAppleScriptを書式情報をもとに分解して、再構成するという……大豆から豆腐を作って、豆腐を崩して豆を得る、みたいな内容です。
NSAttributedStringを再構成する部分の処理を書いていなかったので、必要に迫られて書いてみました。
AppleScript構文色分け設定情報をもとに処理するため、色分け設定で複数の構文要素で同じ色を指定している場合にはエラーを返します。単にNSAttributedStringを解釈して再構成する、といった処理であればAppleScript構文色分け設定へのアクセス自体は必要ないところですが、すでに不可分なレベルで組み込まれているため、現状ではそのままです。
いっそ、こうした処理をする前にplistをバックアップし、必要な情報を書き込んだplistを設定ファイルとして使用するといった処理を行った方がいいのかもしれません。これまでは、「そんな処理はとても行えない」と判断していましたが、よくよく考えればとくに苦労せずに実現できそうです。
AppleScript名:AS書類を書式で分解して再構成.scptd |
— – Created by: Takaaki Naganoya – Created on: 2025/01/12 — – Copyright © 2025 Piyomaru Software, All Rights Reserved — use AppleScript version "2.8" property NSFont : a reference to current application’s NSFont property asCol : {} set asCol to getAppleScriptSourceColors() of me –AppleScript構文色分け設定をplistから読み込む set aFile to POSIX path of (choose file of type {"com.apple.applescript.script", "com.apple.applescript.script-bundle"}) –Styled TextをDictionarry in Listに –Dictionarry in ListをStyled Textに再構成 script styleTextToDict script attrDictToAttrStr –AppleScriptの構文色分けのカラー値をRGBで取得する –NSColorからRGBの値を取り出す |