On 08/04/14 22:54, Justin M. Keyes wrote:

On Apr 8, 2014 4:36 PM, "Nikolay Pavlov" <[email protected]
<mailto:[email protected]>> wrote:
 >
 >
 > On Apr 8, 2014 11:53 PM, "Justin M. Keyes" <[email protected]
<mailto:[email protected]>> wrote:
 > >
 > > Hi,
 > >
 > > It seems any plugin can :unlockvar any global variable that was
locked by another plugin. So, is the purpose of lockvar simply a
friendly warning/sanity check?
 > >
 > > Also, is there a speedup gained by using lockvar? (Maybe it helps
the vimscript optimizer to know that variable cannot be modified?) If
so, should I use lockvar whenever possible in my plugins?
 >
 > There is no such a thing as "vimscript optimizer". There is even no
separate parser: commands (and expressions) are executed as they are
parsed, so even
 >
 >     echo (system('touch abc')
 >
 > will create file 'abc' even though there is missing closing
parenthesis. AST is never created.

Thanks Nikolay. I was thinking that might be the response.

So can anyone comment on the utility of lockvar? It must have been added
for a reason.

Justin M. Keyes

Another script may unlock the variable, yes, but that requires awareness that the variable may have been locked in the first place. Many scripts use

        let foo = "bar"

but how many do you think use

        try
                let foo = "bar"
        catch /^Vim\%((\a\+)\)\=:E471/
                unlockvar foo
                let foo = "bar"
        endtry

or even

        try
                let foo = "bar"
        catch
                unlet foo
                let foo = "bar"
        endtry

,especially if the variable foo was defined in a different script?


Best regards,
Tony.
--
Little Johnny with a grin,
Drank up all of daddy's gin,
Mother said, when he was plastered,
Go to bed, you little ... love-child.

--
--
You received this message from the "vim_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to