codetools: AddLocalVariable: insert in front of MaxPos

git-svn-id: trunk@30892 -
This commit is contained in:
mattias 2011-05-24 21:42:15 +00:00
parent fee523b4c5
commit 3ce75c3558
8 changed files with 309 additions and 41 deletions

View File

@ -177,7 +177,8 @@ type
function AddLocalVariable(CleanCursorPos: integer; OldTopLine: integer; function AddLocalVariable(CleanCursorPos: integer; OldTopLine: integer;
VariableName, VariableType, VariableTypeUnitName: string; VariableName, VariableType, VariableTypeUnitName: string;
out NewPos: TCodeXYPosition; out NewTopLine: integer; out NewPos: TCodeXYPosition; out NewTopLine: integer;
SourceChangeCache: TSourceChangeCache): boolean; SourceChangeCache: TSourceChangeCache;
MaxCleanPos: integer = 0): boolean;
procedure AdjustCursor(OldCodePos: TCodePosition; OldTopLine: integer; procedure AdjustCursor(OldCodePos: TCodePosition; OldTopLine: integer;
out NewPos: TCodeXYPosition; out NewTopLine: integer); out NewPos: TCodeXYPosition; out NewTopLine: integer);
function AddVariable(CursorNode: TCodeTreeNode; function AddVariable(CursorNode: TCodeTreeNode;
@ -326,7 +327,7 @@ type
out NewExprType: TExpressionType; out NewType: string): boolean; // false = not at an identifier out NewExprType: TExpressionType; out NewType: string): boolean; // false = not at an identifier
function DeclareVariable(InsertPos: TCodeXYPosition; function DeclareVariable(InsertPos: TCodeXYPosition;
const VariableName, NewType, NewUnitName: string; const VariableName, NewType, NewUnitName: string;
Visibility: TCodeTreeNodeDesc; Visibility: TCodeTreeNodeDesc; MaxPos: TCodeXYPosition;
SourceChangeCache: TSourceChangeCache): boolean; SourceChangeCache: TSourceChangeCache): boolean;
// custom class completion // custom class completion
@ -969,11 +970,11 @@ begin
Result:=TermAtom.EndPos>TermAtom.StartPos; Result:=TermAtom.EndPos>TermAtom.StartPos;
end; end;
function TCodeCompletionCodeTool.AddLocalVariable( function TCodeCompletionCodeTool.AddLocalVariable(CleanCursorPos: integer;
CleanCursorPos: integer; OldTopLine: integer; OldTopLine: integer; VariableName, VariableType,
VariableName, VariableType, VariableTypeUnitName: string; VariableTypeUnitName: string; out NewPos: TCodeXYPosition;
out NewPos: TCodeXYPosition; out NewTopLine: integer; SourceChangeCache: TSourceChangeCache;
out NewTopLine: integer; SourceChangeCache: TSourceChangeCache): boolean; MaxCleanPos: integer): boolean;
var var
CursorNode, BeginNode, VarSectionNode, VarNode: TCodeTreeNode; CursorNode, BeginNode, VarSectionNode, VarNode: TCodeTreeNode;
Indent, InsertPos: integer; Indent, InsertPos: integer;
@ -1001,11 +1002,16 @@ begin
DebugLn('TCodeCompletionCodeTool.AddLocalVariable - Not in Begin Block'); DebugLn('TCodeCompletionCodeTool.AddLocalVariable - Not in Begin Block');
exit; exit;
end; end;
if MaxCleanPos<1 then MaxCleanPos:=SrcLen+1;
// find last 'var' section node // find last 'var' section node in front of MaxCleanPos
VarSectionNode:=BeginNode; VarSectionNode:=BeginNode;
while (VarSectionNode<>nil) and (VarSectionNode.Desc<>ctnVarSection) do while (VarSectionNode<>nil) do begin
if (VarSectionNode.Desc=ctnVarSection)
and (VarSectionNode.EndPos<=MaxCleanPos) then
break;
VarSectionNode:=VarSectionNode.PriorBrother; VarSectionNode:=VarSectionNode.PriorBrother;
end;
InsertTxt:=VariableName+':'+VariableType+';'; InsertTxt:=VariableName+':'+VariableType+';';
//DebugLn('TCodeCompletionCodeTool.AddLocalVariable C ',InsertTxt,' '); //DebugLn('TCodeCompletionCodeTool.AddLocalVariable C ',InsertTxt,' ');
@ -1013,6 +1019,7 @@ begin
if (VarSectionNode<>nil) and (VarSectionNode.FirstChild<>nil) then begin if (VarSectionNode<>nil) and (VarSectionNode.FirstChild<>nil) then begin
// there is already a var section // there is already a var section
// -> append variable // -> append variable
//debugln(['TCodeCompletionCodeTool.AddLocalVariable insert into existing var section']);
VarNode:=VarSectionNode.FirstChild; VarNode:=VarSectionNode.FirstChild;
// search last variable in var section // search last variable in var section
while (VarNode.NextBrother<>nil) do while (VarNode.NextBrother<>nil) do
@ -1024,11 +1031,40 @@ begin
end else begin end else begin
// there is no var section yet // there is no var section yet
// -> create a new var section and append variable // -> create a new var section and append variable
Indent:=GetLineIndent(Src,BeginNode.StartPos); if BeginNode.StartPos>MaxCleanPos then begin
Node:=BeginNode;
while (Node<>nil) and (not (Node.Desc in AllDefinitionSections)) do
Node:=Node.PriorBrother;
if Node<>nil then begin
// there is a type/const section in front
// => put the var section below
//debugln(['TCodeCompletionCodeTool.AddLocalVariable start a new var section below '+Node.DescAsString]);
InsertPos:=Node.EndPos;
Indent:=GetLineIndent(Src,Node.StartPos);
end else begin
// there is no var/type/const section in front
// => insert at first possible position
Node:=BeginNode.Parent.FirstChild;
if Node.Desc in [ctnProcedureHead,ctnUsesSection] then begin
// insert behind uses section / procedure header
//debugln(['TCodeCompletionCodeTool.AddLocalVariable start a new var section below '+Node.DescAsString]);
InsertPos:=Node.EndPos;
end else begin
// insert behind section keyword
//debugln(['TCodeCompletionCodeTool.AddLocalVariable start a new var section at start of '+BeginNode.Parent.DescAsString]);
InsertPos:=Node.StartPos;
end;
Indent:=GetLineIndent(Src,InsertPos);
end;
end else begin
// default: add the var section directly in front of the begin
//debugln(['TCodeCompletionCodeTool.AddLocalVariable start a new var section in front of begin block']);
InsertPos:=BeginNode.StartPos;
Indent:=GetLineIndent(Src,InsertPos);
end;
InsertTxt:='var'+SourceChangeCache.BeautifyCodeOptions.LineEnd InsertTxt:='var'+SourceChangeCache.BeautifyCodeOptions.LineEnd
+GetIndentStr(Indent+SourceChangeCache.BeautifyCodeOptions.Indent) +GetIndentStr(Indent+SourceChangeCache.BeautifyCodeOptions.Indent)
+InsertTxt; +InsertTxt;
InsertPos:=BeginNode.StartPos;
end; end;
// insert new code // insert new code
@ -5426,8 +5462,8 @@ end;
function TCodeCompletionCodeTool.DeclareVariable(InsertPos: TCodeXYPosition; function TCodeCompletionCodeTool.DeclareVariable(InsertPos: TCodeXYPosition;
const VariableName, NewType, NewUnitName: string; const VariableName, NewType, NewUnitName: string;
Visibility: TCodeTreeNodeDesc; SourceChangeCache: TSourceChangeCache Visibility: TCodeTreeNodeDesc; MaxPos: TCodeXYPosition;
): boolean; SourceChangeCache: TSourceChangeCache): boolean;
var var
CleanCursorPos: integer; CleanCursorPos: integer;
CursorNode: TCodeTreeNode; CursorNode: TCodeTreeNode;
@ -5435,24 +5471,28 @@ var
NewTopLine: integer; NewTopLine: integer;
Node: TCodeTreeNode; Node: TCodeTreeNode;
ClassPart: TNewClassPart; ClassPart: TNewClassPart;
MaxCleanPos: integer;
begin begin
Result:=false; Result:=false;
debugln(['TCodeCompletionCodeTool.DeclareVariable InsertPos=',dbgs(InsertPos),' Name="',VariableName,'" Type="',NewType,'" Unit=',NewUnitName]); debugln(['TCodeCompletionCodeTool.DeclareVariable InsertPos=',dbgs(InsertPos),' Name="',VariableName,'" Type="',NewType,'" Unit=',NewUnitName]);
BuildTreeAndGetCleanPos(InsertPos,CleanCursorPos); BuildTreeAndGetCleanPos(InsertPos,CleanCursorPos);
CursorNode:=FindDeepestNodeAtPos(CleanCursorPos,true); CursorNode:=FindDeepestNodeAtPos(CleanCursorPos,true);
CaretToCleanPos(MaxPos,MaxCleanPos);
SourceChangeCache.MainScanner:=Scanner; SourceChangeCache.MainScanner:=Scanner;
Node:=CursorNode; Node:=CursorNode;
while Node<>nil do begin while Node<>nil do begin
if Node.Desc=ctnBeginBlock then begin if Node.Desc=ctnBeginBlock then begin
// local variable // local variable
Result:=AddLocalVariable(Node.StartPos, 1, Result:=AddLocalVariable(Node.StartPos, 1,
VariableName,NewType,NewUnitName,NewPos,NewTopLine,SourceChangeCache); VariableName,NewType,NewUnitName,NewPos,NewTopLine,SourceChangeCache,
MaxCleanPos);
exit; exit;
end else if Node.Desc=ctnProcedure then begin end else if Node.Desc=ctnProcedure then begin
// local variable // local variable
if (Node.LastChild<>nil) and (Node.LastChild.Desc=ctnBeginBlock) then begin if (Node.LastChild<>nil) and (Node.LastChild.Desc=ctnBeginBlock) then begin
Result:=AddLocalVariable(Node.LastChild.StartPos, 1, Result:=AddLocalVariable(Node.LastChild.StartPos, 1,
VariableName,NewType,NewUnitName,NewPos,NewTopLine,SourceChangeCache); VariableName,NewType,NewUnitName,NewPos,NewTopLine,SourceChangeCache,
MaxCleanPos);
exit; exit;
end else end else
exit; exit;

View File

@ -517,7 +517,9 @@ type
out NewExprType: TExpressionType; out NewType: string): boolean; // false = not at an identifier or syntax error out NewExprType: TExpressionType; out NewType: string): boolean; // false = not at an identifier or syntax error
function DeclareVariable(Code: TCodeBuffer; X,Y: integer; function DeclareVariable(Code: TCodeBuffer; X,Y: integer;
const VariableName, NewType, NewUnitName: string; const VariableName, NewType, NewUnitName: string;
Visibility: TCodeTreeNodeDesc): boolean; Visibility: TCodeTreeNodeDesc;
MaxPosCode: TCodeBuffer = nil; MaxPosX: integer = 0; MaxPosY: integer = 0
): boolean;
function FindRedefinitions(Code: TCodeBuffer; function FindRedefinitions(Code: TCodeBuffer;
out TreeOfCodeTreeNodeExt: TAVLTree; WithEnums: boolean): boolean; out TreeOfCodeTreeNodeExt: TAVLTree; WithEnums: boolean): boolean;
function RemoveRedefinitions(Code: TCodeBuffer; function RemoveRedefinitions(Code: TCodeBuffer;
@ -3656,21 +3658,25 @@ end;
function TCodeToolManager.DeclareVariable(Code: TCodeBuffer; X, Y: integer; function TCodeToolManager.DeclareVariable(Code: TCodeBuffer; X, Y: integer;
const VariableName, NewType, NewUnitName: string; const VariableName, NewType, NewUnitName: string;
Visibility: TCodeTreeNodeDesc): boolean; Visibility: TCodeTreeNodeDesc; MaxPosCode: TCodeBuffer; MaxPosX: integer;
MaxPosY: integer): boolean;
var var
CursorPos: TCodeXYPosition; CursorPos, MaxPos: TCodeXYPosition;
begin begin
{$IFDEF CTDEBUG} {$IFDEF CTDEBUG}
DebugLn(['TCodeToolManager.DeclareVariable A ',Code.Filename,' X=',X,' Y=',Y]); DebugLn(['TCodeToolManager.DeclareVariable A ',Code.Filename,' X=',X,' Y=',Y]);
{$ENDIF} {$ENDIF}
Result:=false; Result:=false;
if not InitCurCodeTool(Code) then exit; if not InitCurCodeTool(Code) then exit;
CursorPos.Code:=Code;
CursorPos.X:=X; CursorPos.X:=X;
CursorPos.Y:=Y; CursorPos.Y:=Y;
CursorPos.Code:=Code; MaxPos.Code:=MaxPosCode;
MaxPos.X:=MaxPosX;
MaxPos.Y:=MaxPosY;
try try
Result:=FCurCodeTool.DeclareVariable(CursorPos,VariableName, Result:=FCurCodeTool.DeclareVariable(CursorPos,VariableName,
NewType,NewUnitName,Visibility,SourceChangeCache); NewType,NewUnitName,Visibility,MaxPos,SourceChangeCache);
except except
on e: Exception do Result:=HandleException(e); on e: Exception do Result:=HandleException(e);
end; end;

View File

@ -48,6 +48,7 @@ resourcestring
crsUnits = 'Units'; crsUnits = 'Units';
crsLinkedFiles = 'Linked files'; crsLinkedFiles = 'Linked files';
crsType = 'Type'; crsType = 'Type';
crsWhere = 'Where';
crsFile = 'File'; crsFile = 'File';
crsFlags = 'Flags'; crsFlags = 'Flags';
crsPackage = 'Package'; crsPackage = 'Package';
@ -78,9 +79,21 @@ resourcestring
crsRemoveWithBlock = 'Remove With block'; crsRemoveWithBlock = 'Remove With block';
crsCWError = 'Error'; crsCWError = 'Error';
crsPleaseSpecifyAType = 'Please specify a type';
crsPleaseSpecifyALocation = 'Please specify a location';
crsPleasePlaceTheCursorOfTheSourceEditorAtAnIdentifie = 'Please place the ' crsPleasePlaceTheCursorOfTheSourceEditorAtAnIdentifie = 'Please place the '
+'cursor of the source editor at an identifier in a statement.%sFor ' +'cursor of the source editor at an identifier in a statement.%sFor '
+'example:%sMyVar:=3;'; +'example:%sMyVar:=3;';
crsDeclareVariable3 = 'Declare variable "%s"';
crsAlreadyDefined = 'Already defined';
crsLocalVariableOf = 'Local variable of %s';
crsAlreadyDefinedAt = 'Already defined at %s';
crsPrivate = 'Private';
crsProtected = 'Protected';
crsPublic = 'Public';
crsPublished = 'Published';
crsMemberOf = '%s member of %s %s';
crsTheIdentifierIsAlreadyDefined = 'The identifier "%s" is already defined.';
crsCWPleasePlaceTheCursorOfTheSourceEditorOnAWithVariab = 'Please place the ' crsCWPleasePlaceTheCursorOfTheSourceEditorOnAWithVariab = 'Please place the '
+'cursor of the source editor on a With variable.'; +'cursor of the source editor on a With variable.';

View File

@ -30,8 +30,6 @@
- guess parameter - guess parameter
- guess j:=<i> - guess j:=<i>
- Extend uses section when adding to a class - Extend uses section when adding to a class
- Fix bug: adding types with comments
- Fix bug: insert at beginning of proc, if identifier is in sub proc
- Target implementation - Target implementation
- Target interface - Target interface
- Target program - Target program
@ -206,9 +204,6 @@ end;
procedure TCodyDeclareVarDialog.FormCreate(Sender: TObject); procedure TCodyDeclareVarDialog.FormCreate(Sender: TObject);
begin begin
Targets:=TObjectList.create(true); Targets:=TObjectList.create(true);
Caption:='Declare a new variable';
WhereRadioGroup.Caption:='Where';
TypeEdit.Caption:='Type';
ButtonPanel1.OKButton.OnClick:=@OKButtonClick; ButtonPanel1.OKButton.OnClick:=@OKButtonClick;
ButtonPanel1.HelpButton.OnClick:=@HelpButtonClick; ButtonPanel1.HelpButton.OnClick:=@HelpButtonClick;
end; end;
@ -219,7 +214,7 @@ var
begin begin
NewType:=Trim(TypeEdit.Text); NewType:=Trim(TypeEdit.Text);
if NewType='' then begin if NewType='' then begin
IDEMessageDialog('Error','Please specify a type',mtError,[mbCancel]); IDEMessageDialog(crsCWError, crsPleaseSpecifyAType, mtError, [mbCancel]);
exit; exit;
end; end;
if CompareTextIgnoringSpace(NewType,RecommendedType,false)<>0 then begin if CompareTextIgnoringSpace(NewType,RecommendedType,false)<>0 then begin
@ -227,7 +222,8 @@ begin
UnitOfType:=''; UnitOfType:='';
end; end;
if WhereRadioGroup.ItemIndex<0 then begin if WhereRadioGroup.ItemIndex<0 then begin
IDEMessageDialog('Error','Please specify a location',mtError,[mbCancel]); IDEMessageDialog(crsCWError, crsPleaseSpecifyALocation, mtError, [mbCancel
]);
exit; exit;
end; end;
ModalResult:=mrOk; ModalResult:=mrOk;
@ -251,16 +247,16 @@ function TCodyDeclareVarDialog.Run: boolean;
s: String; s: String;
begin begin
case Visibility of case Visibility of
ctnClassPrivate: s:='Private'; ctnClassPrivate: s:=crsPrivate;
ctnClassProtected: s:='Protected'; ctnClassProtected: s:=crsProtected;
ctnClassPublic: s:='Public'; ctnClassPublic: s:=crsPublic;
ctnClassPublished: s:='Published'; ctnClassPublished: s:=crsPublished;
else exit; else exit;
end; end;
Target:=TCodyDeclareVarTarget.Create(Context); Target:=TCodyDeclareVarTarget.Create(Context);
Target.Visibility:=Visibility; Target.Visibility:=Visibility;
s:=s+' member of '+Context.Node.DescAsString+' '+ s:=Format(crsMemberOf, [s, Context.Node.DescAsString, Context.Tool.
Context.Tool.ExtractClassName(Context.Node,false,true); ExtractClassName(Context.Node, false, true)]);
Target.Caption:=s; Target.Caption:=s;
Targets.Add(Target); Targets.Add(Target);
end; end;
@ -285,8 +281,9 @@ begin
if ExistingDefinition.Node<>nil then begin if ExistingDefinition.Node<>nil then begin
RedefineLabel.Visible:=true; RedefineLabel.Visible:=true;
RedefineLabel.Caption:='Already defined at '+ExistingDefinition.Tool.CleanPosToRelativeStr( RedefineLabel.Caption:=Format(crsAlreadyDefinedAt, [ExistingDefinition.
ExistingDefinition.Node.StartPos,CodePos.Code.Filename); Tool.CleanPosToRelativeStr(
ExistingDefinition.Node.StartPos, CodePos.Code.Filename)]);
end else begin end else begin
RedefineLabel.Visible:=false; RedefineLabel.Visible:=false;
end; end;
@ -296,7 +293,8 @@ begin
Context:=PFindContext(PossibleContexts[i])^; Context:=PFindContext(PossibleContexts[i])^;
if Context.Node.Desc=ctnProcedure then begin if Context.Node.Desc=ctnProcedure then begin
Target:=TCodyDeclareVarTarget.Create(Context); Target:=TCodyDeclareVarTarget.Create(Context);
Target.Caption:='Local variable of '+Context.Tool.ExtractProcName(Context.Node,[]); Target.Caption:=Format(crsLocalVariableOf, [Context.Tool.
ExtractProcName(Context.Node, [])]);
Targets.Add(Target); Targets.Add(Target);
end else if Context.Node.Desc in AllClassObjects then begin end else if Context.Node.Desc in AllClassObjects then begin
AddClassTarget(Context,ctnClassPrivate); AddClassTarget(Context,ctnClassPrivate);
@ -311,15 +309,17 @@ begin
end; end;
if Targets.Count=0 then begin if Targets.Count=0 then begin
IDEMessageDialog('Already defined', IDEMessageDialog(crsAlreadyDefined,
'The identifier "'+Identifier+'" is already defined.',mtError,[mbCancel]); Format(crsTheIdentifierIsAlreadyDefined, [Identifier]), mtError, [mbCancel
]);
exit; exit;
end; end;
Caption:='Declare variable "'+Identifier+'"'; Caption:=Format(crsDeclareVariable3, [Identifier]);
TypeLabel.Caption:='Type'; TypeLabel.Caption:=crsType;
TypeEdit.Text:=RecommendedType; TypeEdit.Text:=RecommendedType;
WhereRadioGroup.Caption:=crsWhere;
for i:=0 to Targets.Count-1 do begin for i:=0 to Targets.Count-1 do begin
Target:=TCodyDeclareVarTarget(Targets[i]); Target:=TCodyDeclareVarTarget(Targets[i]);
WhereRadioGroup.Items.Add(Target.Caption); WhereRadioGroup.Items.Add(Target.Caption);
@ -339,7 +339,8 @@ begin
LazarusIDE.OpenEditorsOnCodeToolChange:=true; LazarusIDE.OpenEditorsOnCodeToolChange:=true;
if not CodeToolBoss.DeclareVariable(Target.NodeStartPos.Code, if not CodeToolBoss.DeclareVariable(Target.NodeStartPos.Code,
Target.NodeStartPos.X,Target.NodeStartPos.Y, Target.NodeStartPos.X,Target.NodeStartPos.Y,
Identifier,NewType,UnitOfType,Target.Visibility) Identifier,NewType,UnitOfType,Target.Visibility,
CodePos.Code,CodePos.X,CodePos.Y)
then begin then begin
debugln(['TCodyDeclareVarDialog.Run Error']); debugln(['TCodyDeclareVarDialog.Run Error']);
LazarusIDE.DoJumpToCodeToolBossError; LazarusIDE.DoJumpToCodeToolBossError;

View File

@ -22,6 +22,14 @@ msgstr ""
msgid "Add call inherited" msgid "Add call inherited"
msgstr "" msgstr ""
#: codystrconsts.crsalreadydefined
msgid "Already defined"
msgstr ""
#: codystrconsts.crsalreadydefinedat
msgid "Already defined at %s"
msgstr ""
#: codystrconsts.crsbtncancel #: codystrconsts.crsbtncancel
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@ -182,6 +190,10 @@ msgstr ""
msgid "Declare Variable ..." msgid "Declare Variable ..."
msgstr "" msgstr ""
#: codystrconsts.crsdeclarevariable3
msgid "Declare variable \"%s\""
msgstr ""
#: codystrconsts.crsfile #: codystrconsts.crsfile
msgid "File" msgid "File"
msgstr "" msgstr ""
@ -214,6 +226,10 @@ msgstr "Kbyte"
msgid "Linked files" msgid "Linked files"
msgstr "" msgstr ""
#: codystrconsts.crslocalvariableof
msgid "Local variable of %s"
msgstr ""
#: codystrconsts.crsmainsourcefile #: codystrconsts.crsmainsourcefile
msgid "Main source file: %s" msgid "Main source file: %s"
msgstr "File sorgente principale: %s" msgstr "File sorgente principale: %s"
@ -222,6 +238,10 @@ msgstr "File sorgente principale: %s"
msgid "Mbytes" msgid "Mbytes"
msgstr "Mbyte" msgstr "Mbyte"
#: codystrconsts.crsmemberof
msgid "%s member of %s %s"
msgstr ""
#: codystrconsts.crsmissing #: codystrconsts.crsmissing
msgid "missing ..." msgid "missing ..."
msgstr "mancante..." msgstr "mancante..."
@ -262,6 +282,14 @@ msgstr "Aprire un progetto prima."
msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;" msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;"
msgstr "" msgstr ""
#: codystrconsts.crspleasespecifyalocation
msgid "Please specify a location"
msgstr ""
#: codystrconsts.crspleasespecifyatype
msgid "Please specify a type"
msgstr ""
#: codystrconsts.crsppu #: codystrconsts.crsppu
msgid "PPU: %s" msgid "PPU: %s"
msgstr "" msgstr ""
@ -270,6 +298,10 @@ msgstr ""
msgid "PPU files of project \"%s\"" msgid "PPU files of project \"%s\""
msgstr "File PPU del progetto \"%s\"" msgstr "File PPU del progetto \"%s\""
#: codystrconsts.crsprivate
msgid "Private"
msgstr ""
#: codystrconsts.crsprojecthasnomainsourcefile #: codystrconsts.crsprojecthasnomainsourcefile
msgid "Project has no main source file." msgid "Project has no main source file."
msgstr "Il progetto non ha un sorgente principale." msgstr "Il progetto non ha un sorgente principale."
@ -278,6 +310,18 @@ msgstr "Il progetto non ha un sorgente principale."
msgid "Project output" msgid "Project output"
msgstr "Output del progetto" msgstr "Output del progetto"
#: codystrconsts.crsprotected
msgid "Protected"
msgstr ""
#: codystrconsts.crspublic
msgid "Public"
msgstr ""
#: codystrconsts.crspublished
msgid "Published"
msgstr ""
#: codystrconsts.crsrefresh #: codystrconsts.crsrefresh
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr ""
@ -316,6 +360,10 @@ msgstr "Dimensione del file .ppu"
msgid "Source: %s" msgid "Source: %s"
msgstr "Sorgente: %s" msgstr "Sorgente: %s"
#: codystrconsts.crstheidentifierisalreadydefined
msgid "The identifier \"%s\" is already defined."
msgstr ""
#: codystrconsts.crstotal #: codystrconsts.crstotal
msgid "Total" msgid "Total"
msgstr "Totale" msgstr "Totale"
@ -360,6 +408,10 @@ msgstr ""
msgid "Virtual unit" msgid "Virtual unit"
msgstr "Unit virtuale" msgstr "Unit virtuale"
#: codystrconsts.crswhere
msgid "Where"
msgstr ""
#: codystrconsts.liscogeneral #: codystrconsts.liscogeneral
msgid "General" msgid "General"
msgstr "Generale" msgstr "Generale"

View File

@ -13,6 +13,14 @@ msgstr ""
msgid "Add call inherited" msgid "Add call inherited"
msgstr "" msgstr ""
#: codystrconsts.crsalreadydefined
msgid "Already defined"
msgstr ""
#: codystrconsts.crsalreadydefinedat
msgid "Already defined at %s"
msgstr ""
#: codystrconsts.crsbtncancel #: codystrconsts.crsbtncancel
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
@ -173,6 +181,10 @@ msgstr ""
msgid "Declare Variable ..." msgid "Declare Variable ..."
msgstr "" msgstr ""
#: codystrconsts.crsdeclarevariable3
msgid "Declare variable \"%s\""
msgstr ""
#: codystrconsts.crsfile #: codystrconsts.crsfile
msgid "File" msgid "File"
msgstr "" msgstr ""
@ -205,6 +217,10 @@ msgstr ""
msgid "Linked files" msgid "Linked files"
msgstr "" msgstr ""
#: codystrconsts.crslocalvariableof
msgid "Local variable of %s"
msgstr ""
#: codystrconsts.crsmainsourcefile #: codystrconsts.crsmainsourcefile
msgid "Main source file: %s" msgid "Main source file: %s"
msgstr "" msgstr ""
@ -213,6 +229,10 @@ msgstr ""
msgid "Mbytes" msgid "Mbytes"
msgstr "" msgstr ""
#: codystrconsts.crsmemberof
msgid "%s member of %s %s"
msgstr ""
#: codystrconsts.crsmissing #: codystrconsts.crsmissing
msgid "missing ..." msgid "missing ..."
msgstr "" msgstr ""
@ -253,6 +273,14 @@ msgstr ""
msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;" msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;"
msgstr "" msgstr ""
#: codystrconsts.crspleasespecifyalocation
msgid "Please specify a location"
msgstr ""
#: codystrconsts.crspleasespecifyatype
msgid "Please specify a type"
msgstr ""
#: codystrconsts.crsppu #: codystrconsts.crsppu
msgid "PPU: %s" msgid "PPU: %s"
msgstr "" msgstr ""
@ -261,6 +289,10 @@ msgstr ""
msgid "PPU files of project \"%s\"" msgid "PPU files of project \"%s\""
msgstr "" msgstr ""
#: codystrconsts.crsprivate
msgid "Private"
msgstr ""
#: codystrconsts.crsprojecthasnomainsourcefile #: codystrconsts.crsprojecthasnomainsourcefile
msgid "Project has no main source file." msgid "Project has no main source file."
msgstr "" msgstr ""
@ -269,6 +301,18 @@ msgstr ""
msgid "Project output" msgid "Project output"
msgstr "" msgstr ""
#: codystrconsts.crsprotected
msgid "Protected"
msgstr ""
#: codystrconsts.crspublic
msgid "Public"
msgstr ""
#: codystrconsts.crspublished
msgid "Published"
msgstr ""
#: codystrconsts.crsrefresh #: codystrconsts.crsrefresh
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr ""
@ -305,6 +349,10 @@ msgstr ""
msgid "Source: %s" msgid "Source: %s"
msgstr "" msgstr ""
#: codystrconsts.crstheidentifierisalreadydefined
msgid "The identifier \"%s\" is already defined."
msgstr ""
#: codystrconsts.crstotal #: codystrconsts.crstotal
msgid "Total" msgid "Total"
msgstr "" msgstr ""
@ -349,6 +397,10 @@ msgstr ""
msgid "Virtual unit" msgid "Virtual unit"
msgstr "" msgstr ""
#: codystrconsts.crswhere
msgid "Where"
msgstr ""
#: codystrconsts.liscogeneral #: codystrconsts.liscogeneral
msgid "General" msgid "General"
msgstr "" msgstr ""

View File

@ -21,6 +21,14 @@ msgstr "Adicionar método \"Assign\" ..."
msgid "Add call inherited" msgid "Add call inherited"
msgstr "Adicionar chamada \"inherited\"" msgstr "Adicionar chamada \"inherited\""
#: codystrconsts.crsalreadydefined
msgid "Already defined"
msgstr ""
#: codystrconsts.crsalreadydefinedat
msgid "Already defined at %s"
msgstr ""
#: codystrconsts.crsbtncancel #: codystrconsts.crsbtncancel
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
@ -181,6 +189,10 @@ msgstr "Declarar Variável"
msgid "Declare Variable ..." msgid "Declare Variable ..."
msgstr "Declarar Variável ..." msgstr "Declarar Variável ..."
#: codystrconsts.crsdeclarevariable3
msgid "Declare variable \"%s\""
msgstr ""
#: codystrconsts.crsfile #: codystrconsts.crsfile
msgid "File" msgid "File"
msgstr "" msgstr ""
@ -213,6 +225,10 @@ msgstr "kbytes"
msgid "Linked files" msgid "Linked files"
msgstr "" msgstr ""
#: codystrconsts.crslocalvariableof
msgid "Local variable of %s"
msgstr ""
#: codystrconsts.crsmainsourcefile #: codystrconsts.crsmainsourcefile
msgid "Main source file: %s" msgid "Main source file: %s"
msgstr "Arquivo fonte principal: %s" msgstr "Arquivo fonte principal: %s"
@ -221,6 +237,10 @@ msgstr "Arquivo fonte principal: %s"
msgid "Mbytes" msgid "Mbytes"
msgstr "Mbytes" msgstr "Mbytes"
#: codystrconsts.crsmemberof
msgid "%s member of %s %s"
msgstr ""
#: codystrconsts.crsmissing #: codystrconsts.crsmissing
msgid "missing ..." msgid "missing ..."
msgstr "faltando ..." msgstr "faltando ..."
@ -261,6 +281,14 @@ msgstr "Favor abrir um projeto primeiro."
msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;" msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;"
msgstr "" msgstr ""
#: codystrconsts.crspleasespecifyalocation
msgid "Please specify a location"
msgstr ""
#: codystrconsts.crspleasespecifyatype
msgid "Please specify a type"
msgstr ""
#: codystrconsts.crsppu #: codystrconsts.crsppu
msgid "PPU: %s" msgid "PPU: %s"
msgstr "PPU: %s" msgstr "PPU: %s"
@ -269,6 +297,10 @@ msgstr "PPU: %s"
msgid "PPU files of project \"%s\"" msgid "PPU files of project \"%s\""
msgstr "Arquivos PPU do projeto \"%s\"" msgstr "Arquivos PPU do projeto \"%s\""
#: codystrconsts.crsprivate
msgid "Private"
msgstr ""
#: codystrconsts.crsprojecthasnomainsourcefile #: codystrconsts.crsprojecthasnomainsourcefile
msgid "Project has no main source file." msgid "Project has no main source file."
msgstr "Projeto não tem arquivo fonte principal." msgstr "Projeto não tem arquivo fonte principal."
@ -277,6 +309,18 @@ msgstr "Projeto não tem arquivo fonte principal."
msgid "Project output" msgid "Project output"
msgstr "Saída do Projeto" msgstr "Saída do Projeto"
#: codystrconsts.crsprotected
msgid "Protected"
msgstr ""
#: codystrconsts.crspublic
msgid "Public"
msgstr ""
#: codystrconsts.crspublished
msgid "Published"
msgstr ""
#: codystrconsts.crsrefresh #: codystrconsts.crsrefresh
msgid "Refresh" msgid "Refresh"
msgstr "" msgstr ""
@ -314,6 +358,10 @@ msgstr "Tamanho do arquivo .ppu"
msgid "Source: %s" msgid "Source: %s"
msgstr "Fonte: %s" msgstr "Fonte: %s"
#: codystrconsts.crstheidentifierisalreadydefined
msgid "The identifier \"%s\" is already defined."
msgstr ""
#: codystrconsts.crstotal #: codystrconsts.crstotal
msgid "Total" msgid "Total"
msgstr "Total" msgstr "Total"
@ -358,6 +406,10 @@ msgstr "\"Uses\""
msgid "Virtual unit" msgid "Virtual unit"
msgstr "Unidade Virtual" msgstr "Unidade Virtual"
#: codystrconsts.crswhere
msgid "Where"
msgstr ""
#: codystrconsts.liscogeneral #: codystrconsts.liscogeneral
msgid "General" msgid "General"
msgstr "Geral" msgstr "Geral"

View File

@ -21,6 +21,14 @@ msgstr "Добавить метод Assign ..."
msgid "Add call inherited" msgid "Add call inherited"
msgstr "Добавить вызов унаследованного метода" msgstr "Добавить вызов унаследованного метода"
#: codystrconsts.crsalreadydefined
msgid "Already defined"
msgstr ""
#: codystrconsts.crsalreadydefinedat
msgid "Already defined at %s"
msgstr ""
#: codystrconsts.crsbtncancel #: codystrconsts.crsbtncancel
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
@ -181,6 +189,10 @@ msgstr "Объявить переменную"
msgid "Declare Variable ..." msgid "Declare Variable ..."
msgstr "Объявить переменную ..." msgstr "Объявить переменную ..."
#: codystrconsts.crsdeclarevariable3
msgid "Declare variable \"%s\""
msgstr ""
#: codystrconsts.crsfile #: codystrconsts.crsfile
msgid "File" msgid "File"
msgstr "Файл" msgstr "Файл"
@ -213,6 +225,10 @@ msgstr "кБ"
msgid "Linked files" msgid "Linked files"
msgstr "Скомпонованные файлы" msgstr "Скомпонованные файлы"
#: codystrconsts.crslocalvariableof
msgid "Local variable of %s"
msgstr ""
#: codystrconsts.crsmainsourcefile #: codystrconsts.crsmainsourcefile
msgid "Main source file: %s" msgid "Main source file: %s"
msgstr "Главный файл исходного кода: %s" msgstr "Главный файл исходного кода: %s"
@ -221,6 +237,10 @@ msgstr "Главный файл исходного кода: %s"
msgid "Mbytes" msgid "Mbytes"
msgstr "МБ" msgstr "МБ"
#: codystrconsts.crsmemberof
msgid "%s member of %s %s"
msgstr ""
#: codystrconsts.crsmissing #: codystrconsts.crsmissing
msgid "missing ..." msgid "missing ..."
msgstr "отсутствует ..." msgstr "отсутствует ..."
@ -262,6 +282,14 @@ msgstr "Сначала необходимо открыть проект."
msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;" msgid "Please place the cursor of the source editor at an identifier in a statement.%sFor example:%sMyVar:=3;"
msgstr "Расположите курсор редактора исходного кода на идентификаторе в операторе.%sНапример:%sMyVar:=3;" msgstr "Расположите курсор редактора исходного кода на идентификаторе в операторе.%sНапример:%sMyVar:=3;"
#: codystrconsts.crspleasespecifyalocation
msgid "Please specify a location"
msgstr ""
#: codystrconsts.crspleasespecifyatype
msgid "Please specify a type"
msgstr ""
#: codystrconsts.crsppu #: codystrconsts.crsppu
msgid "PPU: %s" msgid "PPU: %s"
msgstr "PPU: %s" msgstr "PPU: %s"
@ -270,6 +298,10 @@ msgstr "PPU: %s"
msgid "PPU files of project \"%s\"" msgid "PPU files of project \"%s\""
msgstr "Файлы PPU проекта \"%s\"" msgstr "Файлы PPU проекта \"%s\""
#: codystrconsts.crsprivate
msgid "Private"
msgstr ""
#: codystrconsts.crsprojecthasnomainsourcefile #: codystrconsts.crsprojecthasnomainsourcefile
msgid "Project has no main source file." msgid "Project has no main source file."
msgstr "В проекте отсутствует главный файл исходного кода." msgstr "В проекте отсутствует главный файл исходного кода."
@ -278,6 +310,18 @@ msgstr "В проекте отсутствует главный файл исх
msgid "Project output" msgid "Project output"
msgstr "Вывод проекта" msgstr "Вывод проекта"
#: codystrconsts.crsprotected
msgid "Protected"
msgstr ""
#: codystrconsts.crspublic
msgid "Public"
msgstr ""
#: codystrconsts.crspublished
msgid "Published"
msgstr ""
#: codystrconsts.crsrefresh #: codystrconsts.crsrefresh
msgid "Refresh" msgid "Refresh"
msgstr "Обновить" msgstr "Обновить"
@ -315,6 +359,10 @@ msgstr "Размер файла .ppu"
msgid "Source: %s" msgid "Source: %s"
msgstr "Файл исходного кода: %s" msgstr "Файл исходного кода: %s"
#: codystrconsts.crstheidentifierisalreadydefined
msgid "The identifier \"%s\" is already defined."
msgstr ""
#: codystrconsts.crstotal #: codystrconsts.crstotal
msgid "Total" msgid "Total"
msgstr "Всего" msgstr "Всего"
@ -359,6 +407,10 @@ msgstr "Использует"
msgid "Virtual unit" msgid "Virtual unit"
msgstr "Виртуальный модуль" msgstr "Виртуальный модуль"
#: codystrconsts.crswhere
msgid "Where"
msgstr ""
#: codystrconsts.liscogeneral #: codystrconsts.liscogeneral
msgid "General" msgid "General"
msgstr "Общие" msgstr "Общие"