Usage @ja - aki2o/plsense GitHub Wiki
plsenseの使い方について
実行方法
都度実行を完了する
$ plsense help assist
Do assist for given Code.
Assist is a optimized completion.
...
$
対話的に実行する
$ plsense -i
> help assist
Do assist for given Code.
Assist is a optimized completion.
...
> exit
$
基本の流れ
plsense単体で動作させる基本的な流れは以下のようになります。
エディタから使う場合、ユーザの操作に合わせた適切なタイミングで、これらを実行することになります。
1. サーバを起動する
plsenseは、バックグラウンドでサーバプロセスが動作し、実質的な処理は全てサーバプロセスが担います。
plsenseコマンドは、サーバプロセスにリクエストしたりレスポンスを取得するクライアントです。
serverstartでサーバを起動します。
2. ファイルを開く
補完/ヘルプ情報を取得したいファイルを開きます。
ここでいう"開く"とは、openを実行することを指します。
すると、まだ解析されていないファイルの場合は解析処理がバックグラウンドで始まります。
3. 位置を指定する
サーバに補完/ヘルプ情報を要求する際、どこに対して最適化された情報が欲しいのかを指定しておく必要があります。
つまり、ユーザがどこにポイントしているかという情報です。
それは以下を実行して指定します。
※ ファイルパスはopenの実行によって、更新されます。
※ 関数の中にいない時は、何も指定せず実行します。
4. 情報を取得する
以下を実行してサーバから補完/ヘルプ情報を取得します。
- コード補完 ... assist
- ヘルプ ... modhelp / subhelp / varhelp / codehelp / assisthelp
- メソッドシグネチャ ... subinfo
- パッケージ構造 ... explore
※ 与えるPerlコードは完全/不完全を問いません。実際のファイルに記述されているかどうかも問いません。
5. ファイルを更新する
ファイルが更新されたら、それをサーバにも伝える必要があります。
それには、以下の方法があります。
その他目的別コマンド一覧
- サブコマンドのヘルプを見る ... help
- サーバが起動しているか確認する ... serverstatus
- 現在設定されている位置を確認する ... location
- モジュール/ファイルの解析状況を確認する ... ready / ps / queue
- 解析結果を削除する ... remove / removeall
- 動作設定を変更する ... config
- サーバをリフレッシュする ... refresh
- デバッグする ... debugmod / debugsubst / debugrt / debuglex / loglevel
help コマンド名
サブコマンドのヘルプを表示します。
引数無しの場合、サブコマンド一覧を表示します。
svstart/serverstart
サーバプロセスを開始します。
svstop/serverstop
サーバプロセスを停止します。
svstat/serverstatus
サーバプロセスの状態を表示します。
サーバの種類
- Main Server ... 補完/ヘルプの提供。
- Work Server ... ライブラリの検索やソース解析などのタスク管理。
- Resolve Server ... 個々のモジュール/ファイルの解析結果の集計。
サーバの状態
- Running ... 起動済み。クライアントの要求待ち。
- Busy ... 起動しているが、何らかの処理を行っていて応答できない状態。
- Not Running ... 起動していない。
refresh
起動中に蓄積された不要なキャッシュなどを消去し、サーバプロセスをリフレッシュします。
o/open モジュール名/ファイルパス
指定されたモジュール/ファイルが未解析の場合、解析を開始します。
解析は未解析のモジュールに対して、再帰的に実施されます。
u/update モジュール名/ファイルパス
指定されたモジュール/ファイルが解析済みでも、解析を開始します。
解析は未解析のモジュールに対して、再帰的に実施されます。
remove モジュール名/ファイルパス
指定されたモジュール/ファイルの解析結果を削除します。
removeall
全ての解析結果を削除します。
ready モジュール名/ファイルパス
指定されたモジュール/ファイルが解析済みであるかどうかを表示します。
引数が指定されない場合、解析済みのモジュールの一覧を表示します。
- Yes ... 解析済み。
- No ... 未解析。
- Not Found ... 存在が確認できない。
ps
サーバプロセスから起動され、実行中のタスクプロセスを表示します。
サーバのタスク
- build モジュール名/ファイルパス ... モジュール/ファイルのソース解析中。
- find プロジェクト名 ... インストールモジュール/プロジェクト固有モジュール検索中。
queue
サーバプロセス上の実行待ちのタスクを表示します。
mhelp/modhelp モジュール名
モジュールのPerlDocを表示します。
fhelp/subhelp メソッド名 モジュール名
メソッドのヘルプを表示します。
モジュールに属する場合は、モジュール名が必要です。
vhelp/varhelp 変数名 モジュール名
変数のヘルプを表示します。
モジュールに属する場合は、モジュール名が必要です。
chelp/codehelp Perlコード
与えられたコードから特定されるコンテキストについてのヘルプを表示します。
ahelp/assisthelp 候補
最後に実行したassistの結果の補完候補についてのヘルプを表示します。
a/assist Perlコード
与えられたコードに続くことが可能な候補を表示します。
subinfo Perlコード
与えられたコードから特定されるメソッドについての情報を表示します。
explore 正規表現
与えられた正規表現にマッチするパッケージの構造を表示します。
未指定の場合は、全パッケージの構造を表示します。
onfile ファイルパス
ファイルパスを現在のロケーションに設定します。
onmod モジュール名
モジュールを現在のロケーションに設定します。
onsub メソッド名
メソッドを現在のロケーションに設定します。
loc/location
現在のロケーションを表示します。
ロケーションは、Perlコードを与えるコマンドにおいて、その実行結果に影響します。
c/codeadd Perlコード
与えられたコードを現在のロケーションに追加します。
解析の再実行は、ファイルが更新された場合に必要になりますが、そのコストは軽くないため、
ファイルを保存するまでのコード変更による解析結果の変動をリアルタイムに取り込むためのコマンドです。
※ 本コマンドの解析結果は保存されません。serverstop/refreshで消去されます。
config
設定ファイルを更新します。
logfile
/loglevel
を設定する場合は、直接ファイルを編集して下さい。
debugmod モジュール名/ファイルパス
モジュール/ファイルに関する解析結果を表示します。
debugsubst 正規表現
解析で得られた代入情報の内、正規表現にマッチするものを表示します。
debugrt 正規表現
解析で得られたルーティングの内、正規表現にマッチするものを表示します。
debuglex Perlコード
与えられたコードから得られるPPIドキュメントを表示します。
loglevel レベル 対象サーバ
対象サーバのログ出力を指定されたレベルに変更します。
レベルに指定できる値については、Log::Handlerのヘルプを参照して下さい。
対象サーバに指定できる値は以下のどれかです。
- main ... Main Server のみ
- work ... Work Server のみ
- resolve ... Resolve Server のみ
- all ... 全サーバ
未指定の場合は、クライアントプロセス(plsenseコマンドのプロセス)が対象になります。