mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-22 08:48:20 +02:00

- add JcfUtils unit with almost empty implementation - replace usage of Jcl units with JcfUtils. - add lazarus project for console jcf application git-svn-id: trunk@16945 -
73 lines
1.5 KiB
ObjectPascal
73 lines
1.5 KiB
ObjectPascal
unit StatusMessageReceiver;
|
|
|
|
interface
|
|
{$I JcfGlobal.inc}
|
|
uses
|
|
ConvertTypes;
|
|
|
|
type
|
|
TStatusMesssageReceiver = class(TObject)
|
|
public
|
|
procedure OnReceiveStatusMessage(const psFile, psMessage: string;
|
|
const peMessageType: TStatusMessageType;
|
|
const piY, piX: integer);
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils;
|
|
|
|
{ An attempt at an emacs version }
|
|
procedure TStatusMesssageReceiver.OnReceiveStatusMessage(const psFile, psMessage: string;
|
|
const peMessageType: TStatusMessageType;
|
|
const piY, piX: integer);
|
|
var
|
|
lsPrefix: string;
|
|
lsMessage: string;
|
|
begin
|
|
case peMessageType of
|
|
mtException, mtInputError, mtParseError:
|
|
lsPrefix := 'Error';
|
|
mtCodeWarning:
|
|
lsPrefix := 'Warning';
|
|
end;
|
|
|
|
if (piX < 0) or (piY < 0) then
|
|
begin
|
|
// format with no line and col
|
|
lsMessage := Format('%s %s %s', [psFile, lsPrefix, psMessage]);
|
|
end
|
|
else
|
|
begin
|
|
// format with a line and col
|
|
lsMessage := Format('%s(%s,%s) %s %s',
|
|
[psFile, IntToStr(piY), IntToStr(piX), lsPrefix, psMessage]);
|
|
end;
|
|
|
|
WriteLn(lsMessage);
|
|
end;
|
|
|
|
{
|
|
procedure TStatusMesssageReceiver.OnReceiveStatusMessage(const psFile, psMessage: string;
|
|
const peMessageType: TStatusMessageType;
|
|
const piY, piX: integer);
|
|
var
|
|
lsMessage: string;
|
|
begin
|
|
if Pos(psFile, psMessage) = 0 then
|
|
lsMessage := psFile + ': ' + psMessage
|
|
else
|
|
lsMessage := psMessage;
|
|
|
|
if (piY >= 0) then
|
|
lsMessage := lsMessage + ' at line ' + IntToStr(piY);
|
|
if (piX >= 0) then
|
|
lsMessage := lsMessage + ' col ' + IntToStr(piX);
|
|
|
|
WriteLn(lsMessage);
|
|
end;
|
|
}
|
|
|
|
end.
|