Sei mir nicht böse. Aber ich sehe das völlig anders. Für mich persönlich ist es eine Zumutung, wenn ich jemanden helfen möchte und dafür jedesmal den Code erst extrahieren und durch ein externes Tool Hightlighten muss. Ich würde es wenn sowieso per Copy und Paste machen und durch das Highlight-Tool von Andre Simon jagen. Es unterstützt den Import auch aus der Zwischenablage. Bezogen auf den Traffic ist das in der Summe kaum spürbar. Das sind pro Thread-Seite vielleicht zwischen 1 und 10 KB mehr. Ein Javascript, das dies nach dem Laden der Seite macht, ist meist größer.STARGÅTE hat geschrieben:@TroaX:
Es wäre aber auch eine Zumutung für den Traffic, wenn das Syntaxhighlighting auf der Serverseite erstellt wird, und Übertragen wird. Eine Client-seitige Lösung wäre da besser.
UserScript • PB-SyntaxHighlighting für Codes im Forum
- TroaX
- Beiträge: 661
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
- Wohnort: NRW
- Kontaktdaten:
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Ach so?TroaX hat geschrieben:Sei mir nicht böse. Aber ich sehe das völlig anders. Für mich persönlich ist es eine Zumutung, wenn ich jemanden helfen möchte und dafür jedesmal den Code erst extrahieren und durch ein externes Tool Hightlighten muss. Ich würde es wenn sowieso per Copy und Paste machen und durch das Highlight-Tool von Andre Simon jagen. Es unterstützt den Import auch aus der Zwischenablage. Bezogen auf den Traffic ist das in der Summe kaum spürbar. Das sind pro Thread-Seite vielleicht zwischen 1 und 10 KB mehr. Ein Javascript, das dies nach dem Laden der Seite macht, ist meist größer.STARGÅTE hat geschrieben:@TroaX:
Es wäre aber auch eine Zumutung für den Traffic, wenn das Syntaxhighlighting auf der Serverseite erstellt wird, und Übertragen wird. Eine Client-seitige Lösung wäre da besser.
Als Beispiel nehme ich mal dein Beispielcode.
Ohne Formatierung ist er 764 Bytes.
Mit Formatierung ist er 3218 Bytes, also etwa 4 mal mehr Daten!
Gegenüber der Seitengröße von etwa 100kB mag das nicht auffallen, aber bei längeren Codes kann das schon anders aussehen.
Demgegenüber steht mein PureBasicSyntaxHighlighting_1-6b.user.js das nur 9kB groß ist, um im Cache landet, somit kein Traffic mehr erzeugt.
>> "Für mich persönlich ist es eine Zumutung, wenn ich jemanden helfen möchte und dafür jedesmal den Code erst extrahieren und durch ein externes Tool Hightlighten muss."
Wie kommst du darauf? Das ist ein UserScript, was du im Browser installieren kannst, dadurch werden alle Code-Blöcke automatisch formatiert.
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Hallo Leute,
ich habe mal das User Script auf den neusten Stand gebracht:
Hier der Code zum auslesen der eigenen Syntaxfarben zum Einfügen ins Script:
Wäre nett wenn ihr testen könntet, ob alle möglichen Codes richtig gefärbt werden.
Edit: Und gleich noch zwei Keywords gefunden die nicht drin waren ^^
ich habe mal das User Script auf den neusten Stand gebracht:
- Verbesserter Regulärer Ausdruck für die Syntax-Suche
- Unterstützung von Modulen (ModuleName::BlaBla)
- Unterstützung von Maskierten Strings (~" \" ")
- Ein paar Bug-Fixes: Zahlen mit e, Fehlende Schlüsselwörter, Labels uvm.
Hier der Code zum auslesen der eigenen Syntaxfarben zum Einfügen ins Script:
Code: Alles auswählen
EnableExplicit
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.s)
Protected Keyword.s, String.s
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 Keyword = ""
ProcedureReturn #True
EndIf
EndProcedure
Define PreferencesFileName.s
If Not Export(GetUserDirectory(#PB_Directory_ProgramData)+"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", "ModuleColor"
Data.s "OperatorColor", "SeparatorColor", ""
EndDataSection
Edit: Und gleich noch zwei Keywords gefunden die nicht drin waren ^^
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Hallo STARGÅTE,
vielen Dank für dein Update.
Diese Version funktioniert bei mir aber leider nicht mehr. Die Firefox-Web-Konsole (in Web-Entwickler) meldet:
Bezüglich der RegEx kannst du mal einen Blick auf meinen PBLexer werfen. Dort sind die RegEx ziemlich ausgereift und unterstützen auch einige Feinheiten. Bei Konstanten können z. B. nach dem "#"-Zeichen noch Tabs und Leerzeichen existieren, bevor der eigentliche Name folgt.
vielen Dank für dein Update.
Diese Version funktioniert bei mir aber leider nicht mehr. Die Firefox-Web-Konsole (in Web-Entwickler) meldet:
Zwei fehlende Keywords sind mir noch aufgefallen:SyntaxError: invalid regexp group viewtopic.php:1:1091
Code: Alles auswählen
CompilerWarning
DeclareC
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
@Sicro:
Kannst du mir den Link geben, wo der Fehler auftauch?
Die beiden Keywords habe ich hinzugefügt.
> "Bei Konstanten können z. B. nach dem "#"-Zeichen noch Tabs und Leerzeichen existieren, bevor der eigentliche Name folgt."
Sehr interessant, wusste nicht das PB sowas kompiliert ^^:
Da ich den Code hier aus dem Forum aber nicht parsen will, sondern nur Einfärben, mache ich das wie PB und erlaube keine Leerzeichen (beim Einfärben!).
Danke für den Link zu deinem Lexer, werde es mal abgleichen, aber was ich bei dir gerade sehen habe ist:Wie soll der Ausdruck Binärzahlen erkenne, die mit % anfangen und nur 0 und 1 erlauben?
Außerdem ist in PureBasic auch keine Ziffer nach dem Dezimalpunkt erlaubt:
Kannst du mir den Link geben, wo der Fehler auftauch?
Die beiden Keywords habe ich hinzugefügt.
> "Bei Konstanten können z. B. nach dem "#"-Zeichen noch Tabs und Leerzeichen existieren, bevor der eigentliche Name folgt."
Sehr interessant, wusste nicht das PB sowas kompiliert ^^:
Code: Alles auswählen
# Test = 6
Debug# Test
Danke für den Link zu deinem Lexer, werde es mal abgleichen, aber was ich bei dir gerade sehen habe ist:
Code: Alles auswählen
regEx$ = "[0-9]+(?:\.[0-9]+)?(?:e(?:[ \t]*[+\-][ \t]*)?[0-9]+)?" + ; Integers, decimal numbers and binary numbers
Außerdem ist in PureBasic auch keine Ziffer nach dem Dezimalpunkt erlaubt:
Code: Alles auswählen
Debug 1.
Debug 2.e-2
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Habe die 1.8 gerade eingetragen und unverändert aktiviert. Es wird nichts eingefärbt.
(die version 1.6b natürlich vorher deaktiviert)
Danach versucht die Farben gemäss deinem Code eingestellt, nichts wird eingefärbt.
Version 1.8 deaktiviert und 1.6b wieder aktiviert und es wird wieder eingefärbt.
Allerdings habe ich nirgendwo eine Fehlermeldung oder sonstiges gesehen.
FF68.0.1 und GreaseMonkey 4.9
(die version 1.6b natürlich vorher deaktiviert)
Danach versucht die Farben gemäss deinem Code eingestellt, nichts wird eingefärbt.
Version 1.8 deaktiviert und 1.6b wieder aktiviert und es wird wieder eingefärbt.
Allerdings habe ich nirgendwo eine Fehlermeldung oder sonstiges gesehen.
FF68.0.1 und GreaseMonkey 4.9
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
@Bisonte:
Welches Theme nutzt du fürs Forum? Liegt es vielleicht daran?
https://www.purebasic.fr/english/viewto ... 29#p406129
Welches Theme nutzt du fürs Forum? Liegt es vielleicht daran?
https://www.purebasic.fr/english/viewto ... 29#p406129
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
subsilver2.
Aber wie gesagt, 1.6b funktioniert. Oder ist 1.8 nur für eines der anderen beiden ?
Aber wie gesagt, 1.6b funktioniert. Oder ist 1.8 nur für eines der anderen beiden ?
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Ich habe die letzte Seite von diesem Thread verwendet, also:STARGÅTE hat geschrieben:Kannst du mir den Link geben, wo der Fehler auftauch?
viewtopic.php?f=13&t=21089&start=110
Ich habe gerade deinen langen RegEx bei der Internetseite https://regexr.com/ prüfen lassen und bekam folgende Warnungen angezeigt:
Entferne ich die problematischen Teilausdrücke aus deinem RegEx funktioniert der Syntax-Highlighter wieder.(?<=) Warning: The "positive lookbehind" feature may not be supported in all browsers.
(?<!) Warning: The "negative lookbehind" feature may not be supported in all browsers.
Ja, in dem Fall muss es nicht so genau sein. Das ist nur eine beispielhafte Feinheit, die mir auf die Schnelle eingefallen ist.STARGÅTE hat geschrieben:Da ich den Code hier aus dem Forum aber nicht parsen will, sondern nur Einfärben, mache ich das wie PB und erlaube keine Leerzeichen (beim Einfärben!).
Der Lexer erstellt bei Binärzahlen zwei Tokens: [%] und [101010], weil nicht eindeutig bestimmt werden kann, ob das %-Zeichen im aktuellen Fall ein Operator oder ein Präfix der Binärzahl ist. Der Parser kann das später genau bestimmen, indem er die Token-Sequenz prüft. Das gleiche Problem gibt es auch mit dem *-Zeichen: Pointer-Variable-Präfix oder Multiplikationszeichen.STARGÅTE hat geschrieben:Wie soll der Ausdruck Binärzahlen erkenne, die mit % anfangen und nur 0 und 1 erlauben?Code: Alles auswählen
regEx$ = "[0-9]+(?:\.[0-9]+)?(?:e(?:[ \t]*[+\-][ \t]*)?[0-9]+)?" + ; Integers, decimal numbers and binary numbers
Hier noch ein Wikipedia-Artikel: https://en.wikipedia.org/wiki/The_lexer_hack
Der Syntax-Highlighter muss aber nicht so genau sein, wie du oben schon geschrieben hast. In der PureBasic-IDE wird das %-Zeichen auch nicht immer korrekt eingefärbt:
value = 10 % 10
value = 10% 10
value = 10 %10
value = 10%10
Nicht immer:Außerdem ist in PureBasic auch keine Ziffer nach dem Dezimalpunkt erlaubt
Code: Alles auswählen
value.f = 1. + 1.5
[COMPILER] Line 1: Syntax error.
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Jetzt ist mir auch klar, warum ich damals (vor 10 Jahren) so viel tricksen musste, was ich in der neuen Version wieder rausgeworfen hatte, weil ich es als umständlich einstufte^^(?<=) Warning: The "positive lookbehind" feature may not be supported in all browsers.
(?<!) Warning: The "negative lookbehind" feature may not be supported in all browsers.
Hm muss ich mir noch mal angucken.
Deswegen gehts auch nicht bei Bisonte ...
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr