On Mi, 14 Nov 2018, Bram Moolenaar wrote:

> 
> Christian Brabandt wrote:
> 
> > > On Mi, 29 Aug 2018, Lifepillar wrote:
> > > 
> > > > There's a meme (if it may be called so) circulating on Twitter
> > > > about using Fibonacci sequences for indentation. Just for fun,
> > > > I wanted to see if it could be implemented using the vartabs
> > > > feature. I thought that this would do it (for C files):
> > > > 
> > > > set shiftwidth=0
> > > > set noexpandtab
> > > > set vartabstop=1,1,2,3,5,8,13,21,34
> > > > set autoindent
> > > > set smartindent
> > > > set ft=c
> > > > 
> > > > With the above settings, it appears that the value of tabstop
> > > > is used. This seems to agree with shiftwidth's documentation:
> > > > “When [shiftwidth is] zero the 'ts' value will be used”, but
> > > > not with tabstop's help: “the value of 'tabstop' will be
> > > > ignored while 'vartabstop' is set”. Putting together the two,
> > > > I would expect the above to use vartabstop.
> > > > 
> > > > Am I missing something?
> > > 
> > > I am not sure. It might be, that the functionality of using the tabstop 
> > > setting when shiftwidth is zero is indeed missing from vartabstop, 
> > > because this was done some time after the vartab patch has been created 
> > > and that feature has than not made it back into the vartabs patch.
> > > 
> > > I'll have a look at it in more detail later.
> > 
> > Indeed, that's the problem. The vartab option is not taken into account 
> > when the shiftwidth option is set to zero.
> > 
> > Attached is a patch, that fixes the issue.
> > 
> > However, it currently fails test86.in with the following error:
> > --- test86.ok   2018-11-14 13:32:51.652857566 +0100
> > +++ test86.failed       2018-11-14 16:48:10.638090709 +0100
> > @@ -297,6 +297,9 @@
> >    wopts2! KeyError
> >    wopts3! KeyError
> >    p/bopts1: 8
> > +  inv: 3! error
> > +  bopts1! error
> > +  bopts2! error
> >    G: 8
> >    W: 1:0 2:2 3:8 4:1
> >    B: 1:0 2:2 3:8 4:1
> > 
> > I don't understand the python code in there to know what this does. Sorry.
> 
> When compiled with the "abort on internal error" flag, I see an ml_get() 
> error:
> 
> #2  0x000055555582ad8f in iemsgn (s=0x555555843628 "E315: ml_get: invalid 
> lnum: 
> %ld", n=2009) at message.c:802
> #3  0x000055555566a294 in ml_get_buf (buf=0x555555e88c30, lnum=2009, 
> will_change
> =0) at memline.c:2500
> #4  0x000055555581de5a in getvcol (wp=0x555555b02dc0, pos=0x555555b02df8, 
> start=
> 0x0, cursor=0x555555b02ea0, end=0x0) at charset.c:1303
> #5  0x000055555581e461 in getvvcol (wp=0x555555b02dc0, pos=0x555555b02df8, 
> start
> =0x0, cursor=0x555555b02ea0, end=0x0) at charset.c:1500
> #6  0x00005555556912df in validate_virtcol_win (wp=0x555555b02dc0) at 
> move.c:822
> #7  0x0000555555691286 in validate_virtcol () at move.c:810
> #8  0x00005555555bd958 in get_nolist_virtcol () at edit.c:10690
> #9  0x00005555556d055d in get_sw_value (buf=0x555555e88c30) at option.c:13089
> #10 0x000055555567fbd2 in parse_cino (buf=0x555555e88c30) at misc1.c:7132
> #11 0x00005555556c7f6a in set_num_option (opt_idx=294, varp=0x555555e8a578 
> "\003
> ", value=3, errbuf=0x0, errbuflen=0, opt_flags=4) at option.c:9126
> #12 0x00005555556c984c in set_option_value (name=0x7fffee5f96e4 "shiftwidth", 
> nu
> mber=3, string=0x0, opt_flags=4) at option.c:9954
> #13 0x00005555557e3539 in set_option_value_err (key=0x7fffee5f96e4 
> "shiftwidth",
>  numval=3, stringval=0x0, opt_flags=4) at if_py_both.h:3464
> #14 0x00005555557e36c7 in set_option_value_for (key=0x7fffee5f96e4 
> "shiftwidth",
>  numval=3, stringval=0x0, opt_flags=4, opt_type=2, from=0x555555e88c30) at 
> if_py
> _both.h:3506
> #15 0x00005555557e3af5 in OptionsAssItem (self=0x7fffee65fb90, 
> keyObject=0x7fffe
> e5f96c0, valObject=0x7ffff7f4ec50) at if_py_both.h:3597
> #16 0x00007ffff16b2739 in PyEval_EvalFrameEx () from 
> /usr/lib/x86_64-linux-gnu/l
> ibpython2.7.so.1.0

Ah, I have seen that error before and thought I fixed. That usually 
happened when the buffer was not loaded. I'll have a closer look later.
I suppose that happen when running test86?

Best,
Christian
-- 
Wenn Microsoft Autos bauen würde ...
würde das Airbag-System vorher fragen: "Sind sie sicher?" bevor es
auslöst.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui