Laden...

AvalonEditControl (Code Completion / Intellisense für Windows Forms)

Erstellt von dr4g0n76 vor 7 Jahren Letzter Beitrag vor 7 Jahren 8.654 Views
dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 7 Jahren
AvalonEditControl (Code Completion / Intellisense für Windows Forms)

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.

dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 7 Jahren

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.