Plugins HOWTO
Wie installiert man ein Plugin
Das Plugin (als DLL) sollte in den Notepad++\plugins Verzeichnis gestellt werden. Ist das Plugin einmal installiert, können Sie es via “Plugins”-Menü benutzen und konfigurieren.
Wie erstelle ich ein Plugin
Das Windows Message System wird benutzt um Overhead zu vermeiden. Dies bedeutet, dass das Plugins system einige Notepad++ Handles verfügbar macht, um dem Plugin-Programmierer mehr Flexibilität und Möglichkeiten zu bieten. Es gibt aktuell 3 verfügbare Window-Handles: das Notepad++ Hauptwindow-Handles und 2 Scintilla Window-Handles.
Mit diesen 3 Window-Handles, kann fast alles gemacht werden. Senden Sie nur die zweckmässige Windows-Meldung an das richtige Handle um das gewünschte Resultat zu erhalten.
Hier sind 2 Beispiel Plugin-Projekte :
Das Dev-C++ & Code::Blocks Version Package (entwickelt von Chris Severance) unterstützt die folgenden IDE/Compiler sowohl in C wie auch C++ :
- Dev-C++ / GCC (MingW)
- Code::Blocks / GCC (MingW)
- Code::Blocks / MSVC++
- Code::Blocks / Digital Mars
- Code::Blocks / Borland C++ 5.5
- Code::Blocks / Open Watcom
Die Header Datei des Plugin ist in C für C und C++ Programmierer entwickelt. Wenn Sie es für eine andere Programmiersprache anpassen, dann lassen Sie es mich bitte wissen. Ich werde es gerne der aktuellen Liste hinzufügen.
Notepad++ Windows-Meldungen :
- WM_GETCURRENTSCINTILLA
wParam |
lParam |
0 |
[out] int * currentEdit |
currentEdit bezeichnet die aktuelle Scintilla view : 0 ist die Hauptview von Scintilla 1 ist die zweite Scintilla View.
- WM_GETCURRENTLANGTYPE
wParam |
lParam |
0 |
[out] int * langType |
langType bezeichnet den Sprachtyp des aktuellen Scintilla View Dokuments : sehen Sie bitte den enum LangType in "PluginInterface.h" für alle möglichen Werte.
- WM_SETCURRENTLANGTYPE
wParam |
lParam |
0 |
[in] int langTypeToSet |
langTypeToSet wird benutzt um den Sprachtyp des aktuellen Scintilla View Dokuments zu setzen : sehen Sie bitte den enum LangType in "PluginInterface.h" für alle möglichen Werte.
- WM_GET_FULLCURRENTPATH
wParam |
lParam |
0 |
[out] char * fullPath |
fullPath erhält den absoluten Pfad des aktuellen Scintilla View Dokuments. Der Benutzer ist verwantwortlich, einen Buffer zu allozieren, oder eine automatische Variable mit ausreichender Grüsse zu verwenden. Es wird empfohlen MAX_PATH zu benutzen.
- WM_GET_CURRENTDIRECTORY
wParam |
lParam |
0 |
[out] char * directoryPath |
directoryPath erhält den Verzeichnispfad des aktuellen Scintilla View Dokuments. Der Benutzer ist verwantwortlich, einen Buffer zu allozieren, oder eine automatische Variable mit ausreichender Grüsse zu verwenden. Es wird empfohlen MAX_PATH zu benutzen.
- WM_GET_FILENAME
wParam |
lParam |
0 |
[out] char * fileName |
fileName erhält den Dateinamen des aktuellen Scintilla View Dokuments. Der Benutzer ist verwantwortlich, einen Buffer zu allozieren, oder eine automatische Variable mit ausreichender Grüsse zu verwenden. Es wird empfohlen MAX_PATH zu benutzen.
- WM_NBOPENFILES
The return value is the total number of files opened in Notepad++.
- WM_GETOPENFILENAMES
wParam |
lParam |
[in] int nbFile |
[out] char ** fileNames |
- nbFile ist die Grösse des fileNames Array. Der Wert sollte mittels WM_NBOPENFILES Meldung ermittelt werden. Danach das fileNames Array in der Grösse dieses Wertes allozieren.
- fileNames erhält die absoluten Pfade aller in Notepad++ geöffneten Dateien. Der Benutzer ist verantwortlich, für das fileNames Array genügend Platz zu allozieren.
- Der Rückgabewert ist die Anzahl der Pfadnamen, welche in das fileNames Array kopiert wurden.
- WM_DOOPEN
wParam |
lParam |
0 |
[in] char * fullPathName2Open |
- fullPathName2Open bezeichnet den absoluten Verzeichnispfad der zu öffnenden Datei.
- Der Rückgabewert ist TRUE (1) wenn die Operation erfolgreich war, sonst FALSE (0).
Scintilla Meldungen :
Hier finden Sie ein Dokument mit allen Meldungen von Scintilla.
|