Le 11/05/2013 04:44, Lex Trotman a écrit :
Colomban,
Did some more research.
- Doesn't happen with rest (I think I must have had the filetype set
wrong when I found it before, hence geany.txt is now marked for filetype :)
in symbols_get_context_separator() rest returns something other than '.'
tried returning impossible rubbish "!@#$%^&*()_" for other markup
languages and they now work like rest.
- tried returning null string "" but got infinite loop, didn't dare
return NULL :)
So what is the correct way of saying "no context separator for this filetype"?
There are currently none. Context separators are used to separate names in fully or partially qualified names, like in "Foo<sep>Bar". So this separator string should be one put in tags scope by ctags.
However, some language indeed don't put any, and generate unqualified scopes -- as does the ASCIIDoc one.
We don't currently have anything to specify "no separator", but we probably could go for some ASCII control sequence, like ETX (\x04, End of Text), EOT (\04, End of Transmission) or pretty much anything that's not printable or blank.
BTW as we discussed on IRC, we can't really return "" (empty string) or NULL because it would somewhat break the plugin API (and it would actually break plugin geanygendoc).
Other than markup languages, are there any others that do not have context separators, or it is not '.' (other than ruby commented in symbols_get_context_separator)
Do you expect me to know every language? :) Though, in real programming languages there generally are rules on what an identifier can be, so most languages will allow a context separator. And even, most languages will have one, as part of the syntax to access nested units, like "." and "->" in C, ".", "::" and "->" in C++, "::" and "->" in PHP, "." in Python, etc.
So, as we discussed on IRC I suggest we pick an ASCII control character (or sequence) and return this for languages that should allow anything in tag names.
Cheers, Colomban