Commit Graph

139 Commits

Author SHA1 Message Date
Eric Davis
2e5713ae6a fixed the Average function and test case when spanning rows/columns
fixed a Vim error(E907) in Min/Max when comparing v:null to a float
fixed CountE/CountNE/PercentE/PercentNE to support spanning rows/columns
added test cases for all the new formula functions
2020-04-19 00:20:55 -07:00
Eric Davis
f755285cf3 simplified the CountE function
cleanup for HTML comment tag checks
2020-04-18 21:47:22 -07:00
Eric Davis
5cdf3c2ac1 Added the following formula functions:
- Min: get the lowest value
  - Max: get the highest value
  - CountE: count the number of empty cells
  - CountNE: count the number of non-empty cells
  - PercentE: percent of empty cells
  - PercentNE: percent of non-empty cells
  - AverageNE: average over non-empty cells

Also added a subtle tweak that ignores an HTML comment tag ('<!--')
found between the table and the starting formula line. Being able to
wrap all the formula lines with an HTML comment prevents the formulas
from being rendered in Markdown/ReST output.
2020-04-18 18:46:21 -07:00
ibbem
46e4493b30 Start insert mode after adding a column 2020-04-13 22:34:44 +02:00
ibbem
85a5e3d4e1 Fix the column modifications on escaped separators
If a g:table_mode_separator is escaped by a backslash, the table is
aligned ignoring this instance of the g:table_mode_separator, but the
column deletion and insertion functions did not consider this behaviour.

The g:table_mode_escaped_separator regex is simplified and optimized a
little bit. Also more care is taken to prevent unexpected behaviour if
special characters are used as g:table_mode_separator.
2020-04-04 15:27:23 +02:00
ibbem
67129cd1e0 Fix column modifications if Unicode is involved 2020-04-04 15:27:23 +02:00
ibbem
0b58003b68 Add support for inserting columns #130
Two mappings are introduced to enable usage of this feature like vim's
pasting with p and P.
2020-04-04 15:27:19 +02:00
ibbem
6912880697 Include the header when deleting columns 2020-03-31 18:21:45 +02:00
Dhruva Sagar
5ac34a22db Fix #156, improved cursor column detection 2019-12-10 16:13:23 -05:00
Dhruva Sagar
865563f785 Allow range for TableSort. Fix #133 2019-04-25 23:14:05 +05:30
Dhruva Sagar
fdfcb85fb3 Add fold marker for improved folding 2019-02-20 09:43:50 +05:30
Dhruva Sagar
ad9229c937 Fix #141. Allow negative row reference in formula expressions 2019-01-21 15:20:10 +05:30
David Briscoe
5c3c30a9cc Automatically setup table options
Readme mentions settings for Markdown and ReST, but we can apply them
automatically for the current filetype. If a user is editing a no
filetype scratch buffer, they'll still need to configure these options
themselves. But this provides better defaults when editing a buffer of
these filetypes.

Adds get_buffer_or_global_option that could be used for any other
buffer-local (filetype-specific) options.
2018-12-19 12:50:47 -08:00
Dhruva Sagar
a1be216c94 Update tablemode.vim 2018-10-21 05:53:36 +05:30
David Briscoe
cf11264525 Only insert borders on blank/whitespace-only lines
Fixes #45.

Require our end expr to insert a border. This prevents borders from
clobbering other text and makes it possible to use visual block to insert
a new column.
2018-05-19 06:15:36 -07:00
Jeet Sukumaran
09f4336954 Disable/restore foldmethod during realignment 2018-05-15 18:07:30 -04:00
Dhruva Sagar
e646bee5c4 Fix #132
Disabling InsertLeave autocmd for realign since it is getting triggered
multiple times during realignment and causes issues while creation of
tables
2018-03-22 09:40:50 +05:30
Dhruva Sagar
d0a6405189 Fix #131. Cleanly disable auto align when table mode is disabled. 2018-03-17 08:06:45 +05:30
Dhruva Sagar
c35fd9b104 Remove CursorHoldI for auto-align. Fix #128
Since auto-align in insert mode causes snags, removing it and instead
doing it on InsertLeave instead
2018-02-13 08:34:35 +05:30
Dhruva Sagar
bdd96b05cb AutoAlign only if buffer is already modified. Fix #126 2018-01-22 16:59:50 +05:30
Dhruva Sagar
b25fe6f9f0 Fix #124
Underscores should not create an issue
2018-01-04 12:18:22 +05:30
Dhruva Sagar
322503e814 Add support for escaping the separator #118
Initial support. Alignment and border creation is fixed and is
consistent in considering the escaped table separator as part of the
column.

TODO :
* Fix syntax to reflect the above.
* Fix cell definition, motion & formula engine to incorporate this.
2017-12-28 01:04:45 +05:30
Dhruva Sagar
9f383b92be Play nice with vimwiki. Fix #110
In order to use vim table mode over vimwiki native table formatting
support you need to add the following vimwiki settings to your vimrc :

```vim
let g:vimwiki_table_mappings=0
let g:vimwiki_table_auto_fmt=0
```
2017-10-09 20:44:50 +05:30
Dhruva Sagar
a646b4033b Fix #122 : Disable auto align properly after disabling Table Mode 2017-07-31 06:06:22 +05:30
Dhruva Sagar
4e41af8e5f Remove Auto Align in insert mode #115
Since realigning doesn't work well in insert mode, I have removed auto
align feature for it. Auto align will now kick in once you have made
changes and get back to normal mode.
2017-04-20 10:08:18 +05:30
Dhruva Sagar
d4cb68e8e1 Fix for option g:table_mode_update_time 2017-03-10 06:51:47 +05:30
Dhruva Sagar
79bf3f9bb7 Add configuration option table_mode_update_time #73
This is for better experience with auto align, we override the
updatetime with the value of the configuration g:table_mode_update_time.

Once table mode is disabled prior defaults are restored.
2017-03-10 06:48:30 +05:30
Dhruva Sagar
ef66b3ec2f Revert "Also auto realign on InsertLeave #73"
This reverts commit 6584cee4a4.
2017-03-09 15:02:42 +05:30
Dhruva Sagar
6584cee4a4 Also auto realign on InsertLeave #73 2017-03-09 14:24:15 +05:30
Dhruva Sagar
1eef73fc5b Add option to auto align table while editing #73 2017-03-09 11:00:19 +05:30
Dhruva Sagar
30a3eba816 Fix #103 : Refactored border creation
Border creation should not conflict with the contents of the row
2017-01-05 11:42:10 +05:30
Dhruva Sagar
8d3affcf5f Minor refactor for table syntax 2017-01-04 16:03:24 +05:30
Dhruva Sagar
9edd6d7d20 Add config to disable table mode syntax
Since table mode syntax can hamper performance, it is now possible to
disable it with a global config
2017-01-04 15:49:35 +05:30
harriott
e07c240940 fixed logger.vim and announce g:table_mode_verbose 2016-09-09 10:39:01 +02:00
Dhruva Sagar
8309a33aa7 Fix #90
Allow for multiple formula lines
2016-08-23 09:26:24 +05:30
Dhruva Sagar
b613e39bd0 Fix #89
Unescape special characters () within the commmentstring
2016-05-08 15:57:13 +05:30
Dhruva Sagar
4cf1f53430 Fix #86
Fixed issue with table formula addition when there exists one already
and the comment string is singular, i.e. no end delimiter.
2016-04-09 12:55:29 +05:30
Dhruva Sagar
fdfa4b12c2 Add tablemode#table#IsTable 2015-11-23 14:53:05 +05:30
Dhruva Sagar
74d1492f2b Add support for center alignment. Fix #57
We now have support for center alignment, simply add a header border
with the `g:table_mode_align_char` as both the first and the last
character so it would look something like `+:.....:+` to center align
the column values.
2015-04-14 15:56:09 -07:00
Dhruva Sagar
33c00df509 Fix #56
* Fixed tablemode#spreadsheet#cell#SetCell() to accommodate the fact that we
  can have borders anywhere in the table. Using
  tablemode#spreadsheet#LineNr() to get get the line of the actual row
  in the table.
* Fixed tablemode#spreadsheet#LineNr()
2015-02-27 08:53:03 +05:30
Dhruva Sagar
e125870212 Fixed s:Map to not throw error for empty a:to 2014-11-21 07:02:38 +05:30
Dhruva Sagar
d5152bde5e Fixed typo #39 2014-11-20 07:21:43 +05:30
Dhruva Sagar
b22c9bf7b1 Skip empty maps 2014-11-20 07:19:23 +05:30
Dhruva Sagar
29cae13802 Fixed #44
Added tablemode#logger#log && g:table_mode_verbose

Use logger wherever needed for logging general things, in future we can
scale this to do more things like write to a log file for debugging. It
uses g:table_mode_verbose to determine whether or not to actually log
the message.
2014-11-18 07:57:45 +05:30
Dhruva Sagar
af0254e816 Improved tablemode#table#IsHeader()
Automatically improves header border creation, especially when
overriding g:table_mode_header_fillchar #31
2014-11-18 07:48:23 +05:30
Dhruva Sagar
bba22a4f04 Added g:table_mode_header_fillchar
* Allows configuring a separate character for header border to be used
  with pandoc
2014-11-16 13:40:14 +05:30
Dhruva Sagar
ffc734c38d Added TableModeEnabled & TableModeDisabled autocmd
* Added custom User autocmds TableModeEnabled & TableModeDisabled for
  working with other plugins like vim-pandoc #43
2014-11-15 16:38:22 +05:30
Dhruva Sagar
ea78f62565 Releasing Table Mode v4.6.1
* Added configurable table mappings.
* Updated docs & README.
2014-10-28 13:31:16 +05:30
Dhruva Sagar
7e06786708 Minor formatting 2014-10-28 08:04:39 +05:30
Dhruva Sagar
ef0eef0f35 Fixed #38
Added a mapping `<Plug>(table-mode-sort)` which is mapped by default to
`<Leader>ts` that sorts the current table by the column in which the
cursor is currently.

Also added `TableSort` command that gives you a little more control over
the sorting, you can pass in additional :sort flags like u, i, n etc and
also use it with a `!` to sort in reverse order.
2014-09-17 01:36:59 +05:30