Sublime Text 3 のCtagsプラグインfork版公開中

プルリクに反応してくれなかった…

そんなわけで、いくつか変更した機能があるのでそれをfork版として公開しておきます。
github で公開中: naoyukik/CTags

変更内容

Fork: 0.5.0 リリース(2017-02-14)

  • .sublime-projectファイルからCTagsの設定を読み込めるように変更
  • このバージョンからmasterリポジトリをDefaultとし、タグを追加

developmentにて実装(2016-12-09)

  • Sublime Text 3 で実装された関数ジャンプ(Goto Definition)とクイックパネルでのファイルパスと同等の機能を実装
  • ctagsのオプションファイルをプロジェクトのルートフォルダから読み込めるように実装
  • Ctagファイルの自動更新に対応

上記ともに、セッティングファイルに使用フラグを追加してあるのでそれぞれ設定してからご使用ください。

たぶんST2でも使える…かな。

CTagsのプラグイン(本家): https://github.com/SublimeText/CTags

phpのarray_columnやばい

配列のあるキーを使って構造を変更することが簡単に出来るようになるarray_column(PHP5.5以上)
http://php.net/manual/ja/function.array-column.php

説明
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

array_column() は、 配列 input の中から column_key で指定した単一のカラムの値を返します。 オプションで index_key も指定できます。これを指定すると、 入力配列内のカラム index_key の値に基づいて結果を並べ替えます。
-- PHPマニュアルより引用

説明読んでもイメージがわかねぇ…

そこで例を見てみる。
下記例はPHPマニュアルより引用。

例1 レコードセットからのファーストネームの取得

<?php
// データベースから返ってきたレコードセットの例
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
?>

上の例の出力は以下となります。

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

簡単にfirst_nameの別配列が作れる。

例2 レコードセットから姓を取得し、”id”で並べ替える例

<?php
// 先ほどの例と同じ $records 配列を使います
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>

上の例の出力は以下となります。

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

id => last_name で配列を作成出来た。

PHPマニュアルの例には出てないが、第2引数をnullにすると、第3引数の値を元になる配列全体のキーにして返してくれる。

$ids = array_column($records, null, 'id');
print_r($ids);
?>

上の例の出力は以下。

array(
    2135 => 
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    3245 =>
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    5342 =>
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    5623 =>
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
)

DBから取ってきたデータの整形あたりでよく使えそう…特に例2はもっと早くこれを知っておけば使えた場面があったように思える…。

教訓

マニュアルやバージョン差分は目を通しましょう。