Lazarus
Announcements => Third party => Topic started by: AlexTP on July 21, 2015, 11:01:31 am
-
No problems were found in comp, and things were added:
- good documentation http://wiki.freepascal.org/ATSynEdit
- key combos (e.g. you can assign to action a combo: [Alt+K, Alt+K, Alt+B] )
- Finder class, it's capable if finding of text and regex
(see doc wiki, part "How to find/replace")
- demo_editor has Find/Replace dialog
https://github.com/Alexey-T/ATSynEdit
-
Added-
API for auto-complete list
Example of this API usage-- CSS auto-comp. (uses SynWrite data file for css)
http://wiki.freepascal.org/ATSynEdit
-
Added full working code which is like Synwrite:
- CSS autocompletion as func
- HTML autocompletion as func
see wiki.
-
Some things added in last months-
- selection hiliting of tokens, doesn't loose font styles (if token was italic, selected token is italic)
- Attribs object, allows to apply color ranges (e.g. hilite brackets)
- URL hiliting
-
Now done work to support RETINA on Mac, i was shocked that Synedit (from Martin) supported Retina already, while my code did not. I found out that I need to paint directly to Canvas. Only then Retina image is ok
Now added DoubleBuffered for this and now ok.. it is False for mac , and can be False for QT (True for QT also good)
-
Last month changes:
2018.04.18
+ add: event OnClickLink
+ add: OptMouseClickOpensURL
+ add: OptKeyTabIndentsVerticalBlock (default false, was true)
2018.04.13
+ add: global options for Unicode full-width chars, unit ATSynEdit_CharSizer
2018.04.08
+ add: used Hi-dpi resource icons (for foldbar context menu, for mouse middle click), by FTurtle
2018.04.07
+ add: IsCharWord() func uses UnicodeData now, works for all international letters
-
Update
Implemented tooltip over folded [...] marks.
Added OptFoldTooltipVisible.
Screenshot shows it.
-
Update
Bookmarks have new prop: DeleteOnDelLine. Default is false: don't delete bookmark when its line is deleted.
Made for "breakpoints".
-
Update
Added props FontItalic, FontBold, FontBoldItalic - they are used for font styles in syntax hilited text. If they are empty- not used.
Inspired by Atom.
-
Updates
added public methods:
DoConvertTabsToSpaces
DoConvertSpacesToTabsLeading
BookmarkSetForLine
BookmarkToggleForLine
BookmarkDeleteForLine
BookmarkDeleteAll
BookmarkInvertAll
BookmarkGotoNext
BookmarkCopyMarkedLines
BookmarkDeleteMarkedLines
BookmarkPlaceBookmarksOnCarets
BookmarkPlaceCaretsOnBookmarks
-
Last updates
2018.08.18
+ add: global vars (instead of ATStrings props):
GlobalDetectUtf8BufferKb
GlobalDetectUtf16BufferWords (2..80)
+ add: detection of UTF16 without BOM (LE/BE)
+ add: on folding range (DoRangeFold), caret(s) is fixed, it is was inside that range
2018.08.08
* change: now OnChange not called in LoadFromFile, makes almost no sense
2018.08.06
+ add: Bookmarks object items: added fields Tag (Int64), ShowInBookmarkList (bool)
+ add: methods Bookmark* improved for new fields
+ add: method BookmarkDeleteByTag
2018.08.03
+ add: improved RegExpr unit (similar patch is sent to FreePascal) to support all Unicode word letters in \w
2018.08.02
* deleted deprecated Strings.LinesBm[] prop
2018.07.31
- fix: bug in detecting width of Unicode chars which are "hex"
+ add: detect more Unicode chars as "hex", from Wikipedia "White space characters"
2018.07.07
+ add: commands (from CudaText):
cCommand_FoldingFoldAtCurLine
cCommand_FoldingUnfoldAtCurLine
cCommand_FoldingToggleAtCurLine
-
Update
- changed storage of Bookmarks, now instead of BookmarkItem.NNN use BookmarkItem.Data.NNN
- big addon. GutterDecor object. Wiki has text about it
http://wiki.freepascal.org/ATSynEdit#GutterDecor_object
It is idea from Sublime Text which has such display of pair brackets on gutter (with plugin).
Picture from ST3
-
Added OptIgnoreWordChars, it is like "NumbersOnly with symbol chars too", to input numbers, eg in Go To dialog.
-
2018.10.10
+ add: instead of OptIgnoreWordChars, added event OnCheckInput
* removed: OptIgnoreWordChars
-
Update
Reworked caret shapes. Now shapes are public props
CaretPropsNormal
CaretPropsOverwrite
CaretPropsReadonly
Deleted props:
OptCaretShapeMMMM
and - caret has props: Width, Height. In pixels or percents.
and - caret height can be > 100%. e.g 200% will paint over upper/lower lines by 50%.
Picture with caret height 300%.
-
Updates
2018.11.12
+ add: OptShowStapleHiliteActive (highlight deepest block staple containing caret pos)
+ add: OptShowStapleHiliteActiveAlpha (alpha blend value for active staple)
2018.11.11
+ add: property OptUnprintedSpacesBothEnds
+ add: property OptWrapAddSpace (additional number of spaces for wrapped lines)
+ add: property OptScrollbarHorizontalAddSpace (additional number of spaces to show at end of longest line)
+ add: OptWrapMode has new enum value: cWrapAtWindowOrMargin (auto minimal from 2 values)
2018.11.09
- fix: command "Invert Selection" gave redundant carets at begin/end
+ add: don't use empty CodePage name, always fill it with LConvEncoding.GetDefaultTextEncoding
2018.11.07
+ add: event OnCalcTabSize to support Elastic Tabstops
2018.10.28
+ add: property OptSavingTrimFinalEmptyLines
-
It was many changes in the last month.
2018.12.02
+ add: reworked Minimap painting, so now it correctly paints spaces/tabs, even if they are inside multiline comments or strings
- fix: fixes for Minimap Tooltip - it must show wrapped lines like editor does
2018.12.01
+ add: Colors.BlockStapleForCaret (if clNone, then color is calculated from Colors.BlockStaple/TextFont)
2018.11.30
* change: renamed props OptShowStapleNNN to OptStapleNNN
+ add: prop OptStapleEdge1, OptStapleEdge2
2018.11.25
+ add: prop UndoAsString
+ add: prop RedoAsString
-
Package ATSynEdit_Ex updated.
Added TATAdapterSimple, ie simple adapter. This adapter is simple. It simply does this: for line S it fires OnGetLineColor(S, ColorFont, ColorBack) to get 2 colors for line: font and back.
If it gets clNone then line is not hilited.
It can be used eg in FpcUpDeluxe to hilite log lines.
-
That's a clever feature. I always wanted something like that, for patches...
-
Cooking feature. Not fully done, polishing it yet.
Smooth per-pixel scrolling.
preview video here:
https://github.com/Alexey-T/CudaText/issues/1762#issuecomment-450520026
-
I think, smooth per-pixel scrolling is done. I 've fixed all issues I've found in last days...
-
2019.01.21
+ add: Gaps object allows item before the 1st line, with LineIndex=-1
+ add: Gaps items have prop DeleteOnDelLine
2019.01.20
* change: to fix hanging of timers (by LCL), now on Unix component uses TfpTimer, ie threads. App must enable define UseCThreads (see how it's used in the begin of .lpr file), otherwise you'll get runtime error on start.
2019.01.16
- fix: OptScrollLineCommandsKeepCaretOnScreen worked wrong
2019.01.14
+ add: rework dragging of Minimap's highlighted rect; now it must feel like Sublime
2019.01.13
+ add: OptAutoIndentBetterBracketsCurly (make additional indented line if caret was inside {} )
+ add: OptAutoIndentBetterBracketsRound
+ add: OptAutoIndentBetterBracketsSquare
2019.01.12
- fix: when caret on file end, command "scroll line up" caused caret jump
2019.01.06
+ add: Strings object new method LoadFromStrings()
+ add: Finder has new method DoAction_ExtractAll (for CudaText)
-
2019.02.06
+ add: Gaps items have new Color property
2019.02.04
+ add: event OnChangeModified
2019.02.01
+ add: property EncodingName
2019.01.31
+ add: new object Strings.Bookmarks2 - it holds list of "background bookmarks", which have lower paint priority than usual bookmarks - they are used to colorize entire line w/o placing bookmark on it
2019.01.27
* change: renamed most TATSyn*** objects to TAT*** (e.g. TATSynWrapInfo -> TATWrapInfo)
+ add: objects Attribs/DimRanges now use binary search to find items. Big speedup if lot of items in Attribs.
2019.01.26
* reverted usage of fpTimer, now not used
-
Updates
2019.05.07
+ add: global variables EditorScale, EditorScaleFont (in percents)
+ add: property OptRulerHeightPercents
+ add: property OptRulerFontSizePercents
+ add: property OptRulerTopIndentPercents
+ add: property OptMicromapWidthPercents
+ add: property OptNumbersIndentPercents
* deleted: OptRulerSize
* deleted: OptRulerFontSize
* deleted: OptRulerTextIndent
* deleted: OptMicromapWidth
* deleted: OptNumbersIndentLeft, OptNumbersIndentRight
* deleted: OptNumbersFontSize
* deleted: OptCharSpacingX
2019.04.30
+ add: property Strings.UndoEmpty
+ add: property Strings.RedoEmpty
2019.04.26
+ add: property OptRulerMarkSizeCaret
2019.04.17
+ add: property OptZebraActive
+ add: property OptZebraAlphaBlend
2019.04.11
+ add: improved Gaps, they must not break smooth vertical scrolling (80% done)
2019.04.07
+ add: property OptShowMouseSelFrame (show dotted frame during mouse selection)
+ add: commands "selection: remove first caret", "selection: remove last caret"
-
ATSynEdit now supports Emoji (ie surrogate unicode chars).
-
2019.06.12
+ add: Finder has property OptTokens (enum: all, comments, strings, comments+strings, except comments, ...)
+ add: Finder has event OnGetToken (to implement checks for OptTokens)
2019.06.04
+ refactor: split all IME code to "adapter" atsynedit_adapter_ime
+ add: IME window position must be near caret
+ add: IME window must hide on mouse click
- fix: caret pos was incorrect on lines with Emoji
2019.05.20
+ add: OptAutoIndentRegexRule (if line matches this regex, then Enter will add additional indent to new line)
2019.05.16
* change: required package ATFlatControls. This was needed to not have copy of ATScrollbar unit (renamed to ATSynEdit_Scrollbar), that unit is complex and had recent updates. It's hard to keep copy sync'ed. DRY principle.
2019.05.14
* renamed props GutterBand* to longer names
2019.05.12
+ add: feature like in EmEditor: double-click selects not only whole word, but also spaces and symbol-chars
* change: replaced OptMouse2ClickSelectsLine to OptMouse2ClickAction enum
* change: OptScrollbarsNewArrowsKind has renamed its type and has new values
-
Many changes.
Maybe ATSynEdit is the only text editor component which can highlight unprinted symbols only in selection?
2019.09.13
+ add: OptUnprintedSpacesOnlyInSelection
2019.09.10
+ add: OptMinimapHiliteLinesWithSelection (it uses Colors.CurrentLineBG)
2019.06.12
+ add: Finder has property OptTokens (enum: all, comments, strings, comments+strings, except comments, ...)
+ add: Finder has event OnGetToken (to implement checks for OptTokens)
2019.06.04
+ refactor: split all IME code to "adapter" atsynedit_adapter_ime
+ add: IME window position must be near caret
+ add: IME window must hide on mouse click
- fix: caret pos was incorrect on lines with Emoji
2019.05.20
+ add: OptAutoIndentRegexRule (if line matches this regex, then Enter will add additional indent to new line)
-
Micromap object is a new feature.
https://wiki.freepascal.org/ATSynEdit#Micromap_object
-
2020.02.21
+ add: reworked strings storage system TATStrings:
a) it takes less memory for ASCII text lines
b) for lines with non-ASCII chars, it takes more memory, but it works much faster, so scrolling in smoother
+ add: much faster rendering at the end of huge lines (>1M)
+ add: much faster toggling Wrap mode on huge lines
+ add: on long lines (>500), editor ignores CJK char sizes
2020.02.15
+ add: used Alexey Torgashin's patches to Sorokin's TRegExpr
2020.02.13
+ add: OptMaxLineLenToTokenize=4000
2019.12.17
+ add: finder: added method Action_FindAll (collect all matches in a list)
2019.12.11
+ add: supported encodings UTF-32LE, UTF-32BE