Don't include template completion when inside the template class
Would it be possible to remove the template snippet when completing the class name inside a templated class. For example here It's likely the intent for this completion is to just get MyClass, but the completion supplied includes the template syntax.

Would the best behaviour be to only suggest MyClass or to suggest MyClass and MyClass<template T>.
Should the behaviour depend on the context too, e.g. inside the class body vs inside an inline method vs inside an out-of-line method.
A similar behaviour can be applied with dependent base classes. In this example, If possible we should try and suggest MyBase<T>, though the fix for that is definitely a lot more involved as it requires traversing base classes.

System information
Output of clangd --version: clangd version 13.0.0 ([email protected]:llvm/llvm-project.git cf37d03e79d227a5f6a9526c914afd01bcb6aeec)
Editor/LSP plugin: 0.1.9
Operating system: ubuntu 20.04.1
I agree. At the very least there should be a suggestion with just the template name. The type arguments can (and should) be omitted inside the template class scope so it doesn't make sense to offer this suggestion. Especially considering that it's adding in the typename as well.
I think the only situation where it makes sense to offer something similar would be:
template< typename U >
MyClass& operator=( My...
where it could offer MyClass<U>
Of course, you may just want to write MyClass<int> at some point, so a more general option could be to complete to MyClass<> and have that cover the typename U case above as well. Or only have the option of MyClass and let the user type in the angle brackets themselves. In any case, the undecorated template name needs to be in the suggestions.
I'd rather type <U> in the case where I want to talk about another instantiation of the template, vs <Esc>cF< in the (much more common) case where I want to refer to the template class or its constructor.
Strongly agree.
I think the best way is only have the option of MyClass and let the user type in the angle brackets themselves.
The same problem occurs when I input #include, the completion result is #include "header". I need to press Ctrl + I again to get suggestions.
This feature would be great; as it currently stands, writing the implementation of a templated class is quite annoying. Further, with CTAD in C++17, we can omit the template arguments in a bunch of places, so I think the ideal scenario be to actually just complete the name, and let the user type the <> if they need to.