Deutsch
XProfEd - Opensource IDE

Plugin Schnittstelle integrieren

 
- Seite 1 -


Dem Tools im Benutzermenü kann man ja leider nichts übergeben, deshalb dachte ich, diesen entweder erweitern oder was neues zu Integrieren.

Das einfachste scheint mir in Form von EnvironmentVariablen zu sein. Übergeben werden sollten so Dinge, wie aktueller Dateiname, Wort unter Cursor (für HilfePlugins), hWnd des aktuellen Scintillas usw.

Zum veranschaulichen hab ich mal ein Demo-Plugin geschrieben
Dieses Wertet %XPRF_TEST% aus und zeigt es an:
KompilierenMarkierenSeparieren
!
Declare Var$
Var$ = GetEnv$("XPRF_TEST")
cls
print Var$
waitkey

Aufruf von XProFEd würde so aussehen:
KompilierenMarkierenSeparieren
!
Def SetEnv(2) !"Kernel32.dll", "SetEnvironmentVariableA"
SetEnv("XPRF_TEST", "Hallo")
WinExec("test.exe", 1)

Ist jetzt nur ein Primitiv-Beispiel
 
24.09.2006  
 



 
- Seite 1 -


Richtig - und in diesem Zusammenhang auch die Selektierung, wobei es hier reichen würde zwei Longs zu übergeben, start -> ende.

Schliesslich will man vielleicht nicht immer ein PlugIn auf den kompletten Source, sondern nur auf einen Teil anwenden.

Und um es komplett zu machen auch die Zeilennummer, und die Cursorposition XY.
 
25.09.2006  
 



 
- Seite 2 -


Habs nochmal getestet, hab im Original - Editor Source 4 Zeilen hinzugefügt., nur provisorisch
Ganz am Anfang:
KompilierenMarkierenSeparieren
!
Def SetEnv(2) !"Kernel32.dll", "SetEnvironmentVariableA"
Declare XPRF_WORT$

Und die Abfrage des Benutzermenü siehst so aus:
KompilierenMarkierenSeparieren
!
BenutzerMenu
----------------

ElseIf Menuitem(900)

Aufruf$ = Optionen#.Helfer$ + " q" + Optionen#.DirHelfer$ + "benutzer.hlfq x"
WinExec(Aufruf$, 1)

Elseif %MenuItem > 900

BMAnzahl%=val(Readini$(Inidatei$,"PROFED","Menuepunkte"))

If (BMAnzahl% > 0) And (%MenuItem <= 900 + BMAnzahl%)

    Aufruf$ = Readini$(Inidatei$, str$(int(%Menuitem - 900)), "Aktion")
    XPRF_WORT$ = Edit#[AktTab%].GetWord()
    SetEnv("XPRF_WORT", Addr(XPRF_WORT$))
    WinExec(Aufruf$, 1)

EndIf


Erfüllt seinen Zweck. So in etwa hab ich es mir vorgestellt.
 
25.09.2006  
 




RGH
Ok, ich habe die Liste erweitert:
KompilierenMarkierenSeparieren
Das sollte für XProfed 1.0 für XProfan 10 genügen. Danach sehen wir weiter ... ;)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.09.2006  
 



Einwand: Markierte Zeile? Markiertes Byte bitte! Oder zustätzlich MarkierteStartZeileCursorx & MarkierteEndZeileCursorX
 
25.09.2006  
 



Für asynchon-ausgeführte PlugIns würde ich mir wünschen dem Editor nen Sendmessage senden zu können damit er den Source einfach reloaded, meinetwegen auch nur dann wenn er das issaved-Tag trägt.
 
25.09.2006  
 



Nachtrag: %hWnd des Editors fehlt ^^

PS: Ich find die Lösung insgesammt irgendwie knochig. Es wäre doch deutlich leckerer wenn man dem Editor - aus Sicht des PlugIns - einfach Fragen stellen könnte.
 
25.09.2006  
 



Ich sehe es ähnlich wie iF. So muß man dem Nutzer des Tools eine genaue Anleitung schreiben, welche Parameter in welcher Reihenfolge nötig sind. Bei den anderen Varianten, egal ob Env oder pipe.pcu fällt das weg. Eine Fehlerquelle weniger.

Diese Variante per Kommandozeile hat ihre Vorteile bei Fremdtools und ist natürlich auch wichtig.

hWnd des Editors, sowie des aktuellen Scintilla Controlls fehlen mir auch noch

Aber ich möchte nicht drängeln, wenn eine Variante erstmal verfügbar ist, dann kann man ja weitersehen
 
25.09.2006  
 



Genau, Rolands Variante bietet eine stabile Grundsituation.

Ein weiteres Verfahren einzubetten ist ja später nicht das Problem.
 
25.09.2006  
 




RGH
[quote:b80c0c0d53=iF]Einwand: Markierte Zeile? Markiertes Byte bitte! Oder zustätzlich MarkierteStartZeileCursorx & MarkierteEndZeileCursorX[/quote:b80c0c0d53]
Ok, dann bastele ich noch rasch :X und :Y für erste und letzte Position (Byte) ein.
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.09.2006  
 



Oh ja bitte, denn

:V = erste selektierte Zeile
:B = letzte selektierte Zeile

ist eigendlich unbrauchbar, bzw. ich meine, ich würde ein PlugIn erwürgen was auch nur ein einziges Byte mehr als von mir markiert verarbeitet.
 
25.09.2006  
 




RGH
So, und die Environmentvariablen sind auch drin. Die heißen dann XPRF_D, XPRF_V, XPRF_B usw. und haben die gleiche Bedeutung wie die Varbalen mit Ausrufezeichen. Und auch bei Nutzung der Environmentvariablen kann man das :! als Parameter beim Aufruf verwenden, wenn die geänderte Datei nach Aufruf relaodet werden soll.

Ich denke mal, morgen abend gibt es die 0.99.

Bis dann
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
26.09.2006  
 



[quote:1910b256fc=RGH]So, und die Environmentvariablen sind auch drin.[/quote:1910b256fc]
Klasse [img:1910b256fc]https://friendsforever.foren-city.de/images/smiles/a084.gif[/img:1910b256fc]
 
26.09.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.606 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller26.08.2013
Roland Schroeter23.02.2013

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie