このトピックでは、 TextDocumentSnapshot クラスと TextDocumentSnapshotScanner クラスの機能を紹介します。
このトピックの本題に入る前に、以下のトピックをお読みください。
スナップショットは、特定の瞬間における文書全体の状態を表した不変オブジェクトです。スナップショットは、( xamSyntaxEditor の 編集領域に入力するなど) 文書のコンテンツを変更するたびに作成されます。TextDocument の CurrentSnapshot プロパティには最新のスナップショットが保存され、タイプ TextDocumentSnapshot
のオブジェクトを返します。
スナップショットはスレッドセーフなので、長時間かかる操作に使用しても、プロセスの間に発生する文書の変更を気に掛ける必要がありません。
用語:
以下の表は、文書情報の取得に利用できる読み取り専用のプロパティをまとめたものです。
以下の表は、スナップショットに表示されるパブリック メソッドをまとめたものです。
スナップショットの CreateScanner メソッドは、TextDocumentSnaphot
の特定のインスタンスを対象にした TextDocumentSnapshotScanner
クラスを作成します。スナップショットの行、トークン、ワードを効率的にスキャンできて便利です。
スキャナーを初めて作成するときに、そのスキャナーの現在のスキャン位置がゼロに初期化されます。スキャン位置は、(CurrentOffset
プロパティで) 明示的に設定するか、以下の “シーク” メソッドのどれかを呼び出して操作します。“ピーク” メソッドもいくつかあり、これらは、現在のスキャン位置を変更することなく、現在のスキャン位置を囲む トークン や ワード を取得するのに便利です。
以下のプロパティでは、現在のスキャン位置に関するさまざまな情報を取得できます。
以下のメソッドでは、現在のスキャン位置を前後に移動できます。
以下のメソッドでは、現在のスキャン位置を移動することなく、前後の文書の部分を確認できます。
以下のトピックでは、このトピックに関連する追加情報を提供しています。