From: ueno Date: Sat, 6 Aug 2005 12:12:19 +0000 (+0000) Subject: Abolish "Development" chapter. X-Git-Tag: channel-coding-branchpoint~199 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6aafba6d4b4821a714227b69b8cfd113446a6502;p=elisp%2Friece.git Abolish "Development" chapter. --- diff --git a/doc/riece-ja.texi b/doc/riece-ja.texi index c35729d..7e57f61 100644 --- a/doc/riece-ja.texi +++ b/doc/riece-ja.texi @@ -59,7 +59,6 @@ Free Documentation License". * Basic usage:: 基本的な使い方 * Advanced usage:: 進んだ使い方 * Tips:: 便利な設定 -* Development:: 開発者向け情報 * Index:: * Function Index:: * Variable Index:: @@ -552,31 +551,22 @@ IRC サーバとの接続を保持 @vindex riece-addons @example -(add-to-list 'riece-addons 'riece-alias) +(add-to-list 'riece-addons 'riece-keyword) @end example -@node Tips, Development, Advanced usage, Top +@node Tips, Index, Advanced usage, Top @comment node-name, next, previous, up @chapter Tips この章では、よく聞かれる質問に対する答えと便利な設定例を紹介します。 -@section チャンネル名「@samp{#foo:*.jp}」を「@samp{%foo}」と略記したい - -以下の行を @file{~/.riece/init} に追加します。@samp{riece-alias} アドオ -ンを使うとチャンネル名やニックネームの別名を定義することができます。 - -@example -(add-to-list 'riece-addons 'riece-alias) -@end example - @section 直前に選択していたチャンネルに移動したい @vindex riece-guess-channel-try-functions 以下の行を @file{~/.riece/init} に追加することで、@kbd{C-c g} で履歴を辿 りつつ移動できます。@samp{riece-guess} アドオンは、チャンネル選択の履歴 や未読メッセージの有無などから次に選択するチャンネルを推測してくれるアド -オンです。 +オンで、標準で組み込まれています。 @example (add-hook 'riece-guess-channel-try-functions @@ -726,12 +716,8 @@ HTTP プロキシを介して IRC サーバに接続することができます。 @section 会話のログをファイルに保存したい @vindex riece-log-directory-map -以下の行を @file{~/.riece/init} に追加します。@samp{riece-log} アドオン -を使うと、会話のログをファイルに保存し、再起動時に参照できます。 - -@example -(add-to-list 'riece-addons 'riece-log) -@end example +@samp{riece-log} アドオンを使うと、会話のログをファイルに保存し、再起動 +時に参照できます。@samp{riece-log} アドオンは標準で組み込まれています。 通常は @file{~/.riece/log} の下に IRC サーバの名前、チャンネル名のディレ クリが作成され、その中に日にち毎に分別されて保存されます。 @@ -751,422 +737,7 @@ GNU Emacs に附属の @samp{windmove.el} を使うと便利です。詳細は @samp{windmove.el} のコメントを参照ください。@samp{windmove.el} は 作者のページ (@uref{http://hovav.net/elisp/}) からも取得できます。 -@node Development, Index, Tips, Top -@chapter Development - -この章では、Riece の開発プロセスや内部構造など、開発に必要な情報をまとめ -ています。開発に参加していただける方を募集しています。 - -@menu -* CVS:: 開発中のソースの取得 -* Debugging:: デバッグのための設定 -* Modules:: 構成モジュールの説明 -* Namespace management:: -* Signals:: -* Writing add-ons:: アドオンの書きかた -* Handler hooks:: -@end menu - -@node CVS, Debugging, Development, Development -@section CVS - -Riece の開発は CVS を利用して行っています。CVS サーバから最新のスナップ -ショットを取得するには以下のようにします。 - -@enumerate -@item -CVS サーバへのログイン - -@example -cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root login -CVS password: [CR] # NULL string -@end example - -@item -モジュールのチェックアウト - -@example -cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root checkout riece -@end example - -@item -@file{configure} の生成 - -@example -autoreconf -f -i -v -@end example -@end enumerate - -@node Debugging, Modules, CVS, Development -@section Debugging - -@code{riece-debug} を @code{t} に設定すると、デバッグ出力が有効になりま -す。また、サーバからの生の出力が " *IRC*[<サーバ名>]" バッファに消されず -に残ります。 -@vindex riece-debug - -@node Modules, Namespace management, Debugging, Development -@section Modules - -基本的に依存関係の上位にあるものから: - -@table @samp -@item riece-globals -大域変数の定義 -@item riece-options -ユーザオプションの定義 -@item riece-version -バージョンの定義 -@item riece-coding -コーディングシステム関連の関数の定義 -@item riece-complete -ミニバッファでの補完を助ける関数の定義 -@item riece-addon -アドオン管理 - -@item riece-mode -channel/user のモード管理 -@item riece-identity -channel/user object の大域表記を操作する関数の定義 -@item riece-channel -channel object 関連の定義 -@item riece-user -user object 関連の定義 - -@item riece-misc -雑多な関数の定義 -@item riece-signal -シグナル(@pxref{Signals})管理 - -@item riece-layout -ウィンドウレイアウト管理 -@item riece-display -表示用バッファの管理 -@item riece-server -IRCサーバとの接続管理 - -@item riece-naming -名前管理のための mediator のようなもの -@item riece-message -message object 関連の定義 - -@item riece-filter -プロセスフィルタのエントリポイント -@item riece-handle -通常のメッセージのハンドラ。riece-filter から呼ばれる -@item riece-000 -000番台の numeric reply のハンドラ。riece-filter から呼ばれる -@item riece-200 -200番台の numeric reply のハンドラ。riece-filter から呼ばれる -@item riece-300 -300番台の numeric reply のハンドラ。riece-filter から呼ばれる -@item riece-400 -400番台の numeric reply のハンドラ。riece-filter から呼ばれる -@item riece-500 -500番台の numeric reply のハンドラ。riece-filter から呼ばれる - -@item riece-commands -コマンドの定義 -@item riece-irc -IRC プロトコルインターフェース -@item riece -エントリポイント。各バッファのモード定義など -@end table - -@node Namespace management, Signals, Modules, Development -@section Namespace management - -Riece は複数のサーバに同時に接続するため、サーバ毎に別々の名前空間を管理 -しています。この名前空間には、サーバのプロセスに結び付けられたバッファの -ローカル変数を介してアクセスします。 - -@subsection Obtaining server buffer -サーバのプロセスを得るには、まずはじめにサーバの名前を得る必要があり -ます。サーバの名前は以下に挙げるいくつかの方法で取得できます。 - -@enumerate -@item -@vindex riece-overrinding-server-name -大域変数 @code{riece-overrinding-server-name} の値 - -@item -@vindex riece-server-name -@code{riece-server-name} がカレントバッファのローカル変数であるならば、 -既にプロセスのバッファにいるとみなせるので、@code{riece-server-name} の -値そのもの - -@item -@samp{riece-identity} オブジェクトに結び付けられたサーバ名(後述) -@end enumerate - -こうして得たサーバ名で @code{riece-server-process} を呼出し、サーバの -プロセスを取得します。 -@findex riece-server-process - -@subsection Identity -複数のサーバに繋いだ場合、チャンネル名やニックを(サーバのバッファ上だ -けではなく)大域的に区別する必要が生じます。このような名前を表現するの -が @samp{riece-identity} オブジェクトです。 - -@samp{riece-identity} オブジェクトは以下の 2 つの要素をもつベクターです。 - -@table @samp -@item prefix -サーバローカルな名前 -@item server -サーバの名前 -@end table - -@samp{riece-identity} オブジェクトに対する操作には以下のようなものがあります。 - -@defun riece-make-identity prefix &optional server -@samp{riece-identity} オブジェクトを作成します。server が省略された場合には、 -riece-find-server-name を使って取得したサーバ名を使います -@end defun - -@defun riece-identity-prefix identity -@samp{riece-identity} オブジェクトからサーバローカルな名前を取り出します。 -@end defun - -@defun riece-identity-server identity -@samp{riece-identity} オブジェクトからサーバの名前を取り出します。 -@end defun - -@defun riece-identity-equal ident1 ident2 -2 つの@samp{riece-identity} オブジェクトが同等か調べます。 -@end defun - -@defun riece-identity-equal-no-server ident1 ident2 -2 つの@samp{riece-identity} オブジェクトのサーバローカルな名前が同等か -調べます。 -@end defun - -@defun riece-identity-member elt list -@samp{riece-identity} オブジェクト @var{elt} が @var{list} に含まれる -か検査します。 -@end defun - -@subsection Channel and user management -@samp{riece-identity} オブジェクトによって識別される IRC のチャンネル -とユーザはそれぞれ @samp{riece-channel} オブジェクトと -@samp{riee-user} オブジェクトにより表現されます。 - -@subsubsection Channels -@code{riece-channel} は、IRC のチャンネルを表すオブジェクトです。以下の -要素を持ちます。 - -@table @samp -@item users -参加しているユーザの名前(局所名)のリスト -@item operators -オペレータ権限をもつユーザの名前のリスト -@item speakers -発言権をもつユーザの名前のリスト -@item modes -チャンネルのモード(文字のリスト) -@item banned -@samp{MODE +b} で指定されたパターンの一覧 -@item invited -@samp{MODE +I} で指定されたパターンの一覧 -@item uninvited -@samp{MODE +e} で指定されたパターンの一覧 -@end table - -@subsubsection Users -@code{riece-user} は、IRC に参加しているユーザを表すオブジェクトです。以 -下の要素を持ちます。 - -@table @samp -@item channels -参加しているチャンネルの名前(局所名)のリスト -@item user-at-host -"@@" の形で与えられるユーザの情報 -@item modes -ユーザのモード(文字のリスト) -@item away -AWAY 中かどうか -@end table - -@subsubsection Mediator -チャンネルとユーザの参加・離脱を管理するために、 @code{riece-naming} -という上位のモジュールを用意しています。これは、デザインパターンでいう -ところの Mediator パターンに相当するものです。 - -@code{riece-naming} を介することで、前述のチャンネル・ユーザオブジェクト -に直接手を触れることなく、名前空間に安全にアクセスすることができます。 - -提供する主な関数は以下の 3 つです。 - -@defun riece-naming-assert-join user-name channel-name -ユーザがチャンネルに参加したことを表明します -@end defun - -@defun riece-naming-assert-part user-name channel-name -ユーザがチャンネルから離脱したことを表明します -@end defun - -@defun riece-naming-assert-rename old-name new-name -ユーザの名前が変更されたことを表明します -@end defun - -@node Signals, Writing add-ons, Namespace management, Development -@section Signals - -画面の再描画を効率良く行うために、イベントと描画対象のオブジェクト(バッ -ファや、モードラインの印 @pxref{Indicators})を結び付けるメカニズムを用意 -しています。 - -何らかのイベントが発生すると、シグナルが送出されます。シグナルの概念は、 -Qt や GTK+ といった GUI ツールキットに用意されているものと同様です。 - -シグナルを送出するには、@samp{riece-emit-signal} を使います。 - -@defun riece-emit-signal signal-name &rest args -@var{signal-name} で指示されるシグナルを、引数 @var{args} とともに送出します -@end defun - -シグナルに応答するには、@samp{riece-connect-signal} を使います。 - -@defun riece-connect-signal signal-name slot-function &optional filter-function handback -@var{signal-name} で指示されるシグナルに応答する関数 @var{slot-function} -を結び付けます。@var{slot-function} に指定された関数は 2 つの引数を取りま -す。第1の引数ははシグナルを表します。また、第2の引数として、 -@var{handback} 引数に与えられたオブジェクトがそのまま渡されます。 - -@var{filter-function} は、受信したシグナルに応答すべきかどうかを判定する -関数です。この関数は引数としてシグナルオブジェクトを受け取り、@samp{nil} -または @samp{t} を返すことが期待されます。返り値が @samp{nil} の場合には、 -@var{slot-function} が呼ばれることはありません。 -@end defun - -シグナルオブジェクトにアクセスするには、以下の関数を使います。 - -@defun riece-signal-name -シグナルの名前(シンボル)を返します。 -@end defun - -@defun riece-signal-args -シグナル送出時に与えられた引数を返します。 -@end defun - -現在、以下のシグナルが標準で登録されています: - -@table @samp -@item channel-list-changed -参加しているチャンネルの一覧の変化 -@item user-list-changed -チャンネルの参加者一覧の変化 -(引数はチャンネルに相当する @samp{riece-identity} オブジェクト) -@item channel-switched -現在のチャンネルを移動 -@item user-joined-channel -ユーザがチャンネルに参加 -(引数は、ユーザおよびチャンネルに相当する @samp{riece-identity} オブジェクト) -@item user-left-channel -ユーザがチャンネルから離脱 -(引数は、ユーザおよびチャンネルに相当する @samp{riece-identity} オブジェクト) -@item user-renamed -ユーザが名前を変更 -(引数は、以前と現在の名前に相当する @samp{riece-identity} オブジェクト) -@item user-away-changed -ユーザの離席状態の変化 -(引数は、ユーザに相当する @samp{riece-identity} オブジェクト) -@item user-operator-changed -ユーザのオペレータ状態の変化 -(引数は、ユーザに相当する @samp{riece-identity} オブジェクト) -@item channel-topic-changed -チャンネルのトピックの変化 -(引数は、チャンネルに相当する @samp{riece-identity} オブジェクト) -@item channel-modes-changed -チャンネルのモードの変化 -(引数は、チャンネルに相当する @samp{riece-identity} オブジェクト) -@item channel-operators-changed -チャンネルでオペレータ権限を持つユーザの一覧の変化 -(引数は、チャンネルに相当する @samp{riece-identity} オブジェクト) -@item channel-speakers-changed -チャンネルで発言権を持つユーザの一覧の変化 -(引数は、チャンネルに相当する @samp{riece-identity} オブジェクト) -@item buffer-freeze-changed -バッファの凍結状態の変化 -(引数はバッファ) -@end table - -@node Writing add-ons, Handler hooks, Signals, Development -@section Writing add-ons - -アドオンの条件を満たすモジュールは以下の関数を提供します。 - -@table @samp -@item <モジュール名>-requires -依存する他のアドオン(シンボルのリスト)を返します(オプション) -@item <モジュール名>-insinuate -初期化処理を行います -@end table - -また、アドオンの説明を、変数 @samp{<モジュール名>-description} に設定す -ることもできます。この文字列は @kbd{M-x riece-command-list-addons} によ -るアドオンの一覧表示に使われます。 - -有効化・無効化に対応したアドオンは、変数 @samp{<モジュール名>-enabled} -に現在の状態を保持します。値が @samp{nil} であれば無効、@samp{t} であれ -ば有効です。加えて、以下の関数を提供します。 - -@table @samp -@item <モジュール名>-enable -アドオンを有効にします -@item <モジュール名>-disable -アドオンを無効にします -@end table - -Riece は起動時に以下の処理を行います。 - -@enumerate -@item -変数 @code{riece-addons} に列挙されたモジュールを読み込む - -@item -それぞれのモジュールに対し、@samp{<モジュール名>-requires} が用意されていれば呼び出して依存グラフを作る - -@item -依存グラフに対してトポロジカルソート (cf. tsort(1)) を行う - -@item -得られた依存順序に従って @samp{<モジュール名>-insinuate} 呼び出す - -@item -もし、アドオンが有効化・無効化に対応しており、明示的に無効化されていなければ、 -@samp{<モジュール名>-enable}を呼び出す。 -@end enumerate - -作成したアドオンは、@code{load-path} の通ったディレクトリ、または -@code{riece-addon-directory} (デフォルトでは @file{~/.riece/addons/}) に -置くことで組み込み可能な状態になります。 -@vindex riece-addon-directory - -@node Handler hooks, , Writing add-ons, Development -@section Handler hooks - -Riece には、ハンドラフックと呼ばれる特殊なフックがあります。これらは IRC -のメッセージを受け取った前後で実行されるフックです。 - -説明のために @samp{message} を IRC のメッセージ名(PRIVMSG など)を全て小 -文字にしたものとします。 - -@table @code -@item riece--hook -@samp{message} が届いたときに最初に呼ばれるフック -@item riece-after--hook -@samp{message} の処理が終わった後に呼ばれるフック -@end table - -ここで @code{riece--hook} の返り値には意味があり、非 nil を返す -ものがあれば、その後の処理をおこないません。また、その場合には -@code{riece-after--hook} も呼び出されません。 - -フックの引数は RFC2812 の @samp{prefix} と @samp{Parameters} に相当する -2 つの引数が渡ります。 - -@node Index, Function Index, Development, Top +@node Index, Function Index, Tips, Top @chapter Index @printindex cp