UserScript • PB-SyntaxHighlighting für Codes im Forum

Fragen und Anregungen zum Forum.
Beiträge die Community betreffend
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von STARGÅTE »

Um die Codes hier im Forum besser lesbar zu machen, ohne den Code in PureBasic zu kopieren,
stelle ich hier mein UserScript zur verfügung:

UserScript - Pure Basic Syntax Highlighting (V 1.6b) (21. Jun 2013)
_______________

Neuste Version hier: https://www.purebasic.fr/english/viewto ... 04#p571104
_______________

Beispiel-Code:

Code: Alles auswählen

#Constant = "String, #Constants and ; Comments are ignored"

; One Comment, #Constants and "Strings" are ignored

Structure AnyStructure
  Long.l
  *Pointer.AnyStructure
  String$
EndStructure

Procedure AnyProcedure(Parameter1, *Parameter2, Parameter3)

  ! MOV eax, 1
  ProcedureReturn 
EndProcedure

AnyStructureVarible.AnyStructure
AnyStructureVarible\Long = $FF00CC

AnyProcedure(3.14, @AnyProcedure(), 'Abc')
Beispiel-Ergebis::
Bild



Details:
Das Script sucht alle DIVs nach der Classe für CODEs ab, und wendet dann auf den Inhalt ein regulären Ausdruck an.
Dieser ist erstaunlicherweise auch bei sehr langen Codes oder mehreren auf einer seite recht schnell (max 2s pro ganze Website).

Einstellungen
Die SyntaxFraben kann jeder selber einstellen.
Entweder duch direkte änderum im UserScript, im Bereich: // ==PureBasicPreference==
oder nur zur Hilfe dieses Programms:

Eigene Editoreinstellungen benutzen:

Um euern eigenen Editoreinstellungen zu benutzen, startet ihr bitte diesen Code mit Debugger

Code: Alles auswählen

Procedure.s HTMLColor(Color)
  ProcedureReturn "#"+RSet(Hex(Red(Color)),2,"0")+RSet(Hex(Green(Color)),2,"0")+RSet(Hex(Blue(Color)),2,"0")
EndProcedure

Procedure Export(PreferencesFileName$)
  If OpenPreferences(PreferencesFileName$)
    PreferenceGroup("Global")
    Debug "  PBSH_Highlight['EnableKeywordBolding'] = "+ReadPreferenceString("EnableKeywordBolding", "1")+";"
    PreferenceGroup("Editor")
    Restore PreferenceKeys
    Repeat
      Read.s Keyword$
      If Keyword$
        String$ = ReplaceString(ReadPreferenceString(Keyword$, ""), ",", " ")
        If Right(Keyword$, 5) = "Color" : String$ = HTMLColor(Val(String$)) : EndIf
        If ReadPreferenceInteger(Keyword$+"_Disabled", 0)
          Debug "  //PBSH_Highlight['"+Keyword$+"'] = '"+String$+"';"
        Else
          Debug "  PBSH_Highlight['"+Keyword$+"'] = '"+String$+"';"
        EndIf
      EndIf  
    Until Not Keyword$
    ProcedureReturn #True
  EndIf
EndProcedure

If Not Export(GetEnvironmentVariable("APPDATA")+"\PureBasic\PureBasic.prefs")
  PreferencesFileName$ = OpenFileRequester("Preference File", GetHomeDirectory(), "PureBasic.prefs", 0)
  Export(PreferencesFileName$)
EndIf

DataSection
  PreferenceKeys:
  Data.s "EditorFontName", "EditorFontSize", "EditorFontStyle", "BackgroundColor", "NormalTextColor"
  Data.s "BasicKeywordColor", "CommentColor", "ConstantColor", "StringColor", "PureKeywordColor"
  Data.s "ASMKeywordColor", "PointerColor", "NumberColor", "StructureColor", "LabelColor"
  Data.s "OperatorColor", "SeparatorColor", ""
EndDataSection
Den Inhalt des Debuggers dann einfach in das UserScript kopieren, an die Stelle zwischen:
// ==PureBasicPreference==

// ==/PureBasicPreference==
Der Code wandelt automatisch die Farben in HTMLFarben um, und kommentiert nicht ausgewählte Highlights aus.



Hilfe beim Installieren
Wer nicht weiß, wie er ein UserScrip bei sich und seinem Browser installiert, kann hier mal gucken, da ist es gut erklärt.

Hinweise
ES ist mir bereits bekannt, das nun auch nicht PB-Codes eingefärbt werden, zB php oder JS, ich versuche dort noch eine erkennung einzubauen...
Zuletzt geändert von STARGÅTE am 05.06.2021 13:54, insgesamt 17-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
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: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von ts-soft »

Also bei mir passiert hier garnichts /:->

Firefox 3.5 mit Greasemonkey
(mit Internet Explorer kann ich nicht testen, der wurde deinstalliert :mrgreen: )
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von Josh »

im opera tut sich auch nix
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von STARGÅTE »

Jo sry habe gerade den Fehler entdeckt, ich hatte einene JS-Befehl verwendet der scheinbar nur für IE war.

Ich habe das Script nun auch selber in FF getestet und es geht:
(Einfach die Datei in Browser reinziehen und dnan installieren klicken (mit Greasemonkey))

UserScript - Pure Basic Syntax Highlighting - Version 1.1 (alter Link)

Wenn in der Datei noch kein
// Version 1.1 (13. Oct 2009)
steht habt ihr noch die alte Version ...
Zuletzt geändert von STARGÅTE am 07.12.2009 16:24, insgesamt 1-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von X360 Andy »

Sehr geil :allright:
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von milan1612 »

Funzt hier sehr gut, nur im englischen Forum passiert nichts...
Ansonsten :allright:

EDIT: Die URL ist falsch, statt http://purebasic.com/english/* muss http://purebasic.fr/english/* eingetragen werden.
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von DarkDragon »

Super, das funktioniert sogar mit edels Code-Folding. :allright: Jetzt hab ich schon 3 Skripte im GreaseMonkey.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von X360 Andy »

DarkDragon hat geschrieben:Super, das funktioniert sogar mit edels Code-Folding. :allright: Jetzt hab ich schon 3 Skripte im GreaseMonkey.
Bei mir nur zum teil, hier z. B. nicht.
http://www.purebasic.fr/german/viewtopi ... =8&t=21079
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von Josh »

mit opera tut sich leider noch immer nix :coderselixir:
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: UserScript • PB-SyntaxHighlighting für Codes im Forum

Beitrag von STARGÅTE »

Das ist komisch, ich bin gerade dabei noch n paar UPDATEs rein zu schreiben, und wurde nun gerne auch Opera zum laufen bekommen, gibts denn bei Opera eine JS-Fehlermeldung ? oder Passiert einfach nix ?

Kann es vllt sein das du es nicht richtig "installiert" hast ... (will dir aber nix unetrstellen^^)

Teste mal folgendes : Lade dir n ForumSeite runter , und schreibe am ende das
<script language="JavaScript">
</script>
und dadrin dann mein Script

wenn sich dann die Seite auch nciht einfärbt ligs am Script, sonst hast du es nicht richtig installiert.


ZUM Update:
- Structure werden eingefärbt
- eine kleine Style auswahl, (einmal meins, und eins was besser ins Forum passt)
- Durch auskommentieren eines Highlight Eintrages kann die Einfärbung deaktiviert werden ()falls jemand nur Keywords haben will, löscht er den rest ^^

Das Update kommt sobalt Opera mitspielt ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten