Ausgehend von untere anderem diesen Threads
Eine Art IntelliSense nachbauen
habe ich mich entschlossen SharpDevelop Komponenten zusammenzusetzen und aus dieser eine Control zu machen, mit der Intellisense angezeigt werden kann.
Die Ehre für die Komponente gebührt also nicht mir. Sondern ich setze sie hier lediglich zusammen.
Das einzige was ich gemacht habe ist in AvalonEditControl das Ganze zur Verfügung gestellt.
Es ist erstmal eine_ "As Is"_ Version.
Komponente als Windows-Forms Control, die Intellisense zur Verfügung stellt:
In AvalonEdit ist es "relativ einfach" möglich eine CodeCompletion zu implementieren.
Die Mechanismen sind ja vorhanden, damit es aber auch "fliegt", muss(e) man noch einiges tun.
Die Komponente ist so vorbereitet, dass sie auf Windows Forms Projekten benutzt werden kann, auch wenn es eine_** WPF-Komponente**_ ist, dies funktioniert durch den ElementHost.
Da nur 2 MB Dateigrösse für das anhängen erlaubt ist, habe ich die DLLs in ein extra Verzeichnis ausgelagert.
(Sonst wäre das Archiv knapp 4 MB gross gewesen)
Ich habe hier eine Kurzanleitung zusammengestellt:
1.) Zur Installation (halbautomatisch):
Nach dem Entpacken mit cmd also in das Verzeichnis wechseln, wo ihr die Dateien entpackt habt, dann in den Unterordner DLL navigieren.
Drückt auf Finish.bat.
Damit werden die DLLs in die entsprechenden Ordner kopiert.
2.) Wer es manuell machen möchte:
Schlagwörter: Avalon Edit, Code Completion, Intellisense, WPF, Windows Forms
Diese Anleitung findet sich nochmal als "Readme.txt" im Archiv selbst.
P.S.: Weiteres zur Komponente werde ich in folgenden Posts hier im Thread schreiben.
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
Hier die Initialisierung:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using AvalonCodeCompletion;
namespace AvalonIsHere
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AvalonCodeCompletionControl avalonEditControl = new AvalonCodeCompletionControl();
avalonEditControl.LoadCustomHighlightingDefinition();
avalonEditControl.SelectHighlighting("c#");
avalonEditControl.OpenFile("Sample1.cs");
avalonEditControl.AddTo(this);
}
}
}
LoadCustomHighlightingDefinition
lädt die xshd Datei, die im Projekt vorhanden ist (Default Parameter), ihr könnt natürlich jede beliebige Datei mit vollqualifiziertem Namen üebergeben.
SelectHighlighting("c#")
wählt natürlich - was auch sonst 😉 - c# als Syntax Highlighing aus.
OpenFile("Sample1.cs")
lädt die entsprechende Klasse.
Und
AddTo(this)
wird benötigt, um die WPF Komponente zu einer Windows Form Komponente (Control) hinzuzufügen.
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.