griffin-stewieの日記

2012-09-23 [iOS6] 連絡先に登録した顔文字などをユーザ辞書に登録するスクリプ

Happy-Go-Lucky: 【要Mac】[iOS6] 連絡先に登録した顔文字などをユーザ辞書に登録するスクリプト 【うまくいくといいな】

僕も今まで連絡先に顔文字を入れていて使っていましたが iOS 6 からそれができなくなって困っていましたが、上記記事でサクッと解決できることを知りました。

上記記事では以下のような前提がありました。

スクリプトは以下を前提にしています。

連絡先の「名」に変換後の文字列(顔文字など)を、「名の読み」に変換前の文字列を登録している。

僕の場合には「名」ではなく「姓」の方に書いていましたのでそのままでは使えませんでした。配布してくださっている pythonコードをちょちょっと修正すれば良いと思っていたのですがちょっとうまくいかなかったので自分Ruby で書きました。

おかげで、iOS 6 環境顔文字が使いやすくなりました。

使い方

Toshiya NISHIO さんと基本的には同じですのでそちらを参考にしてください。差分は以下の通りです。

事前準備

gem install vpim

スクリプト

https://gist.github.com/3769332

実行

% ruby vcard2kotoeri.rb kao.vcf > kao.txt 

初心者F初心者F 2012/10/02 16:41 一応ホームページ担当をしておりますが,サクッとできないレベルの者でございます。現在の私の悩みを解決するための一番近道のサイトに辿り着いたと確信しておりますが,差分への対応など実際にどんな手順で設定していくのか困っております。よろしくお願いします。

2011-07-24

[][][]SafariTabConfig Ver0.1.1 リリース

canberlandさんが開発したSafariSIMBLプラグイン

  • SafariTabConfig Ver0.1.1

リリースします。

SafariTabConfig Ver0.1.1 の変更点

不具合修正
  • Safari 5.1 で発生していた問題を修正しました。

当方、LionSafari 5.1 の環境しかないため Snow LeopardSafari 5.1 での動作を確認していません。

ダウンロード

Lion 専用です。

SafariTabConfig Ver 0.1.1 for Lion をダウンロード


SafariTabConfig に不具合要望があればお気軽にコメント下さい。

404 Not Found

2011-07-21

[][][][][]Lion への対応について

昨晩、Lionリリースされました。私としても出来るだけはやく対応したいと思っています。ただ、Safari 5.1 では内部の構造が大きく変わっている関係で今まで利用できていた機能が使えなくなる可能性があります。

また決定したわけではないですが、開発環境の関係上古い OS, Safariバージョンのサポートはできなくなる可能性があります。

ご了承ください。

2010-10-16

[]XcodeのUserScript

Cocoaの日々: Xcode のマクロ定義

こちらの記事をみて、昔 cocoa 勉強会でちょこっと紹介した内容に似たようなのがあったのを思い出しました。

久しぶりなのでブログに書いてみようかと思いました。

Objective-C 2.0プロパティ定義文を挿入する UserScript

さきの記事ではテキストマクロとしてプロパティ定義文を挿入して実際のプロパティ名は自分入力するような形をとっていました。

私はもっと怠け者なので文字入力なしで済ましたいと思ったので UserScript にしました。

UserScript とは

f:id:griffin-stewie:20101016144310p:image

これ。

ちょっとしたことができる仕組みです。

デフォルトで入っているのものでおそらくみんながお世話になっているだろう

コメントアウトショートカット Cmd+/ は実は Perl で書かれた UserScript が実行されています。

何ができる?

こんなのが実行できます。

入力としては以下のものを受けられます。

出力はこんな感じ。

メニューから " Edit User Scrippts ..." を選べば編集画面が表示されます。

ショートカットキーもここでわりあてられます。

UserScript でプロパティ定義文を挿入する

やりたいことは

以下の2パターン作ったことがありますが、今回はクリップボード拡張を導入していない人向け。

@property を挿入する UserScript
#!/usr/bin/env ruby

lines = `pbpaste`
lines.each { |line|
  if line.match(/([_A-Za-z][_A-Za-z0-9]*\s*)+([\s\*]+)([_A-Za-z][_A-Za-z0-9]*);/)
  
    klas = $1
    star = $2
    ivar = $3  
  
    if klas != nil
      if /\ANSString/ =~ klas
        print "@property (nonatomic, copy) #{klas.strip} #{star.strip}#{ivar};\n"
      elsif /\Aid/ =~ klas
        if /delegate/ =~ ivar
          print "@property (assign) #{klas.strip} #{star.strip}#{ivar};\n"          
        else
          print "@property (nonatomic, retain) #{klas.strip} #{star.strip}#{ivar};\n"
        end
      elsif /\*/ =~ star
        print "@property (nonatomic, retain) #{klas.strip} #{star.strip}#{ivar};\n"
      else
        print "@property (assign) #{klas.strip} #{star.strip}#{ivar};\n"
      end
    elsif star == nil
      
    end
  end
}

使い方は

インスタンス変数定義部分をまとめてコピーして挿入したい場所でこのスクリプトを実行。

すると

として挿入します。

@synthesize を挿入する UserScript
#!/usr/bin/env ruby
lines = `pbpaste`
lines.each { |line|
  if line.match(/([_A-Za-z][_A-Za-z0-9]*\s*)+([\s\*]+)([_A-Za-z][_A-Za-z0-9]*);/)
  
    klas = $1
    star = $2
    ivar = $3
    print "@synthesize #{ivar};\n"
  end
}

使い方は

インスタンス変数定義部分をまとめてコピーして挿入したい場所でこのスクリプトを実行。

release を挿入する UserScript
#!/usr/bin/env ruby

lines = `pbpaste`

def releaseAndNil(variable)
  print "[#{variable} release], #{variable} = nil;\n"
end

lines.each { |line|
  if line.match(/([_A-Za-z][_A-Za-z0-9]*\s*)+([\s\*]+)([_A-Za-z][_A-Za-z0-9]*);/)
  
    klas = $1
    star = $2
    ivar = $3  
  
    if klas != nil
      if /\ANSString/ =~ klas
        releaseAndNil(ivar)
      elsif /\Aid/ =~ klas
        if /delegate/ =~ ivar
          print "delegate = nil;"          
        else
          releaseAndNil(ivar)
        end
      elsif /\*/ =~ star
        releaseAndNil(ivar)
      end
    end    
  end
}

使い方は

インスタンス変数定義部分をまとめてコピーして挿入したい場所でこのスクリプトを実行。

すると

として挿入します。

保存方法

今回紹介したスクリプトは Output を ”Insert after Selection” として保存してください。

f:id:griffin-stewie:20101016153602p:image

使い方の流れとしてはこんな感じで使うとインスタンス変数のリリース漏れなどを起こしにくいと思います。

  1. インスタンス変数をずらっと定義
  2. 定義部分をコピー
  3. プロパティ定義を挿入したい箇所で「@property を挿入する UserScript」を実行
  4. 実行ファイルを開いて@synthesize を挿入したい箇所で「@synthesize を挿入する UserScript」を実行
  5. dealloc メソッド内で「release を挿入する UserScript」を実行

その他

今回のスクリプトは普段使っていて特に問題はありませんでしたが、結構適当なのでコーディングスタイルが違う人は使えない代物かもしれません。ご利用は自己責任でお願いします。

2010-06-08

[][][]SafariTabConfig Ver0.1.0 リリース

canberlandさんが開発したSafariSIMBLプラグイン

  • SafariTabConfig Ver0.1.0

リリースします。

SafariTabConfig Ver0.1.0 の変更点

不具合修正
  • Safari5 で発生していた問題を修正しました。

Safari5 で発生していた問題を修正しました。

Snow Leopard版 と Leopard版 のリリースです。

Safari4.1 に対応した Tiger版 のリリースです。

For English

en.cyan-stivy.net


ダウンロード

Snow Leopard専用です。

SafariTabConfig Ver 0.1.0 for Snow Leopard をダウンロード


Leopard専用です。

SafariTabConfig Ver 0.1.0 for Leopard をダウンロード


Tiger専用です。

SafariTabConfig Ver 0.1.0 for Tiger をダウンロード

SafariTabConfig に不具合、要望があればお気軽にコメント下さい。

[][][] SafariTabMemento Ver0.0.5 リリース

SafariSIMBLプラグイン

  • SafariTabMemento Ver0.0.5

リリースします。

SafariTabMemento Ver0.0.5 の変更点

不具合修正
  • Safari5 で発生していた問題を修正しました。

Safari5 で発生していた問題を修正しました。

Snow Leopard版、Leopard版のリリースです。

  • Safari4.1 で発生していた問題を修正しました。

For English

en.cyan-stivy.net


ダウンロード

Snow Leopard専用です。

SafariTabMemento Ver 0.0.5 for Snow Leopard をダウンロード


Leopard専用です。

SafariTabMemento Ver 0.0.5 for Leopard をダウンロード


Tiger専用です。

SafariTabMemento Ver 0.0.5 for Tiger をダウンロード


SafariTabMemento に不具合、要望があればお気軽にコメント下さい。

[][][] SafariGestures Ver0.1.3 リリース

僕とcanberlandさんと二人で開発している

SafariSIMBLプラグイン

  • SafariGestures Ver0.1.3

リリースします。

SafariGestures Ver0.1.3 の変更点

不具合修正
  • Safari5 で発生していた問題を修正しました。
機能追加
変更
  • 設定画面の刷新

Snow Leopard版、Leopard版、Tiger版のリリースです。


For English

404 Not Found


ダウンロード

Snow Leopard専用です。

SafariGestures Ver 0.1.3 For Snow Leopard をダウンロード


Leopard専用です。

SafariGestures Ver 0.1.3 For Leopard をダウンロード


Tiger専用です。

SafariGestures Ver 0.1.3 For Tiger をダウンロード

SafariGestures に不具合、要望があればお気軽にコメント下さい。

[][][]SafariDragVer0.0.7 リリース

canberlandさんが開発したSafariSIMBLプラグイン

  • SafariDrag Ver0.0.7

リリースします。

SafariDrag Ver0.0.7 の変更点

不具合修正
  • Safari5 で発生していた問題を修正しました。

Safari5 で発生していた問題を修正しました。

Snow Leopard版、Leopard版のリリースです。

Tiger版もおって対応したいと思います。

  • Safari4.1 で発生していた問題を修正しました。

ダウンロード

Snow Leopard専用です。

SafariDrag Ver 0.0.7 for Snow Leopard をダウンロード


Leopard専用です。

SafariDrag Ver 0.0.7 for Leopard をダウンロード


Tiger専用です。

SafariDrag Ver 0.0.7 for Tiger をダウンロード


SafariDragに不具合、要望があればお気軽にコメント下さい。

プロフィール

griffin-stewie

griffin-stewie

遂にプログラマの端くれに。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には一切関係ありません。