Using LSP only as an alternative source of tags doesn't make sense to me because it won't bring any better autocompletion or symbol goto so why bother.
Sorry, I didn't want to suggest to only grab tags from LSP. My point is that we should grab tags from LSP at a minimum (and maybe use LSP in other opportunities additionally). For example, we can probably use the goto-definition LSP interface where possible (i.e. ctrl+click in the editor). I guess it has the advantage that the LSP can infer whatever foo is in `foo->func()` and then jump to the right definition, instead of presenting the user the various `func()` overloads to chose from.
But we must make sure that other goto-defintion use-cases (no document context) are also backed by LSP data and not by a completely different parser that perhaps only parses half of the document compared to the language server. Otherwise the LSP integration is going to be a source of user frustration and bug reports.