Question

permettent d'effectuer des refactoring sur C ou un code C ++ il des plug-ins ou des méthodes intégrées dans Vim, quelque chose comme les outils de refactoring dans Eclipse?

Je suis particulièrement enthousiaste à l'outil méthode extrait de refactoring d'Eclipse qui déterminera les paramètres de nouvelles méthodes et généralement deviner aussi une variable à utiliser comme valeur de retour.

Était-ce utile?

La solution

Non, même si Vim est un bon environnement pour l'édition, et peut être personnalisé dans beaucoup de manières différentes (pliage de code, coloration syntaxique, l'expansion macro, etc.) la plupart sont fait au niveau de la syntaxe, plutôt que le niveau sémantique . Même le pliage de code correspond juste au accolades opposées.

Pour faire une bonne refactoring, vous devez avoir beaucoup de connaissances sémantiques sur l'AST, quelles variables sont déclarées dans lesquelles la portée, et ainsi de suite. IDEs comme Eclipse construire un cache des variables définies dans chaque champ lexical, afin qu'ils puissent rapidement se référer à l'endroit où ils sont utilisés en termes de déterminer ce qu'il faut renommer et où.

Cela ne veut pas dire que vous ne pouvez pas faire des choses syntaxiquement; après tout, on peut tout simplement prendre un bloc de code et de le mettre dans une fonction séparée assez facilement. Vous pourriez même être en mesure de deviner certains paramètres (par exemple, trouver une liste des variables, savoir lesquelles des déclarations locales, retirez-les et ce qui reste sont vos paramètres. Mais Eclipse fait aussi d'autres choses ressemblant à déterminer si des variables modifiés dans la fonction, et veiller à ce qu'ils sont repassé par la valeur de retour. Il vérifie également toutes les exceptions lancées, et les ajouter à la liste.

L'effet net est que si vous pourriez être en mesure de rapprocher certains d'entre eux dans vim, vous êtes vraiment ne va pas être en mesure d'obtenir ce travail dans un enviornment Vim seule. Vous pouvez soit utiliser un Vim comme raccourci clavier dans Eclipse approprié, ou regarder Eclim . A partir de la page d'accueil:

  

Le principal objectif de Eclim est d'apporter   Eclipse fonctionnalité au Vim   éditeur. L'objectif initial était de   fournir la fonctionnalité de java Eclipse   dans vim, mais le soutien de divers autres   langues (c / c ++, PHP, Python, Ruby,   css, html, xml, etc.) ont été ajoutés   et plusieurs autres sont prévues.

     

Eclim est inférieure d'une application et   plus d'une intégration de deux grands   projets. La première, Vim, est sans doute   l'un des meilleurs éditeurs de texte en   existence. La seconde, Eclipse,   offre de nombreux excellents outils pour   développement en plusieurs langues. Chaque   offre de nombreuses fonctionnalités qui peuvent   augmenter la productivité des développeurs, mais   à la fois laisser encore quelque chose à   voulu. Vim n'a pas un support natif Java   et bon nombre des fonctionnalités avancées   disponible dans Eclipse. Eclipse, sur la   D'autre part, nécessite encore l'utilisation de   la souris pour beaucoup de choses, et quand   par rapport à Vim, offre une moins   interface idéale pour l'édition de texte.

     

C'est là Eclim entre en jeu.   Au lieu d'essayer d'écrire un IDE   Vim ou un éditeur vim dans Eclipse, Eclim   fournit un plug-in Eclipse   Eclipse expose les caractéristiques à travers une   l'interface de serveur, et un ensemble de Vim   plug-ins qui communiquent avec Eclipse   sur cette interface.

Cela donne non seulement un environnement comme Eclipse, il est Eclipse. Mais vous obtenez toujours les fonctions d'édition et de navigation texte de vim. On dirait que cela pourrait répondre à vos besoins, bien que la documentation sur refactorisation de soutien ne signifie pas qu'il fournit une fonctionnalité de procédé d'extraction.

Autres conseils

J'ai écrit un refactorisation plugin. C ++ est l'une des principales langues traitées (comme il est ma langue maternelle au travail). extraction de la méthode est prise en charge.

Pour C ++, le plug-in est capable (grâce à ctags) pour en déduire la plupart (mais malheureusement pas toujours tout - grâce à ctags ...) des variables qui entrent et sortent de la fonction extraite. Je dois encore écrire une petite boîte de dialogue pour choisir les dans les variables / de sortie doivent être échangées (ref const, réf rvalue, copie, pointeur, tuples, struct, etc.) (BTW, aide est la bienvenue comme GUIs ne sont pas mon truc ^^ ') .

Après avoir cherché haut et bas pour vim avec refactoring C ++, c'est la meilleure solution, je suis venu avec.

  • Visual Studio 2013 et plus - Grand IDE pour C ++ développement et le débogage, mais ne dispose pas refactoring suffisante ou vim
  • Installer le plugin vsvim - Maintenant, vous avez toute la navigation vim, la recherche, le remplacement des cordes, etc. (Certaines fonctionnalités avancées ne sont pas pris en charge)
  • Installer Resharp C ++ - Idéal pour refactorisation au détriment de la vitesse. Il fait un peu maladroit, mais si vous voulez déduire générer automatiquement les méthodes / variables, renommer des variables ou des fonctions locales / globales / méthode, Rechercher des usages dans la solution, et plus de fonctionnalités, rend extrêmement la peine.

est la meilleure combinaison que j'ai trouvé C ++ le développement, le débogage et refactoring. Donne-moi au moins 3x - 5x plus rapide. Espérons que cela vous aide aussi bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top