Wäre schön, wenn Du das Script updaten könntest. In PBSH_Syntax fehlen:
Danke und GrußDeclareModule
EndDeclareModule
EndModule
Module
Runtime
Thomas
Danke und GrußDeclareModule
EndDeclareModule
EndModule
Module
Runtime
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:ts-soft hat geschrieben:Naja, aber wenn man seine Syntaxfarben möchte, wäre es doch besser wenn STARGÅTE seine Version updatet
Zumindest ist dies beim Original von STARGÅTE, sowie der Anpassung von flaith der Fall.ts-soft hat geschrieben:In meiner Version sind keine Dubletten
Also Ich benutzte die Version 2.0 BETA da man mit der den Code selektieren kann.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
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);