Вы можете использовать регулярное выражение для этого:
function isInteger(n) {
return (typeof n == 'number' && /^-?\d+$/.test(n+''));
}
Посмотрите исходный код Inno Setup . Он показывает маленькую точку в области желоба SynEdit для строк с исполняемым кодом, серые для строк, которые являются исполняемыми, но не были выполнены, зеленые для строк, которые были затронуты хотя бы один раз.
Код для этого может можно найти в CompForm.pas
, найдите тип TLineState
. Информация устанавливается в состоянии iscbNotifySuccess
обратного вызова компилятора, вы можете сделать то же самое в своей среде IDE. Возможно, вам потребуется адаптировать код для обработки нескольких исходных файлов, поскольку компилятор Inno Setup работает с фрагментами кода только в одном исходном файле.
В исходных кодах сценария Pascal вы должны взглянуть на TPSCustomDebugExec.
Я точно не знаю, как это происходит, но проект IDE в пакете PascalScript (находится в \ samples \ debug) может предлагать Step Into и Step Over (F7 и F8 ), поэтому логически он должен каким-то образом связать байт-код PS со строками кода сценария. Попробуйте изучить этот проект, чтобы увидеть, как он работает. В качестве бонуса он также использует SynEdit, поэтому идеи можно будет легко адаптировать к вашей собственной системе.