mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-21 03:59:12 +02:00
IdeDebugger: ValueFormatter "Ordinal to name"
This commit is contained in:
parent
ee125ebe32
commit
85652d22ca
@ -111,7 +111,7 @@ type
|
||||
procedure DoFree; virtual;
|
||||
procedure ILazDbgIdeValueFormatterIntf.Free = DoFree;
|
||||
public
|
||||
constructor Create; // only call init, if overridden can be skipped if init is called directly
|
||||
constructor Create; // inherited Create may not be called => use init
|
||||
function FormatValue(AWatchValue: IWatchResultDataIntf;
|
||||
ADisplayFormat: TWatchDisplayFormat;
|
||||
AWatchResultPrinter: IWatchResultPrinter;
|
||||
|
@ -304,6 +304,10 @@
|
||||
<ResourceBaseClass Value="Frame"/>
|
||||
<ResourceBaseClassname Value=""/>
|
||||
</Item>
|
||||
<Item>
|
||||
<Filename Value="idedebuggervalueformatterordinaltoname.pas"/>
|
||||
<UnitName Value="IdeDebuggerValueFormatterOrdinalToName"/>
|
||||
</Item>
|
||||
</Files>
|
||||
<i18n>
|
||||
<EnableI18N Value="True"/>
|
||||
|
@ -22,7 +22,8 @@ uses
|
||||
IdeDebuggerValueFormatterSetup, IdeDebuggerValueFormatterCurrency, DisplayFormatConfigFrame,
|
||||
DisplayFormatDefaultsConfigFrame, IdeDebuggerDisplayFormats, IdeDebugger_DisplayFormat_Options,
|
||||
ProjectDebugLink, IdeDebuggerValueFormatterArrayOfCharToString,
|
||||
IdeDebuggerValueFormatterDisplayFormat, LazarusPackageIntf;
|
||||
IdeDebuggerValueFormatterDisplayFormat, IdeDebuggerValueFormatterOrdinalToName,
|
||||
LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -504,6 +504,7 @@ resourcestring
|
||||
|
||||
dbgDoNotShowThisMessageAgain = 'Do not ask again';
|
||||
optDispGutterCustomDisplayformat = 'Custom Display Format';
|
||||
dbgConvertOrdinalToName = 'Convert ordinal to name';
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -0,0 +1,34 @@
|
||||
object IdeDebuggerValueFormatterOrdinalToNameFrame: TIdeDebuggerValueFormatterOrdinalToNameFrame
|
||||
Left = 0
|
||||
Height = 240
|
||||
Top = 0
|
||||
Width = 320
|
||||
AutoSize = True
|
||||
ClientHeight = 240
|
||||
ClientWidth = 320
|
||||
TabOrder = 0
|
||||
DesignLeft = 327
|
||||
DesignTop = 67
|
||||
object Label1: TLabel
|
||||
Left = 3
|
||||
Height = 15
|
||||
Top = 3
|
||||
Width = 314
|
||||
Align = alTop
|
||||
BorderSpacing.Around = 3
|
||||
Caption = 'Label1'
|
||||
end
|
||||
object Memo1: TMemo
|
||||
Left = 3
|
||||
Height = 300
|
||||
Top = 21
|
||||
Width = 314
|
||||
Align = alClient
|
||||
BorderSpacing.Around = 3
|
||||
Constraints.MinHeight = 300
|
||||
Lines.Strings = (
|
||||
'Memo1'
|
||||
)
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
@ -0,0 +1,378 @@
|
||||
unit IdeDebuggerValueFormatterOrdinalToName;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, fgl, Forms, Controls, StdCtrls,
|
||||
// DebuggerIntf
|
||||
DbgIntfDebuggerBase, DbgIntfBaseTypes,
|
||||
// IdeIntf
|
||||
IdeDebuggerValueFormatterIntf, IdeDebuggerWatchValueIntf,
|
||||
// IdeDebugger
|
||||
IdeDebuggerStringConstants;
|
||||
|
||||
type
|
||||
|
||||
{ TIdeDebuggerValueFormatterOrdinalToNameFrame }
|
||||
|
||||
TIdeDebuggerValueFormatterOrdinalToNameFrame = class(TFrame, ILazDbgIdeValueFormatterSettingsFrameIntf)
|
||||
Label1: TLabel;
|
||||
Memo1: TMemo;
|
||||
private
|
||||
protected
|
||||
procedure ReadFrom(AFormatter: ILazDbgIdeValueFormatterIntf);
|
||||
function WriteTo(AFormatter: ILazDbgIdeValueFormatterIntf): Boolean;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
end;
|
||||
|
||||
{ TIdeDbgValueFormatterOrdinalToName }
|
||||
|
||||
TIdeDbgValueFormatterOrdinalToName = class( specialize TLazDbgIdeValueFormatterGeneric<TObject> )
|
||||
private type
|
||||
TNameMap = specialize TFPGMap<int64, AnsiString>;
|
||||
private
|
||||
FMapData: String;
|
||||
FNameMap: TNameMap;
|
||||
|
||||
procedure SetMapData(AValue: String);
|
||||
protected
|
||||
procedure Init; override;
|
||||
procedure Assign(AnOther: TObject); override;
|
||||
public
|
||||
destructor Destroy; override;
|
||||
class function GetRegisteredDisplayName: String;
|
||||
function FormatValue(AWatchValue: IWatchResultDataIntf;
|
||||
ADisplayFormat: TWatchDisplayFormat;
|
||||
AWatchResultPrinter: IWatchResultPrinter; out APrintedValue: String
|
||||
): Boolean; override;
|
||||
function FormatValue(aDBGType: TDBGType;
|
||||
aValue: string;
|
||||
ADisplayFormat: TWatchDisplayFormat;
|
||||
out APrintedValue: String
|
||||
): boolean; override;
|
||||
|
||||
function SupportedFeatures: TLazDbgIdeValFormatterFeatures; override;
|
||||
// function SupportedDataKinds: TWatchResultDataKinds; override;
|
||||
published
|
||||
property MapData: String read FMapData write SetMapData;
|
||||
end;
|
||||
|
||||
TIdeDbgValueFormatterRegistryOrdinalToName =
|
||||
specialize TLazDbgIdeValueFormatterFrameRegistryEntryGeneric<TIdeDbgValueFormatterOrdinalToName, TIdeDebuggerValueFormatterOrdinalToNameFrame>;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
{ TIdeDebuggerValueFormatterOrdinalToNameFrame }
|
||||
|
||||
procedure TIdeDebuggerValueFormatterOrdinalToNameFrame.ReadFrom(
|
||||
AFormatter: ILazDbgIdeValueFormatterIntf);
|
||||
var
|
||||
df: TIdeDbgValueFormatterOrdinalToName;
|
||||
begin
|
||||
df := TIdeDbgValueFormatterOrdinalToName(AFormatter.GetObject);
|
||||
|
||||
Memo1.Text := df.MapData;
|
||||
end;
|
||||
|
||||
function TIdeDebuggerValueFormatterOrdinalToNameFrame.WriteTo(
|
||||
AFormatter: ILazDbgIdeValueFormatterIntf): Boolean;
|
||||
var
|
||||
df: TIdeDbgValueFormatterOrdinalToName;
|
||||
begin
|
||||
df := TIdeDbgValueFormatterOrdinalToName(AFormatter.GetObject);
|
||||
|
||||
Result := TrimRight(df.MapData) <> TrimRight(Memo1.Text);
|
||||
df.MapData := TrimRight(Memo1.Text);
|
||||
end;
|
||||
|
||||
constructor TIdeDebuggerValueFormatterOrdinalToNameFrame.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
Label1.Caption := 'Enter mappings "name=123;"';
|
||||
end;
|
||||
|
||||
{ TIdeDbgValueFormatterOrdinalToName }
|
||||
|
||||
procedure TIdeDbgValueFormatterOrdinalToName.SetMapData(AValue: String);
|
||||
var
|
||||
p: PChar;
|
||||
l, i: integer;
|
||||
tk, tk2: String;
|
||||
add, n: Int64;
|
||||
|
||||
function SkipSpaceAndComment: boolean;
|
||||
begin
|
||||
while (l > 0) do begin
|
||||
while (l > 0) and ( (p^ = ' ') or (p^ = #9) ) do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
|
||||
if (p^ = '/') and (p[1] = '/') then begin
|
||||
while (l > 0) and (p^ <> #10) and (p^ <> #13) do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
exit(l>0);
|
||||
end;
|
||||
|
||||
if (p^ = '{') then begin
|
||||
while (l > 0) and (p^ <> '}') do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
if l > 0 then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
continue;
|
||||
end;
|
||||
|
||||
if (p^ = '(') and (p[1] = '*') then begin
|
||||
while (l > 0) and (p^ <> '*') and (p[1] <> ')') do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
if l > 0 then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
if l > 0 then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
continue;
|
||||
end;
|
||||
|
||||
break;
|
||||
end;
|
||||
Result := l>0;
|
||||
end;
|
||||
|
||||
function AtNewLine: boolean; inline;
|
||||
begin
|
||||
result := (l > 0) and ((p^ = #10) or (p^ = #13));
|
||||
while (l > 0) and ((p^ = #10) or (p^ = #13)) do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
end;
|
||||
|
||||
function SkipToNextLine: boolean;
|
||||
begin
|
||||
repeat
|
||||
if not SkipSpaceAndComment then
|
||||
break;
|
||||
while (l > 0) and
|
||||
not ( (p^ in [' ', #9, #10, #13, '{']) or ( (p^ = '/') and (p[1] = '/') ) or ((p^ = '(') and (p[1] = '*')) )
|
||||
do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
until (l=0) or AtNewLine;
|
||||
Result := l>0;
|
||||
end;
|
||||
|
||||
function AtEqual: boolean; inline;
|
||||
begin
|
||||
result := (l > 0) and (p^ = '=');
|
||||
if result then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetIdent: string;
|
||||
var
|
||||
s: PChar;
|
||||
begin
|
||||
result := '';
|
||||
if (l = 0) or not (p^ in ['a'..'z', 'A'..'Z', '_']) then
|
||||
exit;
|
||||
s := p;
|
||||
while (l > 0) and (p^ in ['a'..'z', 'A'..'Z', '_', '0'..'9']) do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
SetString(Result, s, p-s);
|
||||
end;
|
||||
|
||||
function GetNum(out ANum: Int64): boolean;
|
||||
var
|
||||
s: PChar;
|
||||
t: string;
|
||||
begin
|
||||
result := False;
|
||||
if (l > 0) and (p^ = '#') then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
|
||||
s := p;
|
||||
if (l > 0) and (p^ = '-') then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
if (l > 0) and (p^ in ['$', '%', '&']) then begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
|
||||
result := (l > 0) and (p^ in ['0'..'9', 'a'..'f', 'A'..'F']);
|
||||
if not Result then
|
||||
exit;
|
||||
|
||||
while (l > 0) and (p^ in ['0'..'9']) do begin
|
||||
inc(p);
|
||||
dec(l);
|
||||
end;
|
||||
SetString(t, s, p-s);
|
||||
Result := TryStrToInt64(t, ANum);
|
||||
end;
|
||||
|
||||
begin
|
||||
if FMapData = AValue then Exit;
|
||||
FMapData := AValue;
|
||||
|
||||
FNameMap.Clear;
|
||||
p := PChar(FMapData);
|
||||
l := Length(FMapData);
|
||||
while l > 0 do begin
|
||||
if not SkipSpaceAndComment then
|
||||
break;
|
||||
|
||||
if AtNewLine then
|
||||
continue;
|
||||
|
||||
tk := GetIdent;
|
||||
if tk = '' then begin
|
||||
SkipToNextLine;
|
||||
continue;
|
||||
end;
|
||||
|
||||
SkipSpaceAndComment;
|
||||
if not AtEqual then begin
|
||||
SkipToNextLine;
|
||||
continue;
|
||||
end;
|
||||
|
||||
SkipSpaceAndComment;
|
||||
tk2 := GetIdent;
|
||||
SkipSpaceAndComment;
|
||||
add := 0;
|
||||
if tk2 <> '' then begin
|
||||
if (l > 0) and (P^ = '+') then begin
|
||||
i := FNameMap.IndexOfData(tk2);
|
||||
if i < 0 then begin
|
||||
SkipToNextLine;
|
||||
continue;
|
||||
end;
|
||||
add := FNameMap.Keys[i];
|
||||
end
|
||||
else
|
||||
if (l = 0) or (P^ <> '(') then begin // not typecast
|
||||
SkipToNextLine;
|
||||
continue;
|
||||
end;
|
||||
inc(p);
|
||||
dec(l);
|
||||
if not SkipSpaceAndComment then
|
||||
continue;
|
||||
end;
|
||||
|
||||
if not GetNum(n) then begin
|
||||
SkipToNextLine;
|
||||
continue;
|
||||
end;
|
||||
n := n + add;
|
||||
|
||||
FNameMap.Add(n, tk);
|
||||
|
||||
SkipToNextLine;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure TIdeDbgValueFormatterOrdinalToName.Init;
|
||||
begin
|
||||
FNameMap := TNameMap.Create;
|
||||
inherited Init;
|
||||
end;
|
||||
|
||||
procedure TIdeDbgValueFormatterOrdinalToName.Assign(AnOther: TObject);
|
||||
var
|
||||
df: TIdeDbgValueFormatterOrdinalToName absolute AnOther;
|
||||
begin
|
||||
inherited Assign(AnOther);
|
||||
if AnOther is TIdeDbgValueFormatterOrdinalToName then begin
|
||||
MapData := df.FMapData;
|
||||
end;
|
||||
end;
|
||||
|
||||
destructor TIdeDbgValueFormatterOrdinalToName.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
FNameMap.Destroy;
|
||||
end;
|
||||
|
||||
class function TIdeDbgValueFormatterOrdinalToName.GetRegisteredDisplayName: String;
|
||||
begin
|
||||
Result := dbgConvertOrdinalToName;
|
||||
end;
|
||||
|
||||
function TIdeDbgValueFormatterOrdinalToName.FormatValue(AWatchValue: IWatchResultDataIntf;
|
||||
ADisplayFormat: TWatchDisplayFormat; AWatchResultPrinter: IWatchResultPrinter; out
|
||||
APrintedValue: String): Boolean;
|
||||
var
|
||||
c: Int64;
|
||||
i: Integer;
|
||||
begin
|
||||
Result := (AWatchValue.ValueKind in [rdkSignedNumVal, rdkUnsignedNumVal]);
|
||||
if not Result then
|
||||
exit;
|
||||
|
||||
c := AWatchValue.AsInt64;
|
||||
|
||||
i := FNameMap.IndexOf(c);
|
||||
if i < 0 then
|
||||
APrintedValue := IntToStr(c)
|
||||
else
|
||||
APrintedValue := FNameMap[c];
|
||||
end;
|
||||
|
||||
function TIdeDbgValueFormatterOrdinalToName.FormatValue(aDBGType: TDBGType; aValue: string;
|
||||
ADisplayFormat: TWatchDisplayFormat; out APrintedValue: String): boolean;
|
||||
var
|
||||
c: int64;
|
||||
i: Integer;
|
||||
begin
|
||||
Result := (aDBGType <> nil) and
|
||||
(aDBGType.Kind in [skSimple, skInteger, skCardinal]);
|
||||
if not Result then
|
||||
exit;
|
||||
if not TryStrToInt64(aValue, c) then
|
||||
exit(False);
|
||||
|
||||
i := FNameMap.IndexOf(c);
|
||||
if i < 0 then
|
||||
APrintedValue := IntToStr(c)
|
||||
else
|
||||
APrintedValue := FNameMap[c];
|
||||
end;
|
||||
|
||||
function TIdeDbgValueFormatterOrdinalToName.SupportedFeatures: TLazDbgIdeValFormatterFeatures;
|
||||
begin
|
||||
Result := [vffFormatValue, vffFormatOldValue, vffValueData];
|
||||
end;
|
||||
|
||||
initialization
|
||||
ValueFormatterRegistry.Add(TIdeDbgValueFormatterRegistryOrdinalToName);
|
||||
|
||||
end.
|
||||
|
@ -30,6 +30,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "اختر المجموعات الّتي تفعّل عند نقطة ايق
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "بعض المجموعات في قائمة تفعيل/تعطيل غير موجودة.%0:sعل يتم إنشاؤها؟%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -30,6 +30,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Vybrat skupiny, které se mají povolit při dosáhnutí bodu přerušen
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Některé skupiny v seznamu Povolené/Zakázané neexistují.%0:sMají se vytvořit?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Gruppen auswählen zum Aktivieren bei Haltepunkt"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Einige Gruppen in der Aktivierungsliste existieren nicht.%0:sErzeugen?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Seleccionar grupos para activar cuando salte punto de interrupción"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Algunos grupos en la lista Activar/Desactivar no existen.%0:s¿Crearlos?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Valitse sallittavat ryhmät, kun keskeytyskohta aktivoituu"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Joitain Salli/Estä listan ryhmiä ei ole.%0:sLuodaanko ne?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Sélectionner les groupes à activer dès le point d'arrêt atteint"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Certains groupes de la liste Activer/désactiver n'existent pas.%0:sFaut-il les créer ?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -30,6 +30,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Csoportok kijelölése, amelyek engedélyezve lesznek a töréspont elé
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Néhány csoport az Engedélyezés/Letiltás listában nem létezik.%0:sLétre legyenek hozva?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -30,6 +30,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Gruppi da abilitare quando è raggiunto il breakpoint"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Alcuni gruppi nella lista Abilita/Disabilita non esistono.%0:sCrearli?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "ブレークポイントのヒットを有効にするグループを選
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "有効/無効リストのグループのいくつかが存在しません。%0:s作成しますか?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Pažymėti grupes, kurios aktyvinamos pasiekus stabdos tašką"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Aktyvinimo/pasyvinimo sąraše yra neegzistuojančių grupių.%0:sJas sukurti?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -30,6 +30,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -31,6 +31,10 @@ msgstr "Wybierz grupy do włączenia, gdy punkt przerwania zostanie osiągnięty
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -27,6 +27,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -38,6 +38,10 @@ msgstr "Selecionar grupos à habilitar quando o ponto de parada for atingido"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Alguns grupos na lista Habilitar/Desabilitar não existem.%0:sCriá-los?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -37,6 +37,10 @@ msgstr "Выберите группы для включения при дост
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Некоторые группы в списке включения/отключения не существуют.%0:sСоздать их?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr "Больше не спрашивать"
|
||||
|
@ -37,6 +37,10 @@ msgstr ""
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -37,6 +37,10 @@ msgstr "Kesme noktasına gelindiğinde etkinleştirilecek grupları seç"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Etkin/Devre dışı listesindeki bazı gruplar mevcut değil.%0:sOluşturulsun mu?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -39,6 +39,10 @@ msgstr "Виберіть групи для ввімкнення при заді
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "Деякі групи в списку ввімкнення/вимкнення не існують.%0:sСтворити їх?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
@ -38,6 +38,10 @@ msgstr "选择组来启用 当断点被命中时"
|
||||
msgid "Some groups in the Enable/Disable list do not exist.%0:sCreate them?%0:s%0:s%1:s"
|
||||
msgstr "一些组在启用/禁用列表中不存在。%0:s创建它们吗?%0:s%0:s%1:s"
|
||||
|
||||
#: idedebuggerstringconstants.dbgconvertordinaltoname
|
||||
msgid "Convert ordinal to name"
|
||||
msgstr ""
|
||||
|
||||
#: idedebuggerstringconstants.dbgdonotshowthismessageagain
|
||||
msgid "Do not ask again"
|
||||
msgstr ""
|
||||
|
Loading…
Reference in New Issue
Block a user