Hier gibt es syntax-highlightning für Notepad++

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Hier gibt es syntax-highlightning für Notepad++

Beitrag von Kurzer »

Hallo zusammen,

ich war auf der Suche nach einer Möglichkeit, Teile meines PureBasic-Quellcodes inkl. der farbigen Syntax-Hervorhebung auszudrucken.

Ich bin zwar im englischen Forum über ein IDE-Tool gestolpert das dies ermöglicht, aber irgendwie sagte mir das ganze nicht ganz zu. So kam die Idee
das über den Texteditor NotePad++ zu erledigen. Mit dem Editor arbeite ich ganz gern.

Leider habe ich keine passendes NP++ Sprachdatei für PureBasic gefunden also hab ich selbst eine zusammengebastelt.

Mir ging es dabei nur um die farbige Hervorhebung der Syntax, das folding-feature von NotePad++ wurde nicht genutzt. Das geht auch auch gar nicht zu
100 Prozent, da ein keyword, welches bereits für das syntax-highlightning benutzt wird, nicht mehr als folding keyword benutzt werden kann.
Ist wohl eine Einschränkung von Notepad++

Nun denn, eigentlich ist da nicht viel Magie drin. ich habe mir (hoffentlich) alle Schlüsselwörter aus der PB Hilfe zusammengetragen und sie für die grüne
Hervorhebung benutzt.
Dann alle Konstanten bzw. alle Worte, die mit # beginnen rot hervorheben lassen. Kommentare, die mit ; beginnen werden grau dargestellt.
Das ist eigentlich schon alles. Reicht mir aber auch. :wink:

Wenn man sich in Notepad++ die globale Hintergrundfarbe auf das PureBasic gelb einstellt, dann sieht PureBasic code im NotePad++ so aus:

Bild

Der Ausdruckauf Papier sieht dann so aus:

Bild

Um die PureBasic Farben nutzen zu können, müsst ihr Euch die folgende Definitionsdatei herunterladen (das ist die, wo die ganzen keywords
und die Farbeinstellungen enthalten sind): userDefineLang.zip
Die darin enthaltene Datei userDefineLang.xml muß in das NotePad++ Programmverzeichnis kopiert werden...

Bild

...zumindest gilt das für meine Notepad++ potable Version. :wink: Wie das bei der Installationsversion aussieht weiß ich nicht.
Vermutlich liegt die Datei dann im %APPDATA% Verzeichnis.

Um das Syntaxhighlightning einzuschalten, wählt ihr aus dem Menü Languages/Sprache die Sprache PureBasic aus:

Bild

Schon sollten sich die Farben eines PureBasic Sourcecode ändern.

Wer die Farben anpassen will, der kann dies über den UserDefine Dialog machen, den ich auch zum Anlegen der keywords benutzt habe.

Bild

So, und nun viel Spaß beim farbigen drucken.

Gruß Kurzer
Zuletzt geändert von Kurzer am 14.12.2009 19:19, insgesamt 1-mal geändert.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von Vera »

Hallo Kurzer,

danke, das ist richtig prima von Dir :)
ich hatte mir das bislang nur so sehr rudimentär eingerichtet.

... und da heute für mich wohl großes npp++ Thema ist, würde ich hier gerne einen Tip weitergeben:
Im englischen Forum hat somic seine zwei Plugins für NotePad++ vorgestellt:
MathPad (für math. Ausdrücke/ Funktionen/ Integrale..., aktuell 0.5) und
Tracer (zum Debuggen von exe, dlls ...) (auf seiner HP findet Ihr vielleicht noch das ein oder andere hilfreiche Tool)

Grüße ~ Vera
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von Hyper »

Hallo Kurzer,

auch von mir herzlichen Dank für das Teilen und die super Anleitung! NP++ nutze ich auch - ist ganz praktisch.
PB 5.72
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von TomS »

Man sollte der Vollständigkeit halber darauf hinweisen, dass alle benutzerdefinierten Sprachen in dieser einen XML-Datei liegen.
Wenn ihr also schon ander Sprachen definiert habt (so wie ich), dann nicht einfach die Datei überschreiben, sondern in Inhalt ohne

Code: Alles auswählen

<NotepadPlus>
...
</NotepadPlus>
in die vorletzte Zeile kopieren.

Code: Alles auswählen

</UserLang>
<<<--- hier einfügen
</NotepadPlus>
Im Übrigen hast du Recht. Bei der Installationsversion befindet sich diese Datei in %APPDATA%/Notepad++/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von ts-soft »

Das Forums-Layout ist hier ja mal wieder zum k*tzen :mrgreen:

Danke für die Mühe, aber ich denke mal, da ich sowas auch schon öfter gemacht habe, ein
Generator, der das CompilerInterface (Beschreibung im SDK Ordner) nutzt wäre sinnvoller
und im Endeffekt sogar weniger Schreibarbeit :wink:

Dann könnte man das HighLightning immer aktuell halten bei neuen Versionen oder hinzu-
gefügten UserLibs.

Gruß
Thomas
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von Andesdaf »

@Kurzer: Dankeschön dafür.

@ts: Wo ist denn das Layout zerschmissen?
Win11 x64 | PB 6.20
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von ts-soft »

Andesdaf hat geschrieben: @ts: Wo ist denn das Layout zerschmissen?
Der vertikale Scrollbalken verschwindet erst bei über 1400 Browserbreite, so breit habe ich meinen Browser nie :mrgreen:
Wegen der Bilder bricht er wohl den Text nicht automatisch um, so das dort hardbreaks nötig wären damit man ohne scroll-
krampf hier lesen kann :)

Gruß
Thomas
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von Kurzer »

So, ich habe die harten Umbrüche mal im ersten Beitarg nachgereicht, damit das Scrollproblem erledigt ist.

Toms, danke für den Hinweis mit der Sprachdatei. Ich muß gestehen, daß das eher eine kurzfrstige Aktion war (so, nun drucken wir mal den Code farbig aus... öh okay, aber wie? *schnellnacheinerLösungsuch*). Ich habe mir keine Gedanken drüber gemacht, daß bei manchem noch weitere eigene Sprachen existieren. :oops:

ts-soft, mit dem Compilerinterface habe ich mich noch nicht beschäftigt. Leider weiß ich jetzt auch gar nicht so recht wie Du das meinst. Aber die Zusammenstellung der PB-Keywords und Funktionen war ehrlich gesagt keine große Sache. Die stehen ja in der Hilfe fast alle als Komplettübersicht drin.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von Vera »

Kurzer hat geschrieben:So, ich habe die harten Umbrüche mal im ersten Beitrag nachgereicht, damit das Scrollproblem erledigt ist.
Schade, das hat nicht geklappt /:->
ich hatte mir, um den Text lesen zu können, alles kopiert und in meinen Editor eingefügt :lol:
schick: selbst beim Anworten ist der angezeigte Thread riesen-breit, was das Zitieren etwas erschwerte

Wegen der Bilder könntest Du aber auch EasyMirror verwenden, der bietet Dir Links mit Thumbnailvorschau (aber ich glaub nur eine recht kleine Größe) oder auch http://www.abload.de/ mit einer Anzahl verschieden groß skalierter Anzeigeoptionen.

Apropos - ich gehör auch zu den Leuten, die mehrere benutzerdefinierten Sprachen eingerichtet haben ;)

Gruß ~ Vera

ZITATKORRIGIERT [ts-soft > Kurzer]
Andesdaf

upps - sorry und danke ~ v
Zuletzt geändert von Vera am 15.12.2009 19:39, insgesamt 1-mal geändert.
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Hier gibt es syntax-highlightning für Notepad++

Beitrag von ts-soft »

Kurzer hat geschrieben:ts-soft, mit dem Compilerinterface habe ich mich noch nicht beschäftigt. Leider weiß ich jetzt auch gar nicht so recht wie Du das meinst. Aber die Zusammenstellung der PB-Keywords und Funktionen war ehrlich gesagt keine große Sache. Die stehen ja in der Hilfe fast alle als Komplettübersicht drin.
Man kann alle Funktionen, auch die der UserLibs, sowie alle Interfaces usw. vom Compiler erfahren.
Also ausquetschen, xml schreiben und gut :wink:
Okay, ein bissel Arbeit ist es schon, aber danach kannste dann bei jeder neuen UserLib oder neuen PB-
Version das Knöpfchen drücken und es wird eine neue XML generiert.
Ich hab das damals für UltraEdit und TextPad4, sowie noch anderen gemacht, aber das waren keine
XML sondern Text-Dateien. Aber inzwischen kann PB ja XML.
Hier ein hoffentlich verständliches Beispiel wie man die Funktionen aus dem Compiler rausquetscht :mrgreen:
Genaue Infos im SDK, "CompilerInterface.txt"

Code: Alles auswählen

EnableExplicit

Define.i Compiler = RunProgram(#PB_Compiler_Home + "\Compilers\pbcompiler", "/STANDBY", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)
Define.s Text

NewList Functions.s()
If Compiler
  If IsProgram(Compiler)
    Repeat
    Until ReadProgramString(compiler) = "READY"
    WriteProgramStringN(Compiler, "FUNCTIONLIST")
    Debug ReadProgramString(Compiler) + " Funktionen verfügbar"
    Debug "---------------------------"
    Repeat
      Text = ReadProgramString(Compiler)
      If Text <> "OUTPUT" + #TAB$ + "COMPLETE"
        AddElement(Functions())
        Functions() = Text
      EndIf
    Until Text = "OUTPUT" + #TAB$ + "COMPLETE"
    WriteProgramStringN(Compiler, "END")
    CloseProgram(Compiler)
  EndIf
EndIf

ForEach Functions()
  Debug StringField(Functions(), 1, "(")
Next
Gruß
Thomas
Antworten