Еще один вопрос:
Почему данный скрипт не показывает свои макросы (нельзя выбрать по ctrl+ M):
Код:
$engine JScript
$uname OberonTools
$dname Компиляция модуля оберона
$addin global
$addin stdlib
stdlib.require("TextWindow.js", SelfScript);
global.connectGlobals(SelfScript);
///////////////////////////////////////////////////////////////////////////////
// КОМАНДЫ, ИСПОЛНЯЕМЫЕ ПО CTRL+M (видны в снегопате)
//
function getDefaultMacros() {
return 'КомпилироватьКодОберона7';
}
function macrosКомпилироватьКодОберона7() {
Tools.CompileActiveTextWindow();
}
function macrosРедактироватьКодОберона7() {
Tools.EditActiveTextWindow();
}
var RTL$ = {
extend: function extend(methods){
function Type(){
for(var m in methods)
this[m] = methods[m];
}
Type.prototype = this.prototype;
var result = methods.init;
result.prototype = new Type(); // inherit this.prototype
result.prototype.constructor = result; // to see constructor name in diagnostic
result.extend = extend;
return result;
},
strToArray: function (s){
var result = new Array(s.length);
for(var i = 0; i < s.length; ++i)
result[i] = s.charCodeAt(i);
return result;
}
};
var Js = function (JS){
var String = RTL$.extend({
init: function String(){
}
});
function StringFromArrayChar(arr/*ARRAY OF CHAR*/){
var s = null;
var i = 0;
s = '';
for(i=0; i<arr.length; i++) {s = s + JS.String.fromCharCode(arr[i]);};
return s;
}
function CharCodeAt(s/*String*/, n/*INTEGER*/){
var res = 0;
res = s.charCodeAt(n);
return res;
}
return {
String: String,
StringFromArrayChar: StringFromArrayChar,
CharCodeAt: CharCodeAt
}
}(SelfScript.self);
var Snegopat = function (JS){
var TextWindows = RTL$.extend({
init: function TextWindows(){
}
});
function activeTextWindow(){
var wnd = null;
wnd = JS.snegopat.activeTextWindow();
return wnd;
}
return {
TextWindows: TextWindows,
activeTextWindow: activeTextWindow
}
}(SelfScript.self);
var Global = function (Js, JS){
function MessageBox(str/*ARRAY OF CHAR*/){
JS.Designer.MessageBox(Js.StringFromArrayChar(str));
}
function Message(str/*ARRAY OF CHAR*/){
JS.Designer.Message(Js.StringFromArrayChar(str));
}
return {
MessageBox: MessageBox,
Message: Message
}
}(Js, SelfScript.self);
var Tools = function (Js, JS, gl){
function CompileActiveTextWindow(){
gl.MessageBox(RTL$.strToArray("тодо Пока не реализовано"));
}
function EditActiveTextWindow(){
gl.MessageBox(RTL$.strToArray("тодо Пока не реализовано"));
}
return {
CompileActiveTextWindow: CompileActiveTextWindow,
EditActiveTextWindow: EditActiveTextWindow
}
}(Js, SelfScript.self, Global);