Pull requests

#263 Merged
Repository
jakobla jakobla
Branch
default
Repository
birkenfeld birkenfeld
Branch
default

Rewrite of C++ domain (also fixes #1013, #1103)

Author
  1. Jakob Lykke Andersen
Reviewers
Description

I started trying to fix issue #1013, but found it rather difficult to change the current parser. This pull-request is therefore a rewrite of most of the C++ domain such that the parser follows the overall structure of the C++ grammar. This should make it easier to add new features.

Most notable changes:

  • Hyperlinks to all found nested names and template arguments (also fixes #1103).
  • Support for function types everywhere, e.g., in std::function<bool(int, int)> (#1013).
  • Support for virtual functions.
  • Changed interpretation of function arguments to following standard prototype declarations, i.e., void f(arg) means that arg is the type of the argument, instead of it being the name.
  • Updated tests.
  • Updated documentation with elaborate description of what declarations are supported and how the namespace declarations influence declaration and cross-reference lookup.
  • Index names may be different now. Elements are indexed by their fully qualified name. It should be rather easy to change this behaviour and potentially index by namespaces/classes as well.

Comments (7)