2015-11-30 3 views
0

J'ai un énorme projet C++ et je me retrouve en train de préparer des patterns que je connais dans des littéraux de chaînes de caractères. Existe-t-il un moyen d'obtenir clang ou x étiquettes ou cscope ou autre pour construire un fichier avec un mappage de chaque chaîne littérale dans le projet vers le fichier et la ligne où il a été trouvé?Indexer des littéraux de chaîne pour le projet C++

+2

En général, une bonne habitude pourrait être de donner un * nom * à vos littéraux (chaîne) et d'y faire référence dans le code. Ce faisant, vous pouvez regrouper les définitions littérales de la manière que vous souhaitez. –

+0

Ce n'est pas vraiment mon code, c'est un projet hérité que je dois déboguer de temps en temps en fonction des messages qu'il émet sur stderr. – fakedrake

+1

Si c'est le cas ... Je suis avec vous, mon frère;) –

Répondre

0

Je ne connais pas un moyen de faire cscope ou des amis pour le faire. On pourrait presque certainement écrire un extracteur Starscope personnalisé qui ferait cela, si cela ne vous dérange pas d'écrire une douzaine de lignes de Ruby (starscope: https://github.com/eapache/starscope, en ajoutant un extracteur: https://github.com/eapache/starscope/blob/master/doc/LANGUAGE_SUPPORT.md#how-to-add-another-language)

Alternativement, il peut juste être assez pour utiliser quelque chose comme ag à la place, qui est de type grep mais généralement beaucoup plus rapide: https://github.com/ggreer/the_silver_searcher