- supported language (JS,XML,HTML,VB,PHP,....)
- using CodeMirror plugin : http://codemirror.net/
- This plugin is used by JSBin sandbox: http://jsbin.com
Code: Select all
CompilerIf #PB_Compiler_Debugger
Debug "Disable SpiderBasic debugger"
CompilerEndIf
Procedure.i LoadAsynchronously(FileName.s, *OnLoadFunction, FileType.s)
!return $.ajax({ url:v_FileName, dataType:v_FileType, beforeSend:function(jqxhr, settings) { jqxhr.url = settings.url; } })
!.done(function(data, status, jqxhr) { p_OnLoadFunction(data,status,jqxhr.url); })
!.fail(function(jqxhr, status, errorThrown) { p_OnLoadFunction('',status,jqxhr.url,jqxhr.status,errorThrown); });
EndProcedure
Procedure LoadScript(FileName.s, *OnLoadFunction)
ProcedureReturn LoadAsynchronously(FileName, *OnLoadFunction, "script")
EndProcedure
Procedure.i LoadCSS(FileName.s, *OnLoadFunction)
Protected jqxhr=LoadAsynchronously(FileName, *OnLoadFunction, "text")
!return v_jqxhr.done(function(data, status, jqxhr) {
! $('<style></style>').appendTo('head').html(data);
!})
EndProcedure
; *****************************
; Code Mirror
; *****************************
Procedure Loading(content.s, status.s, url.s, errorCode, error.s)
If status<>"success"
Debug "Loading: FAILED"
Debug "File: "+url
Debug "Error code: "+errorCode
Select errorCode
Case 401 : Debug "Error: Authentification Failed"
Case 404 : Debug "Error: File Not Found"
Case 500 : Debug "Error: Server Failed"
Case 504 : Debug "Error: Server Timeout"
Default : Debug "Error: "+error
EndSelect
Debug ""
ProcedureReturn
EndIf
Static k
k+1
Select k
Case 1 : LoadScript("http://cdnjs.cloudflare.com/ajax/libs/codemirror/4.1.0/package/addon/hint/show-hint.js", @Loading())
Case 2 : LoadScript("http://cdnjs.cloudflare.com/ajax/libs/codemirror/4.1.0/package/addon/hint/javascript-hint.js", @Loading())
Case 3 : LoadScript("http://cdnjs.cloudflare.com/ajax/libs/codemirror/4.1.0/package/mode/javascript/javascript.js", @Loading())
Case 4 : LoadCSS("http://cdnjs.cloudflare.com/ajax/libs/codemirror/4.1.0/codemirror.css", @Loading())
Case 5 : LoadCSS("http://cdnjs.cloudflare.com/ajax/libs/codemirror/4.1.0/package/addon/hint/show-hint.css", @Loading())
Default
!var myCodeMirror = CodeMirror(document.body, { lineNumbers: true
!, extraKeys: {"Ctrl-Space": "autocomplete"}
!, value: 'function myScript(){return 100;}\n'
!, mode: 'javascript'
!});
EndSelect
EndProcedure
LoadScript("http://cdnjs.cloudflare.com/ajax/libs/codemirror/4.1.0/codemirror.js", @Loading())