とりあえずnewsgroupに投げてみた。一応動いているようでなにより。

早く実用レベルにもっていきたいので Intellisenseの実装したいんだけどいまだにパーサ周りの見通しが立たない。
Dの言語サービスは
lualite http://www.sjbrown.co.uk/lualite.html
をベースに作ってるので現状でも
http://reverie.xrea.jp/files/vs5.png
のようにIdentifier抽出による補完は可能。問題は補完リストを作るパーサの方。


dmd のfrontend使って、パース処理、Scope内のシンボル名列挙とかはできるんだけど、元がコンパイラのパーサってことで、メモリがちゃんと管理されてないって問題が。内部に手を加える必要があるけど、よく理解せずに触るのは危険。

ちなみにfrontendコンパイルするとwarningが700個近く。宣言してるのに使ってない変数とか多すぎ。FileName *hfilenameやFileName *cfilenameとか何に使うつもりだったか気になる変数も。
とりあえずは、コンパイル時に補完リストを生成、補完にはそれを使うことにしようかと。
VS6の頃のIntellisenseはこうやってたような。