2011-12-20 9 views
15

私のWPF(.Net4)ウィンドウアプリケーション用のスクリプトインターフェイスの実装を含むプロジェクトに取り組んでいます。誰かが好きなエディタを提案できるのであれば、私は興味がありますAvalonEditScintillaNET。どんな落とし穴や利点もあります。 C#とIronPythonの両方をスクリプト言語としてサポートする必要があります。 (少なくともそれは当初の計画ですが、そのうちの1つを最終決定するかもしれません)。ScintillaNETとWPFアプリケーション用のスクリプトインターフェイスを提供するAvalonEdit

ScintillaNETの欠点の1つは、ネイティブ(管理されていない)Scintillaを管理するラッパーであることです。 WPF4で使用すると問題が発生するかどうかです。

何か指針や提案がありがとうございます。

+2

あなたは結局どのように解決しましたか? (今、ほぼ2年後) – Goswin

+0

私はソースコードの中でコンポーネントとして使うことはできませんが、 'AintonEdit'をベースにした' ScintillaNET'と 'SharpDevelop'に基づく' QuickSharp'別の軽量C#エディタです。 Imo、 'SharpDevelop'はより多くの機能を備えていて、作業がはるかに簡単でした。 – nawfal

答えて

22

これは、エディタで実装する機能の数に依存すると思います。また、あなたがそれを拡張するためにどのくらいの仕事をしたいのか、あなたが対処したいと思っている学習曲線の量。

Win32をターゲットにしていて、アンマネージドDLLを気にしないのであれば、Scintilla.NETは問題にはならないと思います。また、thisページが示唆するように、簡単にWPFでホストすることができます。

個人的には、シンチラはAvalonEditよりも優れていると感じました。また、基本的なエディタを使い始める方が簡単です。例えば、Scintillaはコードを折り畳んで展開するなど、多くの機能を備えています。

AvalonEditを使用すると、フォールディング戦略を作成してドキュメントを自分で解析する必要があります。これは、まだ実装されていないAvalonEdit用のIronPythonをサポートするために必要な作業です。

私はScintillaのでIronPythonのエディタをサポートするために必要なすべての検索パスとScintilla.netアセンブリと、次のような構成にSciLexer.dllた:AvalonEditについては

private void Form1_Load(object sender, EventArgs e) 
    { 
     this.scintilla1 = new ScintillaNet.Scintilla(); 
     this.scintilla1.ConfigurationManager.Language = "python"; 
     this.scintilla1.Indentation.ShowGuides = true; 
     this.scintilla1.Indentation.SmartIndentType = ScintillaNet.SmartIndent.Simple; 
     this.scintilla1.Location = new System.Drawing.Point(0, 0); 
     this.scintilla1.Margins.Margin0.Width = 40; 
     this.scintilla1.Margins.Margin2.Width = 20; 
     this.scintilla1.Name = "scintilla1"; 
     this.scintilla1.TabIndex = 4; 
     this.scintilla1.Whitespace.Mode = ScintillaNet.WhitespaceMode.VisibleAfterIndent; 
     this.scintilla1.Dock = DockStyle.Fill; 
     this.Controls.Add(this.scintilla1); 
    } 

あなたが外部の蛍光ペンをロードする必要がありますファイルの詳細については、thisのブログ記事をご覧ください。だから、基本(ハイライト、Python + C#の折りたたみ)を望むなら、私の結論は、シンチラは簡単であり、より良い結果を出すということです。 AvalonEditを使用すると、学習曲線に取り組み、学習に取り組んでいれば、最終的にはもっと多くのことを行うことができます。現時点では、私は安定したエディタとしてScintillaを使用しており、概念の証明としてAvalonを試しています。おそらく私はエディタについてもっと学ぶときに私は新しい意見を形成するでしょう。

幸運

+0

ありがとうAndre。これは非常に役に立ちます – Bhuvan

+6

@Andre、あなたはまだ今日(ほぼ2年後)同じ返信をしますか? – Goswin

+0

私は@Goswinの質問への返答も欲しいです。 – gideon

関連する問題