mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 05:59:30 +02:00
find declaration now supports class interfaces
git-svn-id: trunk@3144 -
This commit is contained in:
parent
82870643ca
commit
6c2a71138f
@ -631,14 +631,14 @@ function TCodeCompletionCodeTool.CompleteProperty(
|
|||||||
property Items[Index1, Index2: integer]: integer read GetItems; default;
|
property Items[Index1, Index2: integer]: integer read GetItems; default;
|
||||||
property X: integer index 1 read GetCoords write SetCoords stored IsStored;
|
property X: integer index 1 read GetCoords write SetCoords stored IsStored;
|
||||||
property C: char read GetC stored False default 'A';
|
property C: char read GetC stored False default 'A';
|
||||||
property Col8: ICol8 read FCol8 write FCol8 implements ICol8;
|
property Col8: ICol8 read FCol8 write FCol8 implements ICol8, IColor;
|
||||||
|
|
||||||
property specifiers without parameters:
|
property specifiers without parameters:
|
||||||
;nodefault, ;default
|
;nodefault, ;default
|
||||||
|
|
||||||
property specifiers with parameters:
|
property specifiers with parameters:
|
||||||
index <constant>, read <id>, write <id>, implements <id>,
|
index <id or number>, read <id>, write <id>, stored <id>,
|
||||||
stored <id>, default <constant>
|
default <constant>, implements <id>[,<id>...]
|
||||||
}
|
}
|
||||||
type
|
type
|
||||||
TPropPart = (ppName, // property name
|
TPropPart = (ppName, // property name
|
||||||
@ -757,8 +757,8 @@ var AccessParam, AccessParamPrefix, CleanAccessFunc, AccessFunc,
|
|||||||
|
|
||||||
procedure ReadOptionalSpecifiers;
|
procedure ReadOptionalSpecifiers;
|
||||||
begin
|
begin
|
||||||
while (CurPos.StartPos<PropNode.EndPos) and (not AtomIsChar(';'))
|
while (CurPos.StartPos<PropNode.EndPos)
|
||||||
and (not UpAtomIs('END')) do begin
|
and (not (CurPos.Flag in [cafSemicolon,cafEnd])) do begin
|
||||||
if UpAtomIs('STORED') then begin
|
if UpAtomIs('STORED') then begin
|
||||||
ReadSimpleSpec(ppStoredWord,ppStored);
|
ReadSimpleSpec(ppStoredWord,ppStored);
|
||||||
end else if UpAtomIs('DEFAULT') then begin
|
end else if UpAtomIs('DEFAULT') then begin
|
||||||
@ -772,13 +772,21 @@ var AccessParam, AccessParamPrefix, CleanAccessFunc, AccessFunc,
|
|||||||
Parts[ppDefault].StartPos:=CurPos.StartPos;
|
Parts[ppDefault].StartPos:=CurPos.StartPos;
|
||||||
ReadConstant(true,false,[]);
|
ReadConstant(true,false,[]);
|
||||||
Parts[ppDefault].EndPos:=LastAtoms.GetValueAt(0).EndPos;
|
Parts[ppDefault].EndPos:=LastAtoms.GetValueAt(0).EndPos;
|
||||||
end else if UpAtomIs('IMPLEMENTS') then begin
|
|
||||||
ReadSimpleSpec(ppImplementsWord,ppImplements);
|
|
||||||
end else if UpAtomIs('NODEFAULT') then begin
|
end else if UpAtomIs('NODEFAULT') then begin
|
||||||
if Parts[ppNoDefaultWord].StartPos>=1 then
|
if Parts[ppNoDefaultWord].StartPos>=1 then
|
||||||
RaiseException(ctsNodefaultSpecifierDefinedTwice);
|
RaiseException(ctsNodefaultSpecifierDefinedTwice);
|
||||||
Parts[ppNoDefaultWord]:=CurPos;
|
Parts[ppNoDefaultWord]:=CurPos;
|
||||||
ReadNextAtom;
|
ReadNextAtom;
|
||||||
|
end else if UpAtomIs('IMPLEMENTS') then begin
|
||||||
|
ReadSimpleSpec(ppImplementsWord,ppImplements);
|
||||||
|
while CurPos.Flag=cafComma do begin
|
||||||
|
ReadNextAtom;
|
||||||
|
AtomIsIdentifier(true);
|
||||||
|
if WordIsPropertySpecifier.DoItUpperCase(UpperSrc,CurPos.StartPos,
|
||||||
|
CurPos.EndPos-CurPos.StartPos) then
|
||||||
|
RaiseExceptionFmt(ctsIndexParameterExpectedButAtomFound,[GetAtom]);
|
||||||
|
ReadNextAtom;
|
||||||
|
end;
|
||||||
end else
|
end else
|
||||||
RaiseExceptionFmt(ctsStrExpectedButAtomFound,[';',GetAtom]);
|
RaiseExceptionFmt(ctsStrExpectedButAtomFound,[';',GetAtom]);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user