Просмотр исходного кода

Add separate 'AutoAutoComplete' setting for [Code]. No GUI yet.

Martijn Laan 11 месяцев назад
Родитель
Сommit
f422c5331f
1 измененных файлов с 13 добавлено и 2 удалено
  1. 13 2
      Projects/Src/IDE.MainForm.pas

+ 13 - 2
Projects/Src/IDE.MainForm.pas

@@ -406,6 +406,7 @@ type
       PauseOnDebuggerExceptions: Boolean;
       PauseOnDebuggerExceptions: Boolean;
       RunAsDifferentUser: Boolean;
       RunAsDifferentUser: Boolean;
       AutoAutoComplete: Boolean;
       AutoAutoComplete: Boolean;
+      AutoAutoCompleteCode: Boolean;
       AutoCallTips: Boolean;
       AutoCallTips: Boolean;
       UseSyntaxHighlighting: Boolean;
       UseSyntaxHighlighting: Boolean;
       ColorizeCompilerOutput: Boolean;
       ColorizeCompilerOutput: Boolean;
@@ -806,6 +807,7 @@ constructor TMainForm.Create(AOwner: TComponent);
       FOptions.PauseOnDebuggerExceptions := Ini.ReadBool('Options', 'PauseOnDebuggerExceptions', True);
       FOptions.PauseOnDebuggerExceptions := Ini.ReadBool('Options', 'PauseOnDebuggerExceptions', True);
       FOptions.RunAsDifferentUser := Ini.ReadBool('Options', 'RunAsDifferentUser', False);
       FOptions.RunAsDifferentUser := Ini.ReadBool('Options', 'RunAsDifferentUser', False);
       FOptions.AutoAutoComplete := Ini.ReadBool('Options', 'AutoComplete', True);
       FOptions.AutoAutoComplete := Ini.ReadBool('Options', 'AutoComplete', True);
+      FOptions.AutoAutoCompleteCode := Ini.ReadBool('Options', 'AutoCompleteCode', FOptions.AutoAutoComplete);
       FOptions.AutoCallTips := Ini.ReadBool('Options', 'AutoCallTips', True);
       FOptions.AutoCallTips := Ini.ReadBool('Options', 'AutoCallTips', True);
       FOptions.UseSyntaxHighlighting := Ini.ReadBool('Options', 'UseSynHigh', True);
       FOptions.UseSyntaxHighlighting := Ini.ReadBool('Options', 'UseSynHigh', True);
       FOptions.ColorizeCompilerOutput := Ini.ReadBool('Options', 'ColorizeCompilerOutput', True);
       FOptions.ColorizeCompilerOutput := Ini.ReadBool('Options', 'ColorizeCompilerOutput', True);
@@ -4383,6 +4385,7 @@ begin
       Ini.WriteBool('Options', 'PauseOnDebuggerExceptions', FOptions.PauseOnDebuggerExceptions);
       Ini.WriteBool('Options', 'PauseOnDebuggerExceptions', FOptions.PauseOnDebuggerExceptions);
       Ini.WriteBool('Options', 'RunAsDifferentUser', FOptions.RunAsDifferentUser);
       Ini.WriteBool('Options', 'RunAsDifferentUser', FOptions.RunAsDifferentUser);
       Ini.WriteBool('Options', 'AutoComplete', FOptions.AutoAutoComplete);
       Ini.WriteBool('Options', 'AutoComplete', FOptions.AutoAutoComplete);
+      Ini.WriteBool('Options', 'AutoCompleteCode', FOptions.AutoAutoCompleteCode);
       Ini.WriteBool('Options', 'AutoCallTips', FOptions.AutoCallTips);
       Ini.WriteBool('Options', 'AutoCallTips', FOptions.AutoCallTips);
       Ini.WriteBool('Options', 'UseSynHigh', FOptions.UseSyntaxHighlighting);
       Ini.WriteBool('Options', 'UseSynHigh', FOptions.UseSyntaxHighlighting);
       Ini.WriteBool('Options', 'ColorizeCompilerOutput', FOptions.ColorizeCompilerOutput);
       Ini.WriteBool('Options', 'ColorizeCompilerOutput', FOptions.ColorizeCompilerOutput);
@@ -5374,6 +5377,14 @@ procedure TMainForm.MemoCharAdded(Sender: TObject; Ch: AnsiChar);
     Result := TScintEdit.RawStringIsBlank(S);
     Result := TScintEdit.RawStringIsBlank(S);
   end;
   end;
 
 
+  function AutoAutoComplete: Boolean;
+  begin
+    if FMemosStyler.GetSectionFromLineState(FActiveMemo.Lines.State[FActiveMemo.CaretLine]) = scCode then
+      Result := FOptions.AutoAutoCompleteCode
+    else
+      Result := FOptions.AutoAutoComplete;
+  end;
+
 var
 var
   NewLine, PreviousLine, NewIndent, PreviousIndent: Integer;
   NewLine, PreviousLine, NewIndent, PreviousIndent: Integer;
 begin
 begin
@@ -5439,11 +5450,11 @@ begin
   if DoAutoComplete then begin
   if DoAutoComplete then begin
     case Ch of
     case Ch of
       'A'..'Z', 'a'..'z', '_', '#', '{', '[', '<':
       'A'..'Z', 'a'..'z', '_', '#', '{', '[', '<':
-        if not FActiveMemo.AutoCompleteActive and FOptions.AutoAutoComplete then
+        if not FActiveMemo.AutoCompleteActive and AutoAutoComplete then
           InitiateAutoComplete(Ch);
           InitiateAutoComplete(Ch);
     else
     else
       var RestartAutoComplete := (Ch in [' ', '.']) and
       var RestartAutoComplete := (Ch in [' ', '.']) and
-        (FOptions.AutoAutoComplete or FActiveMemo.AutoCompleteActive);
+        (AutoAutoComplete or FActiveMemo.AutoCompleteActive);
       FActiveMemo.CancelAutoComplete;
       FActiveMemo.CancelAutoComplete;
       if RestartAutoComplete then
       if RestartAutoComplete then
         InitiateAutoComplete(Ch);
         InitiateAutoComplete(Ch);