2011-07-24
■[mac][SafariTabConfig][Safari]SafariTabConfig Ver0.1.1 リリース
canberlandさんが開発したSafari用SIMBLプラグイン
- SafariTabConfig Ver0.1.1
をリリースします。
SafariTabConfig Ver0.1.1 の変更点
不具合修正
- Safari 5.1 で発生していた問題を修正しました。
当方、Lion + Safari 5.1 の環境しかないため Snow Leopard + Safari 5.1 での動作を確認していません。
ダウンロード
*Lion 専用です。
SafariTabConfig Ver 0.1.1 for Lion をダウンロード
2011-07-21
■[mac][SafariGestures][SafariDrag][SafariTabConfig][SafariTabMemento]Lion への対応について
昨晩、Lion がリリースされました。私としても出来るだけはやく対応したいと思っています。ただ、Safari 5.1 では内部の構造が大きく変わっている関係で今まで利用できていた機能が使えなくなる可能性があります。
また決定したわけではないですが、開発環境の関係上古い OS, Safari のバージョンのサポートはできなくなる可能性があります。
ご了承ください。
2010-10-16
■[Xcode]XcodeのUserScript
こちらの記事をみて、昔 cocoa 勉強会でちょこっと紹介した内容に似たようなのがあったのを思い出しました。
久しぶりなのでブログに書いてみようかと思いました。
Objective-C 2.0 の プロパティ定義文を挿入する UserScript
さきの記事ではテキストマクロとしてプロパティ定義文を挿入して実際のプロパティ名は自分で入力するような形をとっていました。
私はもっと怠け者なので文字入力なしで済ましたいと思ったので UserScript にしました。
UserScript とは
これ。
ちょっとしたことができる仕組みです。
デフォルトで入っているのものでおそらくみんながお世話になっているだろう
コメントアウトのショートカット Cmd+/ は実は Perl で書かれた UserScript が実行されています。
何ができる?
こんなのが実行できます。
- Automator のワークフローを実行
- シェルスクリプト
- LL 言語
- AppleScript
入力としては以下のものを受けられます。
出力はこんな感じ。
メニューから " 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 }
使い方は
インスタンス変数定義部分をまとめてコピーして挿入したい場所でこのスクリプトを実行。
すると
- NSString は @property (nonatomic, copy)
- delegate という変数名は @property (assign)
- その他オブジェクトは @property (nonatomic, retain)
- オブジェクト以外は @property (assign)
として挿入します。
@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” として保存してください。
使い方の流れとしてはこんな感じで使うとインスタンス変数のリリース漏れなどを起こしにくいと思います。
- インスタンス変数をずらっと定義
- 定義部分をコピー
- プロパティ定義を挿入したい箇所で「@property を挿入する UserScript」を実行
- 実行ファイルを開いて@synthesize を挿入したい箇所で「@synthesize を挿入する UserScript」を実行
- dealloc メソッド内で「release を挿入する UserScript」を実行
その他
今回のスクリプトは普段使っていて特に問題はありませんでしたが、結構適当なのでコーディングスタイルが違う人は使えない代物かもしれません。ご利用は自己責任でお願いします。
2010-06-08
■[mac][SafariTabConfig][Safari]SafariTabConfig Ver0.1.0 リリース
canberlandさんが開発したSafari用SIMBLプラグイン
- SafariTabConfig Ver0.1.0
をリリースします。
SafariTabConfig Ver0.1.0 の変更点
不具合修正
- Safari5 で発生していた問題を修正しました。
Safari5 で発生していた問題を修正しました。
Snow Leopard版 と Leopard版 のリリースです。
Safari4.1 に対応した Tiger版 のリリースです。
For English
ダウンロード
*Snow Leopard専用です。
SafariTabConfig Ver 0.1.0 for Snow Leopard をダウンロード
*Leopard専用です。
SafariTabConfig Ver 0.1.0 for Leopard をダウンロード
*Tiger専用です。
■[mac][SafariTabMemento][Safari] SafariTabMemento Ver0.0.5 リリース
- SafariTabMemento Ver0.0.5
をリリースします。
SafariTabMemento Ver0.0.5 の変更点
不具合修正
- Safari5 で発生していた問題を修正しました。
Safari5 で発生していた問題を修正しました。
Snow Leopard版、Leopard版のリリースです。
- Safari4.1 で発生していた問題を修正しました。
For English
ダウンロード
*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 をダウンロード
■[mac][SafariGestures][Safari] SafariGestures Ver0.1.3 リリース
僕とcanberlandさんと二人で開発している
- SafariGestures Ver0.1.3
をリリースします。
SafariGestures Ver0.1.3 の変更点
不具合修正
- Safari5 で発生していた問題を修正しました。
機能追加
- スワイプジェスチャ追加
変更
- 設定画面の刷新
Snow Leopard版、Leopard版、Tiger版のリリースです。
For English
en.cyan-stivy.net - SafariGestures
ダウンロード
*Snow Leopard専用です。
SafariGestures Ver 0.1.3 For Snow Leopard をダウンロード
*Leopard専用です。
SafariGestures Ver 0.1.3 For Leopard をダウンロード
*Tiger専用です。
■[mac][SafariDrag][Safari]SafariDragVer0.0.7 リリース
canberlandさんが開発したSafari用SIMBLプラグイン
- SafariDrag Ver0.0.7
をリリースします。
SafariDrag Ver0.0.7 の変更点
不具合修正
- Safari5 で発生していた問題を修正しました。
Safari5 で発生していた問題を修正しました。
Snow Leopard版、Leopard版のリリースです。
- 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 をダウンロード
2010-03-27
■[web] はてブからGoogle Bookmarkへの移行
最近ぜんぜんブログを書いてなかったので自分備忘録としてエントリ書いておきます。
Tombloo で Google Bookmark にPostできてなかった
先日、Tombloo で Google Bookmark にPostできてなかった事が発覚しました。
普段ははてブとGoogle Bookmarkにクロスポストしてるのですが、Google Bookmarkだけできてませんでした。
幸いはてブにはポストできていたので差分をGoogle Bookmarkに移しました。*1
やりかた
いろんなやり方があるみたいですが僕がやった方法はdelicious.comを経由するもの。
Google Bookmark さんは賢いので重複分はさけてくれるようです。
ステップ 1
http://b.hatena.ne.jp/あなたのはてなID/config
上記リンクから「ブックマーク形式でダウンロード」を選んでDL。
サイズがデカいとちょくちょく怒られるみたいなので何回かトライ。
ステップ 2
Delicious.com - Discover Yourself!
ステップ 3
del.icio.us to Google Bookmarks
ステップ 3
Google Bookmarkのページに飛ばされるので、任意のブクマにチェックを入れてインポート。
さっきも書きましたがダブらないで良いように良い感じに計らってくれます。
よかったよかった
おかげで無事に移行できました。






