coeracanth氏による追加機能の説明(プルリクエストからの引用)
大きな変更点
- ユーザー定義のシンボルをコード補完の候補に追加
- ドキュメンテーションコメントっぽいものをコード補完時に表示する
- ホバーでヒントを表示する
ユーザー定義のシンボルをコード補完の候補に追加
ユーザー定義関数@HOGE
やユーザー定義変数#DIM HUGA
をコード補完の候補に追加します。
デフォルトでは表示する候補は現在のファイル内で定義されたもののみです。ドキュメントもなしに多く表示されたところでノイズでしかないのと、大きなプロジェクトだとパフォーマンスに難があるので。
パフォーマンスですが、手元の環境ではeraMegaten0.309用私家版パッチ纏め_Rev132で、ワークスペース内を対象として初回の候補表示に数十秒かかります。ファンがよく回ります。2回目以降はキャッシュが効いて1秒ないくらいです。
コード補完候補はcompletion.ts
で手書きの候補があるので、emuera/exmeth.erb
とemuera/exvar.erh
からの候補は重複のためカットしています。
後述のドキュメンテーションコメントとホバーもあるので、ゆくゆくはexmeth.erb
にコメントをつける形で充実させたほうがよさそうな気がしますがローカライズどうしたらいいかわかりません。
configにerabasic.completionWorkspaceSymbols
を追加します。
オンにするとワークスペースのシンボルすべてがコード補完の対象になります。
デフォルトはオフ(ファイル内のみ)です。
ドキュメンテーションコメントっぽいものをコード補完時に表示する
関数の宣言直前に;;;
でコメントを記載するとコード補完の際にヒントとして表示されます。
;;;関数の説明です
;;;- a
;;;- b
;;;@return 返り値の説明です
@HOGE(HUGA, PIYO)
#DIM HUGA
;;;変数宣言にもつけれるよ
#DIM PIYO
コメントはマークダウンとして解釈されます。
@return
とか@なんとか
と書くと気持ち強調されます。JSDOC記法を意識したものですが、パースが面倒なのでそれ以上は行っていません。
表示されるヒントは色付など行っていません。
erh
での宣言にもつけられます。
ホバーでヒントを表示する
関数などをマウスホバーした際にコード補完と同じようなヒントを表示します。
探索範囲はワークスペース全体なので、コード補完と同様に巨大なプロジェクトでは初回表示にとても時間がかかります。コード補完より影響少ないかなと思ってconfig化はサボりましたゆるして
completion.ts
で手書きしているものはコード補完用なのでホバーには出ません。やりようがあるかもしれないけどサボりましたゆるして