Well, I have made some trick for build ctags, if you* want to build them
you maybe need to do it like me, this is the bunch of code that i used for
the packaging process, basically it does that: do a copy of usr/include
(where the headers is), modify them by removing the annoying EINA keywords
that make ctags not work correctly, use these files for build ctags, and
finally remove them since they are useless and modified sources, the result
is a ctags file which redirects correctly to the equivalent line in the
headers file when coding

Improvements are welcome

    # make this trick for make ctags understand api,
    # removing not needed EINA types used in efl,
    # it does a temporal copy of headers modified used for only build ctags
    -rm -rf debian/include.ctags
    -mkdir -p debian/include.ctags/usr
    cp -a debian/tmp/usr/include debian/include.ctags/usr/
    find debian/include.ctags -type f -iname '*.h*' -exec sed -i \
        -e 's|EINA_MALLOC||g' \
        -e 's|EINA_CONST||g' \
        -e 's|EINA_CONST||g' \
        -e 's|EINA_PURE||g' \
        -e 's|EINA_NONINSTRUMENT||g' \
        -e 's|EINA_WARN_UNUSED_RESULT||g' \
        -e 's|EINA_ARG_NONNULL([[:digit:]][^)]*)||g' \
        -e 's|EINA_PRINTF([[:digit:]][^)]*)||g' \
        {} \;
    ctags -R -h ".h.H.hh.hxx" -f $(DEB_SOURCE_PACKAGE).tags --fields=+iaS
--c-types=pcdgstue --excmd=number debian/include.ctags
    sed -i 's|debian/include.ctags||g' $(DEB_SOURCE_PACKAGE).tags
    -rm -rf debian/include.ctags
    mkdir -p debian/tmp/usr/share/editor-ctags
    mv $(DEB_SOURCE_PACKAGE).tags debian/tmp/usr/share/editor-ctags/
    # end ctags construction code


Thanatermesis


2012/8/5 Thanatermesis <thanatermesis.e...@gmail.com>

> I was trying ctags and it seems to not recognize correctly the code, you
> can test it with your ctags too, for example with these 2 keywords:
>
> evas_object_del
> evas_shutdown
>
> Depend of your ctags command you can have the evas_shutdown one, but
> there's no way to have evas_object_del, after to check the header code that
> contains it and do some tests by modifying the line which should match, i
> found that it works after to get rid of the part:
>
> EINA_ARG_NONNULL(1)
>
> from this complete line:
>
> EAPI void             evas_object_del(Evas_Object *obj)
> EINA_ARG_NONNULL(1);
>
> The command that i have used is something like: ctags -R -h ".h.H.hh.hxx"
> -f evas.tags --fields=+iaS --c-types=pcdgstue --excmd=number .
>
> Any ideas of how to build correctly ctags ?
>
>
>
> Thanatermesis
>
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to