Menu

#169 設定項目を取得・変更するマクロ関数

open
nobody
None
5
2013-12-06
2011-09-20
syat
No

共通設定・タイプ別設定をマクロから取得・変更する以下の関数を追加します。
・GetCommonProp(key) 共通設定・取得
・SetCommonProp(key, value) 共通設定・設定
・GetTypeProp(type, key) タイプ別設定・取得
・SetTypeProp(type, key, value) タイプ別設定・設定

keyは、とりあえずプラグインがらみで需要のあるものだけ用意していますが、追加は容易です。
共通
 Format.MarkerSymbol 見出し記号
タイプ別
 Screen.TypeName 名前
 Screen.TypeExt 拡張子
 Screen.InsertSpace TabではなくSpaceを挿入する
 Screen.AutoIndent 自動インデント

typeにはタイプ番号の数字を指定します。「基本」なら1、「設定20」なら20です。
0 を指定すると、現在のタイプが指定されたことになります。
設定したあと、他のエディタに通知を投げたりはしません。

Related

PatchUnicode: #489

Discussion

  • syat

    syat - 2011-09-20
     
  • syat

    syat - 2011-09-20

    マクロサンプル

     
  • ryoji

    ryoji - 2011-09-26

    Get/SetPropTypeでタイプ番号の数字のかわりに
    タイプに含まれる拡張子を指定できると嬉しいかもです。
    番号がユーザー環境依存で違っていても使えるので。

    参考)
    IsCurTypeExt, IsSameTypeExtマクロ

    例)
    GetTypeProp("cpp", key) 拡張子cppに対応するタイプ(C/C++)を指定
    GetTypeProp("rb", key) 拡張子rbに対応するタイプ(Ruby)を指定
    GetTypeProp(".", key) 現在適用されているタイプを指定
    GetTypeProp("", key) 「基本」タイプを指定

    C/C++はほとんどの人がデフォのまま3番目が多そうですが、
    Rubyはデフォでは入っていないので番号では汎用マクロ用途に使えません。
    拡張子"rb"ならほぼRuby設定に確定なので汎用マクロ用途に使えそうです。

     
  • syat

    syat - 2011-09-26

    数字をやめて拡張子のみにするばあい、未設定の「設定30」などにアクセスできません。
    Getだけならまぁよいのですが、Setも考えるなら数字アクセスできたら良いかなと。

    正直、「現在タイプの取得/設定」くらいしか使わないのでは?とも思いますが、せっかくなので汎用的に作ってみました。
    JavaScriptだったら、

    var typeRb;
    for (var typeRb=1; typeRb <= 30; typeRb++) {
    if ( /\brb\b/.test(GetTypeProp( typeRb, "Screen.TypeExt" )) )
    break;
    }

    みたいに書けば汎用マクロ用途にも使えるし、該当がなかったときのハンドリングもしやすいのではないかと思います。
    (発想がプログラマ寄りすぎるでしょうか・・・)
    IsCurTypeExt, IsSameTypeExt が追加されたとき「内部実装とあまり密着させたくない?」という印象を受けたのですが、そういうの意識されてますか?

     
  • ryoji

    ryoji - 2011-09-26

    >var typeRb;
    >for (var typeRb=1; typeRb <= 30; typeRb++) {
    >if ( /\brb\b/.test(GetTypeProp( typeRb, "Screen.TypeExt" )) )
    >break;
    >}

    なるほど、使用頻度も低そうですし、これで十分かもしれないですね。

    >「内部実装とあまり密着させたくない?」という印象を受けたのですが、そういうの意識されてますか?

    単純に使いやすければそれでいいかと思います。
    IsCurTypeExtも提示された方法で代替えできるけれど、
    一行で書けるのはやっぱり楽かな~、くらいのノリでして。

     
  • Moca

    Moca - 2013-06-08

    今は拡張子だけではないですし、将来regexが使えるようになるかもしれないので、
    サクラエディタがファイル名から自動で選ぶタイプを取得するGetDocumentTypeOfPath()を
    使えるようにすると、互換性が上がっていいとおもいます。
    MakefileとかApp.xaml.csとか。
    shebang対応等はまた考えないといけないけど。

     
  • Moca

    Moca - 2013-12-06

    ・TCHAR回りがおかしかったのを修正
    ・タイプ別設定疑似可変長などの最新変更に対応

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.