UserScript • PB-SyntaxHighlighting für Codes im Forum

Fragen und Anregungen zum Forum.
Beiträge die Community betreffend
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

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

Beitrag von edel »

X360 Andy hat geschrieben:Ja, aber mir ist aufgefallen das es Zufall ist ob es geht oder nicht.
Denke es kommt darauf an welche Script von beiden zuerst geladen wird....
Ich kann das nicht nachvollziehen, laeuft sehr gut mit dem Script von STARGÅTE.
Welchen Browser bzw welches Theme nutzt du denn?
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

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

Beitrag von Josh »

STARGÅTE hat geschrieben:Und Josh du sagst mir bitte, wenn du zB andere UserScrips bei Opera installierst was die anders haben als ich, in bezug auf den Header, denn das Script geht ja ...
ich hab mom überhaupt kein anderes script installiert. ich hatte mal testweise was gemacht, da ist es voll problemlos gegangen. aber inzwischen hab ich meine kiste neu aufgesetzt und eine neuere opera version hab ich jetzt sicher auch drauf :(
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 schade mit Opera, ich werde mal mein Bruder damit beauftragen sich mit Opera zu befassen.

Eben musste ich noch ein paar leichte bis schwere Bugs aus dem Regulären Ausdruck beseitigen, da es bei einigen Codes die "nicht so sind wie andere" falsche Färbung gab oder garkeine, oder im schlimmsten Fall sogar der Inhalt verändert wurde.

Es wäre auch sehr nett wenn ich, wenn ihr das Script benutzt irgendein Code seht wo ein Fehler auftritt, und sei er noch so klein, bitte die URL des Postes als PN an mich ... danke.
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
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

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

Beitrag von edel »

Hier gibts ein Fehler im 3. Code Beispiel.
http://www.purebasic.fr/german/viewtopi ... 61#p209861

Code: Alles auswählen

While pcre_exec(PeekL("posthilit">regex), 0, subject, len, offset, 0, @ovec(), 30)>0
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 »

hmm, also im original Code auf der Seite kann ich kein Fehler fststellen, wenn ich den umgewandelten original Code mit dem original Code vergleiche.
Hier steht ja was völlig anderes ?
PeekL("posthilit">regex),
Wo kommt den der String her ? Stand der bei dir da so da ?
Bei BUGs bitte auch immer eine Beschreiben dazu packen, oder Screen, denn die Bugs müssen ja nicht bei jedem auftreten, danke.

Ich möchte euch trotzdem mal das neue Update geben:
- globale Variablennamen geändert und Hauptcode in Function gepackt, um überschneidungen zu vermeiden.
- verbesserung des Regulärenausdrucks

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

Die die iren eigenen Style hatten, müssen jetzt aufpassen das die "Highlight" Variable nun "PBSH_Highlight" heißt.

Falls jemand eine gute Idee hat, wie man in JS gut eine datei einbinden kann, wäre es nett mir das mitzutielen, aber wie ich dem Internet entnehmen konnte, ist das nicht möglich.
Zuletzt geändert von STARGÅTE am 07.12.2009 16:26, 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
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

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

Beitrag von TomS »

Du könntest den User bitten, den Inhalt der Prefs-Datei in eine Variable zu kopieren, welche ud dann parst.
Änderungen werden dann zwar nicht automatisch übernommen, aber es ist immer noch einfacher für den User, als wenn er alle Variablen von Hand eintragen muss.
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 »

Ich würde ja gerne JS dazu bringen den Inhalt von BureBasic.prefs in eine Variable zu lesen. Aber das geht leider nicht.

Du meinst jetzt das der User selber da rein gehen soll, und dnan dieses:
[Editor]
IsWindowMaximized = 1
X = 251
Y = 164
Width = 935
Height = 621
ASMKeywordColor = 37056
BackgroundColor = 12648447
BasicKeywordColor = 6316032
CommentColor = 192
ConstantColor = 12583104
LabelColor = 37008
NormalTextColor = 0
NumberColor = 15728784
OperatorColor = 0
PointerColor = 36912
PureKeywordColor = 6316032
SeparatorColor = 0
StringColor = 12582912
StructureColor = 9461760
LineNumberColor = 49087
LineNumberBackColor = 10551295
MarkerColor = 12640511
MarkerColor_Disabled = 1
CurrentLineColor = 12648447
CurrentLineColor_Disabled = 1
SelectionColor = 6299658
SelectionFrontColor = 16777215
CursorColor = 0
Debugger_LineColor = 16771304
Debugger_LineSymbolColor = 16771304
Debugger_ErrorColor = 255
Debugger_ErrorSymbolColor = 255
Debugger_BreakPointColor = 53503
Debugger_BreakpoinSymbolColor = 53503
DisabledBackColor = 16316664
GoodBraceColor = 65280
BadBraceColor = 255
ProcedureBackColor = 12648447
CustomKeywordColor = 6316032
Debugger_WarningColor = 53503
Debugger_WarningSymbolColor = 53503
EditorFontName = Courier
EditorFontSize = 10
EditorFontStyle =
in mein Script kopiert, daber JS nimmt Zeilenübergreifende Strings nicht an.

Der Benutzer müsste dann also erst noch die Zeilenumbrücke selber ersetzen (vllt durch ; ) und kann es erst dnan kopieren.
Aber damit brauch er wenigstens nicht mehr die Farben alle selber herausfiltern...

Eine möglichkeit sehe ich noch: Ich schreibe noch schnell eine Anwendung in PB, in der man dann den Ort von "PureBasic.prefs" angibt und das UserScript, das Programm schreibt dann alles alleine um?

Mal sehen irgendwas kommt bestimmt für die nächste Version.... am besten beides ^^
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
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

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

Beitrag von TomS »

Das ist ne gute Idee.
Stargates Userscript-Generator.
In Kürze: Werbung auf Websites durch Bilder aus "Eigene Bilder" ersetzen :bounce:
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 »

So, eigentlich wollte ich die EXE alleine anbieten in der das UserScript drin ist, aber nun hab ich es anders gemacht.

Hier die neuste Version des UserScripts:
- Operatoren und Trennzeichen können nun auch hervorgehoben werden
  (eigentlich wollte ich die beiden Typen weglassen, da es zuviele davon gibt
  und das Script dadurch langsam wird, aber nach ein paar Test, ist der Unterschied kaum größer)
- HighlightAuswahl und Defaults wieder weg, statt dessen der "Einfügbereich" der umgewandelten PreferenzDatei

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

Das Script besitzt jetzt nur die "minimal Hervorhebung", der rest ist auskommentiert.

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("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(GetHomeDirectory()+"Anwendungsdaten\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 (Wichtig! es geht nur mit der neusten Version 1.4) kopieren an die Stelle zwischen:
// ==PureBasicPreference==

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

Ich hoffe es nervt euch nicht all zu sehr, dass ich hier immer wieder Updates machen muss, aber ich und andere finden halt immer wieder einen Code der etwas anders ist als die anderen, wo dann etwas nicht stimmt.
Zu Inhaltlichen veränderungen im Code sollte es nicht mehr kommen.

Bei der Automatische SprachErkennung hatte ich bis jetzt kein Erfolg, da ich nciht weiß, nach was ich suchen soll, und von was ich die Auswahl abhängig machen soll.
Idee:
Wenn der Code ein EndIf enthält => PureBasic
Wenn der Code ein function enthält => kein PureBasic
Aber leider ist das nicht so einfach ^^
Es gibt einfach zu viele kleine Codes die zuwenig Informationen enthalten um darauf auf die Sprache zu schließen.

Stattdessen werde ich vllt ein Button in den CodeTitel einfügen um ein- und ausschalten der Hervorhebung.
Sodass man entscheiden kann:
- nie Hervorhebungen, und nur die Buttonklick in diesem Code aktivieren
- immer Hervorhebungen, und nur durch Buttonkick in diesem Code deaktivieren

EDIT: alle die vor 0:40 (16.10.) die Datei geladen haben, bitte noch mal laden, danke !

EDIT2: Oh weh, jemehr man verschiedene Codes anguckt tauchen immer wieder neue kleine Bugs auf ... also auch 1.4 war nicht das letzte Update ... 1.5 muss wohl bald kommen
Da hat zB jemand n Struktur gemacht mit der Variable Next, ich dachte immer Schlüsselwörter sind da nicht gestattet, aber anscheind doch, sodass in Beispiel\Next , das Next nicht fett werden darf -.-
Zuletzt geändert von STARGÅTE am 07.12.2009 16:26, 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
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 »

:allright:
Hab erst jetzt eine ruhige Minute zum Testen gefunden, funktioniert sehr gut.

Ein kl. Problem habe ich noch, glaube aber nicht das Du es lösen kannst, da es
durch die Zusammenwirkung von edels Code und Deinem entsteht :(
Sobald ich den durch edels code gefalteten Code öffne, verliert das Highlight die
Hintergrundfarbe /:->

Aber vielleicht haste dafür ja doch eine Lösung :)

Gruß

Thomas
Antworten