0

教育目的で、PHP コーディング用の IDE を構築したいと考えています。

フォームアプリを作って追加しましたOpenFileDialog..(インテリセンスがなくても簡単だったので、私のC#の知識は役に立ちました!)

ファイルのロードとそこからの行の読み取りは、基本的にすべての言語 (PERL も含む) で同じです。

しかし、私の目標は自家製のインテリセンスを書くことです。richtextBox とそれが生成するイベント、エンドライン、EOF などに関する情報は必要ありません。

私が抱えている問題は、データをどのように処理するかです。行ごとに?

  • テキストファイルの各行の構造体?
  • リンクされたリスト内のすべての構造体をループしますか? ...
  • リッチテキストボックスの更新中?
  • 開き括弧、閉じ括弧、変数などの検索

Microsoft は SQL 型のデータベースをアプリ プロジェクト フォルダーに格納していると思います。しかし、どのようにして変数を追跡し、何らかの形でシミュレートするのでしょうか?

動的テキストでこれを効率的に処理する方法を知りたいです。

4

2 に答える 2

1

これまで考えたことがなかったので、興味深い挑戦のように思えます。

個人的には、語彙スキャナーを実装して、ソース ファイル全体をソース ツリーにトークン化する必要があると思います。各トークンには、トークンをソース ファイル内の行/文字にマッピングすることに関する情報も含まれています。

そこから、どこまでそれを使用したいかを確認できます。誰かがトークンにカーソルを合わせると、その周りのコードのコンテキストを使用して、提供している「インテリセンス」をよりインテリジェントにすることができます。

何かにカーソルを合わせると、ソース ツリーにマップされます。これは、(ビルド中に) 表示したい情報をロードします。

やり過ぎかもしれませんが、楽しいプロジェクトのように思えます。

于 2013-03-12T20:05:07.097 に答える
0

これは、この質問に関連しているようです: https://softwareengineering.stackexchange.com/questions/189471/how-do-ide-s-provide-auto-completion-instant-error-checking-and-debugging

その質問の受け入れられた答えは、私が非常に興味深いと思ったこのリンクを推奨しています:

http://msdn.microsoft.com/en-us/magazine/cc163781.aspx

簡単に言えば、ほとんどの IDE はコードから解析ツリーを生成し、それを格納して管理します。

于 2013-03-12T20:17:31.123 に答える