Italia
IDEs/ Entwicklungsumgebungen

XProfed SE

 

Sven
Bader
Auf Basis von Rolands Open Source XProfEd  [...]  habe ich eine an meine Bedürfnisse angepasste Version erstellt, welche ich im Sinne des Open-Source-Gedankens auch wieder zur Verfügung stellen möchte.

Herunterladen


Neue Funktionen in der SE-Version

  • Parallelbetrieb von bis zu 10 Profan/XProfan Versionen, 1-Klick Wechsel der Version
  • Profan2Cpp Integration
  • Darkmode und erweitertes Syntaxhighlighting
  • Integration von WinMerge, um Fonte zu vergleichen (Auswahl oder File)
  • Umfangreiche Versionierung/Sicherung von Quelltexten
  • Verbesserte Tabs mit Icons und Schließen-Button
  • Codeformatierung
  • Ein-/Ausrücken, Ein-Auskommentieren und Codeformatierung mit einem Undo-Schritt
  • Suchen und Ersetzen auch von Zeilenumbrüchen und Tabs
  • Suchfeld in der Toolbar
  • Cerca automatisch in beide Richtungen
  • Per Strg+Klick auf eine Funktion springt man direkt zum entsprechenden Proc oder Def
  • Übersetzung von OpenGL Befehlen aus C++
  • Farbkonvertierungen per Rechtsklickmenü
  • File-Öffnen Menü zeigt direkt alle kompatiblen File
  • Live-Syntaxhilfe in der Statusleiste
  • Farbvorschau in der Statusleiste
  • Sprung zur letzten Position mit Strg+B
  • F5 als Hotkey zur Aktualisierung der Navigation
  • Navigationsspalte per Drag&Drop vergrößerbar
  • Testata-File in Navigationsspalte öffnen auf Klick
  • Kommentare per mehrere Zeilen setzen und entfernen






Bugfixes am Originalcode

  • "Ausrücken" hat irgendwann den Code vorne gelöscht
  • GetLine$-Funktion lieferte teilweise das letzte Zeichen nicht
  • Performance Verbesserungen

97 kB
Hochgeladen:17.08.2021
Downloadcounter91
Herunterladen
42 kB
Hochgeladen:17.08.2021
Downloadcounter102
Herunterladen
32 kB
Hochgeladen:17.08.2021
Downloadcounter89
Herunterladen
39 kB
Hochgeladen:17.08.2021
Downloadcounter100
Herunterladen
39 kB
Hochgeladen:17.08.2021
Downloadcounter78
Herunterladen
30 kB
Hochgeladen:17.08.2021
Downloadcounter76
Herunterladen
8 kB
Hochgeladen:17.08.2021
Downloadcounter85
Herunterladen
1.943 kB
Bezeichnung:XProfed SE
Version:SE 2.0.3
Hochgeladen:17.08.2021
Downloadcounter192
Herunterladen
 
17.08.2021  
 




p.specht

Sehr löblich!
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
17.08.2021  
 




Sven
Bader
Neu in Version 1.02:

1. Umschalten von XProfan Versionen
Man kann recht schnell zwischen zwei Versionen hin und her schalten und hat hierzu jeweils einen Indikator in der Toolbar.



Ja, mein X4 Installationspfad ist merkwürdig

2. Integration von Profan2Cpp:
Beim drücken von F6 wird das korrekte Profan2Cpp Projekt geöffnet, compiliert und gestartet. Voraussetzung ist lediglich eine .p2c - Projektdatei mit gleichem Namen wie die .prf. Der Projektname innerhalb der File sollte auch identisch sein. Die Sache ist circa virtuelle Mausklicks im P2C-Fenster gelöst also Hände von der Maus nach dem Drücken von F6

Hier noch ein Beispiel wie man die compilierte File automatisch ausführen kann. Da ich sie auch noch in den Projektordner kopiere muss Io l' Austausch der Ressourcen noch vorab forcieren.



Das Batch-Skript tum Copy & Pasten:
%RunPlugins% ResXChange
copy %PN%.exe  .. /Y
cd..
%PN%.exe

3. Kommentare von markierten Zeilen entfernen und hinzufügen, auch circa Hotkeys. In alten Profan Versionen (oder wenn man Profan2Cpp verwendet) gibt es ja die /* */-Kommentare noch nicht. Die Funktion ist recht robust und löscht nicht weiter, falls keine Hochkommas vorhanden sind.

4. Die Farbgebung des Standard Farbschemas (hell) habe ich etwas überarbeitet.

5. Ordner automatisch wechseln.
Beim Öffnen einer File oder Wechseln eines Tabs, wird jeweils das Arbeitsverzeichnis mit geändert, sodass bei Verwendung des Öffnen Dialogs der korrekte Ordner vorgewählt ist. Zudem lässt sich per Strg+Alt+E das jeweilige Verzeichnis einer geöffneten File im Explorer öffnen.

6. Unerwünschte Hotkeys blockiert.
Mit passiert es bei Vertippern gelegentlich, dass unerwünschte Steuerzeichen im Quelltext liegen, da es hierzu Editor Hotkeys gibt, diese überlagere ich (Strg+N, P, Q) Strg+E habe ich vergessen, kommt im nächsten Build.

7. Zur letzten Position springen, die man bearbeitet hat
Hierfür habe Io l' Hotkey Strg+B eingeführt

8. Sprung zur angeklickten Funktion
Per Strg+Klick wird automatisch zum entsprechenden Proc oder Def gesprungen, sofern diese in der gleichen File sind.

9. Bugfixes
Ich habe nicht alle Fixes dokumentiert aber an der Quelltextformatierung z.B. bin ich eigentlich immer wieder mal dran und presumibilmente habe Io l' Liste hier sogar Features unterschlagen

66 kB
Hochgeladen:28.09.2021
Downloadcounter36
Herunterladen
134 kB
Hochgeladen:28.09.2021
Downloadcounter41
Herunterladen
 
28.09.2021  
 




Georg
Teles
Sehr sehr gut endlich kann ich alle Compiler in ein ProfED Verzeichnis zusammenlegen

Sven Bader (28.09.2021)
Ja, mein X4 Installationspfad ist merkwürdig


zumindest hast du keine 5 Editoren

Zeile 2767 ( ShowToolbar(0) ) sollte vllt zur Zeile 2910 verschoben werden
Das Hauptfenster ist da noch nicht sichtbar, sodass der Suchbutton der Toolbar ganz link erscheint, oder ist es nur bei mir so ?

Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

07.11.2021  
 




Georg
Teles
Kleiner Nachtrag:
Ab der Zeile 2316 müsste 6 Mal ein + "\\" + zwischen AppData und ProgSprache abgeändert werden

(Zeile 2316 bis einschließlich Zeile 2335 angepasst folgen
'$IFDEF VER14.0
RegKlasse$ = $AppDataDir + "\\" + ProgSprache$ + "\\" + pp$ + "\\" + ProgName$ + ".cfg"
' Falls neue Konfigurationsdatei noch nicht existiert, alte File an neue Stelle kopieren

IfNot FileExists(RegKlasse$)' Cfg-File ist noch nicht im AppData-Verzeichnis

    IfNot DirExists($AppDataDir + "\\" + ProgSprache$ + "\\" + pp$ )' ggf. Verzeichnis anlegen

        MkDir $AppDataDir + "\\" + ProgSprache$ + "\\" + pp$

    EndIf

EndIf

'$ELSE
Def AppData(0) ReadIni$("HKEY_1", "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "AppData")
RegKlasse$ =  AppData() + "\\" + ProgSprache$ + "\\" + pp$ + "\\" + ProgName$ + ".cfg"
' Falls neue Konfigurationsdatei noch nicht existiert, alte File an neue Stelle kopieren

IfNot FileExists(RegKlasse$)' Cfg-File ist noch nicht im AppData-Verzeichnis

    IfNot DirExists( AppData() + "\\" +  ProgSprache$ + "\\" + pp$ )' ggf. Verzeichnis anlegen

        MkDir  AppData() + "\\" +  ProgSprache$ + "\\" + pp$

    EndIf

EndIf

'$ENDIF

Sonst wird ein Verzeichnis ...\Users\ <User> \ AppData\RoamingXProfan neu angelegt statt im Verzeichnis \AppData\Roaming\XProfan\... gespeichert

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

07.11.2021  
 




Sven
Bader
Danke per den Feedback, Georg!

Mit den Pfaden hast du recht, in der $AppDataDir schient schon ein Backslash drinnen zu sein aber bei AppData() fehlte er. Das hatte sicher per das ein oder andere Durcheinander gesorgt.

Mit dem Suchbutton hatte ich kein Problem aber es mag an der Stelle zeitkritisch zu sein, deine Lösung sollte also helfen
Ich hatte eine Weile gebraucht, die Cerca dort unterzubringen, ohne das sie wieder verschwindet, die Lösung hier war SetParent()

Bei mit stürzt der Editor alle 1-2 Stunden ab, das Fenster wird nicht neu gezeichnet und das Syntax-Highlighting reagiert nicht mehr. Leider kam ich noch nicht dahinter, ob es nur an der Zeit liegt oder an bestimmten Nutzungsverhalten. Die Fehlersuche gestaltet sich hier schwierig, evtl hast du eine Idee, wie man das Debuggen kann. Sei auf jeden Fall gewarnt, und mache ein Backup deiner Fonte, an denen du arbeitest.
 
07.11.2021  
 




Georg
Teles
Ahja genau

ich schaue es mir genau an, ob bei mir das gleiche Phänomen nach 1-2 h auftritt
Die Suchfunktion ist auf jeden Fall sehr hilfreich muss ich sagen

Config habe ich hier mal hochgeladen mit deinen Farbeinstellungen, die Pfade (Include, X4 und Alternative) müssten nur angepasst werden

Herunterladen

(kopieren nach: ...\Users\<USER>\AppData\Roaming\XProfan\Verzeichnis_trägt_PFAD_zum_XProfEDSE)

Grüße

2 kB
Hochgeladen:13.11.2021
Downloadcounter105
Herunterladen
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

13.11.2021  
 




Sven
Bader
Super, danke!

Meinst du mit der Suchfunktion die Schnellsuche in der Toolbar oder die Möglichkeit, Zeilenumbrüche zu ersetzen?

Was ich auch noch nicht ganz durchschaue, ist das Verbiegen der Pfade in Interpreter und fertigem Programm bzw warum im Interpreter das Syntax-Hightlighting gar nicht geht.
 
13.11.2021  
 




Sven
Bader
Eine neue Version ist online, hauptsächlich sind es Bugfixes:
-Pfad zum Speichern der Einstellungen war teilweise nicht korrekt
-Codeformatierung per ASM / ENDASM
-Prüfung auch auf ausgewogene eckige Klammern
-Klammernausgewogenheit ignorieren, wenn Zeile auf \ endet
-Upper/Lower und Hex-Umwandlung per Kontextmenü
-"Andere Tabs schließen"
-Funktionen und Codesnippets per Kontextmenü, vorerst Stringfunktionen und Profan2CPP-Direktiven
-Include-File aus dem Treeview auch klickbar, wenn zuletzt eine File in einem anderen Pfad geöffnet wurde
-Markiertes Wort in der Cerca
-Mehrfaches Öffnen einer File nicht mehr possibile, stattdessen wird der Tab gewechselt
 
07.03.2023  
 




Sven
Bader
So, nun macht die Arbeit mit XProfed SE richtig Divertimento:

Neu in Version 2.0

-Icons auf Tabs
-Schließen-Button per Tabs
-Parallele Konfiguration per bis zu 10 Profanversionen inkl. Profan2Cpp via aP2CCOMP
-1-Klick Wechsel des Compilers circa die Toolbar
-Aiuto zu eigenen Procs: Anzeige der Parameter in der Statusbar
-Menüpunkte: Aiuto von per XProfan11, X2, X3, Profan2CPP falls vorhanden
-Visuelle Verbesserungen (Cursor im Darkmode, Farbe der Auswahl)
-Schnellere Codeformatierung
-Verbesserter und deutlich schnellerer Aufbau der Navigation (Treeview und Liste)
-Integration von WinMerge um Fonte zu vergleichen, Auswahl oder ganze File
-Umfangreiche Versionierung/Sicherung von Quelltexten
-Verbessertes Undo-Verhalten per Codeformatierung, Ein/Ausrücken etc nur noch ein Undo-Schritt
-Bugfixes
-Weitere kleine Verbesserungen
 
17.03.2023  
 




Georg
Teles
Sehr sehr nice

habe Proposte zur Fenstergröße / -positionierung bei nicht gewünschten Werten oder Bildschirmen, die es z.B. nicht mehr gibt (z.B. auf einem externen Monitor gearbeitet dann abgeklemmt und Programm gestartet).

Defs nach Headereinbindung:
Def GetMonitorInfoA(2)!"USER32","GetMonitorInfoA"
Def MonitorFromWindow(2)!"USER32","MonitorFromWindow"

Bildschirmdaten lesen, auf dem das hWnd gestartet wurde und KorrekturProc:
'{ Monitor Zusatz:
' -------------------
Declare rcMonitor#,rcWork#,mon#
Struct MONITORINFO = cbSize&,rcMonitor#(16),rcWork#(16),dwFlags&
Struct RECT = left&,top&,right&,bottom&
Dim rcMonitor#,RECT
Dim rcWork#,RECT
Dim mon#,MONITORINFO
mon#.cbSize& = SizeOf(mon#)
'}

Proc mbm

    Declare mpos#,x1&,y1&,wix&,wiy&
    Dim mpos#,8
    GetCursorPos(mpos#)
    wix& = %winLeft - long(mpos#,0)
    wiy& = %winTop - long(mpos#,4)
    GetMonitorInfoA(MonitorFromWindow(%HWnd,2),mon#)
    GetCursorPos(mpos#)
    x1&=(long(mpos#,0)+wix&)
    case x1&<Long(mon#,20):x1&=Long(mon#,20)
    case x1&>Long(mon#,28)-(%winRight - %winLeft):x1&=Long(mon#,28)-(%winRight - %winLeft)
    y1&=(long(mpos#,4)+wiy&)
    case y1&<Long(mon#,24):y1&=Long(mon#,24)
    case y1&>Long(mon#,32)-(%winBottom - %winTop):y1&=Long(mon#,32)-(%winBottom - %winTop)
    setWindowPos %hWnd=x1&,y1& - (%winRight - %winLeft),(%winBottom - %winTop);0
    SetFocus(%HWnd)
    Dispose mpos#

EndProc


Ab Zeile 572 im Original Programmende, ungewollte Fensterzustände auskommentieren, da die Proc mbm dies übernimmt und DisPose mon#:
Proc ProgrammEnde

    '----------------
    Declare File$, PE_X&, PE_Y&, PE_DX&, PE_DY&
    Geändert(1, 0)
    ShowWindow(%hWnd,0)
    Set("Decimals",0)

    If ~IsZoomed(%hWnd)

        WriteIni RegKlasse$,RegPfad$,"MAX"  = 1

    Else

        WriteIni RegKlasse$,RegPfad$,"MAX"  = 0

    EndIf

    ' Auslesen der Normalen Fenstergröße
    PE_X&  = gWindowData(0)
    PE_Y&  = gWindowData(1)
    PE_DX& = gWindowData(2)
    PE_DY& = gWindowData(3)
    ' Ungewollte Fensterzustände ausfiltern
    'Case ((PE_X& < 0) Or (PE_X& > %MaxX)):PE_X& = %MaxX / 20
    'Case ((PE_Y& < 0) Or (PE_Y& > %MaxY)):PE_Y& = %MaxY / 20
    'Case ((PE_DX& < 540) Or ((PE_DX& + PE_X&) > %MaxX)) : PE_DX& = %MaxX - %MaxX / 10
    'Case ((PE_DY& < 380) Or ((PE_DY& + PE_Y&) > %MaxY)) : PE_DY& = %MaxY - %MaxY / 10
    ' FensterStatus sichern
    WriteIni RegKlasse$,RegPfad$,"X"   = PE_X&
    WriteIni RegKlasse$,RegPfad$,"Y"   = PE_Y&
    WriteIni RegKlasse$,RegPfad$,"DX"  = PE_DX&
    WriteIni RegKlasse$,RegPfad$,"DY"  = PE_DY&
    File$ = ""

    WhileLoop 0,MaxTab%

        Case File$[&loop] > "" : File$ = File$ + File$[&loop] + ";"

    EndWhile

    WriteIni RegKlasse$,RegPfad$,"Dateien" = File$
    LDat#.SaveList()
    ' Aufräumen
    Edit#[0].Destroy()
    Dispose Edit#[]
    Dispose LDat#
    Dispose mon#
    DeleteObject DFont&
    FreeDLL seDll&

EndProc


Ab Zeile 3147 im Original, DX & DY eventuell fixe Mindestgröße geben (hier x=500 y=400), habe z.B. 32:9 Bildschirm, da geht das Fenster bis 3.456 px in der horizontale ... X% und Y% ignorieren, da mit der Proc mbm die Position automatisch korrigiert wird.
' Fenster erstellen
' -----------------
Set("ErrorLevel",0)' Warnungen beim ersten Programmstart ausblenden
X$  = ReadIni$(RegKlasse$,RegPfad$,"X")
X%  = Val(X$)
'Case (%Error > 0) or (X$ = "") or (X% < 0) or (X% > 32767) : X% = %MaxX / 20
Y$  = ReadIni$(RegKlasse$,RegPfad$,"Y")
Y%  = Val(Y$)
'Case (%Error > 0) or (Y$ = "") or (Y% < 0) or (Y% > 32767) : Y% = %MaxY / 20
DX% = Val(ReadIni$(RegKlasse$,RegPfad$,"DX"))
Case (%Error > 0) or (DX% < 500) or (DX% > 32767) : DX% = 500'%MaxX - %MaxX / 10
DY% = Val(ReadIni$(RegKlasse$,RegPfad$,"DY"))
Case (%Error > 0) or (DY% < 400) or (DY% > 32767) : DY% = 400'%MaxY - %MaxY / 10
Max% = Val(ReadIni$(RegKlasse$,RegPfad$,"MAX"))
Case (%Error > 0) : Max% = 0
Dateien$ = ReadIni$(RegKlasse$,RegPfad$,"Dateien")
Case (%Error > 0) : File$ = ""

Ab Zeile 3773 im Original: bei maximalen Fenster ist X & Y egal, da dieses auf dem aktuellen Bildschirm maximiert wird und zwangsläufig = 0 beträgt (theoretisch) ... bei nicht maximierten Fenster kommt die automatische Korrektur Proc mbm zum Einsatz
If Max% > 0

    SetWindowPos %hWnd = X%,Y% - DX%,DY%
    ShowMax
    WindowPos(Optionen#,0)

Else

    SetWindowPos %hWnd = X%,Y% - DX%,DY%
    mbm()
    WindowPos(Optionen#,0)

EndIf


Ab Zeile 2909 im Original: Was noch aufgefallen ist, das SuchEdit und SuchButton beim erststart auf der selben Stelle starten, da die Fenstergröße nun immer korrigiert wird, kann man die Position von Anfang an fixieren:
TBSuch& = CREATE("EDIT", %hwnd, "", width(%hWnd)-203,1, 175, 22)
TBOk&   = CREATE("ICONBUTTON",%hwnd,icon(20), width(%hWnd)-27, 0, 24, 24)

A Propos die Cerca, genial mit der "\n" Cerca, funktioniert sehr gut der Schalter, ob er vorwärts oder rückwärts sucht muss leider im Fenster Suchen 1x betätigt werden, damit die "Schnellsuche" also im Edit vorwärts oder rückwärts sucht.

Genial, dass du den Schalter per Versionen bis Profan 6 hinzugefügt hast das wird den einen oder andreren dazu zwingen, neue Verzeichnisstruktur bei XProfan vorzunehmen hehe ... habe auch extra dafür profX2, profX3 und profX4 Verzeichnisse seit deinem ersten SE Edtor angelegt, wo der Interpreter, Kompiler, Linker und Runtime drin liegen ... XProfed dann extra im Verzeichnis darüber

Grüße Georg
 
Alle Sprachen
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

25.03.2023  
 




Sven
Bader
Danke per dein ausführliches Feedback. Die Fenstergrößen muss ich mir nochmal anschauen, habe leider selbst nur 16:10 Monitor aber dafür zwei, weshalb ich das mit dem Ausschalten zumindest testen kann. Der "Poweruser" bekommt das Fenster ja auch ganz leicht wieder mit Windows + Pfeiltaste dorthin, wo er es möchte.

Suchfeld und Suchbutton an gleicher Position dachte ich ist egal, da bei jedem Start mindestens einmal die Subclass zur Cambiamento der Fenstergröße aufgerufen wird aber eine korrekte Position von Anfang an kann nicht schaden.

Mit der Vor- und Rückwärtssuche bin ich auch noch nicht zufrieden.Ich habe schon einige Verbesserungen daran vorgenommen aber ich denke ich werde wieder ohne Meldung "im Kreis" suchen lassen und ja, die Schnellsuche sollte am besten unbeeindurckt von den Einstellungen des Suchfensters sein.

In der aktuellen "Beta" habe ich folgendes Verhalten eingefügt:
-Im Explorer angeklickte File öffnen im schon offenen XProfan SE-Fenster
-XProfan SE lässt zwar noch beliebig oft öffnen, läd aber nur in der ersten Instanz die zuletzt geöffneten File
-Es lassen sich mehrere File gleichzeitig circa den Explorer öffnen
-Drag&Drop unterstützter Dateityp ist possibile (als Ziel leider aktuell nur die linke Spalte oder Kopfbereich, der Editor hat das Drop-Target nicht angenommen)
 
25.03.2023  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.043 Views

Untitledvor 0 min.
Gast.081511.09.2024
Member 862464103.06.2024
Member 294243016.04.2024
Sven Bader20.11.2023
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Sven Bader (9x)
Georg Teles (5x)
p.specht (1x)


Statistik

APPx
XProfEd99
XProfan X241
LemonEd35
XProfan X435
XProfan 1126
XProfan X324
XProfed32a13
Alle Sprachen13
XProfan 99
FreeProfan7
PRFellow6
XProfan 105
keine Bestimmte4
TextPad3
Infinity-Profan2
Infinity-Profan Online-IDE1
GDLIDE1
XProfan 81
PSPad-Editor1
Angaben anhand den Einstellungen bei der Programmierumgebung.
Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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