Commit Graph
24 Commits
Author SHA1 Message Date
Alexey RadkovandGitHub d040a4bd7d Merge branch 'dev' into dev 2019-04-04 21:34:34 +03:00
lyokha 0303021abd Fast aligns check
The optimized table formatting algorithm was still O(n) because
calculating aligns required traversal to the separator line on the top
of a table. This heuristic algorithm calculates aligns in O(1) in the
best case by looking at cells in two rows above.

Say, if two above rows are

|      uau | uauyaya         | ya      |
|       ua | uaua            | uaaua   |
| <cursor> |                 |         |

then the aligns can be figured out without need to find the separator
line. If aligns cannot be figured out after this fast check then the
algorithm falls back to O(n) with searching for the separator line.
2019-04-04 21:30:14 +03:00
ЛёхаandHenry Qin ae3db7a079 Do not format current table line directly in get_rows()
This formatting is needed in the optimized table formatting algorithm
for shrinking the current table line to try the best to avoid
re-formatting the whole table. However, this breaks cursor motion and
may also affect other table related behaviors. The fix is to move this
formatting to get_aligned_rows(). Now table rows are not affected by any
means, because the current row is only replaced temporarily for the
formatting purpose only and gets reverted as soon as the check is
finished.

Fixes #656.
2019-04-04 00:13:00 -07:00
Alexey RadkovandMichael F. Schönitzer e0fffb470a Separator line in a table requires special treatment (#651)
Fix #650 – horizontal table delimiter treated wrong
2019-04-01 23:13:24 +02:00
ЛёхаandHenry Qin e0f4ab8c5e Revert implementation of function s:get_cell_aligns()
This commit reverses a change to s:get_cell_aligns introduced by
bdcfca1e5c.
2019-03-18 14:43:43 -07:00
lyokha ad6a3bceb6 the cause of the linear slowing down was fixed 2019-03-18 17:49:13 +03:00
lyokha 1f4fb8ca58 notes on the newer table formatting algorithm 2019-03-18 16:02:52 +03:00
lyokha 0c82d9dcb8 Merge remote-tracking branch 'upstream/dev' into dev 2019-03-18 13:13:30 +03:00
lyokha 88a6820e9e updated for the new aligns feature 2019-03-15 16:07:52 +03:00
Alexey RadkovandGitHub fa6342c454 Merge branch 'dev' into dev 2019-03-15 15:38:22 +03:00
lyokha 5e4a89c898 faster table format on InsertLeave; faster s:get_rows() 2019-03-15 15:31:28 +03:00
lyokha 07ba7339f1 added docs about new commands gq1 and gw1 2019-03-14 14:44:08 +03:00
lyokha 30c0bdffaa synced README.md with the remote dev branch (3) 2019-03-14 14:25:35 +03:00
lyokha 7e176c659b synced README.md with the remote dev branch (2) 2019-03-14 14:24:13 +03:00
lyokha bfbfa2783e synced README.md with the remote dev branch 2019-03-14 14:21:28 +03:00
Alexey RadkovandGitHub af8cdc4d62 Merge branch 'dev' into dev 2019-03-14 14:09:30 +03:00
lyokha a74e0821b0 resolved conflicts in tbl.vim 2019-03-14 13:36:51 +03:00
Alexey Radkov 920f41b318 fixed get_cells() FSM and gqq command
- get_cells() FSM correctly treats unclosed quotes now,
- fixed gqq command: now it aligns all the table
- proposed 'fast' variant of gqq: gq1 that aligns current + 2 above rows
2014-05-09 12:47:21 +04:00
Alexey Radkov 72ad6d1b16 minor stylistic change 2014-05-04 20:46:00 +04:00
Alexey Radkov 4d1bb91dbe small fix in s:get_aligned_rows() 2014-05-04 18:42:00 +04:00
Alexey Radkov cd25233cc8 fast <Tab> and <S-Tab> in Insert mode
this also fixes Tab navigation in a new added line
2014-05-04 17:09:42 +04:00
Alexey Radkov b79977d6b8 further large table optimizations
1. s:get_aligned_rows(): getting 2 last rows is enough for having been
   formatted tables
2. vimwiki#tbl#get_cells(): using faster strpart() instead concatenating
   every new character into variables cell and quote
3. checking by getline() whether the line was changed before setline()
   does matter on slower computers
2014-05-04 15:46:19 +04:00
Alexey Radkov 411d8da0a4 Merge remote-tracking branch 'upstream/dev' into dev 2014-05-04 15:25:38 +04:00
Alexey Radkov 0559bf8aed Merge remote-tracking branch 'upstream/master' into dev 2014-05-04 15:23:45 +04:00