mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 00:49:18 +02:00
Codetools: Add test for code-completion keywords
This commit is contained in:
parent
3e2872c0f7
commit
2182681a6e
110
components/codetools/tests/laztests/tcompletion_keywords.pas
Normal file
110
components/codetools/tests/laztests/tcompletion_keywords.pas
Normal file
@ -0,0 +1,110 @@
|
||||
{%identcomplincludekeywords:on}
|
||||
unit {completion:+5=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
tcompletion_keywords {completion:+21=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
; {completion:+2=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$ModeSwitch typehelpers}
|
||||
{$ModeSwitch advancedrecords}
|
||||
|
||||
interface {completion:+11=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
|
||||
uses {completion:+5=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
system {completion:+7=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
;
|
||||
|
||||
const {completion:+6=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
MYCONST
|
||||
= {completion:+2=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
1 {completion:+2=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
; {completion:+2=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
MYCONST_B = 'test' ; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
|
||||
var {completion:+4=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
MyVar {completion:+6=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
: {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
Integer {completion:+8=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
MyVar2: TObject ; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not,!case}
|
||||
// TODO: "case" in record
|
||||
MyVar3: record {completion:+7=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
a: Integer ; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
a2 {completion:+3=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
: {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
Integer {completion:+8=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
case
|
||||
boolean {completion:+8=!do,!label,!repeat,!else,!inherited,!and,!not} // TODO: "of"
|
||||
of
|
||||
true: (
|
||||
b: TObject;
|
||||
);
|
||||
false: (
|
||||
c: array [0..1] of integer;
|
||||
);
|
||||
end;
|
||||
|
||||
type
|
||||
TFoo {completion:+5=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
= {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
class {completion:+6=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
;
|
||||
|
||||
TIntA = {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not} // TODO: "array"
|
||||
array {completion:+6=!do,!label,!repeat,!else,!inherited,!and,!not} // TODO: "of"
|
||||
of
|
||||
integer;
|
||||
|
||||
TIntB = array
|
||||
[ 0..9 ] {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not} // TODO: "of"
|
||||
of
|
||||
integer;
|
||||
|
||||
TFoo = class {completion:+6=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
( {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
TObject {completion:+8=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
) {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
a {completion:+2=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
: {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
Integer {completion:+8=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
private
|
||||
procedure {completion:+10=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
Bar {completion:+5=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
; {completion:+1=!do,!label,!repeat,!else,!inherited,!and,!not}
|
||||
end;
|
||||
|
||||
procedure SomeProc(val: Integer; var v2, v3: TIntA);
|
||||
function f1: TObject;
|
||||
|
||||
implementation
|
||||
var
|
||||
bVal: Boolean;
|
||||
iVal: integer;
|
||||
ia: TIntA;
|
||||
|
||||
procedure SomeProc(val: Integer);
|
||||
begin {completion:+6=!do,!label,repeat,!else,inherited,!and,!not}
|
||||
; {completion:+1=!do,!label,repeat,!else,inherited,!and,!not}
|
||||
end;
|
||||
|
||||
procedure SomeProc(val: Integer; var v2, v3: TIntA);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
function f1: TObject;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TFoo.Bar;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
begin
|
||||
if {completion:+3=!and,not,inherited} // +3 test in space after if
|
||||
iVal {completion:!and,!in,not,inherited;+1=!and,!in,!not,inherited;+5=and,in,!not,!inherited} // + 5 in spaces after iVal
|
||||
end.
|
||||
|
@ -24,6 +24,9 @@
|
||||
|
||||
(* Expectation in test-files
|
||||
|
||||
{%identcomplincludekeywords:on}
|
||||
Enables CodeToolBoss.IdentComplIncludeKeywords
|
||||
|
||||
{SELECT:TESTS=TEST(|TEST)*}
|
||||
Each "{" comment starting with a..z is a test instruction, or a list of test instructions separated by |
|
||||
|
||||
@ -278,6 +281,11 @@ begin
|
||||
DoParseModule(MainCode,FMainTool);
|
||||
CommentP:=1;
|
||||
Src:=MainTool.Src;
|
||||
|
||||
CodeToolBoss.IdentComplIncludeKeywords := False;
|
||||
if pos('{%identcomplincludekeywords:on}', LowerCase(Src)) > 0 then
|
||||
CodeToolBoss.IdentComplIncludeKeywords := True;
|
||||
|
||||
while CommentP<length(Src) do begin
|
||||
CommentP:=FindNextComment(Src,CommentP);
|
||||
if CommentP>length(Src) then break;
|
||||
@ -472,6 +480,7 @@ begin
|
||||
until CommentP >= CommentEnd;
|
||||
end;
|
||||
CheckReferenceMarkers;
|
||||
CodeToolBoss.IdentComplIncludeKeywords := False;
|
||||
end;
|
||||
|
||||
function TCustomTestFindDeclaration.GetMarkers(Index: integer): TFDMarker;
|
||||
@ -515,6 +524,7 @@ procedure TCustomTestFindDeclaration.SetUp;
|
||||
begin
|
||||
inherited SetUp;
|
||||
FMarkers:=TObjectList.Create(true);
|
||||
CodeToolBoss.IdentComplIncludeKeywords := False;
|
||||
end;
|
||||
|
||||
procedure TCustomTestFindDeclaration.TearDown;
|
||||
|
Loading…
Reference in New Issue
Block a user