Я генерирую свои теги (Exuberant Ctags 5.9~svn20110310) следующим образом:
ctags --c++-kinds=+p --fields=+iaS --extra=+q -L ctags.files
У меня примерно такая структура класса:
class RenderObject
{
InterpolatedVector offset;
};
class Quad : public RenderObject
{
};
class KeyframeWidget : public Quad
{
void shiftRight()
{
if (!offset.isInterpolating())
offset.interpolateTo(Vector(offset.x+80, 0), 0.1, 0, 0, 0);
}
};
(Код взят из выпуска Aquaria с открытым исходным кодом.)
Если я помечаю переход на offset
(Ctrl-]), то я получаю список каждые offset
в моей кодовой базе. После того, как я наберу offset.
в конце shiftRight()
, OmniCppComplete начнет предлагать завершения только для InterpolatedVector
.
Как сделать так, чтобы мои теги переходили так же умно, как OmniCppComplete?
Просто переходы по тегам не используют никакого контекста, поэтому они знают только имена символов? (Это то же самое, что и :tag <C-r><C-w><CR>
?) Есть ли альтернатива vim, которая делает их контекстно-зависимыми?