griffin-stewieの日記

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 に不具合要望があればお気軽にコメント下さい。

cyan-stivy.net - SafariTabConfig

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

en.cyan-stivy.net - SafariGestures


ダウンロード

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に不具合、要望があればお気軽にコメント下さい。

2010-03-27

[] はてブからGoogle Bookmarkへの移行


最近ぜんぜんブログを書いてなかったので自分備忘録としてエントリ書いておきます。


TomblooGoogle Bookmark にPostできてなかった


先日、TomblooGoogle Bookmark にPostできてなかった事が発覚しました。

普段ははてブとGoogle Bookmarkクロスポストしてるのですが、Google Bookmarkだけできてませんでした。

幸いはてブにはポストできていたので差分をGoogle Bookmarkに移しました。*1


やりかた


いろんなやり方があるみたいですが僕がやった方法はdelicious.comを経由するもの。

  1. はてブをブックマーク形式でダウンロード
  2. delicious.com に上記ブクマインポート
  3. delicious.com からGoogle Bookmarkインポート

Google Bookmark さんは賢いので重複分はさけてくれるようです。

ステップ 1

http://b.hatena.ne.jp/あなたのはてなID/config

上記リンクから「ブックマーク形式でダウンロード」を選んでDL

サイズがデカいとちょくちょく怒られるみたいなので何回かトライ


ステップ 2

Delicious.com - Discover Yourself!

インポート


ステップ 3

del.icio.us to Google Bookmarks

を使ってGoogle Bookmarkインポート


ステップ 3

Google Bookmarkのページに飛ばされるので、任意のブクマにチェックを入れてインポート

さっきも書きましたがダブらないで良いように良い感じに計らってくれます。


よかったよかった

おかげで無事に移行できました。

Tombloo は最新版にしたら問題なく Google Bookmark へもPostできるようになっていました。

*1クロスポストのおかげで命拾い

プロフィール

griffin-stewie

griffin-stewie

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