156 Commits

Author SHA1 Message Date
juanMarinero
876c21ab48 fix: snake_case var and use tablemode#utils#get_buffer_or_global_option
Test with next VIMRC settings:
let g:table_mode_color_cells = 1
function! g:TableModeColorCellsCustom()
  let g:table_mode_syntax_dict.contains .= ',highPriorityCell,completeCell,infoCell'
  syntax match highPriorityCell /|\@<= *\![^|]*/ contained
  syntax match completeCell /|\@<= *X[^|]*/ contained
  syntax match infoCell /|\@<= *\/\/[^|]*/ contained
endfunction
autocmd VimEnter * call timer_start(10, {-> g:TableModeColorCellsCustom()})
hi highPriorityCell ctermfg=1 guifg=Red   cterm=bold gui=bold
hi completeCell     ctermfg=2 guifg=Green cterm=bold gui=bold
hi link infoCell    Comment " Or make it look like comments in your colorscheme
2025-08-28 22:19:36 +02:00
juanMarinero
b9883bb6c6 Issue #244
Test with next VIMRC settings:
let g:table_mode_color_cells = 1
function! g:TableModeColorCellsCustom()
  let g:TableModeSyntaxDict.contains .= ',highPriorityCell,completeCell,infoCell'
  syntax match highPriorityCell /|\@<= *\![^|]*/ contained
  syntax match completeCell /|\@<= *X[^|]*/ contained
  syntax match infoCell /|\@<= *\/\/[^|]*/ contained
endfunction
autocmd VimEnter * call timer_start(10, {-> g:TableModeColorCellsCustom()})
2025-08-27 20:34:31 +02:00
Dhruva Sagar
7ec0b83dbd Rewrite tests with vim-testify 2023-03-01 07:22:48 +05:30
Cameron Fowler
33ea774b69 Support optional newline after tables for formula
Fixes #86

This allows the formula line to be evaluated, even if there is a single
empty line after the table. The "empty" line is allowed to contain
whitespace, but nothing else.

The formula will evaluate if triggered on the table, the empty line, or
the formula lines.
2022-07-21 14:10:35 +12:00
Dhruva Sagar
816072c0f5 Improved Formula Engine
* Does not try to forcefully cast column content to float
* Silences any errors during formula evaluation, you can look at
  `v:errmsg` to see if there was any error during the evaluation for
  debugging
2022-04-05 22:18:51 +05:30
Dhruva Sagar
698ff3074c Improve handling of g:table_mode_ignore_align 2022-03-01 13:12:54 +05:30
Dhruva Sagar
494d95d2b3 Add config g:table_mode_ignore_align. Fix #145
* Disabled by default, if enabled directs table mode to ignore aligning
  based on alignment characters on the header and always left aligns
2022-03-01 13:07:33 +05:30
Dhruva Sagar
bdcffffe1f Attempt to Fix #173 2021-12-02 00:28:56 +05:30
Jonas DOREL
0fe6bd87ac feat(highlight): add color prefixes 2021-10-07 18:37:17 +02:00
Jonas DOREL
59900a3fef fix(regex): some words start with no 2021-10-05 20:20:57 +02:00
Jonas DOREL
e5dc853ee3 fix(highlight): disable highlight when word before 2021-10-05 17:29:47 +02:00
Jonas DOREL
c949912bfa feat(highlight): color cell if contains yes,no,? 2021-10-05 16:06:53 +02:00
Dhruva Sagar
02d28b9323 Move echo cell functionality to autoload. Fixes #206 2021-09-04 23:24:42 +05:30
Dhruva Sagar
35e9fbf64c Improve formula evaluation. Fix #201
A past change added support for html comments for tables, however, this
fails when the formula line happens to match the format of html comments
2021-05-30 03:53:41 +05:30
Benjamin Mundt
8dcdfad1ee Define separator map in one place as a global; add separator map target for separators other than | 2021-04-29 14:15:48 -04:00
Dhruva Sagar
3476c4e517 Improve Tableize. Fix #109.
This adds a new option `g:table_mode_tableize_auto_border` that allows
to enable automatic border creation when using Tableize to create tables
2020-08-19 21:59:37 +05:30
Dhruva Sagar
336262d04f Fix #184
Improve formula evaluation, support border rows
2020-08-02 23:26:27 +05:30
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