Pārlūkot izejas kodu

Add new 'Word Wrap' menu item in the View menu (Alt+Z), replacing the option in CompOptions. Also added new 'Enable section folding' option in its place.

Martijn Laan 1 gadu atpakaļ
vecāks
revīzija
8aa741ed35

+ 8 - 0
Projects/Src/CompForm.dfm

@@ -624,6 +624,14 @@ object CompileForm: TCompileForm
         RadioItem = True
         OnClick = VHideClick
       end
+      object N24: TMenuItem
+        Caption = '-'
+      end
+      object VWordWrap: TMenuItem
+        Caption = '&Word Wrap'
+        ShortCut = 32858
+        OnClick = VWordWrapClick
+      end
       object OutputListPopupMenu: TMenuItem
         Caption = 'OutputListPopupMenu'
         Visible = False

+ 23 - 3
Projects/Src/CompForm.pas

@@ -235,6 +235,8 @@ type
     BreakPointsPopupMenu: TMenuItem;
     RToggleBreakPoint2: TMenuItem;
     RDeleteBreakPoints2: TMenuItem;
+    N24: TMenuItem;
+    VWordWrap: TMenuItem;
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     procedure FExitClick(Sender: TObject);
     procedure FOpenMainFileClick(Sender: TObject);
@@ -352,6 +354,7 @@ type
     procedure ESelectAllOccurrencesClick(Sender: TObject);
     procedure BreakPointsPopupMenuClick(Sender: TObject);
     procedure FClearRecentClick(Sender: TObject);
+    procedure VWordWrapClick(Sender: TObject);
   private
     { Private declarations }
     FMemos: TList<TCompScintEdit>;                      { FMemos[0] is the main memo and FMemos[1] the preprocessor output memo - also see MemosTabSet comment above }
@@ -384,6 +387,7 @@ type
       CursorPastEOL: Boolean;
       TabWidth: Integer;
       UseTabCharacter: Boolean;
+      UseFolding: Boolean;
       WordWrap: Boolean;
       AutoIndent: Boolean;
       IndentationGuides: Boolean;
@@ -762,6 +766,7 @@ constructor TCompileForm.Create(AOwner: TComponent);
       FOptions.CursorPastEOL := Ini.ReadBool('Options', 'EditorCursorPastEOL', False);
       FOptions.TabWidth := Ini.ReadInteger('Options', 'TabWidth', 2);
       FOptions.UseTabCharacter := Ini.ReadBool('Options', 'UseTabCharacter', False);
+      FOptions.UseFolding := Ini.ReadBool('Options', 'UseFolding', True);
       FOptions.WordWrap := Ini.ReadBool('Options', 'WordWrap', False);
       FOptions.AutoIndent := Ini.ReadBool('Options', 'AutoIndent', True);
       FOptions.IndentationGuides := Ini.ReadBool('Options', 'IndentationGuides', True);
@@ -2009,6 +2014,7 @@ begin
     Memo.TabWidth := FOptions.TabWidth;
     Memo.UseTabCharacter := FOptions.UseTabCharacter;
 
+    Memo.UseFolding := FOptions.UseFolding;
     Memo.WordWrap := FOptions.WordWrap;
 
     if FOptions.IndentationGuides then
@@ -2588,6 +2594,7 @@ begin
   VDebugOutput.Checked := StatusPanel.Visible and (OutputTabSet.TabIndex = tiDebugOutput);
   VDebugCallStack.Checked := StatusPanel.Visible and (OutputTabSet.TabIndex = tiDebugCallStack);
   VFindResults.Checked := StatusPanel.Visible and (OutputTabSet.TabIndex = tiFindResults);
+  VWordWrap.Checked := FOptions.WordWrap;
 
   ApplyMenuBitmaps(Sender as TMenuItem);
 end;
@@ -2715,6 +2722,18 @@ begin
   StatusBar.Visible := not StatusBar.Visible;
 end;
 
+procedure TCompileForm.VWordWrapClick(Sender: TObject);
+begin
+  FOptions.WordWrap := not FOptions.WordWrap;
+  SyncEditorOptions;
+  var Ini := TConfigIniFile.Create;
+  try
+    Ini.WriteBool('Options', 'WordWrap', FOptions.WordWrap);
+  finally
+    Ini.Free;
+  end;
+end;
+
 procedure TCompileForm.SetStatusPanelVisible(const AVisible: Boolean);
 var
   CaretWasInView: Boolean;
@@ -3702,7 +3721,7 @@ begin
     OptionsForm.CursorPastEOLCheck.Checked := FOptions.CursorPastEOL;
     OptionsForm.TabWidthEdit.Text := IntToStr(FOptions.TabWidth);
     OptionsForm.UseTabCharacterCheck.Checked := FOptions.UseTabCharacter;
-    OptionsForm.WordWrapCheck.Checked := FOptions.WordWrap;
+    OptionsForm.UseFoldingCheck.Checked := FOptions.UseFolding;
     OptionsForm.AutoIndentCheck.Checked := FOptions.AutoIndent;
     OptionsForm.IndentationGuidesCheck.Checked := FOptions.IndentationGuides;
     OptionsForm.GutterLineNumbersCheck.Checked := FOptions.GutterLineNumbers;
@@ -3734,7 +3753,7 @@ begin
     FOptions.CursorPastEOL := OptionsForm.CursorPastEOLCheck.Checked;
     FOptions.TabWidth := StrToInt(OptionsForm.TabWidthEdit.Text);
     FOptions.UseTabCharacter := OptionsForm.UseTabCharacterCheck.Checked;
-    FOptions.WordWrap := OptionsForm.WordWrapCheck.Checked;
+    FOptions.UseFolding := OptionsForm.UseFoldingCheck.Checked;
     FOptions.AutoIndent := OptionsForm.AutoIndentCheck.Checked;
     FOptions.IndentationGuides := OptionsForm.IndentationGuidesCheck.Checked;
     FOptions.GutterLineNumbers := OptionsForm.GutterLineNumbersCheck.Checked;
@@ -3755,6 +3774,7 @@ begin
       Memo.Font.Assign(OptionsForm.FontPanel.Font);
     end;
     SyncEditorOptions;
+    UpdateMarginsAndSquigglyWidths;
     UpdateNewMainFileButtons;
     UpdateOccurrenceIndicators(FActiveMemo);
     UpdateKeyMapping;
@@ -3780,7 +3800,7 @@ begin
       Ini.WriteBool('Options', 'EditorCursorPastEOL', FOptions.CursorPastEOL);
       Ini.WriteInteger('Options', 'TabWidth', FOptions.TabWidth);
       Ini.WriteBool('Options', 'UseTabCharacter', FOptions.UseTabCharacter);
-      Ini.WriteBool('Options', 'WordWrap', FOptions.WordWrap);
+      Ini.WriteBool('Options', 'UseFolding', FOptions.UseFolding);
       Ini.WriteBool('Options', 'AutoIndent', FOptions.AutoIndent);
       Ini.WriteBool('Options', 'IndentationGuides', FOptions.IndentationGuides);
       Ini.WriteBool('Options', 'GutterLineNumbers', FOptions.GutterLineNumbers);

+ 2 - 2
Projects/Src/CompOptions.dfm

@@ -196,12 +196,12 @@ object OptionsForm: TOptionsForm
       Caption = 'Allow cursor to move beyond &end of lines'
       TabOrder = 3
     end
-    object WordWrapCheck: TCheckBox
+    object UseFoldingCheck: TCheckBox
       Left = 8
       Top = 96
       Width = 265
       Height = 17
-      Caption = 'W&ord wrap'
+      Caption = 'Enable section f&olding'
       TabOrder = 4
     end
     object UseTabCharacterCheck: TCheckBox

+ 1 - 1
Projects/Src/CompOptions.pas

@@ -39,7 +39,7 @@ type
     PauseOnDebuggerExceptionsCheck: TCheckBox;
     RunAsDifferentUserCheck: TCheckBox;
     AutosaveCheck: TCheckBox;
-    WordWrapCheck: TCheckBox;
+    UseFoldingCheck: TCheckBox;
     AutoIndentCheck: TCheckBox;
     IndentationGuidesCheck: TCheckBox;
     UseTabCharacterCheck: TCheckBox;

+ 2 - 1
whatsnew.htm

@@ -46,8 +46,8 @@ For conditions of distribution and use, see <a href="files/is/license.txt">LICEN
 </ul>
 <p>Other editor changes:</p>
 <ul>
+  <li>Added new <i>Enable section folding</i> option which allows you to temporarily hide and show sections while editing. Enabled by default.</li>
   <li>The editor's gutter now shows change history to keep track of saved and unsaved modifications.</li>
-  <li>The editor's gutter now shows fold icons to temporarily hide and show sections.</li>
   <li>The editor's font now defaults to Consolas if available, consistent with most other editors.</li>
   <li>The editor can now be scrolled horizontally instead of vertically by holding the Shift key while rotating the mouse wheel. Horizontal scroll wheels are now also supported.</li>
   <li>Added shortcuts to move selected lines up or down (Alt+Up and Alt+Down).</li>
@@ -56,6 +56,7 @@ For conditions of distribution and use, see <a href="files/is/license.txt">LICEN
 <p>Other changes:</p>
 <ul>
   <li>Moved the list of recently opened files into a new <i>Open Recent</i> submenu of the <i>Files</i> menu.</li>
+  <li>Added new <i>Word Wrap</i> menu item in the <i>View</i> menu (Alt+Z).</li>
   <li>Added shortcut to the <i>Options</i> menu item in the <i>Tools</i> menu (Ctrl+,).</li>
   <li>Minor tweaks and documentation improvements.</li>
 </ul>