From 100684af058b0edb0ac9a47579a5506f5c0f203a Mon Sep 17 00:00:00 2001 From: ondrej Date: Sat, 23 Jan 2016 19:35:43 +0000 Subject: [PATCH] codetools: break code completion after assignment on keywords. Issue #29448 git-svn-id: trunk@51394 - --- components/codetools/codecompletiontool.pas | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/components/codetools/codecompletiontool.pas b/components/codetools/codecompletiontool.pas index 3c12661676..8d19a47b65 100644 --- a/components/codetools/codecompletiontool.pas +++ b/components/codetools/codecompletiontool.pas @@ -9346,7 +9346,7 @@ function TCodeCompletionCodeTool.CompleteCode(CursorPos: TCodeXYPosition; var OldCodePos: TCodePosition; begin - // Search only within the current instruction - stop on semicolon or else + // Search only within the current instruction - stop on semicolon or keywords // (else isn't prepended by a semicolon in contrast to other keywords). Result := False; @@ -9373,8 +9373,13 @@ function TCodeCompletionCodeTool.CompleteCode(CursorPos: TCodeXYPosition; FCompletingCursorNode:=nil; end; end; - cafWord: - if UpAtomIs('ELSE') then // stop on else + cafWord: // stop on keywords + if UpAtomIs('BEGIN') or UpAtomIs('END') + or UpAtomIs('TRY') or UpAtomIs('FINALLY') or UpAtomIs('EXCEPT') + or UpAtomIs('FOR') or UpAtomIs('TO') or UpAtomIs('DO') + or UpAtomIs('REPEAT') or UpAtomIs('UNTIL') or UpAtomIs('WHILE') + or UpAtomIs('IF') or UpAtomIs('THEN') or UpAtomIs('CASE') or UpAtomIs('ELSE') + then break; cafSemicolon: break; // stop on semicolon