declare
var
clr:
any
;
declare
namespace
host {
function
lib(libname:
string
):
any
;
function
lib(libns:
any
, libname:
string
):
any
;
function
newComObj(progID:
string
, serverName?:
string
):
any
;
}
declare
namespace
hm {
const
version:
number
;
function
debuginfo(message?:
any
, ...optionalParams:
any
[]):
void
;
namespace
File {
interface
IEncoding {
readonly HmEncode:
number
;
readonly MsCodePage:
number
;
}
interface
IHidemaruStreamReader {
readonly FilePath:
string
;
readonly Encoding: IEncoding;
Read():
string
;
Close():
void
;
}
function
GetEncoding(filepath:
string
): IEncoding;
function
Open(filepath:
string
, hm_encode?:
number
): IHidemaruStreamReader;
}
namespace
Macro {
type TFnExpression = (f:
any
) =>
void
;
function
Eval(expression:
string
| TFnExpression): {
readonly Result:
number
;
readonly Message:
string
;
readonly Error: {
readonly Message:
string
;
}
};
interface
TVar {
(key:
string
):
number
|
string
;
(key:
string
, value:
any
):
void
;
[key:
string
]:
any
;
}
let
Var: TVar;
interface
IStatementResult {
Result :
number
;
Args: object[];
Error: { readonly Message:
string
};
Message:
string
;
}
let
Statement:
any
;
interface
IFunctionResult {
Result :
number
|
string
;
Args: object[];
Error: { readonly Message:
string
};
Message:
string
;
}
let
Function:
any
;
}
namespace
Edit {
let
TotalText:
string
;
let
SelectedText:
string
;
let
LineText:
string
;
const
CursorPos: {
readonly column:
number
;
readonly lineno:
number
;
};
const
MousePos: {
readonly column:
number
;
readonly lineno:
number
;
readonly x:
number
;
readonly y:
number
;
};
}
namespace
OutputPane {
function
Output(message:
string
):
number
;
function
Push():
number
;
function
Pop():
number
;
function
Clear():
number
;
function
SendMessage(command_id:
number
):
number
;
function
SetBaseDir(dirpath:
string
):
number
;
}
namespace
ExplorerPane {
function
SetMode(mode:
number
):
number
;
function
GetMode():
number
;
function
LoadProject(filename:
string
):
number
;
function
SaveProject(filename:
string
):
number
;
function
GetProject():
string
;
function
SendMessage(command_id:
number
):
number
;
function
GetUpdated():
number
;
function
GetCurrentDir():
string
;
}
}
interface
Console {
assert(test?: boolean, message?:
string
, ...optionalParams:
any
[]):
void
;
log(message?:
any
, ...optionalParams:
any
[]):
void
;
}
declare
var
console: Console;