Seite 10 von 13
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 21.06.2013 12:51
von ts-soft
@STARGÅTE
Wäre schön, wenn Du das Script updaten könntest. In PBSH_Syntax fehlen:
DeclareModule
EndDeclareModule
EndModule
Module
Runtime
Danke und Gruß
Thomas
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 21.06.2013 14:02
von c4s
Im englischen Forum habe ich Flaiths Code um die neuen Keywords von PB5.20 aktualisiert. Außerdem habe ich die Schlüsselwörter richtig sortiert und ca. 20 Duplikate entfernt:
http://www.purebasic.fr/english/viewtop ... 12#p415412
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 21.06.2013 15:18
von ts-soft
Naja, aber wenn man seine Syntaxfarben möchte, wäre es doch besser wenn STARGÅTE
seine Version updatet
In meiner Version sind keine Dubletten, aber ich hab ja den Teil von edel mit dem von STARGÅTE
irgendwann mal gemixed

, weiß gar nicht mehr von wem was kommt, aber es funktioniert.
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 21.06.2013 16:23
von c4s
ts-soft hat geschrieben:Naja, aber wenn man seine Syntaxfarben möchte, wäre es doch besser wenn STARGÅTE seine Version updatet
Natürlich wäre es am besten, wenn STARGÅTE den Code aktualisiert. Du kannst dir aber auch ohne großen Aufwand selbst abhelfen, schließlich muss nur eine Zeile im Benutzerskript angepasst werden - im Firefox:
1) Im Addon-Manager auf "Benutzerscripts"
2) "PureBasic Syntax Highlightning" auswählen
3) Per Rechtsklick auf "Bearbeiten" klicken
4) Zeile 76 (fängt mit "
var PBSH_Syntax =" an)
mit dem neuen Code ersetzen
5) Abschließend speichern, fertig!
ts-soft hat geschrieben:In meiner Version sind keine Dubletten
Zumindest ist dies beim Original von STARGÅTE, sowie der Anpassung von flaith der Fall.
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 21.06.2013 17:22
von STARGÅTE
Ich habe nun meine 1-6 Version aktualisiert (die 1-7 wollte ja keiner ^^)
Auch die doppelten EndXXX sachen sind entfernt.
http://www.unionbytes.de/downloads/Pure ... 6b.user.js
Was den "::" für Module angeht, scheint ja die IDE auch noch keine "Meinung" zu haben und behandelt es erst mal als Label
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 21.06.2013 23:25
von Kevin
STARGÅTE hat geschrieben:Ich habe nun meine 1-6 Version aktualisiert (die 1-7 wollte ja keiner ^^)
Auch die doppelten EndXXX sachen sind entfernt.
http://www.unionbytes.de/downloads/Pure ... 6b.user.js
Was den "::" für Module angeht, scheint ja die IDE auch noch keine "Meinung" zu haben und behandelt es erst mal als Label
Also Ich benutzte die Version 2.0 BETA da man mit der den Code selektieren kann.
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 28.05.2018 22:07
von ts-soft
Alten Beitrag ausgraben
Wie bekommt ich Greasemonkey mit https zum Laufen? Seit der Umstellung geht ja gar nichts mehr.
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 29.05.2018 07:01
von Bisonte
Kann ich nicht bestätigen....
Ich habe am Skript oder an Greasemonkey seit der Installation keine Änderungen vorgenommen, und
es funktioniert immer noch alles wie gewohnt.
Edit : Es handelt sich um die PureBasicSyntaxHighlighting_1-6b.user.js
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 29.05.2018 14:42
von ts-soft
Hab es jetzt mit der Original-Version PureBasicSyntaxHighlighting_1-6b.user.js probiert, keine Änderungen.
FireFox 60.0.1 (64-Bit)
Greasemonkey 4.4.0
Ist für mich natürlich besonders traurig, da ich in dem normalem grünen Codefeld nicht viel erkennen kann (Augen).
Re: UserScript • PB-SyntaxHighlighting für Codes im Forum
Verfasst: 29.05.2018 17:17
von Bisonte
Ich seh grade... bei mir ist noch GreaseMonkey 4.3 am werkeln. Da kam wohl noch kein Update bei mir an....
Aber das Skript das hier läuft ist folgendes (auf mein "Farbschema" getrimmt)
Zumindest ist es das was FF mir anzeigt.
Code: Alles auswählen
var PBSH_Highlight = new Object();
// ==PureBasicPreference==
PBSH_Highlight['EnableKeywordBolding'] = 1;
PBSH_Highlight['EditorFontName'] = 'Consolas';
PBSH_Highlight['EditorFontSize'] = '10';
PBSH_Highlight['EditorFontStyle'] = '';
PBSH_Highlight['BackgroundColor'] = '#000000';
PBSH_Highlight['NormalTextColor'] = '#009FEC';
PBSH_Highlight['BasicKeywordColor'] = '#E1E100';
PBSH_Highlight['CommentColor'] = '#C0C0C0';
PBSH_Highlight['ConstantColor'] = '#FF1C1C';
PBSH_Highlight['StringColor'] = '#FFFFFF';
PBSH_Highlight['PureKeywordColor'] = '#00CA00';
PBSH_Highlight['ASMKeywordColor'] = '#FFFFFF';
PBSH_Highlight['PointerColor'] = '#FFA74F';
PBSH_Highlight['NumberColor'] = '#808080';
PBSH_Highlight['StructureColor'] = '#00D5D5';
PBSH_Highlight['LabelColor'] = '#00F0F0';
PBSH_Highlight['OperatorColor'] = '#FFFFFF';
PBSH_Highlight['SeparatorColor'] = '#CCCC00';
// ==/PureBasicPreference==
//===================================================
// UserScript für die Syntaxhervorhebung
// user script for syntax highlighting
//===================================================
// Regulärer Ausdrück für das SyntaxHighlighting
// regular expressions for the syntax lighting
// |( Keyword )|( Comment )|( Constant )|( String )|( Function )|( ASM )|( Pointer )|( Number )|( Structure )|( Label )|( Operator )|( Separator )|
// var PBSH_Syntax = /([^\w";\\][ \t]*(?:And|Array|As|Break|CallDebugger|Case|CompilerCase|CompilerDefault|CompilerElse|CompilerEndIf|CompilerEndSelect|CompilerError|CompilerIf|CompilerEndIf|CompilerSelect|CompilerEndSelect|Continue|Data|DataSection|EndDataSection|Debug|DebugLevel|Declare|DeclareCDLL|DeclareDLL|Default|Define|Dim|DisableASM|DisableDebugger|DisableExplicit|Else|ElseIf|EnableASM|EnableDebugger|EnableExplicit|End|EndDataSection|EndEnumeration|EndIf|EndImport|EndInterface|EndMacro|EndProcedure|EndSelect|EndStructure|EndStructureUnion|EndWith|Enumeration|EndEnumeration|Extends|FakeReturn|For|Next|ForEach|Next|ForEver|Global|Gosub|Goto|If|EndIf|Import|EndImport|ImportC|EndImport|IncludeBinary|IncludeFile|IncludePath|Interface|EndInterface|List|Macro|EndMacro|Map|NewList|NewMap|Next|Not|Or|Procedure|EndProcedure|ProcedureC|EndProcedure|ProcedureCDLL|EndProcedure|ProcedureDLL|EndProcedure|ProcedureReturn|Protected|Prototype|PrototypeC|Read|ReDim|Repeat|Until|Restore|Return|Select|EndSelect|Shared|Static|Step|Structure|EndStructure|StructureUnion|EndStructureUnion|Swap|Threaded|To|Until|Wend|While|Wend|With|EndWith|XIncludeFile|XOr)(?!\w))|(;[^\r\n]*(?=[\r\n]))|(\#\w*\$?|'[^'\r\n]*')|("[^"\r\n]*")|([^\w.][ \t]*\w+\$?(?=(?:[ \t]*\.[ \t]*\w+[ \t]*|[ \t]*)\())|([\n][ \t]*![^\r\n;]*(?=[\n\r;]))|(.\@\*?[\w\$]*|[^\w$)\]][ \t]*\*[\w\$]+|.\?\w*)|(\W(?:\d+\.?[e\d]*|\$[\dabcdef]+|\%[01]+)(?!\w))|(\.[ \t]*(?:[^\Wabcdfilqsuw](?!\w)|\w\w+)|\\[ \t]*\w+\$?|\W\w+(?=[ \t]*\\)|\W\w+(?=[ \t]*\.[ \t]*(?:[^\Wabcdfilqsuw]\W|\w\w+)))|([\n][ \t]*\w+\$?(?=[ \t]*:))|([+*/\-|!%=~]|&|<|>)|([()\[\]\\:,.])/gi ;
var PBSH_Syntax = /([^\w";\\][ \t]*(?:Align|And|Array|As|Break|CallDebugger|Case|CompilerCase|CompilerDefault|CompilerElse|CompilerElseIf|CompilerEndIf|CompilerEndSelect|CompilerError|CompilerIf|CompilerSelect|Continue|Data|DataSection|Debug|DebugLevel|Declare|DeclareC|DeclareCDLL|DeclareDLL|DeclareModule|Default|Define|Dim|DisableASM|DisableDebugger|DisableExplicit|Else|ElseIf|EnableASM|EnableDebugger|EnableExplicit|End|EndDataSection|EndDeclareModule|EndEnumeration|EndIf|EndImport|EndInterface|EndMacro|EndModule|EndProcedure|EndSelect|EndStructure|EndStructureUnion|EndWith|Enumeration|Extends|FakeReturn|For|ForEach|ForEver|Global|Gosub|Goto|If|Import|ImportC|IncludeBinary|IncludeFile|IncludePath|Interface|List|Macro|MacroExpandedCount|Map|Module|NewList|NewMap|Next|Not|Or|Procedure|ProcedureC|ProcedureCDLL|ProcedureDLL|ProcedureReturn|Protected|Prototype|PrototypeC|ReDim|Read|Repeat|Restore|Return|Runtime|Select|Shared|Static|Step|Structure|StructureUnion|Swap|Threaded|To|UndefineMacro|Until|UnuseModule|UseModule|Wend|While|With|XIncludeFile|XOr)(?!\w))|(;[^\r\n]*(?=[\r\n]))|(\#\w*\$?|'[^'\r\n]*')|("[^"\r\n]*")|([^\w.][ \t]*\w+\$?(?=(?:[ \t]*\.[ \t]*\w+[ \t]*|[ \t]*)\())|([\n][ \t]*![^\r\n;]*(?=[\n\r;]))|(.\@\*?[\w\$]*|[^\w$)\]][ \t]*\*[\w\$]+|.\?\w*)|(\W(?:\d+\.?[e\d]*|\$[\dabcdef]+|\%[01]+)(?!\w))|(\.[ \t]*(?:[^\Wabcdfilqsuw](?!\w)|\w\w+)|\\[ \t]*\w+\$?|\W\w+(?=[ \t]*\\)|\W\w+(?=[ \t]*\.[ \t]*(?:[^\Wabcdfilqsuw]\W|\w\w+)))|([\n][ \t]*\w+\$?(?=[ \t]*:))|([+*/\-|!%=~]|&|<|>)|([()\[\]\\:,.])/gi ;
// Hervorheben einer Zeichenkette
// highlighting a string
function PBSH_Highlighting(str, key)
{
if (PBSH_Highlight[key])
return '<font color="'+PBSH_Highlight[key]+'">'+str+'</font>';
else
return str;
}
function PBSH_Highlighting_Shift(str, key)
{
if (PBSH_Highlight[key])
{
var chr = str.slice(0,1);
if (PBSH_Highlight['OperatorColor'])
chr = chr.replace(PBSH_Syntax, PBSH_Replace);
else if (PBSH_Highlight['SeparatorColor'])
chr = chr.replace(PBSH_Syntax, PBSH_Replace);
return chr+'<font color="'+PBSH_Highlight[key]+'">'+str.slice(1,str.length)+'</font>';
}
else
return str;
}
function PBSH_Highlighting_Keyword(str, key)
{
if (PBSH_Highlight[key])
{
var space = str.lastIndexOf(' ');
if (space==-1) space = 0;
var chr = str.slice(0,space+1);
if (PBSH_Highlight['SeparatorColor'])
chr = chr.replace(PBSH_Syntax, PBSH_Replace);
if (PBSH_Highlight['EnableKeywordBolding'])
return chr+'<font color="'+PBSH_Highlight[key]+'"><b>'+str.slice(space+1,str.length)+'</b></font>';
else
return chr+'<font color="'+PBSH_Highlight[key]+'">'+str.slice(space+1,str.length)+'</font>';
}
else
if (PBSH_Highlight['EnableKeywordBolding'])
return '<b>'+str+'</b>';
else
return str;
}
// Ersetzen einer Zeichenkette
// replace a string
function PBSH_Replace(str, isKeyword, isComment, isConstant, isString, isFunction, isASM, isPointer, isNumber, isStructure, isLabel, isOperator, isSeparator)
{
if (isKeyword) return PBSH_Highlighting_Keyword(isKeyword, 'BasicKeywordColor');
else if (isComment) return PBSH_Highlighting(isComment, 'CommentColor');
else if (isConstant) return PBSH_Highlighting(isConstant, 'ConstantColor');
else if (isString) return PBSH_Highlighting(isString, 'StringColor');
else if (isFunction) return PBSH_Highlighting_Shift(isFunction, 'PureKeywordColor');
else if (isASM) return PBSH_Highlighting_Shift(isASM, 'ASMKeywordColor');
else if (isPointer) return PBSH_Highlighting_Shift(isPointer, 'PointerColor');
else if (isNumber) return PBSH_Highlighting_Shift(isNumber, 'NumberColor');
else if (isStructure) return PBSH_Highlighting_Shift(isStructure, 'StructureColor');
else if (isLabel) return PBSH_Highlighting_Shift(isLabel, 'LabelColor');
else if (isOperator) return PBSH_Highlighting(isOperator, 'OperatorColor');
else if (isSeparator) return PBSH_Highlighting(isSeparator, 'SeparatorColor');
}
// Durchführes der Syntaxhervorhebung
// carry out the syntax highlighting
function PureBasicSyntaxHighlighting()
{
// Anwenden der Syntaxhervorhebung auf alle Elemente mit der Klasse codecontent
// apply the syntax highlighting on all the elements with class codecontent
var allMyDivs = document.getElementsByTagName('div');
for(var i = 0; i < allMyDivs.length; i++)
{
if (allMyDivs[i].className == 'codecontent')
{
if (PBSH_Highlight['EditorFontName'])
allMyDivs[i].style.font = PBSH_Highlight['EditorFontStyle']+" "+PBSH_Highlight['EditorFontSize']+"pt "+PBSH_Highlight['EditorFontName'];
if (PBSH_Highlight['BackgroundColor'])
allMyDivs[i].style.backgroundColor = PBSH_Highlight['BackgroundColor'];
if (PBSH_Highlight['NormalTextColor'])
allMyDivs[i].style.color = PBSH_Highlight['NormalTextColor'];
var code = ' '+allMyDivs[i].innerHTML+'\r';
code = code.replace(/<br>/gi, '\r\n');
code = code.replace(/ /gi, '\t');
code = code.replace(/<\/?[^<>]*>/gi, '');
code = code.replace(PBSH_Syntax, PBSH_Replace);
code = code.replace(/\t/gi, ' ');
code = code.replace(/\r\n/gi, '<br>');
allMyDivs[i].innerHTML = code;
}
}
}
PureBasicSyntaxHighlighting();
var hoch = "95px";
var select = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAMAAABIK2QJAAAAB3RJTUUH2AYGEg8u3H74gAAAABd0RVh0U29mdHdhcmUAR0xEUE5HIHZlciAzLjRxhaThAAAACHRwTkdHTEQzAAAAAEqAKR8AAAAEZ0FNQQAAsY8L/GEFAAADAFBMVEVFRUWAAAAAgACAgAAAAICAAIAAgIDAwMDA3MCmyvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+/CgoKSAgID/AAAA/wD//wAAAP//AP8A//////+NCwMjAAAAAWJLR0T/pQfyxQAAADZJREFUeJyNjEEKADAMwvz/h+fNWdeOHRekSJCCjSTUMUT6MqKQLqdm4zM7PrP2t+fRvx+Ihw1yH39YLwn1QAAAAABJRU5ErkJggg==";
var minus = "data:image/gif;base64,R0lGODlhCgAKAKIAADMzM//M/93d3WZmZv///wAAAAAAAAAAACH5BAEHAAEALAAAAAAKAAoAAAMVGLrc/mrISQe5+ErBOx9AKI5QaS4JADs=";
var plus = "data:image/gif;base64,R0lGODlhCgAKAKIAADMzM//M/93d3WZmZv///wAAAAAAAAAAACH5BAEHAAEALAAAAAAKAAoAAAMgGDo8+mEQ4mAUosaGG5sEBjJYWQ5ACmAq8AyddWVy+yQAOw==";
var expandfunc = '\n';
expandfunc += 'function expand_code(img_id)\n';
expandfunc += '{\n';
expandfunc += ' var node = document.getElementById(img_id);\n';
expandfunc += ' node.src = "'+minus+'" ;\n';
expandfunc += ' node.onclick = function() { collapse_code(img_id); };\n';
expandfunc += ' var node = document.getElementById("c"+img_id);\n';
expandfunc += ' node.style.overflow = "visible";\n';
expandfunc += ' node.style.height = "100%";\n';
expandfunc += '}\n';
var collapsefunc = '\n';
collapsefunc += 'function collapse_code(img_id)\n';
collapsefunc += '{\n';
collapsefunc += ' var node = document.getElementById(img_id);\n';
collapsefunc += ' node.src = "'+plus+'" ;\n';
collapsefunc += ' node.onclick = function() { expand_code(img_id); };\n';
collapsefunc += ' var node = document.getElementById("c"+img_id);\n';
collapsefunc += ' node.style.height = "'+hoch+'";\n';
collapsefunc += ' node.style.overflow = "scroll";\n';
collapsefunc += '}\n';
var selectfunc = '\n';
selectfunc += 'function select_code ( img_id )\n';
selectfunc += '{\n';
selectfunc += ' if ( window.getSelection() && window.getSelection().removeAllRanges() ) {\n';
selectfunc += ' window.getSelection().removeAllRanges();\n';
selectfunc += ' }\n';
selectfunc += ' div_id = img_id - 1000;\n';
selectfunc += ' var node = document.getElementById ( "c" + div_id );\n';
selectfunc += ' if ( document.createRange() ){;\n';
selectfunc += ' range = document.createRange();\n';
selectfunc += ' if ( range.selectNode(node) ){;\n';
selectfunc += ' range.selectNode(node);\n';
selectfunc += ' };\n';
selectfunc += ' };\n';
selectfunc += ' if ( window.getSelection() && window.getSelection().addRange( range ) ){\n';
selectfunc += ' window.getSelection().addRange( range );\n';
selectfunc += ' };\n';
selectfunc += '}\n';
var img_id = 0;
var len = document.getElementsByTagName("div").length;
var script;
for (var i = 0;i<len;i++)
{
if (document.getElementsByTagName("div")[i].className == "codetitle")
{
var node = document.getElementsByTagName("div")[i];
var html = node.innerHTML;
var count = 0;
var code = 0;
node.innerHTML = '<b>Code :</b>';
img_id += 1;
select_id = img_id + 1000;
code = node.nextSibling;
if (code.innerHTML.split("<br>").length - 1 >= 10)
{
node.innerHTML += ' <img id="'+ img_id +'" src="'+plus +'" onclick="expand_code('+img_id +')" />';
code.style.height = hoch;
code.style.overflow = "scroll";
}
code.id = "c" + img_id;
node.innerHTML += ' <img id="'+ select_id +'" src="'+select+'" onclick="select_code('+select_id+')" />';
}
}
script = document.createElement( 'script' );
script.innerHTML = expandfunc;
script.innerHTML += collapsefunc;
script.innerHTML += selectfunc;
document.body.appendChild(script);