青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

網(wǎng)絡(luò)服務(wù)器軟件開發(fā)/中間件開發(fā),關(guān)注ACE/ICE/boost

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
http://www.codeproject.com/macro/KingsTools.asp

Kings Tools

Kings Tools

Introduction

As good as Visual Studio .NET is, I still miss some features in it. But MS knew that they couldn't fulfill every wish so they provided a way to write addins. That's what I've done. Sure, most of the functions in my Tools could also be done with macros, but I wanted them all packed together with an installer.

Tools

  • Run Doxygen
  • Insert Doxygen comments
  • Build Solution stats
  • Dependency Graph
  • Inheritance Graph
  • Swap .h<->.cpp
  • Colorize
  • } End of
  • #region/#endregion for c++
  • Search the web

Run Doxygen

This command first pops up a dialog box in which you can configure the output Doxygen should produce. For those who don't know Doxygen: it's a free tool to generate source documentations. It can produce documentation in different formats like html and even windows help format! See http://www.doxygen.org/ for details. Since the dialog box doesn't offer all possible settings for doxygen, you can always edit the file Doxyfile.cfg manually which is created the first time you run it. All settings in that file override the settings you enter in the dialog box.

Doxygen configuration dialog

If you set Doxygen to generate html output, the resulting index.html is opened inside the IDE. A winhelp output (index.chm) will be opened outside the IDE.

The command available from the Tools menu builds the documentation for the whole solution. If you don't want that for example if you have several third party projects in your solution then you can build the documentation also for single projects. To do that the KingsTools add a command to the right click menu in the solution explorer.

If you want to update Doxygen to a newer version (as soon as one is released) simply overwrite the doxygen.exe in the installation directory. The same applies to the dot.exe.

TODO: find a way to integrate the generated windows help file into VS help.

Insert Doxygen comments

Doxygen needs comments that follow certain conventions to build documentation from. This part of the tools inserts them for you. Either from the right click menu in the code editor window or from the submenu under Tools->Kings Tools. Just place the caret over a method or class header. The inserted comment for a method or function would look like this:

				/**
*
* \param one
* \param two
* \param three
* \return
*/
BOOL myfunction(int one, int two, int three);

You now have to simply insert a description in the second comment line and descriptions for each parameter of the function/method. And of course a description of the return value.

You can customize the function comments by editing the files "functionheadertop.txt", "functionparams.txt" and "functionheaderbottom.txt". Please read the comments inside those files on how to do that. If you don't want to change the function comments for all your projects then you can place any of those files into your project directory (that way it will be used for your project) or inside the folder of your source files (that way it will be used only for the files inside that specific folder).

The inserted comment for a class looks like this:

				/**
* \ingroup projectname
*
* \par requirements
* win98 or later, win2k or later, win95 with IE4 or later, winNT4 with IE4
* or later
*
* \author user
*
* \par license
* This code is absolutely free to use and modify. The code is provided
* "as is" with no expressed or implied warranty. The author accepts no
* liability if it causes any damage to your computer, causes your pet to
* fall ill, increases baldness or makes your car start emitting strange
* noises when you start it up. This code has no bugs, just undocumented
* features!
*
* \version 1.0
* \date 06-2002
* \todo
* \bug
* \warning
*
*/
class CRegBase

The '\ingroup projectname' means that the class is inside the project 'projectname'. That statement helps Doxygen to group classes together. Insert the description of the class right after that statement. If you want to include pictures to illustrate the class, use '\image html "picture.jpg"'. For more helpful tags you can use please check out the Doxygen website. The '\par requirements' section you have to modify yourself to fit the truth of your class. It's not necessary for Doxygen, but I found it very useful to give that information inside a class documentation. The name after the '\author' tag is the currently logged in user. Maybe you want to change that too to include an email address.

You can customize the class comments by editing the file "classheader.txt" Please read the comments inside that file on how to do that. If you don't want to change the class comments for all your projects then you can place that files into your project directory (that way it will be used for your project) or inside the folder of your source files (that way it will be used only for the files inside that specific folder).

The last few tags should be self-explanatory. Under the line '\version' I usually insert short descriptions of what changed between versions.

Build Solution stats

This is a simple line counter. It counts all the lines of all files in your solution, grouped by projects. The generated html file with the counted lines (code, comments, empty) is then opened in the IDE. Since I haven't found a way to add a file directly to a solution and not to a project the file is just opened for view in the IDE.

Dependency and Inheritance graph

These two commands build graphs of the class relations in your solution. See my previous article about this. The difference to my old tool is that it now generates graphs for all projects in the solution and puts all the graphs in one single html page.

Swap .h<->.cpp

This is something a simple macro could also do: it swaps between header and code files. For better accessibility it also is on the right click menu of the code editor. Really nothing special but it can be useful sometimes.

Colorize

This tool goes through all files of the current solution and looks for class, function and macronames. It then writes them to a usertype.dat file, makes the IDE to read that file and deletes it again. After you run this tool, all class, function and macronames of your solution appear colored in the code editor. Default color is the same color as normal keywords, but you can change that under Tools->Options, in the Options dialog select Environment->Fonts and Colors.

If you don't want the colors anymore, just run the command 'disable coloring' and everything will be in normal colors again. I didn't want to overwrite some possible usertype.dat file already created by some user so the tool simply creates a temporary usertype.dat file instead. If you want to have the colors again the next time the IDE starts, you either have to rerun the command (doesn't take very long to execute) or change the code of the tool yourself.

} End of

Have you ever wrote a bunch of code which looked like this:

Braces without comments

Ok, I admit this isn't a very good style of programming, but sometimes it can't be avoided. And in those cases the code is horrible to read because you don't know which closing brace belongs to which opening statement without scrolling or using the macro 'Edit.GotoBrace' several times. This tool provides a function which inserts comments after the closing brace automatically. The code snippet above would look like this:

Braces with comments

Comments are only inserted for closing braces of if, while, for and switch statements.

If you don't want to insert comments automatically while editing, you can turn off this function. If you just don't want those comments at specific places you have to move the caret either upwards (instead of downwards which happens if you press enter) or click with the mouse so that the caret doesn't go to the line below the closing brace. Comments are also not inserted when the opening brace is less than two lines above.

#region/#endregion for C++

VS.NET introduced to possibility to outline portions of text in the code editor. That's a very useful feature wthat helps navigating through big bunches of code. But the outlined sections are not saved between sessions. VB and C# provide keywords to outline sections. In VB its '#Region' and '#End Region', in C# its '#region' and '#endregion'. Only for C++ MS didn't provide such keywords (at least I haven't found them yet). With this tool you can now enable that feature for C++ too. To prevent compiler errors for those who have not installed this tool I used '//#region' and '//#endregion' as the keywords. With the comment lines before the compiler won't complain. Use those keywords like this:

outlined sections

Whenever you open a document with such keywords the tool will automatically create outlining sections. The section are also created when you type the '//#endregion' keyword and a matching '//#region' is found. As you can see, you can easily nest the sections. The code above would then look like this:

outlined sections

outlined sections

This function can't be deactivated. If you don't want it, simply don't use those keywords :)

Search the web

These two small addons perform a simple web site search either in the google groups or on CP. Select a piece of text in the code editor, right click to pop up the menu and then select where to search for the selected text. That's all. The search results will be opened inside VS.NET.

right click menu

Install

To install the tools, just double-click the *.msi file and follow the instructions. If the tools are not automatically activated the next time you start the IDE, then please activate them under Tools->Add-In Manager. Make sure you select both the addin and the box 'startup'.

All additional files needed for the tools are also packed in the installer, including Doxygen and the dot files. So you don't have to grab them separately from the web.

Source

Full source code is provided with these tools. The addin is written in VB.NET cause first there was just one simple tool that I wanted immediately - and VB is good enough for that. Then the tool grew and I added more functions. So the code is surely not the best example for good programming (no plan, no structure -> chaos). But maybe it might still be of interest for those who want to write their own addins. It shows a way to create submenus and how to add a toolbar.

Revision History

24.06.03
  • fixed bug in Doxygen part: the path to the binaries weren't enclosed in ""
  • made necessary changes to make the addin work with VS.NET2003 (projectitems are now recursive!)
  • updated the Doxygen binaries to the newest version
  • the dialogs are now centered to the IDE
18.04.03
  • fixed some bugs in the }EndOf function
  • added template files for doxygen comments
  • fixed bug in the graph functions if the solution contained "misc" files
  • Doxygen 1.3 is now included
  • removed the toolbar - it slowed the editor down
  • for most commands disabled the check for project type (C++, C#, VB, ...) - if you use a function for a project type for what it isn't designed it just won't work...
04.10.02
  • enabled }EndOf and the solution statistics also for C# projects
21.9.02
  • fixed a bug in the }EndOf tool
  • fixed bug where Doxygen couldn't be started when a file was in the Solution->Misc folder
  • added possibility to run Doxygen for single projects (right click menu in solution explorer)
  • included newest Doxygen and Dot version
  • added a proper uninstaller. The uninstaller now deletes all added commands.
7.9.02
  • fixed a bug reported by Darren Schroeder
8.8.02
  • removed forgotten test code which caused annoying behaviour
  • made sure that for WinHelp output (Doxygen) also html output is selected
10.8.02
  • fixed a bug reported by Jeff Combs: now the addin is only loaded when the IDE is started (the IDE is NOT started when devenv is called with /build, /clean or /deploy command line switches!)
12.8.02
  • Run Doxygen now includes not only project directories but all directories of the project files.
  • The Toolbar can now be altered and the altered state is saved by the IDE
  • Uninstalling now works better: the toolbar is gone after the second start of the IDE after uninstalling without modifying the source.
posted on 2007-08-27 01:19 true 閱讀(681) 評論(1)  編輯 收藏 引用

Feedback

# re: .net的doxygen插件【轉(zhuǎn)】 2010-08-23 09:26 dress
These two small addons perform a simple web site search either in the google groups or on CP. Select a piece of text in the code editor, right click to pop up the menu and then select where to search for the selected text. That's all. The search results will be opened inside VS.NET.  回復(fù)  更多評論
  


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产第一页| 在线不卡中文字幕| 久久天堂国产精品| 国产精品久久久一区麻豆最新章节 | 亚洲承认在线| 国产日产欧美a一级在线| 亚洲美女av在线播放| 亚洲电影在线| 欧美一区亚洲一区| 午夜精品偷拍| 欧美日韩一级大片网址| 亚洲国产精品悠悠久久琪琪| 国产亚洲一区在线播放| 亚洲视频一区二区| 国产精品99久久久久久有的能看| 久久午夜精品一区二区| 久久人91精品久久久久久不卡| 国产精品久久午夜| 99视频超级精品| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲激情自拍| 久久久久久高潮国产精品视| 久久久久国产精品一区二区| 国产欧美欧洲在线观看| 亚洲欧美综合一区| 欧美在线综合视频| 国产自产女人91一区在线观看| 午夜国产精品视频| 久久久国产精品一区二区中文 | 国产亚洲一区二区三区在线播放| 亚洲视频福利| 性一交一乱一区二区洋洋av| 国产精品亚洲аv天堂网| 亚洲欧美日韩国产| 久久精品成人一区二区三区蜜臀 | 久久久久9999亚洲精品| 国产一区二区三区在线免费观看 | 欧美日韩直播| 亚洲永久精品国产| 久久噜噜亚洲综合| 亚洲国产天堂网精品网站| 欧美国产日产韩国视频| 99re6这里只有精品| 亚洲一区免费看| 国产色婷婷国产综合在线理论片a| 香蕉久久国产| 欧美高清在线观看| 中国女人久久久| 国产一区二区观看| 久久夜色精品国产欧美乱| 亚洲丶国产丶欧美一区二区三区 | 午夜国产精品视频| 精品动漫3d一区二区三区| 欧美二区在线| 亚洲尤物在线| 女同性一区二区三区人了人一 | 亚洲欧美一区二区三区在线| 国内揄拍国内精品久久| 日韩一级片网址| 欧美剧在线观看| 香蕉免费一区二区三区在线观看 | 久久人人97超碰国产公开结果 | 国产精品啊v在线| 欧美一区国产二区| 亚洲国产婷婷综合在线精品| 亚洲欧美不卡| 亚洲国产精品欧美一二99| 国产精品久久久久9999吃药| 久久精品国产2020观看福利| 亚洲精品日日夜夜| 快射av在线播放一区| 亚洲美女一区| 国产一区二区三区四区三区四| 欧美高清视频一二三区| 先锋影院在线亚洲| 亚洲丰满少妇videoshd| 欧美与黑人午夜性猛交久久久| 亚洲国产综合视频在线观看| 国产精品羞羞答答| 欧美日韩国产色视频| 久久久久久有精品国产| 亚洲天堂偷拍| 日韩视频一区二区三区| 女主播福利一区| 欧美在线影院在线视频| 亚洲午夜精品17c| 亚洲三级色网| 亚洲国产精品久久久久秋霞不卡 | 日韩一级二级三级| 欧美电影在线观看| 久久视频一区| 久久电影一区| 午夜精品国产精品大乳美女| 一区二区三区高清| 亚洲理论电影网| 亚洲国产欧美一区二区三区同亚洲| 国产日韩欧美在线看| 国产精品欧美日韩| 国产精品久久久久久久久久ktv| 欧美精品二区三区四区免费看视频| 久久精品免费播放| 欧美专区18| 久久国产精品99国产| 欧美一级成年大片在线观看| 亚洲一区二区精品视频| 亚洲视频中文字幕| 亚洲一级在线观看| 亚洲一区二区免费| 亚洲欧美另类在线| 性xx色xx综合久久久xx| 先锋影音一区二区三区| 午夜在线不卡| 欧美影院在线播放| 久久久www成人免费精品| 久久久国产精彩视频美女艺术照福利| 午夜精品在线| 久久av一区| 久久婷婷亚洲| 欧美大学生性色视频| 欧美精品v日韩精品v国产精品| 欧美激情1区| 欧美日韩激情小视频| 欧美午夜精品理论片a级按摩| 欧美亚州韩日在线看免费版国语版| 国产精品vip| 国产午夜精品一区二区三区视频 | 国产欧美日韩| 一区二区三区在线视频观看 | 亚洲日韩视频| 亚洲一二区在线| 欧美在线不卡| 美女任你摸久久| 亚洲国产天堂久久综合| 一本色道久久综合亚洲91| 亚洲专区在线| 久久亚裔精品欧美| 欧美日韩久久不卡| 国产日韩在线一区二区三区| 尤妮丝一区二区裸体视频| 日韩视频在线观看| 香蕉久久夜色精品| 欧美成年人网| 亚洲手机在线| 久久一区二区三区av| 欧美日韩亚洲一区二区三区在线 | 欧美亚洲日本国产| 久色成人在线| 日韩午夜激情电影| 久久精品国产亚洲一区二区| 欧美精品在线一区二区| 国产伪娘ts一区| 一本大道久久精品懂色aⅴ| 欧美中文字幕在线观看| 亚洲国产高清自拍| 欧美一二区视频| 欧美日韩三区| 亚洲国产成人av| 欧美一区影院| 亚洲免费观看高清在线观看| 久久精品九九| 国产精品视频观看| 99视频在线观看一区三区| 久久久久国产免费免费| a4yy欧美一区二区三区| 乱中年女人伦av一区二区| 国产精品视频免费在线观看| 亚洲伦理中文字幕| 老牛影视一区二区三区| 亚洲一级黄色av| 欧美日韩国产黄| 亚洲国产小视频在线观看| 欧美一区二区国产| 夜夜嗨av色综合久久久综合网 | 欧美日韩中文字幕在线视频| 在线观看欧美一区| 久久久久久国产精品mv| 一区二区毛片| 欧美日韩www| 亚洲日本一区二区| 欧美1区2区| 久久免费精品日本久久中文字幕| 国产精品免费一区二区三区在线观看| 亚洲精品美女91| 欧美大尺度在线观看| 久久久久欧美精品| 激情综合亚洲| 老司机成人在线视频| 欧美制服第一页| 国产一区二区在线观看免费| 欧美一区二区免费视频| 中日韩在线视频| 国产精品成人播放| 亚洲欧美国产高清va在线播| 亚洲毛片一区| 欧美视频一区在线观看| 亚洲自拍偷拍色片视频| 亚洲视频免费| 国产欧美日韩亚洲精品| 久久精品国产免费| 久久精品一区四区|