Aktuelle Zeit: 18.08.2019 17:07

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 120 Beiträge ]  Gehe zu Seite Vorherige  1 ... 8, 9, 10, 11, 12
Autor Nachricht
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 14.08.2018 09:26 
Offline
Benutzeravatar

Registriert: 08.03.2013 14:27
Wohnort: ERB
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.

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.

_________________
USAC Protokoll
Universal Stringbased Application Communication Protocoll

Github: Zum Spezifikationdokument v0.01


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 14.08.2018 10:36 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
TroaX hat geschrieben:
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.

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.


Ach so?
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.

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 12:53 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Hallo Leute,

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 Direktdownload: PureBasicSyntaxHighlighting_1-8.user.js

Hier der Code zum auslesen der eigenen Syntaxfarben zum Einfügen ins Script:
Code:
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


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 ^^

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 15:16 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
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:
Zitat:
SyntaxError: invalid regexp group viewtopic.php:1:1091

Zwei fehlende Keywords sind mir noch aufgefallen:
Code:
CompilerWarning
DeclareC

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.

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 16:31 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
@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 ^^:
Code:
#  Test = 6
Debug#  Test

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:
Code:
regEx$ = "[0-9]+(?:\.[0-9]+)?(?:e(?:[ \t]*[+\-][ \t]*)?[0-9]+)?" + ; Integers, decimal numbers and binary numbers
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:
Code:
Debug 1.
Debug 2.e-2

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 18:59 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
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

_________________
PureBasic 5.70 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 19:50 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
@Bisonte:

Welches Theme nutzt du fürs Forum? Liegt es vielleicht daran?
https://www.purebasic.fr/english/viewtopic.php?p=406129#p406129

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 20:42 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
subsilver2.
Aber wie gesagt, 1.6b funktioniert. Oder ist 1.8 nur für eines der anderen beiden ?

_________________
PureBasic 5.70 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 20:47 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
STARGÅTE hat geschrieben:
Kannst du mir den Link geben, wo der Fehler auftauch?
Ich habe die letzte Seite von diesem Thread verwendet, also:
https://www.purebasic.fr/german/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:
Zitat:
(?<=) Warning: The "positive lookbehind" feature may not be supported in all browsers.
(?<!) Warning: The "negative lookbehind" feature may not be supported in all browsers.
Entferne ich die problematischen Teilausdrücke aus deinem RegEx funktioniert der Syntax-Highlighter wieder.

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!).
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:
Code:
regEx$ = "[0-9]+(?:\.[0-9]+)?(?:e(?:[ \t]*[+\-][ \t]*)?[0-9]+)?" + ; Integers, decimal numbers and binary numbers
Wie soll der Ausdruck Binärzahlen erkenne, die mit % anfangen und nur 0 und 1 erlauben?
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.
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:
Zitat:
value = 10 % 10
value = 10% 10
value = 10 %10
value = 10%10

Zitat:
Außerdem ist in PureBasic auch keine Ziffer nach dem Dezimalpunkt erlaubt
Nicht immer:
Code:
value.f = 1. + 1.5
ergibt
Zitat:
[COMPILER] Line 1: Syntax error.

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
BeitragVerfasst: 11.08.2019 21:12 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Zitat:
(?<=) Warning: The "positive lookbehind" feature may not be supported in all browsers.
(?<!) Warning: The "negative lookbehind" feature may not be supported in all browsers.

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^^

Hm muss ich mir noch mal angucken.
Deswegen gehts auch nicht bei Bisonte ...

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 120 Beiträge ]  Gehe zu Seite Vorherige  1 ... 8, 9, 10, 11, 12

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye