* * *

Author Topic: ATSynEdit: cooking feature  (Read 5180 times)

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #15 on: August 22, 2017, 10:05:56 am »
Fixes for ModeOneLine=true

- if text not fits to control, more text at left, make right edge of text sticky to right edge of Edit
- allow mouse auto-scroll + select to left-right (was only in multi-line mode)

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #16 on: August 31, 2017, 11:22:49 am »
Update

Added DimRanges obj, see doc:
http://wiki.freepascal.org/ATSynEdit#DimRanges_object

Example screenshot with 2 ranges: on top (dim value 130) and lower (dim value 200)

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #17 on: November 30, 2017, 12:57:38 pm »
ATSynEdit_Ex package updated

Added ATSynEdit adapter for "lite lexers". They work much faster than EControl lexers but with limitations.
http://wiki.freepascal.org/CudaText#Lite_lexers

3 lite lexers made:
XML
JSON
Log files
(they are in CudaText release)

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #18 on: December 05, 2017, 08:12:01 am »
Big change - optimized memory usage.

Before: Lines items were Objects, which had properties in a class.
Now: Lines items are records inside TFPGList, and they are "bitpacked records".

Mem usage must be smaller.
« Last Edit: December 05, 2017, 08:14:44 am by Alextp »

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #19 on: December 10, 2017, 10:00:49 am »
Again, changed storage of strings (ATStrings)
Fixed major bug: double freeing of objects (visible as crash on paste).

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #20 on: January 11, 2018, 12:50:30 pm »
Added many optimizations to scroll  text (vert) fast with huge lines [tested on 4M line len].

Still horiz scrolling on huge lines is very slow. maybe to-do..

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #21 on: January 12, 2018, 10:51:13 am »
Made like in Sublime: Ctrl+(double click) selects word as additional caret.

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #22 on: January 19, 2018, 12:54:55 pm »
Update
Added Hotspots object.
http://wiki.freepascal.org/ATSynEdit#Hotspots_object

Example of usage: in HTML file, app can find all HTML color tokens #rrggbb, add hotspots for them, and store color value to Tag. Then on mouse-over app can show colored tooltip.

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #23 on: February 07, 2018, 11:17:39 am »
Big update

Quote
2018.02.06
+ rewritten bookmarks support. now bookmarks are not embedded into Strings items, they are in separate Strings.Bookmarks object. now bookmarks aren't deleted if their lines are deleted - good.
+ smaller size of Strings item
+ added unit atsynedit_bookmarks
* deleted unit atstrings_hints
* deprecated Strings.LinesBm[]
* deleted Strings.LinesHint[]

2018.01.31
- fix: stupid bug (fix: char->widechar) in detect pixel width of CJK text
+ add: prop OptMaxLineLengthForSlowWidthDetect (500)

2018.01.25
+ allow OptIndentSize value 0: it uses OptTabSize, OptTabSpaces
Info -
http://wiki.freepascal.org/ATSynEdit#Strings.Bookmarks_object

« Last Edit: February 07, 2018, 11:19:23 am by Alextp »

Alextp

  • Hero Member
  • *****
  • Posts: 547
    • UVviewsoft
Re: ATSynEdit: cooking feature
« Reply #24 on: Today at 01:30:46 pm »
Update

More optimizations for huge lines. Tested on file with 4M line len: now caret moves fast at end too (before was fast only at line start).
Optimization is only for pure ASCII lines, where no need to call UTF8Length.

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus