WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

Meadow に JavaScript メジャーモードを追加する

私はテキストエディタとして Meadow を愛用しているのですが、実は Meadow には JavaScript モードが付いていません(代わりに Java モードが使われる)。 Infosketch の開発にあたりこれでは不便なので、 JavaScript モードを探してみました。

少しググってみたところ、こちらのページにいくつかの Emacs lisp スクリプトが紹介されているのを見つけました。その中から最も評価が高そうな Karl Landström 氏制作の javascript.el をインストールしてみたのですが、これが素晴らしい。正規表現リテラルの色分けや関数呼び出しの引数リストに記述された無名関数内のインデントなども完璧にこなします。もちろん Meadow でもバッチリ動きます(Meadow 3.00 開発版で確認)。

そんなわけで、本日はこの javascript.el と、ついでに同じ作者さんの css-mode.el のインストール方法をご紹介します。けっこう有名なスクリプトみたいなので、ご存知の方はごめんなさいです。

javascript.el のインストール

javascript.el は単一の Emacs lisp ファイルなので、単にファイルをロードパスの通った場所にコピーするだけで使えます。具体的なインストール手順は以下のとおりです。

  1. こちらのページからリンクされている javascript.el (実際には javascript.el.zip)をダウンロードします。
  2. ダウンロードした javascript.el.zip を適当な場所に展開します。
  3. 展開した中に javascript.el が含まれているはずなので、それを Meadow のインストールディレクトリの site-lisp 内にコピーします。
  4. .emacs に以下の内容を追加します。
(autoload 'javascript-mode "javascript" nil t)
(setq auto-mode-alist (cons '("\\.js$" . javascript-mode) auto-mode-alist))

これで拡張子が .js のファイルを開いた際に自動的に javascript.el が有効になります。手動でのモード切り替えは "M-x javascript-mode" です。

カスタマイズできる値は以下のとおりです。

変数名機能
javascript-indent-levelインデント幅(デフォルト 4)
javascript-auto-indent-flagnil にすると、";" などによる自動インデントを禁止する

例えば、以下の行を .emacs に追加すると、インデント幅が 2 になります。

(setq javascript-indent-level 2)

ちなみにこの javascript.el 、 ActionScript の編集にもけっこう使えます。 package, import, extends などといった ActionScript のキーワードもきちんと色分けされます。インデント制御が賢いので、 actionscript-mode.el よりお勧めかも。

css-mode.el のインストール

css-mode.el はその名のとおり CSS ファイルを編集するためのメジャーモードです。 javascript.el とほとんど同じですが、インストール手順は以下のようになります。

  1. こちらのページからリンクされている css-mode.el (実際には css-mode.el.zip)をダウンロードします。
  2. ダウンロードした css-mode.el.zip を適当な場所に展開します。
  3. 展開した中に css-mode.el が含まれているはずなので、それを Meadow のインストールディレクトリの site-lisp 内にコピーします。
  4. .emacs に以下の内容を追加します。
(autoload 'css-mode "css-mode" nil t)
(setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist))

カスタマイズできる変数は "css-indent-level" のみで、インデントの幅を指定できます。例えば以下の行を .emacs に追加すると、インデント幅が 4 になります(デフォルトはなぜか 3)。

(setq css-indent-level 4)

バイトコンパイルする

上記の方法でインストールしただけだと、いちいち Emacs lisp をコンパイルする必要があるため、 javascript-mode の起動時に少し時間がかかります。これが気になる場合は、スクリプトをバイトコンパイルしておきましょう。手順は以下のとおりです。

  1. Meadow を起動します。
  2. M-x byte-compile-file を入力します。
  3. javascript.el のフルパスを入力し、 Enter キーを押します。
  4. 2〜3 を css-mode.el について繰り返します。

これで javascript-mode.elc と css-mode.elc が作成されたはずです。もし Dired の操作に慣れているなら、 Dired でファイルを選んで 'B' キーを押すという手もあります。

ちなみに、バイトコンパイル後の .elc ファイルは .el ファイルよりも優先して読み込まれるので、 .el を変更しても再度バイトコンパイルするまでは反映されません。以下の手順で site-lisp 内をすべてリコンパイルするのが手軽です。

  1. Meadow を起動します。
  2. M-x byte-recompile-directory を入力します。
  3. site-lisp ディレクトリのフルパスを入力し、 Enter キーを押します。

これで site-lisp ディレクトリ内のすべての .elc ファイルが最新の状態になります。

以上、本日は Meadow に JavaScript メジャーモードをインストールする方法をご紹介しました。これで Meadow での JavaScript 編集もバッチリです。 Aptana などの統合開発環境もいいのですが、言語・プラットフォームを超えて共通に使える Emacsen はやはり手放せません。

…たとえおぢさんと呼ばれても、手放せませんよ!(゜Д゜ クワッ

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles