2013年12月16日月曜日

Sublime Text 3 対応プラグイン MoveMultiByteWord

Sublime Text 3向けのマルチバイト文字列に対応した単語移動をサポートするパッケージ MoveMultiByteWord を絶賛公開中!
あなたの Sublime Text 3 の環境がちょっとだけ日本語に優しくなります。
https://bitbucket.org/dat/movemultibyteword

2013年12月7日土曜日

Sublime Text 3 のCtagsプラグイン改造

Sublime Text 3で搭載された関数ジャンプ(GoTo Definition)のクイックパネルはファイルパスで絞り込みが出来て便利。
そんなわけでCTagsプラグインのクイックパネルもファイルパスで絞り込みできるように改造した。
このオプションは探したけど無かった…無いよね?

CTagsのプラグインはコチラ: https://github.com/SublimeText/CTags

--- 改造前ctagsplugin.py Sat Dec 07 01:13:05 2013
+++ 改造後ctagsplugin.py Thu Dec 05 12:41:29 2013
@@ -371,7 +371,7 @@
 """Formatting helper functions"""
 
 
-def format_tag_for_quickopen(tag, show_path=True):
+def format_tag_for_quickopen(tag, show_path=False):
     """Format a tag for use in quickopen panel.
 
     :param tag: tag to display in quickopen
@@ -389,9 +389,9 @@
             f += string.Template(
                 '    %($field)s$punct%(symbol)s').substitute(locals())
 
-    format = [(f or tag.symbol) % tag, tag.ex_command]
-    format[1] = format[1].strip()
-
+    # format = [(f or tag.symbol) % tag, tag.ex_command]
+    # format[1] = format[1].strip()
+    format = tag.filename
     if show_path:
         format.insert(1, tag.filename)


こんな感じに該当箇所を書き換えると変更できます。
コメントアウトは念のため残しているだけなので消しちゃってもいいと思います。 この改造はたぶんST2でも使えるんじゃないかな。

2013年8月11日日曜日

phpのvar_dumpでデバッグを分かりやすくするテンプレート

var_dump('ExecFile: '.basename(__FILE__).'('.__LINE__.')', 'FUNCTION: '.__FUNCTION__, 変数名);

var_dumpはカンマ区切りで引数を無制限に渡すことが出来る。 これを使い、どのファイルの何行目のどの関数で呼び出されたdumpかを表示しておける。

ソースを追いかけているとどこでdumpしたのか忘れがちになるけど、こうしておけばいつでも削除箇所が分かって手間が少ない。

2013年8月3日土曜日

Sublime Text のプラグインのコマンドに好きなキーを割り当てる

掲題通りで、キーを割り当ててみる。
参考として今回は諸事情で割り当てを行ったSortTabsのGithubを見てみよう。

SortTabs/sort_tabs.py at master · bizoo/SortTabs · GitHub


Sublime textのPluginは
class SortTabsByNameCommand
のようにCommandが付くClass名に対してショートカットキーを設定することが出来る。
SortTabsByNameCommandは名前の通り、タブの名前でソートするコマンド。
ではこのコマンドにキーを割り当ててみる。
{ "keys": ["ctrl+alt+s"], "command": "sort_tabs_by_name" }
と、こうなる。
他のキーマップに倣って好きなkeysを設定する。
さらにcommandを見てもらうとClass名と違うことが分かる。
SortTabsByNameCommand
sort_tabs_by_name
よく見比べてもらえれば容易なことで、Commandを削除し、最初の文字以外の大文字の前にアンダースコアを入れ、文字は全部小文字にするだけ。

これでキーを押してみるとタブがいつでも名前順にソートできる。

/** 今更感のあるエントリーだなぁ。 */

2013年5月6日月曜日

初心かどうか分からないけど。

少し時間を費やせば良かっただけなのに、ユーザーを裏切ったんじゃないのか。
ユーザーは数十人しかいなかったけどやる価値はあったんじゃないのか。
コストが見合うならやってもいいと言われて結局やらなかった。

開発者ってそんなんだったっけ。
採算度外視でユーザーエクスペリエンスとか自分の欲求を追求してなんぼな職業じゃなかったっけ?

そうなんだよ。
そこをなんとかするんだよ!

2013年3月3日日曜日

Mercurialでバックアップ取ればいいじゃない?

星の数ほどあるバックアップツール。
「バックアップ重要だよね」と思って設定してたけど、掲題件の通り分散バージョン管理ツールでもできるやん?しかも完全にバージョン管理だよ!

と思ったので、近々Mercurial+Jenkins(Windowsのタスクでもいいと思うけど)あたりで構築してみるというTODOメモでした。

記事じゃなくてすみません。RTMあたりで管理しろと。

2013年1月20日日曜日

Sublime Text 2にPHPのCodeSnifferを追加。

PHPをPSR規約に準拠して書こうと思い立ったのでいくつかの規約を自分で選んで準拠チェックが出来るCodeSnifferを追加した。
このプラグインは他にもいくつか機能があり、自分はPSR準拠にフォーマットしてくれる機能も設定している。
プラグインはsublime-phpcs
プラグインの詳細はこちら

プラグインのインストールはいつも通りPackage Controlなので割愛。

このプラグインはPearのPHP_CodeSnifferライブラリが必要なので下記のコマンドで導入。

pear channel-update pear.php.net
pear clear-cache
pear install PHP_CodeSniffer
※1行目と2行目は念のため。

ついでにPSR準拠のソースに自動で変換してくれるPHP Coding Standards Fixerも使う。
これはsublime-phpcsのオプションとして対応している。
使用するためにはPHP Coding Standards Fixer本体ファイルが必要なので下記から導入。
PHP Coding Standards Fixer
これを適当な場所に置く。
自分はsublime Text 2の\Data\Packages\User\配下に設置。

追記(2013-08-03 17:44): どうやら以前書いたものは使えなくなったみたい。
どこかのアップデート時にsettingが変わったようで、新しいものにしないと動かなくなったので気づいた。
現在はExampleとして
Data\Packages\Phpcs\example-settings
にファイルが入っているのでそれを使った方が無難。

ユーザー設定は下記。参考程度にどうぞ。
設定するうえで必須なのはphp_cs_fixer_executable_path。
このパスはコマンドラインへそのまま渡すので"php "から書かないと動かないので要注意。
{
    // Execute the sniffer on file save
    "phpcs_execute_on_save": false,

    // PHP_CodeSniffer settings

    // Additional arguments you can specify into the application
    //
    // Example:
    // {
    //     "--standard": "PEAR",
    //     "-n"
    // }
    "phpcs_additional_args": {
        "--standard": "PSR2",
        "-n": ""
    },


    // Show the errors in the quick panel so you can then goto line
    "phpcs_show_quick_panel": false,

    // PHP-CS-Fixer settings

    // Fix the issues on save
    "php_cs_fixer_on_save": false,

    // Show the quick panel
    "php_cs_fixer_show_quick_panel": true,

    // Path to where you have the php-cs-fixer installed
    "php_cs_fixer_executable_path": "php \"Sublime Text 2インストールパス\\Data\\Packages\\User\\php-cs-fixer.phar\"",

    // Additional arguments you can specify into the application
    //
    // Example:
    // {
    //     "--level": "all"
    // }
    "php_cs_fixer_additional_args": {
        "--level": "psr2"
    },


    // PHP Linter settings

    // Are we going to run php -l over the file?
    "phpcs_linter_run": false

}