2011-02-09 11 views
2

Visual StudioのAvalonEditに似た、"Virtual Space"の機能を実現したいと思います。AvalonEditで仮想空間を有効にするには?

I.e.キャレットはテキスト行の終わりを超えて配置することができ、いずれかのキーを押すと自動的に一致するスペースが追加されます。

私は非常にこの機能を使用していますが、どちらもグーグルも勉強AvalonEditのコードは私にそれがすべてでサポートされている場合、それを有効にする方法上の任意の手がかりを与えました。

されていない場合は、キャレット処理メカニズムを拡張する方法の提案がいいだろう。

ありがとうございます!

答えて

4

編集:バージョン4.2.0.8283で 仮想空間サポートhas been added to AvalonEdit。 セットtextEditor.Options.EnableVirtualSpace = true;

以下は私の元の回答です。


現在サポートされていません。

あなたはそれを追加してみたい場合は、あなたが(CodeProjectの上のヘルプファイルで)「座標系」のドキュメントを読んで確認してください。行の終わりの後の位置が有効になるように「視覚的な列」を拡張したいと思うでしょう。そして、位置を調整する必要があります< - >列の計算(VisualLine.GetVisualColumnとfriends)。 TextView.WideSpaceWidthを使用して、行の最後を過ぎた列を特定します。

上記仮想空間にキャレットを配置するために、マウスを使用できるようにする必要があります。その後、仮想空間もサポートするように、キャレットの移動(矢印キー、CaretNavigationCommandHandler)とテキスト入力ロジック(TextArea.PerformTextInput)を変更する必要があります。

そして、あなたは上記の手順で成功している場合、バックAvalonEditへの変更を貢献することを忘れないでください。 :-) 私自身は仮想空間のファンではありませんが、RectangleSelectionを適切に動作させるためには、そのようなものが必要です。

+0

うわー、本当に包括的な答え。ありがとうございます:)この機能は最優先事項ではありませんが、私はいつかそれを実現します。 – wizzard0

+0

@ wizzard0:私は数週間前にこの作業を始めましたが、再び停止しました。 未完成のパッチはhttp://bugtracker.sharpdevelop.net/issue/ViewIssue.aspx?id=1854&PROJID=4に添付されています。私がどこで停止しても構いません。 – Daniel

関連する問題