mirror of https://gitlab.com/basile.b/dexed.git
dfmt commander, limit integer props
This commit is contained in:
parent
8a9f7de283
commit
95c5bb1166
|
@ -21,7 +21,7 @@ type
|
||||||
private
|
private
|
||||||
fEol: DfmtEol;
|
fEol: DfmtEol;
|
||||||
fTabStyle: DfmtIdentstyle;
|
fTabStyle: DfmtIdentstyle;
|
||||||
fIdentSize: integer;
|
fIndentSize: integer;
|
||||||
fTabWidth: integer;
|
fTabWidth: integer;
|
||||||
fHardLLen: integer;
|
fHardLLen: integer;
|
||||||
fSoftLLen: integer;
|
fSoftLLen: integer;
|
||||||
|
@ -30,10 +30,14 @@ type
|
||||||
fSplitOp: boolean;
|
fSplitOp: boolean;
|
||||||
fCompactLbl: boolean;
|
fCompactLbl: boolean;
|
||||||
fSpaceSelImp: boolean;
|
fSpaceSelImp: boolean;
|
||||||
|
procedure setSoftLLen(value: integer);
|
||||||
|
procedure setHardLLen(value: integer);
|
||||||
|
procedure setTabWidth(value: integer);
|
||||||
|
procedure setIndentSize(value: integer);
|
||||||
published
|
published
|
||||||
property endOfline: DfmtEol read fEol write fEol default lf;
|
property endOfline: DfmtEol read fEol write fEol default lf;
|
||||||
property identationStyle: DfmtIdentstyle read fTabStyle write fTabStyle default space;
|
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 tabWidth: integer read fTabWidth write fTabWidth default 8;
|
||||||
property hardLineLen: integer read fHardLLen write fHardLLen default 120;
|
property hardLineLen: integer read fHardLLen write fHardLLen default 120;
|
||||||
property softLineLen: integer read fSoftLLen write fSoftLLen default 80;
|
property softLineLen: integer read fSoftLLen write fSoftLLen default 80;
|
||||||
|
@ -44,7 +48,7 @@ type
|
||||||
property compactLabeledStatements: boolean read fCompactLbl write fCompactLbl default true;
|
property compactLabeledStatements: boolean read fCompactLbl write fCompactLbl default true;
|
||||||
public
|
public
|
||||||
constructor create(AOwner: TComponent); override;
|
constructor create(AOwner: TComponent); override;
|
||||||
procedure getCommandLine(str: TStrings);
|
procedure getParameters(str: TStrings);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TCEDfmtWidget }
|
{ TCEDfmtWidget }
|
||||||
|
@ -113,7 +117,7 @@ begin
|
||||||
inherited;
|
inherited;
|
||||||
fEol := lf;
|
fEol := lf;
|
||||||
fTabStyle := DfmtIdentstyle.space;
|
fTabStyle := DfmtIdentstyle.space;
|
||||||
fIdentSize := 4;
|
fIndentSize := 4;
|
||||||
fTabWidth := 8;
|
fTabWidth := 8;
|
||||||
fHardLLen := 120;
|
fHardLLen := 120;
|
||||||
fSoftLLen := 80;
|
fSoftLLen := 80;
|
||||||
|
@ -132,6 +136,42 @@ begin
|
||||||
else aShow := true;
|
else aShow := true;
|
||||||
end;
|
end;
|
||||||
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}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
{$REGION ICEMultiDocObserver ---------------------------------------------------}
|
||||||
|
@ -160,7 +200,7 @@ end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION Dfmt things -----------------------------------------------------------}
|
{$REGION Dfmt things -----------------------------------------------------------}
|
||||||
procedure TCEDmtWrapper.getCommandLine(str: TStrings);
|
procedure TCEDmtWrapper.getParameters(str: TStrings);
|
||||||
const
|
const
|
||||||
eol: array[DfmtEol] of string = ('cr', 'lf', 'crlf');
|
eol: array[DfmtEol] of string = ('cr', 'lf', 'crlf');
|
||||||
falsetrue: array[boolean] of string = ('false', 'true');
|
falsetrue: array[boolean] of string = ('false', 'true');
|
||||||
|
@ -192,7 +232,7 @@ begin
|
||||||
fBackup.Assign(fDoc.Lines);
|
fBackup.Assign(fDoc.Lines);
|
||||||
prc := TProcess.create(nil);
|
prc := TProcess.create(nil);
|
||||||
try
|
try
|
||||||
fDmtWrapper.getCommandLine(prc.Parameters);
|
fDmtWrapper.getParameters(prc.Parameters);
|
||||||
prc.Options:= prc.Options + [poUsePipes, poStderrToOutPut];
|
prc.Options:= prc.Options + [poUsePipes, poStderrToOutPut];
|
||||||
prc.Executable:= exeFullName('dfmt' + exeExt);
|
prc.Executable:= exeFullName('dfmt' + exeExt);
|
||||||
prc.Execute;
|
prc.Execute;
|
||||||
|
|
|
@ -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:
|
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).
|
- 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 following categories: keywords, numbers, symbols, comments, assembler instructions and identifiers, DDoc comments.
|
||||||
- colorization of the current identifier in the whole view.
|
- current identifier markup, selection markup.
|
||||||
- standard keyboard navigation shortcuts <kbd>CTRL</kbd> + (<kbd>SHIFT</kbd> +) <kbd>LEFT</kbd>/<kbd>RIGHT</kbd>, <kbd>CTRL</kbd> + <kbd>HOME</kbd>, <kbd>CTRL</kbd> + <kbd>END</kbd> etc.
|
- standard keyboard navigation shortcuts <kbd>CTRL</kbd> + (<kbd>SHIFT</kbd> +) <kbd>LEFT</kbd>/<kbd>RIGHT</kbd>, <kbd>CTRL</kbd> + <kbd>HOME</kbd>, <kbd>CTRL</kbd> + <kbd>END</kbd> etc.
|
||||||
- macro recording and playback using <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>R</kbd> (start/stop recording) or <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>P</kbd> (play).
|
- macro recording and playback using <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>R</kbd> (start/stop recording) or <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>P</kbd> (play).
|
||||||
- synchro-edit (activated when clicking the pen icon located in the gutter, or with the shortcut <kbd>CTRL</kbd>+<kbd>E</kbd> and <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>E</kbd>).
|
- synchro-edit (activated when clicking the pen icon located in the gutter, or with the shortcut <kbd>CTRL</kbd>+<kbd>E</kbd> and <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>E</kbd>).
|
||||||
- zoom: (<kbd>CTRL</kbd>+<kbd>WHEEL</kbd>, <kbd>CTRL</kbd>+<kbd>MIDDLE MB</kbd>, <kbd>CTRL</kbd>+<kbd>+</kbd>, <kbd>CTRL</kbd>+<kbd>-</kbd>, <kbd>CTRL</kbd>+<kbd>.</kbd>).
|
- zoom: (<kbd>CTRL</kbd>+<kbd>WHEEL</kbd>, <kbd>CTRL</kbd>+<kbd>MIDDLE MB</kbd>, <kbd>CTRL</kbd>+<kbd>+</kbd>, <kbd>CTRL</kbd>+<kbd>-</kbd>, <kbd>CTRL</kbd>+<kbd>.</kbd>).
|
||||||
- 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.
|
- 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.
|
- 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.
|
- static macros.
|
||||||
- custom folded regions.
|
- custom folded regions.
|
||||||
- huge amount of options.
|
- 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:
|
For example:
|
||||||
|
|
||||||
```D
|
```D
|
||||||
|
@ -453,28 +458,45 @@ T opIndex(size_t i){}
|
||||||
// ----
|
// ----
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Static macros
|
||||||
|
|
||||||
The static macros can be described as *parameter-less code snippets*.
|
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.
|
A static macro starts with the dollar symbol and ends with an alphabetic character.
|
||||||
For example after typing `$a`, `auto` is inserted.
|
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]:
|
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)
|
The editor shortcuts are listed here:
|
||||||
A simple highlighter is automatically set for this purpose:
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
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
|
## Find & replace widget
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue