PKõ‹±<ýrù‰ù‰Share code (0.1.0)/package.kpf http://pastebin.mozilla.org http://pzt.me // Select which of http://pzt.me or http://pastebin.mozilla.org to use var serverlist = new Array(); serverlist[0] = "pastebin"; serverlist[1] = "pzt"; var res = ko.dialogs.selectFromList("Select a server...", "Which share code server do you want to use?", serverlist, "one"); if (res) { ko.statusBar.AddMessage("Server in use: " + res, "sharecode_macro", 10000, true) // Store this value sv.prefs.setString("sharecodeServer", res, true); } // View last URL that was successfully shared on http://pzt.me or http://pastebin.mozilla.org var lastURL = sv.prefs.getString("sharecodeURL", ""); if (lastURL != "") { try { gViewMgr.loadViewFromURI(lastURL,'browser'); } catch(e) { alert(e); } } // Given an URI, get the corresponding code in a new Komodo document var uri = ko.dialogs.prompt("Download code from pastebin or pzt...", "link:", "", "Get shared code..."); if (!uri) return; // Determine if it is a pastebin or pzt url var server = ""; if (uri.match(/pzt.me/)) { server = "pzt"; uri = uri + "@plaintext"; } if (uri.match(/pastebin.org/)) { server = "pastebin"; uri = uri.replace("pastebin.org/", "pastebin.org/?dl="); } if (uri.match(/pastebin.mozilla.org/)) { server = "pastebin"; uri = uri.replace("pastebin.mozilla.org/", "pastebin.mozilla.org/?dl="); } if (uri == "") { ko.dialogs.alert("The URL does not seem to be pzt.me or pastebin[.mozilla].org!"); } //alert(uri); // Get the content of this uri // For pzt, do decode it using: decodeURIComponent() // Paste it in a new document // Look if it would be possible to submit changes there // Submit code to http://pzt.me/api or http://pastebin.mozilla.org // Adapted by Ph. Grosjean from original code using pastebin from: // {{{ http://code.activestate.com/recipes/577170/ (r1) var sharecode = { post : function() { var selection = ko.views.manager.currentView.selection; if (selection == "") { ko.dialogs.alert("You must select code to submit first!"); return; } // Get code server, either pzt or pastebin var server = sv.prefs.getString("sharecodeServer", "pastebin"); if (server != "pastebin" & server != "pzt") { ko.dialogs.alert("Only 'pastebin' and 'pzt' servers implemented!"); return; } // Ask for author - space - lifespan var author = sv.prefs.getString("sharecodeAuthor", ""); var space; var lifespan; var lifespanVal; // Feed expiration list with values var expMRU = "sharecodeExpireMRU"; expMRUname = expMRU + "_mru"; // Defined like that! ko.mru.reset(expMRUname); if (server == "pastebin") { ko.mru.add(expMRUname, "forever", true); ko.mru.add(expMRUname, "one month", true); ko.mru.add(expMRUname, "one day", true); // Get default value lifespan = sv.prefs.getString("sharecodePastebinDuration", "one day"); } else { // pzt ko.mru.add(expMRUname, "forever", true); ko.mru.add(expMRUname, "one year", true); ko.mru.add(expMRUname, "one month", true); ko.mru.add(expMRUname, "one week", true); ko.mru.add(expMRUname, "one day", true); ko.mru.add(expMRUname, "one hour", true); ko.mru.add(expMRUname, "ten minutes", true); // Get default value lifespan = sv.prefs.getString("sharecodePztDuration", "one day"); } var msg = "Configure " + server + " to share current selection:"; var res = ko.dialogs.prompt2(msg, "author[@space]:", author, "expires after...:", lifespan, "Share code...", "sharecodeAuthorsMRU", expMRU); // Process results if (!res) return; author = res[0]; // Save this value sv.prefs.setString("sharecodeAuthor", author, true); // Retrieve space if we have author@space space = author.split("@")[1]; if (!space) space = ""; if (server == "pastebin") { // Restrict author to first part author = author.split("@")[0]; sv.prefs.setString("sharecodePastebinDuration", res[1], true); switch(res[1]) { case "forever": lifespanVal = "f"; break; case "one month": lifespanVal = "m"; break; default: // one day, or something else lifespanVal = "d"; sv.prefs.setString("sharecodePastebinDuration", "one day", true); } } else { // pzt sv.prefs.setString("sharecodePztDuration", res[1], true); switch(res[1]) { case "forever": lifespanVal = "6"; break; case "one year": lifespanVal = "0"; break; case "one month": lifespanVal = "5"; break; case "one week": lifespanVal = "4"; break; case "one hour": lifespanVal = "2"; break; case "ten minutes": lifespanVal = "1"; break; default: // one day, or something else lifespanVal = "3"; sv.prefs.setString("sharecodePztDuration", "one day", true); } } // Encode data var author = encodeURIComponent(author); var text = encodeURIComponent(selection); var highlighter; if (server == "pastebin") { highlighter = encodeURIComponent(this.ko2pastebinLanguage()); } else { // pzt highlighter = encodeURIComponent(this.ko2pztLanguage()); } // Build request var httpReq = new XMLHttpRequest(); if (server == "pastebin") { if (space != "") space = space + "."; httpReq.open("post", "http://" + space + "pastebin.mozilla.org", false); httpReq.setRequestHeader("content-type", "application/x-www-form-urlencoded"); var requestString = "parent_pid=&format={1}&code2={2}&poster={3}" + "&paste=Send&expiry={4}"; var sendString = requestString .replace("{1}", highlighter) .replace("{2}", text) .replace("{3}", author) .replace("{4}", lifespanVal); } else { httpReq.open("post", "http://pzt.me/api", false); httpReq.setRequestHeader("content-type", "application/x-www-form-urlencoded"); var requestString = "pasteEnter={1}&highlighter={2}&lifespan={3}" + "&privacy={4}&author={5}&email="; var privacy = "1"; // By default, private if we defined a space if (space == "") privacy = "0"; var sendString = requestString .replace("{1}", text) .replace("{2}", highlighter) .replace("{3}", lifespanVal) .replace("{4}", privacy) .replace("{5}", author) } httpReq.send(sendString); var url = this.getReturnURL(httpReq, server, space); // Save this url sv.prefs.setString("sharecodeURL", url, true); // Copy to clipboard this.copyText(url); ko.statusBar.AddMessage("Url " + url + " copied on clipboard", "sharecode_macro", 10000, true) }, getReturnURL : function(httpReq, server, space) { if (server === "pastebin") { return "http://" + space + "pastebin.mozilla.org/" + httpReq.responseText.match('name="parent_pid" value="(.*)"')[1]; } else { //pzt // Response is a JSON object like: // { // "id": "z3", // "url": "http://pzt.me/z3", // "error": 0, // "message": "Success!" // } var url = "<none>"; var nativeJSON = Components.classes["@mozilla.org/dom/json;1"] .createInstance(Components.interfaces.nsIJSON); var respData = nativeJSON.decode(httpReq.responseText); if (respData) { // Is it OK? if (!respData["error"] | respData["error"] == 0) { url = respData["url"]; } else { alert("Error posting the code: " + respData["message"]); } } else { alert("Unknown error while retrieving response from http://pzt.me!") } return url; } }, copyText : function(str) { Components.classes["@mozilla.org/widget/clipboardhelper;1"] .getService(Components.interfaces.nsIClipboardHelper) .copyString(str); }, ko2pastebinLanguage : function() { var langMap = {}; langMap["Text"] = "text"; langMap["ActionScript"] = "actionscript"; langMap["Ada"] = "ada"; langMap["Apache"] = "apache"; //langMap[""] = "applescript"; langMap["Assembler"] = "asm"; //langMap[""] = "asp"; langMap["Bash"] = "bash"; langMap["C"] = "c"; //langMap[""] = "c_mac"; //langMap[""] = "caddcl"; //langMap[""] = "cadlisp"; langMap["C++"] = "cpp"; langMap["C#"] = "csharp"; //langMap[""] = "cfm"; langMap["CSS"] = "css"; //langMap[""] = "d"; //langMap[""] = "delphi"; langMap["Diff"] = "diff"; //langMap[""] = "dos"; langMap["Eiffel"] = "eiffel"; langMap["Fortran"] = "fortran"; langMap["FreeBasic"] = "freebasic"; //langMap[""] = "gml"; langMap["HTML"] = "html4strict"; //langMap[""] = "ini"; langMap["Java"] = "java"; langMap["JavaScript"] = "javascript"; langMap["Lisp"] = "lisp"; langMap["Lua"] = "lua"; langMap["Matlab"] = "matlab"; //langMap[""] = "mpasm"; langMap["SQL"] = "mysql"; langMap["Nsis"] = "nsis"; //langMap[""] = "objc"; //langMap[""] = "ocaml"; //langMap[""] = "oobas"; langMap["PL-SQL"] = "oracle8"; langMap["Pascal"] = "pascal"; langMap["Perl"] = "perl"; langMap["PHP"] = "php"; langMap["Python"] = "python"; //langMap[""] = "qbasic"; //langMap[""] = "robots"; langMap["R"] = "rsplus"; langMap["Ruby"] = "ruby"; langMap["Scheme"] = "scheme"; langMap["Smarty"] = "smarty"; langMap["SQL"] = "sql"; langMap["Tcl"] = "tcl"; langMap["VisualBasic"] = "vb"; //langMap[""] = "vbnet"; //langMap[""] = "visualfoxpro"; langMap["XBL"] = "xml"; langMap["XML"] = "xml"; langMap["XSLT"] = "xml"; langMap["XUL"] = "xml"; language = langMap[ko.views.manager.currentView.document.language]; if (language == undefined) { return "text"; } return language; }, ko2pztLanguage : function() { var langMap = {}; langMap["Text"] = "plaintext"; //langMap[""] = "4cs"; //langMap[""] = "abap"; langMap["ActionScript"] = "actionscript"; //langMap[""] = "actionscript3"; langMap["Ada"] = "ada"; langMap["Apache"] = "apache"; //langMap[""] = "applescript"; //langMap[""] = "apt_sources"; langMap["Assembler"] = "asm"; //langMap[""] = "asp"; //langMap[""] = "autohotkey"; langMap["AutoIt"] = "autoit"; //langMap[""] = "avisynth"; //langMap[""] = "awk"; langMap["Bash"] = "bash"; //langMap[""] = "basic"; //langMap[""] = "basic4gl"; //langMap[""] = "bf"; //langMap[""] = "awk"; //langMap[""] = "bibtex"; langMap["BlitzBasic"] = "blitzbasic"; //langMap[""] = "bnf"; //langMap[""] = "boo"; langMap["C"] = "c"; //langMap[""] = "c_mac"; //langMap[""] = "caddcl"; //langMap[""] = "cadlisp"; //langMap[""] = "cfdg"; //langMap[""] = "cfm"; //langMap[""] = "cil"; //langMap[""] = "clojure"; //langMap[""] = "cmake"; //langMap[""] = "cobol"; langMap["C++"] = "cpp"; //langMap[""] = "cpp-qt"; //langMap[""] = "sublang"; langMap["C#"] = "csharp"; langMap["CSS"] = "css"; //langMap[""] = "cuesheet"; //langMap[""] = "d"; //langMap[""] = "dcs"; //langMap[""] = "delphi"; langMap["Diff"] = "diff"; //langMap[""] = "div"; //langMap[""] = "dos"; //langMap[""] = "dot"; langMap["Eiffel"] = "eiffel"; //langMap[""] = "email"; langMap["Erlang"] = "erlang"; //langMap[""] = "fo"; langMap["Fortran"] = "fortran"; langMap["Fortran 77"] = "fortran"; langMap["FreeBasic"] = "freebasic"; //langMap[""] = "fsharp"; //langMap[""] = "gambas"; //langMap[""] = "gdb"; //langMap[""] = "genero"; //langMap[""] = "gettext"; //langMap[""] = "glsl"; //langMap[""] = "gml"; //langMap[""] = "gnuplot"; //langMap[""] = "groovy"; //langMap[""] = "haskell"; //langMap[""] = "hq9plus"; langMap["HTML"] = "html4strict"; langMap["IDL"] = "idl"; //langMap[""] = "ini"; //langMap[""] = "inno"; //langMap[""] = "intercal"; //langMap[""] = "io"; langMap["Java"] = "java"; //langMap[""] = "java5"; langMap["JavaScript"] = "javascript"; //langMap[""] = "jquery"; langMap["Kix"] = "kixstart"; //langMap[""] = "klonec"; //langMap[""] = "klonecpp"; langMap["LaTeX"] = "latex"; langMap["Lisp"] = "lisp"; //langMap[""] = "locobasic"; //langMap[""] = "logtalk"; //langMap[""] = "lolcode"; //langMap[""] = "lotusformulas"; //langMap[""] = "lotusscript"; //langMap[""] = "lscript"; //langMap[""] = "lsl2"; langMap["Lua"] = "lua"; //langMap[""] = "m68k"; //langMap[""] = "make"; //langMap[""] = "mapbasic"; langMap["Matlab"] = "matlab"; //langMap[""] = "mirc"; //langMap[""] = "mmisc"; //langMap[""] = "modula3"; //langMap[""] = "mpasm"; //langMap[""] = "mxml"; //langMap[""] = "newlisp"; langMap["Nsis"] = "nsis"; //langMap[""] = "oberon2"; //langMap[""] = "objc"; //langMap[""] = "ocaml"; //langMap[""] = "oobas"; //langMap[""] = "oracle11"; //langMap[""] = "oracle8"; langMap["Pascal"] = "pascal"; //langMap[""] = "per"; langMap["Perl"] = "perl"; //langMap[""] = "perl6"; langMap["PHP"] = "php"; //langMap[""] = "pic16"; //langMap[""] = "pike"; //langMap[""] = "pixelblender"; langMap["PL-SQL"] = "plsql"; langMap["POVRay"] = "povray"; //langMap[""] = "powerbuilder"; langMap["PowerShell"] = "powershell"; //langMap[""] = "progress"; //langMap[""] = "prolog"; //langMap[""] = "properties"; //langMap[""] = "providex"; langMap["PureBasic"] = "purebasic"; langMap["Python"] = "python"; //langMap[""] = "qbasic"; langMap["SQL"] = "mysql"; //langMap[""] = "rails"; langMap["REBOL"] = "rebol"; //langMap[""] = "reg"; //langMap[""] = "robots"; langMap["R"] = "rsplus"; langMap["Ruby"] = "ruby"; //langMap[""] = "sas"; //langMap[""] = "scala"; langMap["Scheme"] = "scheme"; //langMap[""] = "scilab"; //langMap[""] = "sdlbasic"; langMap["Smalltalk"] = "smalltalk"; langMap["Smarty"] = "smarty"; langMap["SQL"] = "sql"; //langMap[""] = "systemverilog"; langMap["Tcl"] = "tcl"; langMap["Tex"] = "latex"; //langMap[""] = "teraterm"; //langMap[""] = "text"; //langMap[""] = "thinbasic"; //langMap[""] = "tsql"; //langMap[""] = "typoscript"; langMap["VisualBasic"] = "vb"; //langMap[""] = "vbnet"; langMap["Verilog"] = "verilog"; langMap["VHDL"] = "vhdl"; //langMap[""] = "vim"; //langMap[""] = "visualfoxpro"; //langMap[""] = "visualprolog"; //langMap[""] = "whitespace"; //langMap[""] = "whois"; //langMap[""] = "winbatch"; langMap["XBL"] = "xml"; langMap["XML"] = "xml"; langMap["XSLT"] = "xml"; langMap["XUL"] = "xml"; //langMap[""] = "xorg_conf"; //langMap[""] = "xpp"; //langMap[""] = "z80"; language = langMap[ko.views.manager.currentView.document.language]; if (language == undefined) { return "text"; } return language; } }; function printKomodoLanguages() { append_to_command_output_window("", true); function printLang(hierarchy) { var children = new Object(); var count = new Object(); if (hierarchy.container == true) { hierarchy.getChildren(children, count); children = children.value; for (i = 0; i < children.length; i++) { printLang(children[i]); } } else { append_to_command_output_window(hierarchy.name); } } var langService = Components.classes["@activestate.com/koLanguageRegistryService;1"] .getService(Components.interfaces.koILanguageRegistryService); printLang(langService.getLanguageHierarchy()); } sharecode.post(); // The version of the current Share code toolbox SharecodetoolboxVersion = 0.1; SharecodetoolboxRelease = 0; if (typeof(sv.showVersion) == "undefined" | sv.showVersion) { alert(_("(highly experimental!) Sharecode toolbox version ") + SharecodetoolboxVersion + "." + SharecodetoolboxRelease); } // Submit code to http://pzt.me/api or http://pastebin.mozilla.org // Adapted by Ph. Grosjean from original code using pastebin from: // {{{ http://code.activestate.com/recipes/577170/ (r1) var sharecode = { post : function() { var selection = ko.views.manager.currentView.selection; if (selection == "") { ko.dialogs.alert("You must select code to submit first!"); return; } // Get code server, either pzt or pastebin var server = sv.prefs.getString("sharecodeServer", "pastebin"); if (server != "pastebin" & server != "pzt") { ko.dialogs.alert("Only 'pastebin' and 'pzt' servers implemented!"); return; } // Ask for author - space - lifespan var author = sv.prefs.getString("sharecodeAuthor", ""); var space; var lifespan; var lifespanVal; // Feed expiration list with values var expMRU = "sharecodeExpireMRU"; expMRUname = expMRU + "_mru"; // Defined like that! ko.mru.reset(expMRUname); if (server == "pastebin") { ko.mru.add(expMRUname, "forever", true); ko.mru.add(expMRUname, "one month", true); ko.mru.add(expMRUname, "one day", true); // Get default value lifespan = sv.prefs.getString("sharecodePastebinDuration", "one day"); } else { // pzt ko.mru.add(expMRUname, "forever", true); ko.mru.add(expMRUname, "one year", true); ko.mru.add(expMRUname, "one month", true); ko.mru.add(expMRUname, "one week", true); ko.mru.add(expMRUname, "one day", true); ko.mru.add(expMRUname, "one hour", true); ko.mru.add(expMRUname, "ten minutes", true); // Get default value lifespan = sv.prefs.getString("sharecodePztDuration", "one day"); } var msg = "Configure " + server + " to share current selection:"; var res = ko.dialogs.prompt2(msg, "author[@space]:", author, "expires after...:", lifespan, "Share code...", "sharecodeAuthorsMRU", expMRU); // Process results if (!res) return; author = res[0]; // Save this value sv.prefs.setString("sharecodeAuthor", author, true); // Retrieve space if we have author@space space = author.split("@")[1]; if (!space) space = ""; if (server == "pastebin") { // Restrict author to first part author = author.split("@")[0]; sv.prefs.setString("sharecodePastebinDuration", res[1], true); switch(res[1]) { case "forever": lifespanVal = "f"; break; case "one month": lifespanVal = "m"; break; default: // one day, or something else lifespanVal = "d"; sv.prefs.setString("sharecodePastebinDuration", "one day", true); } } else { // pzt sv.prefs.setString("sharecodePztDuration", res[1], true); switch(res[1]) { case "forever": lifespanVal = "6"; break; case "one year": lifespanVal = "0"; break; case "one month": lifespanVal = "5"; break; case "one week": lifespanVal = "4"; break; case "one hour": lifespanVal = "2"; break; case "ten minutes": lifespanVal = "1"; break; default: // one day, or something else lifespanVal = "3"; sv.prefs.setString("sharecodePztDuration", "one day", true); } } // Encode data var author = encodeURIComponent(author); var text = encodeURIComponent(selection); var highlighter; if (server == "pastebin") { highlighter = encodeURIComponent(this.ko2pastebinLanguage()); } else { // pzt highlighter = encodeURIComponent(this.ko2pztLanguage()); } // Build request var httpReq = new XMLHttpRequest(); if (server == "pastebin") { if (space != "") space = space + "."; httpReq.open("post", "http://" + space + "pastebin.mozilla.org", false); httpReq.setRequestHeader("content-type", "application/x-www-form-urlencoded"); var requestString = "parent_pid=&format={1}&code2={2}&poster={3}" + "&paste=Send&expiry={4}"; var sendString = requestString .replace("{1}", highlighter) .replace("{2}", text) .replace("{3}", author) .replace("{4}", lifespanVal); } else { httpReq.open("post", "http://pzt.me/api", false); httpReq.setRequestHeader("content-type", "application/x-www-form-urlencoded"); var requestString = "pasteEnter={1}&highlighter={2}&lifespan={3}" + "&privacy={4}&author={5}&email="; var privacy = "1"; // By default, private if we defined a space if (space == "") privacy = "0"; var sendString = requestString .replace("{1}", text) .replace("{2}", highlighter) .replace("{3}", lifespanVal) .replace("{4}", privacy) .replace("{5}", author) } httpReq.send(sendString); var url = this.getReturnURL(httpReq, server, space); // Save this url sv.prefs.setString("sharecodeURL", url, true); // Copy to clipboard this.copyText(url); ko.statusBar.AddMessage("Url " + url + " copied on clipboard", "sharecode_macro", 10000, true) }, getReturnURL : function(httpReq, server, space) { if (server === "pastebin") { return "http://" + space + "pastebin.mozilla.org/" + httpReq.responseText.match('name="parent_pid" value="(.*)"')[1]; } else { //pzt // Response is a JSON object like: // { // "id": "z3", // "url": "http://pzt.me/z3", // "error": 0, // "message": "Success!" // } var url = "<none>"; var nativeJSON = Components.classes["@mozilla.org/dom/json;1"] .createInstance(Components.interfaces.nsIJSON); var respData = nativeJSON.decode(httpReq.responseText); if (respData) { // Is it OK? if (!respData["error"] | respData["error"] == 0) { url = respData["url"]; } else { alert("Error posting the code: " + respData["message"]); } } else { alert("Unknown error while retrieving response from http://pzt.me!") } return url; } }, copyText : function(str) { Components.classes["@mozilla.org/widget/clipboardhelper;1"] .getService(Components.interfaces.nsIClipboardHelper) .copyString(str); }, ko2pastebinLanguage : function() { var langMap = {}; langMap["Text"] = "text"; langMap["ActionScript"] = "actionscript"; langMap["Ada"] = "ada"; langMap["Apache"] = "apache"; //langMap[""] = "applescript"; langMap["Assembler"] = "asm"; //langMap[""] = "asp"; langMap["Bash"] = "bash"; langMap["C"] = "c"; //langMap[""] = "c_mac"; //langMap[""] = "caddcl"; //langMap[""] = "cadlisp"; langMap["C++"] = "cpp"; langMap["C#"] = "csharp"; //langMap[""] = "cfm"; langMap["CSS"] = "css"; //langMap[""] = "d"; //langMap[""] = "delphi"; langMap["Diff"] = "diff"; //langMap[""] = "dos"; langMap["Eiffel"] = "eiffel"; langMap["Fortran"] = "fortran"; langMap["FreeBasic"] = "freebasic"; //langMap[""] = "gml"; langMap["HTML"] = "html4strict"; //langMap[""] = "ini"; langMap["Java"] = "java"; langMap["JavaScript"] = "javascript"; langMap["Lisp"] = "lisp"; langMap["Lua"] = "lua"; langMap["Matlab"] = "matlab"; //langMap[""] = "mpasm"; langMap["SQL"] = "mysql"; langMap["Nsis"] = "nsis"; //langMap[""] = "objc"; //langMap[""] = "ocaml"; //langMap[""] = "oobas"; langMap["PL-SQL"] = "oracle8"; langMap["Pascal"] = "pascal"; langMap["Perl"] = "perl"; langMap["PHP"] = "php"; langMap["Python"] = "python"; //langMap[""] = "qbasic"; //langMap[""] = "robots"; langMap["R"] = "rsplus"; langMap["Ruby"] = "ruby"; langMap["Scheme"] = "scheme"; langMap["Smarty"] = "smarty"; langMap["SQL"] = "sql"; langMap["Tcl"] = "tcl"; langMap["VisualBasic"] = "vb"; //langMap[""] = "vbnet"; //langMap[""] = "visualfoxpro"; langMap["XBL"] = "xml"; langMap["XML"] = "xml"; langMap["XSLT"] = "xml"; langMap["XUL"] = "xml"; language = langMap[ko.views.manager.currentView.document.language]; if (language == undefined) { return "text"; } return language; }, ko2pztLanguage : function() { var langMap = {}; langMap["Text"] = "plaintext"; //langMap[""] = "4cs"; //langMap[""] = "abap"; langMap["ActionScript"] = "actionscript"; //langMap[""] = "actionscript3"; langMap["Ada"] = "ada"; langMap["Apache"] = "apache"; //langMap[""] = "applescript"; //langMap[""] = "apt_sources"; langMap["Assembler"] = "asm"; //langMap[""] = "asp"; //langMap[""] = "autohotkey"; langMap["AutoIt"] = "autoit"; //langMap[""] = "avisynth"; //langMap[""] = "awk"; langMap["Bash"] = "bash"; //langMap[""] = "basic"; //langMap[""] = "basic4gl"; //langMap[""] = "bf"; //langMap[""] = "awk"; //langMap[""] = "bibtex"; langMap["BlitzBasic"] = "blitzbasic"; //langMap[""] = "bnf"; //langMap[""] = "boo"; langMap["C"] = "c"; //langMap[""] = "c_mac"; //langMap[""] = "caddcl"; //langMap[""] = "cadlisp"; //langMap[""] = "cfdg"; //langMap[""] = "cfm"; //langMap[""] = "cil"; //langMap[""] = "clojure"; //langMap[""] = "cmake"; //langMap[""] = "cobol"; langMap["C++"] = "cpp"; //langMap[""] = "cpp-qt"; //langMap[""] = "sublang"; langMap["C#"] = "csharp"; langMap["CSS"] = "css"; //langMap[""] = "cuesheet"; //langMap[""] = "d"; //langMap[""] = "dcs"; //langMap[""] = "delphi"; langMap["Diff"] = "diff"; //langMap[""] = "div"; //langMap[""] = "dos"; //langMap[""] = "dot"; langMap["Eiffel"] = "eiffel"; //langMap[""] = "email"; langMap["Erlang"] = "erlang"; //langMap[""] = "fo"; langMap["Fortran"] = "fortran"; langMap["Fortran 77"] = "fortran"; langMap["FreeBasic"] = "freebasic"; //langMap[""] = "fsharp"; //langMap[""] = "gambas"; //langMap[""] = "gdb"; //langMap[""] = "genero"; //langMap[""] = "gettext"; //langMap[""] = "glsl"; //langMap[""] = "gml"; //langMap[""] = "gnuplot"; //langMap[""] = "groovy"; //langMap[""] = "haskell"; //langMap[""] = "hq9plus"; langMap["HTML"] = "html4strict"; langMap["IDL"] = "idl"; //langMap[""] = "ini"; //langMap[""] = "inno"; //langMap[""] = "intercal"; //langMap[""] = "io"; langMap["Java"] = "java"; //langMap[""] = "java5"; langMap["JavaScript"] = "javascript"; //langMap[""] = "jquery"; langMap["Kix"] = "kixstart"; //langMap[""] = "klonec"; //langMap[""] = "klonecpp"; langMap["LaTeX"] = "latex"; langMap["Lisp"] = "lisp"; //langMap[""] = "locobasic"; //langMap[""] = "logtalk"; //langMap[""] = "lolcode"; //langMap[""] = "lotusformulas"; //langMap[""] = "lotusscript"; //langMap[""] = "lscript"; //langMap[""] = "lsl2"; langMap["Lua"] = "lua"; //langMap[""] = "m68k"; //langMap[""] = "make"; //langMap[""] = "mapbasic"; langMap["Matlab"] = "matlab"; //langMap[""] = "mirc"; //langMap[""] = "mmisc"; //langMap[""] = "modula3"; //langMap[""] = "mpasm"; //langMap[""] = "mxml"; //langMap[""] = "newlisp"; langMap["Nsis"] = "nsis"; //langMap[""] = "oberon2"; //langMap[""] = "objc"; //langMap[""] = "ocaml"; //langMap[""] = "oobas"; //langMap[""] = "oracle11"; //langMap[""] = "oracle8"; langMap["Pascal"] = "pascal"; //langMap[""] = "per"; langMap["Perl"] = "perl"; //langMap[""] = "perl6"; langMap["PHP"] = "php"; //langMap[""] = "pic16"; //langMap[""] = "pike"; //langMap[""] = "pixelblender"; langMap["PL-SQL"] = "plsql"; langMap["POVRay"] = "povray"; //langMap[""] = "powerbuilder"; langMap["PowerShell"] = "powershell"; //langMap[""] = "progress"; //langMap[""] = "prolog"; //langMap[""] = "properties"; //langMap[""] = "providex"; langMap["PureBasic"] = "purebasic"; langMap["Python"] = "python"; //langMap[""] = "qbasic"; langMap["SQL"] = "mysql"; //langMap[""] = "rails"; langMap["REBOL"] = "rebol"; //langMap[""] = "reg"; //langMap[""] = "robots"; langMap["R"] = "rsplus"; langMap["Ruby"] = "ruby"; //langMap[""] = "sas"; //langMap[""] = "scala"; langMap["Scheme"] = "scheme"; //langMap[""] = "scilab"; //langMap[""] = "sdlbasic"; langMap["Smalltalk"] = "smalltalk"; langMap["Smarty"] = "smarty"; langMap["SQL"] = "sql"; //langMap[""] = "systemverilog"; langMap["Tcl"] = "tcl"; langMap["Tex"] = "latex"; //langMap[""] = "teraterm"; //langMap[""] = "text"; //langMap[""] = "thinbasic"; //langMap[""] = "tsql"; //langMap[""] = "typoscript"; langMap["VisualBasic"] = "vb"; //langMap[""] = "vbnet"; langMap["Verilog"] = "verilog"; langMap["VHDL"] = "vhdl"; //langMap[""] = "vim"; //langMap[""] = "visualfoxpro"; //langMap[""] = "visualprolog"; //langMap[""] = "whitespace"; //langMap[""] = "whois"; //langMap[""] = "winbatch"; langMap["XBL"] = "xml"; langMap["XML"] = "xml"; langMap["XSLT"] = "xml"; langMap["XUL"] = "xml"; //langMap[""] = "xorg_conf"; //langMap[""] = "xpp"; //langMap[""] = "z80"; language = langMap[ko.views.manager.currentView.document.language]; if (language == undefined) { return "text"; } return language; } }; function printKomodoLanguages() { append_to_command_output_window("", true); function printLang(hierarchy) { var children = new Object(); var count = new Object(); if (hierarchy.container == true) { hierarchy.getChildren(children, count); children = children.value; for (i = 0; i < children.length; i++) { printLang(children[i]); } } else { append_to_command_output_window(hierarchy.name); } } var langService = Components.classes["@activestate.com/koLanguageRegistryService;1"] .getService(Components.interfaces.koILanguageRegistryService); printLang(langService.getLanguageHierarchy()); } sharecode.post(); 1 PKõ‹±<ýrù‰ù‰¤Share code (0.1.0)/package.kpfPKL5Š