C++ vim IDE. Choses que vous auriez besoin de lui
J'allais créer le C++ IDE Vim extensible plugin. Ce n'est pas un problème pour faire un qui saura satisfaire mes propres besoins.
Ce plugin allais travailler avec des espaces de travail, de projets et de ses dépendances.
C'est pour unix comme système avec gcc comme compilateur c++.
Donc ma question est qu'est-ce que les choses les plus importantes que vous auriez besoin d'un IDE? Veuillez prendre en compte que c'est Vim, où la quasi-totalité, ou presque, est possible.
Plusieurs questions:
Combien de fois avez-vous gérer les différents espaces de travail avec des projets à l'intérieur d'eux et de leurs relations entre eux? Ce qui est le plus ennuyeux de choses dans ce processus.
Est est nécessaire de recréer "projet" dans le Makefile?
Grâce.
Raison de créer ce plugin:
Avec un tas de plugins et d'auto écrits, nous pouvons simuler la plupart des choses. C'est ok quand nous travaillons sur un grand "infinitif" du projet.
Bon quand on a déjà un makefile ou de la confiture de fichier. Mauvais quand nous avons créer notre propriétaire, surtout par copie et coller existant.
Tous les ctags et cscope liés choses à savoir sur la liste d'un projet réel de fichiers. Et nous créer de telles personnes. Ce <projet#get_list_of_files()>, et de nombreux semblable pourrait être un bon projet en fonction de l'api de coopérer avec l'existant et le futur des plugins.
La coopération avec un makefile peut vous aider à trouver la liste de la réelle fichiers de projet et le nom de l'exécutable.
Avec système de plugin à l'intérieur du plugin il peut y avoir différents modèles de projet.
Ci-dessus sont quelques raisons pour lesquelles je vais commencer le travail. J'aimerais entendre votre un.
- Avez-vous regarder F. Mehner cvim paquet? vim.sourceforge.net/scripts/script.php?script_id=213
- Je l'ai eu. Il n'y a rien de projet/de l'espace de travail connexes, makefiles création, est-il?
- Golubyev vous Avez terminé votre projet? Je cherchais quelque chose comme ça, et je serais heureux de pouvoir utiliser votre produit 😀
- est-ce que je pourrais utiliser?
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs problèmes. La plupart d'entre eux sont déjà résolus par des indépendants et des génériques de plugins.
Au sujet de la définition de ce qu'est un projet.
Donné un ensemble de fichiers dans un même répertoire, chaque fichier peut être l'unique fichier de projet-j'ai toujours un répertoire tests/où je l'hôte des projets animal, ou où je l'ai tester le comportement du compilateur. À l'opposé, les fichiers à partir d'un ensemble de répertoires peut être partie d'un même et grand projet.
À la fin, ce qui définit vraiment un projet est un (feuille) "makefile" -- Et pourquoi se limiter à des makefiles, ce sujet de scons, autotools, ant, (b)de la confiture, du paa? Et BTW, Soleil-Makefiles ou GNU-Makefiles ?
De plus, je ne vois pas de raison d'en avoir vim connaître précisément les fichiers dans le projet actuel. Et même si, bien connu de l' projet.plugin vim déjà fait le travail. Personnellement, j'utilise un local_vimrc plugin (je suis maintenant l'un, et j'ai vu deux autres de SF). Avec ce plugin, je viens de déposer un _vimrc_local.vim fichier dans un répertoire, et ce qui est défini dans la (:mappages :les fonctions, les variables, les commandes:, : paramètres, ...) s'applique pour chaque fichier dans le répertoire -- je travail sur un gros projet ayant une douzaine de sous-composants, chaque composant de vivre dans son propre répertoire, dispose de son propre fichier makefile (même pas nommé Makefile, ni avec un nom du répertoire)
Concernant le code C++ de la compréhension
Chaque fois que nous voulons faire quelque chose de complexe (refactorings comme renommer fonction, renommez-variable, de générer des-commutateur-de-courant-variable-qui-est-un-enum, ...), nous avons besoin de vim à avoir une compréhension de C++. La plupart des plugins existants s'appuient sur ctags. Malheureusement, ctags compréhension de C++ est assez limité -- j'ai déjà écrit un quelques avancées, mais je suis souvent arrêté par la piètre qualité de l'information fournie par ctags. cscope est pas mieux. Finalement, je pense que nous allons avoir à intégrer un outil avancé comme elsa/porc/ionk/deshydrata/....
NB: C'est là, maintenant, je me concentre la plupart de mes efforts.
Concernant Doxygen
Je ne sait pas combien il est difficile de sauter à la doxygen définition associée à un mot. La première difficulté est de comprendre ce que le curseur est sur (je suppose que omnicppcomplete a déjà fait beaucoup de travail dans cette direction). La deuxième difficulté est de comprendre comment doxygen générer le nom de la page pour chaque symbole à partir du code.
Ouverture de vim dans la droite ligne de code à partir d'un doxygen page doit être simple avec un plugin greasemonkey.
Concernant le débogueur
Il est le pyclewn projet pour ceux qui se lancent vim sous linux, et avec gdb comme débogueur. Malheureusement, il ne prend pas en charge d'autres débogueurs comme dbx.
Des réponses à d'autres exigences:
Mon BuildToolsWrapper plugin a un
g:BTW_run_parameters
option (facilement remplacé avec projet/local_vimrc solutions). L'ajout d'une cartographie de poser les arguments pour l'utilisation est vraiment simple. (voir :h inputdialog())Il existe déjà plusieurs plugins remédier à ce problème. Cela n'a rien à voir avec le C++, et il ne doit pas être abordé par un C++ suite.
Choses que j'aimerais dans un IDE que ceux que j'utilise ne fournissent pas:
Quand je exécuter ou déboguer mon programme compilé, j'aimerais que la possibilité d'avoir une boite de dialogue qui me demande pour les paramètres de ligne de commande. Il faut se rappeler de la dernière 20 ou si les paramètres que j'ai utilisé pour le projet. Je ne pas veux pas avoir à modifier les propriétés du projet pour ce.
Un menu "Outils" qui est configurable sur une base par projet
Capacité à rejig le clavier des correspondances pour chaque de commande possibles.
Capacité à produire des listes de configurations de projet sous forme de texte
Intelligent flottant (non coupée) de windows pour débogueur etc. qui apparaissent seulement quand j'en ai besoin, rester sur le dessus et puis disparaissent lorsqu'il n'est plus nécessaire.
Intégré dans les métriques de code d'analyse afin d'-je obtenir une liste de la plupart des fonctions complexes dans le projet et cliquez sur eux pour passer au code
La prise en charge intégrée pour Doxygen ou similaire donc je peux cliquer dans une Doxygen document et aller directement dans le code. Sjould inverse aussi naviguer à partir de code à Doxygen.
Pas de doute que quelqu'un va dire maintenant Eclipse peut faire ceci ou cela, mais c'est trop lent et trop lourd pour moi.
Ajoutant à Neil réponse:
Vous ne savez pas si vous êtes du développement sur Windows, mais si vous êtes, je vous suggère de vérifier Viemu. Il est une très bonne VIM extension pour Visual Studio. J'aime vraiment Visual Studio IDE (même si je pense toujours que VC6 est difficile à battre), donc un Vim extension pour VS était parfait pour moi. Les fonctionnalités que je préfère fonctionnait mieux dans un Vim IDE sont:
Pour moi, c'est juste en bas à la nécessité
Je dirais de rester à l'écart de la définition des projets - il suffit de traiter l'ensemble de la branche fichier dans le cadre du "projet" et de laisser les utilisateurs disposent d'un fichier de paramètres pour remplacer celui par défaut
99% de la différence de vitesse que je vois entre l'IDE et les utilisateurs de vim est un code de recherche et de navigation. Vous devez être en mesure de filtrer votre arborescence des sources pour une phrase (ou intelligemment cherchez le symbole à l'aide de ctags), montrer à tous les coups, et de basculer vers ce fichier dans deux ou trois frappes.
Tous les autres de la merde comme référentiel de navigation ou de débogage interactif, c'est sympa, mais il y a d'autres façons de résoudre ces problèmes. Je dirais tomber le débogage interactif même. Suffit de se concentrer sur ce qui rend les IDEs de bons éditeurs - avoir une vue d'ensemble de votre projet, au lieu d'un seul fichier.
En fait, existe-il des plugins pour que vim déjà parvenir?