2012-04-13 6 views
4

Je suis un débutant ctags, codant en PHP. J'ai trouvé ce ctags fichier en ligne:Quel est le problème avec mon fichier .ctags?

-R 
--exclude=.svn 
--tag-relative=yes 
--PHP-kinds=+cfpd 
--regex-PHP=/abstract\s+class\s+([^ ]+)/\1/c/ 
--regex-PHP=/interface\s+([^ ]+)/\1/c/ 
--regex-PHP=/(public\s+|static\s+|protected\s+|private\s+)\$([^  =]+)/\2/p/ 
--regex-PHP=/const\s+([^ =]+)/\1/d/ 
--regex-PHP=/final\s+(public\s+|static\s+|abstract\s+|protected\s+|private\s+)function\s+\&?\s*([^ (]+)/\2/f/ 

Cependant, je reçois cette erreur:

$ ctags 
ctags: Warning: Unsupported parameter 'p' for --PHP-kinds option 

De l'expérimentation, je vois que les p besoins à définir, et en fait, il est défini sur la septième ligne du fichier. Alors, pourquoi l'erreur est-elle lancée?

EDIT: Le fichier ctags est venu from here, qui était lié de this terrific article.

Voici la sortie de ma configuration:

$ ctags --version 
ctags: Warning: Unsupported parameter 'p' for --PHP-kinds option 
Exuberant Ctags 5.6, Copyright (C) 1996-2004 Darren Hiebert 
Compiled: Jan 6 2007, 02:10:54 
Addresses: <[email protected]>, http://ctags.sourceforge.net 
Optional compiled features: +wildcards, +regex 
$ cat ~/.ctags 
-R 
--exclude=.svn 
--tag-relative=yes 
--regex-PHP=/abstract\s+class\s+([^ ]+)/\1/c/ 
--regex-PHP=/interface\s+([^ ]+)/\1/c/ 
--regex-PHP=/(public\s+|static\s+|protected\s+|private\s+)\$([^ \t=]+)/\2/p/ 
--regex-PHP=/const\s+([^ \t=]+)/\1/d/ 
--regex-PHP=/final\s+(public\s+|static\s+|abstract\s+|protected\s+|private\s+)function\s+\&?\s*([^ (]+)/\2/f/ 
--PHP-kinds=+cpdf 
$ ctags 
ctags: Warning: Unsupported parameter 'p' for --PHP-kinds option 
$ 
+0

S'il vous plaît la source lien où vous avez trouvé ce fichier. – hakre

+0

Quels sont les caractères de la classe de caractères: '[^ =]' sur cette ligne? Si on est un onglet, essayez de le remplacer par '\ t'. – sarnold

+0

Merci, j'ai édité la question avec la source du fichier. – dotancohen

Répondre

4

Le genre 'p' est pas défini pour PHP par défaut.

--regex-PHP=/(public\s+|static\s+|protected\s+|private\s+)\$([^  =]+)/\2/p/ 

est de définir un 'p' pour PHP dans votre cas. Si vous déplacez

--PHP-kinds=+cfpd 

après cela, il ne vous donnera pas une erreur.

Note: Voici mon numéro de version pour ctags:

$ ctags --version 
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert 
    Compiled: Apr 19 2012, 11:31:19 
    Addresses: <[email protected]>, http://ctags.sourceforge.net 
    Optional compiled features: +wildcards, +regex 
+0

Incidemment, cela supprime l'avertissement et vous donne des entrées p dans votre fichier de balises. La prochaine étape serait de discuter de ce qu'est une entrée p et si vous en voulez vraiment une. = D – Aaron

+0

Merci. Déplacer la ligne '--PHP-kinds' directement après la ligne' p', ou même jusqu'à la fin du fichier, ne résout pas le problème pour moi. D'autres idées? – dotancohen

+0

hmm .. il a résolu le problème pour moi et Lucas Oman. Quelle version de ctags utilisez-vous, et pouvez-vous poster votre fichier .ctags? – Aaron