lazarus/components/jcf2/CommandLine/StatusMessageReceiver.pas
paul 7c0a1d29a9 jcf:
- 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 -
2008-10-10 05:33:07 +00:00

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.