diff --git a/src/ce_dfmt.pas b/src/ce_dfmt.pas
index a2341a7b..039d24a3 100644
--- a/src/ce_dfmt.pas
+++ b/src/ce_dfmt.pas
@@ -21,7 +21,7 @@ type
private
fEol: DfmtEol;
fTabStyle: DfmtIdentstyle;
- fIdentSize: integer;
+ fIndentSize: integer;
fTabWidth: integer;
fHardLLen: integer;
fSoftLLen: integer;
@@ -30,10 +30,14 @@ type
fSplitOp: boolean;
fCompactLbl: boolean;
fSpaceSelImp: boolean;
+ procedure setSoftLLen(value: integer);
+ procedure setHardLLen(value: integer);
+ procedure setTabWidth(value: integer);
+ procedure setIndentSize(value: integer);
published
property endOfline: DfmtEol read fEol write fEol default lf;
property identationStyle: DfmtIdentstyle read fTabStyle write fTabStyle default space;
- property identSize: integer read fIdentSize write fIdentSize default 4;
+ property identSize: integer read fIndentSize write fIndentSize default 4;
property tabWidth: integer read fTabWidth write fTabWidth default 8;
property hardLineLen: integer read fHardLLen write fHardLLen default 120;
property softLineLen: integer read fSoftLLen write fSoftLLen default 80;
@@ -44,7 +48,7 @@ type
property compactLabeledStatements: boolean read fCompactLbl write fCompactLbl default true;
public
constructor create(AOwner: TComponent); override;
- procedure getCommandLine(str: TStrings);
+ procedure getParameters(str: TStrings);
end;
{ TCEDfmtWidget }
@@ -113,7 +117,7 @@ begin
inherited;
fEol := lf;
fTabStyle := DfmtIdentstyle.space;
- fIdentSize := 4;
+ fIndentSize := 4;
fTabWidth := 8;
fHardLLen := 120;
fSoftLLen := 80;
@@ -132,6 +136,42 @@ begin
else aShow := true;
end;
end;
+
+procedure TCEDmtWrapper.setSoftLLen(value: integer);
+begin
+ if value < 60 then
+ value := 60
+ else if value > 512 then
+ value := 512;
+ fSoftLLen := value;
+end;
+
+procedure TCEDmtWrapper.setHardLLen(value: integer);
+begin
+ if value < 60 then
+ value := 60
+ else if value > 512 then
+ value := 512;
+ fHardLLen := value;
+end;
+
+procedure TCEDmtWrapper.setTabWidth(value: integer);
+begin
+ if value < 1 then
+ value := 1
+ else if value > 8 then
+ value := 8;
+ fTabWidth := value;
+end;
+
+procedure TCEDmtWrapper.setIndentSize(value: integer);
+begin
+ if value < 1 then
+ value := 1
+ else if value > 8 then
+ value := 8;
+ fIndentSize := value;
+end;
{$ENDREGION}
{$REGION ICEMultiDocObserver ---------------------------------------------------}
@@ -160,7 +200,7 @@ end;
{$ENDREGION}
{$REGION Dfmt things -----------------------------------------------------------}
-procedure TCEDmtWrapper.getCommandLine(str: TStrings);
+procedure TCEDmtWrapper.getParameters(str: TStrings);
const
eol: array[DfmtEol] of string = ('cr', 'lf', 'crlf');
falsetrue: array[boolean] of string = ('false', 'true');
@@ -192,7 +232,7 @@ begin
fBackup.Assign(fDoc.Lines);
prc := TProcess.create(nil);
try
- fDmtWrapper.getCommandLine(prc.Parameters);
+ fDmtWrapper.getParameters(prc.Parameters);
prc.Options:= prc.Options + [poUsePipes, poStderrToOutPut];
prc.Executable:= exeFullName('dfmt' + exeExt);
prc.Execute;
diff --git a/wiki/wiki.txt b/wiki/wiki.txt
index 184de120..5fbb0b0f 100644
--- a/wiki/wiki.txt
+++ b/wiki/wiki.txt
@@ -422,22 +422,27 @@ It's based on the [**Synedit**](http://wiki.freepascal.org/SynEdit) suite, a pow
which can be described as a _"Scintilla for Pascal"_. It features:
- folding (curly brackets blocks, multi-line strings, block comments, nested block comments, DDoc comments blocks).
-- colorization of the following categories: keywords, numbers, symbols, comments, ASM operands and identifiers, DDoc comments.
-- colorization of the current identifier in the whole view.
+- colorization of the following categories: keywords, numbers, symbols, comments, assembler instructions and identifiers, DDoc comments.
+- current identifier markup, selection markup.
- standard keyboard navigation shortcuts CTRL + (SHIFT +) LEFT/RIGHT, CTRL + HOME, CTRL + END etc.
- macro recording and playback using CTRL+SHIFT+R (start/stop recording) or CTRL+SHIFT+P (play).
- synchro-edit (activated when clicking the pen icon located in the gutter, or with the shortcut CTRL+E and CTRL+SHIFT+E).
- zoom: (CTRL+WHEEL, CTRL+MIDDLE MB, CTRL++, CTRL+-, CTRL+.).
- display cache: for each document, the zoom ratio, the folds and the caret position are saved between two sessions. A cache file has a fixed life-time of three months from its last modification.
-- drag drop editing.
+- drag & drop editing.
- external modification tracking. Each time the focus is put on a document (switch document, show & hide application), Coedit verifies if its time stamp has changed.
- static macros.
- custom folded regions.
- huge amount of options.
+- split view: an editor can be pined to the right.
+- most recent location buffer: instead of bookmarks, the most recent caret positions are stored in a buffer. Positions can be recovered with the lateral mouse buttons (_X1_ & _X2_) or with the multimedia keyboard keys _next web page_ & _previous web page_.
+
+### Custom regions
+
+The custom regions are defined in single line comments.
+A region starts with a comment that ends with at least three hyphens and a add symbol.
+A region stops with a comment ending with at least four hyphens.
-The custom folded regions can be defined in a single line comments.
-A region starts with a comment ending with at least three hyphens and a add symbol
-and stops with a comment ending with at least four hyphens.
For example:
```D
@@ -453,28 +458,45 @@ T opIndex(size_t i){}
// ----
```
+### Static macros
+
The static macros can be described as *parameter-less code snippets*.
A static macro starts with the dollar symbol and ends with an alphabetic character.
For example after typing `$a`, `auto` is inserted.
-Confer with the [source code](https://github.com/BBasile/Coedit/blob/master/src/ce_staticmacro.pas#L57) too see the hard-coded macros list.
+Confer with the [source code](https://github.com/BBasile/Coedit/blob/master/src/ce_staticmacro.pas#L57) too see the pre-defined macros list.
Custom macros can be edited in the [options editor][lnk_widg_opts]:

-The editor options as well:
+Note that the pre-defined macros are not hardcoded anymore and they can be completly deleted.
-
+### Editor options
-The editor shortcuts are listed there:
+Editor options are displayed in the [option editor][lnk_widg_opts].
+They cover many aspects of the editor:
+- highlighterDlang: options for D2 highlighter such as colors, font styles, folding, etc.
+- highlighterText: options for generic highlighter such as colors, font styles, etc.
+- ddocDelay, autoDotDelay: tweak how fast [DCD][lnk_dcd] features are.
+- options1 & options2: about 50 boolean options to define if the special characters are shown, if the trailing spaces are trimmed, if the tabs are converted to spaces, etc.
+- and much more.
-
+
-Note that you can edit text files in Coedit too (as well as any other file type such as _*.dd_ D documentation files)
-A simple highlighter is automatically set for this purpose:
+The editor shortcuts are listed here:
-
+
-It's also customizable in the option editor but the highlighter only recognizes identifiers and symbols.
+### Split view
+
+The split view allows to pin one of the document to the right of the other documents.
+To pin a document, open it in an editor and click the right-most toolbar button.
+The other editors will get this document displayed at their right.
+To unpin a document, select its page and click the same button.
+The document to pin can be replaced on the fly, still using the same button, and even if the split view is already active.
+
+
+
+It's useful to display a module that contains the types, the enums or the prototypes of a library binding since it's not anymore necessary to change the editor page to verify the members of an enum or the parameters of a function.
## Find & replace widget