Seite 2 von 9

Re: Documentation Comment

Verfasst: 23.06.2019 18:29
von NicTheQuick
Ohnein. Endlich ein Tool, das ich gebrauchen kann, und dann gibt es das nur für Windows. :(

Was fehlt denn für eine Linux-Version?

Re: Documentation Comment

Verfasst: 23.06.2019 18:46
von RSBasic
Tut mir leid :( :D

Ich kann gerne eine Liste der WinAPI-Funktionen posten, die in diesem Projekt verwendet werden. Vielleicht kann ein Linux-User jeweils eine API-Funktion von Linux/GTK/QT posten.
Hier die Liste:

Code: Alles auswählen

;==========Zum Ermitteln des PB-Prozesses==========
CreateToolhelp32Snapshot_()
Process32First_()
GetCurrentProcessId_()
CloseHandle_()
Process32Next_()
GetWindowLongPtr_()
;==========Zum Ermitteln des PB-Fensters und ScintillaGadgets==========
GetWindowThreadProcessId_()
GetClassName_()
EnumWindows_()
FindWindowEx_()
GetWindowTextLength_()
GetWindowText_()
EnumChildWindows_()
GetWindowRect_()
;==========Zum Ermitteln des Quellcodes==========
SendMessageTimeout_()
OpenProcess_()
ReadProcessMemory_()
SendMessage_()
;==========Stylen und Verwalten des eigenen Fensters==========
SetWindowLongPtr_()
SetWindowPos_()
GetForegroundWindow_()

Re: Documentation Comment

Verfasst: 23.06.2019 19:49
von Sicro
Ok, wenn im Procedure-Header auch Macros eingebaut sind, wie hier, dann müssen die Macros aufgelöst werden:

Code: Alles auswählen

Macro Test
	Bla
EndMacro

Procedure Test#Proc()
	Debug "test"
EndProcedure

BlaProc()
Ebenso in dem Fall:

Code: Alles auswählen

Macro PathMacro
	"/home/user/"
EndMacro

#Path = "Safe.dat"

IncludeFile PathMacro + "data\" + ~"Meine \"geheimen\" Daten\\" + #Path
Dann ist es nicht mehr so einfach. Das habe ich gestern Abend nicht bedacht.
Josh hat geschrieben:Wenn du /PREPROCESS kugelsicher nachbilden willst, dann bist du wahrscheinlich bei 50k Programmzeilen.
Der komplette Funktionsumfang von /PREPROCESS ist hier nicht erforderlich, daher lässt sich das mit deutlich weniger Programmzeilen realisieren.

Zum Beispiel finde ich, dass die CompilerIf/CompilerSelect-Blöcke nicht ausgewertet werden sollten:

Code: Alles auswählen

CompilerIf #PB_Compiler_Debugger
	;<comment>
	;  <summary>Funktionsbeschreibung.</summary>
	;  <param>Parameter1: Beschreibung</param>
	;  <param>Parameter2: Beschreibung</param>
	;  <param>Parameter3: Beschreibung</param>
	;  <return>Beschreibung des Rückgabewertes</return>
	;  <example>Test()</example>
	;</comment>
	Procedure Test()
		; Code
	EndProcedure
CompilerEndIf

Test() ; <==== Popup-Fenster sollte hier immer erscheinen, ob Debugger eingeschaltet ist oder nicht

Re: Documentation Comment

Verfasst: 23.06.2019 20:00
von Sicro
NicTheQuick hat geschrieben:Was fehlt denn für eine Linux-Version?
Zugriff auf das Scintilla der PB-IDE.
Soweit ich das in den Foren mitbekommen habe, könnte noch niemand unter Linux auf das Scintilla mit diesem Handle zugreifen:

Code: Alles auswählen

scintillaHandle = GetEnvironmentVariable("PB_TOOL_Scintilla")

Re: Documentation Comment

Verfasst: 24.06.2019 09:19
von RSBasic
Im Stackoverflow-Forum hatte jemand eine ähnliche Frage: https://stackoverflow.com/questions/235 ... equivalent
Hat jemand damit schon mal versucht?

Re: Documentation Comment

Verfasst: 24.06.2019 15:28
von Kiffi
RSBasic hat geschrieben:Neue Summary-Änderung kann erst ausgelesen werden, wenn im Quellcode keine Syntax-Fehler gibt.
ja, kleines Missverständnis. Ich meinte einen Syntax-Fehler in der Dokumentation; nicht in meinem Source.
RSBasic hat geschrieben:Kannst du mir bei deiner Testdatei ein paar Informationen geben wie z.B. ob Reintext oder UTF8 usw.? Danke im Voraus
an der Datei ist eigentlich nix besonderes. Neuen Tab geöffnet (UTF8), den kleinen Beispielcode (nebst Dokumentation) eingetippert und gespeichert.

Grüße ... Peter

Re: Documentation Comment

Verfasst: 24.06.2019 17:10
von RSBasic
Kiffi hat geschrieben:ja, kleines Missverständnis. Ich meinte einen Syntax-Fehler in der Dokumentation; nicht in meinem Source.
Ah ok, hast du ein Beispiel?
Ich habe folgendes ausprobiert:

Code: Alles auswählen

;<comment>
;  <summary>1111111 < </ <> 22222222222222</summary>
;  <param>Parameter1: aaaaaaaa < </ <> bbbbbbbbb</param>
;  <Return>Beschreibung des Rückgabewertes</Return>
;</comment>
Es wird nichts abgeschnitten und das Informationsfenster wird angezeigt.
Kiffi hat geschrieben:an der Datei ist eigentlich nix besonderes. Neuen Tab geöffnet (UTF8), den kleinen Beispielcode (nebst Dokumentation) eingetippert und gespeichert.
Okay, habe ich gemacht. Ich kann es trotzdem nicht nachstellen. Kannst du es jedes Mal nachstellen oder nur manchmal, wenn man z.B. viel geklickt hat?
Wenn du es mit einer bestimmten Test-PB-Datei nachstellen kannst, kannst du diese Datei hochladen. Oder hat es was mit einer bestimmten PB-Einstellung zu tun?

Re: Documentation Comment

Verfasst: 08.07.2019 15:36
von RSBasic
Documentation Comment 1.0.3 wurde veröffentlicht.

Changelog:
  • Geändert: Das Auslesen der Summary-Kommentare funktioniert jetzt ohne "/PREPROCESS". Danke an Sicro für den Lexer und Parser.

@Sicro
Vielen herzlichen Dank für deinen Lexer und Parser. :allright:

Re: Documentation Comment

Verfasst: 08.07.2019 17:16
von MenschMarkus
Zur Installation...
Laut der Beschreibung zu Beginn kann man ja eigentlich nix falsch machen.
Nur.....warum sehe ich nichts?

1. Die ausführbare Datei habe ich ins Projekt Verzeichnis kopiert
2. Das Werkzeug habe ich wie im Bild beschrieben eingebunden
3. Die komplette Dateiinformation wird im Fenstertitel angezeigt
  • Projekt auf Syntax Fehler geprüft
  • Kommentar wie beschrieben eingegeben

    Code: Alles auswählen

    ;<comment>
    ;<summary>hier ein Text</summary>
    ;</comment>
    Procedure MyProcedure()
    ...
  • Programmcode gespeichert
  • PB neu gestartet
Leider keine Reaktion.

Wo liegt mein Fehler?

Re: Documentation Comment

Verfasst: 08.07.2019 22:12
von Sicro
@RSBasic: Gern geschehen :)

@MenschMarkus: Ich denke, diese Informationen könnten noch hilfreich sein:
  • Windows-Version?
  • PB-Version?
  • Läuft das Tool "Documentation Comment.exe" im Task-Manager, wenn du nun die PB-IDE öffnest?
  • Hat die vorherige Version von dem Tool funktioniert?