7
votes

CTAGS ne pars pas stdio.h correctement

J'essaie d'utiliser des CTAG avec Vim, et je suis un débutant aux deux. Afin de tester la mesure dans laquelle les CTAGs pourraient être utiles, j'ai décidé de la mettre à travers un test très simple, à savoir analyser les en-têtes / usr / incluent afin que je puisse faire suffisamment de fonctions de base.

Quand je cours le commande xxx

puis la sortie imprime xxx

si clairement CTAG a raté des fonctions très évidentes comme Fopen, mais elle incluait des fonctions comme fcfrose. Y a-t-il une certaine option que je manque quand je pars avec des CTAG?


0 commentaires

4 Réponses :


5
votes

Ajouter un -I__Wur à votre commande CTAGS et vous obtiendrez le résultat que vous après. __ wur est une macro pour __ attribut__ ((__warn_unused_result __))

Pour une explication plus de Thuough, voir:

http://sourceforge.net/mailarchive/message. PHP? MSG_NAME = 48A7FF60.9080609% 40Sina.com


1 commentaires

Oh, je vois, y a-t-il une manière générale dans laquelle dire aux CTAG que je préfère les déclarations de fonction sur les macros correspondantes?



6
votes

Quelques conseils pour que vous puissiez obtenir un fichier de balises plus spécifique: xxx

Le contenu du fichier libc6-ignore sont les suivants: xxx

Je suppose que vous utilisez cela avec VIM et le plug-in OmnicppComplete?


0 commentaires

3
votes

juste plus de conseils, hth.

1 fort>. Sous Ubuntu Machine, on peut exécuter dpkg -l libc6-dev | grep -o '/usr/include/.*h'> ~ / .vim / tags / libc6-dev_files code> pour obtenir des en-têtes à GNU C bibliothèque. P>

2 fort>. Utilisez des commandes ci-dessous pour générer un fichier CTAGS plus spécifique. P>

# mkdir code> si nécessaire. p> xxx pré>

# obtenir plus de jetons être ignoré à l'aide de grep code>. P>

ctags --c++-kinds=+px --fields=+iaS --extra=+q -I @./libc6-dev_ignore-tokens -L libc6-dev_files -f libc6-dev_tags


0 commentaires

0
votes

même problème. Résolu avec l'option -i. Vérifié ce site pour info: http://ctagns.sourceforge.net/ctus.html#OPTIONS

Notez un couple de "Gotcha's". Tout d'abord, lors de la spécification -i avec un fichier contenant la liste des ignorés, il doit être suivi immédiatement par un @ ou un. ou une lettre d'entraînement (si sous Windows). J'ai passé des heures à utiliser -i ~ / sans succès. Même chose avec -i / home / nom d'utilisateur / travaillé comme un charme.

Deuxièmement, assurez-vous d'utiliser une analyse multiligne (--Fields = + S). Ceci est déjà indiqué comme une option utilisée par l'OP dans ce fil mais voulait la pointer de nouveau.

Merci à tous les autres pour les conseils impressionnants!


0 commentaires