Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use cxx parser from uctags #3032

Merged
merged 10 commits into from Dec 19, 2021
Merged

Use cxx parser from uctags #3032

merged 10 commits into from Dec 19, 2021

Commits on Nov 28, 2021

  1. Add "l" prefix to functions in lcpp.c/h

    This is to avoid clash with cpreprocessor.c/h used by the new cxx parser.
    Merging lcpp.c/h with cpreprocessor.c/h would be difficult (at least for
    now) because of the differences in c.c so keep them separate for now.
    techee committed Nov 28, 2021
    Copy the full SHA
    0659525 View commit details
    Browse the repository at this point in the history
  2. Rename C/C++ parsers to "Old"

    As a result, when we copy the new cxx parser, we don't have clashes of
    these symbols from the two different parsers.
    techee committed Nov 28, 2021
    Copy the full SHA
    4bcdbcb View commit details
    Browse the repository at this point in the history
  3. Add the new cxx parser

    This patch only makes the parser compile, it doesn't enable
    it yet.
    techee committed Nov 28, 2021
    Copy the full SHA
    aa3ab44 View commit details
    Browse the repository at this point in the history
  4. Enable the new cxx parser

    There are several things needed for this:
    
    1. The new preprocessor has to be defined as a separate parser.
    
    2. Tags from the new c/c++ parsers and the preprocessor parser have to
    be mapped to Geany types. We still need to keep the old mappings because
    some parsers like Ferite or GLSL still use the old C parser.
    
    3. Anonymous tags have a different name so we have to reflect this in
    tm_tag_is_anon().
    techee committed Nov 28, 2021
    Copy the full SHA
    5b9036a View commit details
    Browse the repository at this point in the history
  5. Update C/C++ unit tests

    The changes are mostly these:
    
    1. Spaces in function argument list
    
    (int var1, int var2, ...) - before
    (int var1,int var2,...) - now
    
    2. Anonymous tags
    
    anon_struct_1
    anon_union_2
    anon_typedef_3
    
    vs
    
    __anon1
    __anon2
    __anon3
    
    3. Improved parsing of the new parser
    techee committed Nov 28, 2021
    Copy the full SHA
    1f03474 View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2021

  1. Copy the full SHA
    9d6c7a6 View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    3bf1c5f View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2021

  1. Pass our ignore.tags file with ignored symbols to cxx preprocessor

    The syntax is slightly different from the previous syntax and is
    described here:
    
    https://docs.ctags.io/en/latest/parser-cxx.html
    
    Basic usage should be the same, uctags just doesn't support Geany's
    wildcard ignores like G_GNUC_*. On the other hand the new parser is
    much more resilient to macros so there shouldn't be so much need
    for manual ignores.
    
    The original code is still kept for parsers from c.c that still use the
    old preprocessor.
    techee committed Dec 5, 2021
    Copy the full SHA
    8ba9b24 View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2021

  1. Merge branch 'master' into cxx_parser_new

    # Conflicts:
    #	ctags/Makefile.am
    techee committed Dec 7, 2021
    Copy the full SHA
    c8920f1 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2021

  1. Copy the full SHA
    3b01505 View commit details
    Browse the repository at this point in the history