Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

テーマ機能 #140

Closed
1024jp opened this issue May 26, 2014 · 6 comments
Closed

テーマ機能 #140

1024jp opened this issue May 26, 2014 · 6 comments
Assignees
Milestone

Comments

@1024jp
Copy link
Member

1024jp commented May 26, 2014

テキストビューの配色一式をテーマとして複数設定、切り替えできるようにする。

screen shot 2014-05-26 at 20 15 56

テーマファイルフォーマット

テーマファイルはXML形式のplistで独自の拡張子 .cottheme を持つ。
テーマ編集は環境設定から行い、シンタックス定義ファイルと同様、環境設定からテーマファイルの書き出し・読み込みをする

過去のカラーリング設定からの変更点

複数種類のカラーリング設定が保持できる点以外では以下の点が今までて異なる

  • シンタックスカラーリングに使用できるキーワードが2つ追加
  • 選択範囲の背景色については、システム設定に従うオプション(ユーザがそのときに System Preferences > General > Highlight Color で選択している色を尊重)を付ける
  • 文字色に関してアルファチャンネルを許可する

以前のカラーリング設定から新しいテーマ形式への移行方法

過去のカラーリング設定(UserDefaults内に保存されている)からの移行は作業は以下の通り行なわれる。

  1. 毎 CotEditor 起動時に、 ~/Library/Application Supports/CotEditor/ 内に Themes/ ディレクトリがあるかをチェックし、Themes/ ディレクトリがない場合は以前の CotEditor からの移行がまだ行なわれていないと判断し移行作業に入る 1
  2. UserDefaults 内のカラーリング設定1つ1つと CotEditor 1.5 までのデフォルトとして指定されていたそれぞれのカラーをつき合わせて、1つでも相違があったら、過去にユーザがカラーリングをカスタマイズしていたと判断
  3. カラーリングがカスタマイズされていた場合は、新しく Customized Theme (カスタムテーマ) というユーザテーマを作成し、それをユーザのデフォルトテーマに設定する

これにより、新しく CotEditor 1.6 を導入した人と過去に CotEditor のカラーリングをカスタマイズしていなかった人は CotEditor 1.6 のプリセットテーマがデフォルトテーマとして設定され、過去にカスタマイズを行なっていた人は今までの設定を継承したテーマが自動的に生成され、これがデフォルトとして適応される

  1. この方式では、カスタムテーマがない限り毎回 CotEditor を立ち上げる度に移行作業が行なわれるので、場合に寄っては UserDefaults に移行作業をしたことがあるかのフラグを作りそれをチェックするに留めるようにする
@1024jp 1024jp added this to the 1.6 milestone May 26, 2014
@1024jp 1024jp self-assigned this May 26, 2014
@hazi
Copy link

hazi commented May 27, 2014

👍

Property List のバイナリ版じゃなく、XMLって訳にはいかないですかね?
配布の時とかそっちのほが扱いやすいような気がしたので。

@1024jp
Copy link
Member Author

1024jp commented May 27, 2014

もともとサイズの小さいファイルなので、まぁ正直テキストファイルにしてもあまり問題はないと言えば問題はない1のですが、逆に、XMLといってもplistに格納する色データは人間には読めない数値の羅列なので、XMLにしてもあまり利点はないと考えています。

配付のときに扱いやすいというのは具体的にどのようなことを想定していますか?

  1. バイナリだと1テーマファイル当たり約 1.7 KB、XMLだと約 2.6 KB。

@1024jp 1024jp mentioned this issue May 27, 2014
@hazi
Copy link

hazi commented May 29, 2014

個人的には git での管理などを考えてました。
バイナリだと差分が全く見えなくなってしまうので

@1024jp
Copy link
Member Author

1024jp commented May 29, 2014

あぁ、バージョン管理ですか。それはたしかに一理ありますね。

どうしようかしらん、現在テーマファイルをDockのアイコンに突っ込むなどしてCotEditorでオープンすると自動的にテーマがインストールされるように実装しているのですが、
テキストファイル形式だとするとCotEditorでも編集できるようにする必要がありますね。
まぁ、アラート出してユーザに選択させればいいのか。少し考えます。

@1024jp
Copy link
Member Author

1024jp commented Jun 2, 2014

テーマファイルの形式をXMLに変更しました。

@hazi
Copy link

hazi commented Jun 2, 2014

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants