David Fishburn wrote:
[...]
When variables are identified we strip off the scope:
let s:ignoreNextCursorMovedI = 0 ==> ignoreNextCursorMovedI
Should the scope be left on ==> s:ignoreNextCursorMovedI
How are scopes handled in other languages?
Notice that varname (in a function) is the same as l:varname while varname (in
a script, but outside of all functions) is the same as g:varname. Similarly,
s:funcname is the same as <SID>funcname
If you identify scopes, should or shouldn't ctags qualify the non-global
variables by their script (if script-local) or script and function (if
function-local)? (I see you mention this in a further paragraph. If it's not
too hard to program, it might be useful as an option.)
And how to treat buffer- and window-local variables?
Instead of simply grouping everything under variables, should we distinguish
between different types?
let forms#form = {
\ 'title': 'Address Entry Form',
\ 'fields': [],
\ 'defaultbutton': 'ok',
\ 'fieldMap': {},
\ 'hotkeyMap': {},
\ }
Right now this is identified as a variable, should we identify it as a
Dictionary by adding another kind of tag?
[...]
When a script has
:let var1 = var2
there is nothing there (maybe nothing in the script) which says whether the
variable in question is a "simple" variable (Number/String), a List, or a
Dictionary. Wouldn't it be a headbreaker to try to label all cases correctly?
Best regards,
Tony.