TIM Labs

useやusingなどの宣言を綺麗にソートする(Emacs編)

| コメント(0) | トラックバック(0)

Emacsでも同じ事ができます。

まずはaprpopse-commandanything-aproposeでソートコマンドを探してみましょう。 M-x anything-aproposeに続けてsort-を入力するとそれっぽいコマンドが列挙されます。

sort-pages
sort-columns
sort-paragraphs
sort-fields
sort-regexp-fields
sort-numeric-fields
sort-lines

sort-regexp-fieldsが利用できそうです。 そのままsort-regexp-fieldsを選択するとコマンドの説明が表示されます。

sort-regexp-fields is an interactive compiled Lisp function in
`sort.el'.

(sort-regexp-fields REVERSE RECORD-REGEXP KEY-REGEXP BEG END)

ふむ。。。なにやらよくわかりませんね。。。(汗 Googleでいろいろ検索してみると、引数は次のような意味のようです。

  • RECORD-REGEXP = ソート対象の行を指定するための正規表現
  • KEY-REGEXP = ソート対象の文字列を指定するための正規表現

とするとuseやusingをソートするコマンドは次のように定義できそうです。ソート対象の文字列から;を除くのが肝ですね。

(sort-regexp-fields nil "^.+$" "[^;]+" beg end)

使いやすくするために関数化します。

(defun my-sort-declarations (beg end)
  (interactive (list (region-beginning) (region-end)))
  (sort-regexp-fields nil "^.+$" "[^;]+" beg end))

さて、昨日のコードに登場してもらいましょう。

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Linq;

リージョンを選択して、M-x my-sort-declarationsを実行してみましょう。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

意図したようにソートできましたね。

トラックバック(0)

トラックバックURL: http://labs.timedia.co.jp/mt/mt-tb.cgi/54

コメントする

このブログ記事について

このページは、troterが2010年12月21日 13:37に書いたブログ記事です。

ひとつ前のブログ記事は「useやusingなどの宣言を綺麗にソートする(Vim編)」です。

次のブログ記事は「出展支援システムをつくろう(2)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。