DoxyDoxygen icon indicating copy to clipboard operation
DoxyDoxygen copied to clipboard

How feasible it is for DoxyDoxygen to work on Visual Studio

Open jasjuang opened this issue 10 years ago • 33 comments

It will be very awesome if DoxyDoxygen can somehow be integrated to Visual Studio as a plugin too. Just wondering how feasible it is and throwing the idea out there. Thanks again for the great work!

jasjuang avatar Jan 14 '16 02:01 jasjuang

I would also be very much interested in this. For some projects that require Windows I'm currently switching to Sublime Text for commenting. It would be really nice if that entire workflow could be done from inside of Visual Studio.

JohannesMP avatar Jan 14 '16 04:01 JohannesMP

Haha I am doing the same thing too! Totally agree with you.

On Wednesday, January 13, 2016, Johannes [email protected] wrote:

I would also be very much interested in this. For some projects that require Windows I'm currently switching to Sublime Text for commenting. it would be really nice if that entire workflow could be done from inside of Visual Studio.

— Reply to this email directly or view it on GitHub https://github.com/20Tauri/DoxyDoxygen/issues/32#issuecomment-171527878.

jasjuang avatar Jan 14 '16 04:01 jasjuang

Thanks for the suggestion

It's a shared need !

DoxyDoxygen is written in Python and designed to have low dependency over SublimeText. But, that not mean that VisualStudio integration will be easy.

  • Have you any experience in Visual Studio plugins (to help me to evaluate the load) ?
  • Do you know trivial examples (text extraction, cursor move, generated snippet insertion), may help me ?

Is someone else interested

  • by Visual Studio ?
  • by another editor ? (with some restriction, an editor independant solution can be designed)

20Tauri avatar Jan 14 '16 19:01 20Tauri

Sorry I don't have any experience in visual studio plugins. All I know is it is in C#. The closest thing I have is some experience in writing C# code for VCMD that triggers a python script when a file is saved.

On Thu, Jan 14, 2016 at 11:19 AM, 20Tauri [email protected] wrote:

Thanks for the suggestion

It's a shared need !

DoxyDoxygen is written in Python and designed to have low dependency over SublimeText. But, that not mean that VisualStudio integration will be easy.

  • Have you any experience in Visual Studio plugins (to help me to evaluate the load) ?
  • Do you know trivial examples (text extraction, cursor move, generated snippet insertion), may help me ?

Is someone else interested

  • by Visual Studio ?
  • by another editor ? (with some restriction, an editor independant solution can be designed)

— Reply to this email directly or view it on GitHub https://github.com/20Tauri/DoxyDoxygen/issues/32#issuecomment-171749410.

jasjuang avatar Jan 14 '16 21:01 jasjuang

First evaluation:

  • "KeyFilter, TextView, Caret" is nearly all I need to provide a basic support
  • Visual Studio API use C#: PTVS not seem to help, but IronPython or "subl" are solutions
  • Express Edition doesn't NOT support plugin (the main problem). I have no usage of Visual Studio

As license cost are really high (for no need), I will NOT make a direct visual studio integration. If you have are interested in it, the "subl" approach is reliable (as you will use the DoxyDoxygen interface exposed to Sublime Text)

Exemple: To comment the function nearest line 15, the command line is

subl --command "goto_line {""line"":""15""}" --command "doxy_comment_nearest_entity"

I will not close the ticket. We can continue to share our experiment here.

On my side, I am interested in another approach (editor independent)... Advantages:

  • I have nothing to install
  • It will be the only plugin that will work with Visual Studio Express too

20Tauri avatar Jan 14 '16 22:01 20Tauri

Visual studio community is free for us and also supports plugin. But if you could somehow figure out a way to make it editor independent, that's even more awesome and solves everything.

On Thu, Jan 14, 2016 at 2:41 PM, 20Tauri [email protected] wrote:

First evaluation:

  • "KeyFilter, TextView, Caret" is nearly all I need to provide a basic support
  • Visual Studio API use C#: PTVS not seem to help, but IronPython or "subl" are solutions
  • Express Edition doesn't NOT support plugin (the main problem). I have no usage of Visual Studio

As license cost are really high (for no need), I will NOT make a direct visual studio integration. If you have are interested in it, the "subl" approach is reliable (as you will use the DoxyDoxygen interface exposed to Sublime Text)

Exemple: To comment the function nearest line 15, the command line is [code} subl --command "goto_line {""line"":""15""}" --command "doxy_comment_nearest_entity" [code}

I will not close the ticket. We can continue to share our experiment here.

On my side, I am interested in another approach (editor independent)... Advantages:

  • I have nothing to install
  • It will be the only plugin that will work with Visual Studio Express too

— Reply to this email directly or view it on GitHub https://github.com/20Tauri/DoxyDoxygen/issues/32#issuecomment-171804882.

jasjuang avatar Jan 14 '16 22:01 jasjuang

As I have only an old windows version (Vista), Visual Community is not for me.

But, I have used Mingw to made a proof of concept for the editor independant way to do. This test version may be download here.. While running, Alt+Q on a function name will insert a comment in it. It's not DoxyDoxygen and parsing is trivial (C like only).

It may cause your keyboard seem locked. In this case, you may try to press Alt to fix it. If problem persist, a reboot will fix it... So, please do not use in production....

I'm not sure to continue on this way (Visual Studio has already existing similar plugin); but interested in your feedback.

20Tauri avatar Mar 06 '16 22:03 20Tauri

I downloaded and double click the exe file and it just runs and nothing shows on the console. Could you let me know whether this is right? And is this suppose to work only on Mingw and not visual studio? I have visual studio but I do not have Mingw.

jasjuang avatar Mar 09 '16 00:03 jasjuang

May look strange, but if you "lost" prompt, it's ok (on missing dependency the program will return directly)

When launched, simply go to your favorite editor and press Alt+Q on a function name. Detected text will be prompt to the console. And a comment will but added before function.

20Tauri avatar Mar 09 '16 07:03 20Tauri

I tested on Notepad and it works but alt+q won't do anything on Visual Studio for me. Definitely would love to see this on Visual Studio since I tried all the other similar existing plugin and non of them is even close to as good as DoxyDoxygen.

jasjuang avatar Mar 09 '16 23:03 jasjuang

I agree. A specific integration in Visual Studio is a better solution (more reliable and flexible) I have also checked existing plugins... DoxyDoxygen have a larger languages support than all of them... But some seem interesting.

Which plugins have you tried ? Why do you prefer DoxyDoxygen ?

20Tauri avatar Mar 10 '16 19:03 20Tauri

I tried atomineer and DoxygenComments. DoxygenComments doesn't work at all and atomineer doesn't seems as snappy as DoxyDoxygen on Sublime. I guess it's also partially because I am using DoxyDoxygen with sublime on linux, so it would be nice for me if I can be using the same tools when I am on windows.

On Thu, Mar 10, 2016 at 11:41 AM, 20Tauri [email protected] wrote:

I agree. A specific integration in Visual Studio is a better solution (more reliable and flexible) I have also checked existing plugins... DoxyDoxygen have a larger languages support than all of them... But some seem interesting.

Which plugins have you tried ? Why do you prefer DoxyDoxygen ?

— Reply to this email directly or view it on GitHub https://github.com/20Tauri/DoxyDoxygen/issues/32#issuecomment-195014662.

jasjuang avatar Mar 11 '16 01:03 jasjuang

Thanks, Atomineer looks very similar to DoxyDoxygen. But I have not tried it...

  • Documentation looks good...
  • XML configuration files looks "improvable"
  • Approach way seems more "destructive" and "directive" (may cause time lost when renaming a parameter for example)

I will continue evaluation...

20Tauri avatar Mar 11 '16 18:03 20Tauri

Integration method given in https://github.com/20Tauri/DoxyDoxygen/issues/47 (based on subl) also work for Visual Studio.

20Tauri avatar May 04 '16 11:05 20Tauri

Excuse my ignorance,

subl -b test.cpp:1:1

returns

'subl' is not recognized as an internal or external command,
operable program or batch file.

What am I doing wrong?

jasjuang avatar May 06 '16 06:05 jasjuang

subl is part of sublime text. Check your sublime text install dir. Please find here the documentation

20Tauri avatar May 07 '16 17:05 20Tauri

Yes I can verify it works after adding where subl is to PATH.

Look forward to see this get integrated into Visual Studio.

jasjuang avatar May 08 '16 03:05 jasjuang

You may be interested in a new feature introduced in 0.53.0.

While a file is loading, text command may be dropped. To avoid this and simplify running Sublime Text command outside the editor, I have added a new command: doxy_chain_commands (http://20tauri.free.fr/DoxyDoxygen/v2/page_faq.php#can-i-call-doxydoxygen-from-the-command-line)

ps: I don't know if you have seen in, but DoxygenComments for VisualStudio is now officially unmaintained. Thank again to all people that support DoxyDoxygen and help it to be better

20Tauri avatar Sep 06 '16 16:09 20Tauri

Thanks I tried. It took me some time to figure out how it work but it works. Thanks for the awesome work.

Given that other doxygen plugins on Visual Studio are being abandoned. Would be verrry awesome if you can make a Visual Studio DoxyDoxygen plugin.

jasjuang avatar Sep 11 '16 01:09 jasjuang

@jasjuang +1

mohamed-akef avatar Mar 16 '17 10:03 mohamed-akef

A lot of people would really love to have a port of this plugin in Visual Studio Code. Since VS Code is based on Atom I imagine integrating it with one will make it trivial to integrate for the other.

Your user base could also grow substantially since there are no good enough solutions yet on both platforms.

For me switching from Sublime Text to Visual Studio Code has only one con — no DoxyDoxygen.

ifeltsweet avatar May 12 '17 07:05 ifeltsweet

Agree wholeheartedly with @ifeltsweet, vscode is a great editor, it just needs a code documentation plugin like doxydoxygen to be perfect. None exist right now, so there should be a market for you!

aunsbjerg avatar May 18 '17 12:05 aunsbjerg

I agree.

By far the most painful part of my migration from sublime to vscode is not having anything nearly as good as DoxyDoxygen

kedestin avatar Dec 13 '18 20:12 kedestin

Hi! I just switched to VSCode (and I have to admit, even if it's painful for an all time user of Sublime, that I love it so far) and I have to admit that like all me fellow developer above, I really really really miss the awesome features of this wonderful plugin. I would love to see it on the marketplace of VSCode.

I would even be glad to help to work on this topic (even alone). In fact I was going to start porting this extension on VSCode today but I can't find the source code on GitHub.

So @20Tauri would you like me to work on it ? would you like some help if you already started working on it ? Do you agree I port your code to VSCode ?

Let me know if I can be of some help

clementprevot avatar Mar 17 '19 12:03 clementprevot

Hi,

There are 2 technicals subjects: porting and maintening. DoxyDoxygen is about 20000 lines. Most parts are Sublime Text independant. Bash, C, C++, C#, Java, JavaScript, Json, Php, Python, Rust, Swift can be parsed directly once the nearest entity is located.

Are you ready to maintain it ? Usually boring...

It's really important to define the target:

  • whole port (including features like translation or build system)
  • partial port (which part, which DocStyle, which language ?)

We can imagine:

  • port using subl (already work, fully compatible, no additionnal development need for me but require Sublime Text w/o UI)
  • I write a "command line / Rest" version of DoxyDoxygen, then you call it (some parts like "nearest entity detection" will have to be done in VS Code & generic language parsing will be less efficient...). But no longer need Sublime
  • whole manual port (harder to maintain & require to open the source code)
  • automaticaly translate source code to JavaScript, then write a "Sublime Text API for VS Code" library

Depending those technical solutions, there are boring "legal" problems (copyright...). I have not looked at this point yet.

Regards,

20Tauri avatar Mar 29 '19 09:03 20Tauri

I also would love to see this working in VS Code. I just spent hours trying every phpdoc plugin available for it and none come close to this! Only one even had the ability to reformat the docblock after making changes! I paid for this plugin when I used SublimeText and would gladly pay again to have it on VS Code.

Enchiridion avatar Jul 28 '21 21:07 Enchiridion

It's been a while since this issue was opened. With VS Code being such a widespread editor nowadays, I was wondering if you've given more thoughts to VS Code support?

jdumas avatar Oct 05 '23 00:10 jdumas

It remains an option. As a VS Codium user, I'm well aware that DoxyDoxygen has no equivalent in VS Code. However, in your opinion, what are the points that DoxyDoxygen addresses and provides value for which you would be prepared to acquire a license?

20Tauri avatar Oct 05 '23 11:10 20Tauri

For me it's the auto-reformatting and auto-regeneration of the docblock. If I add a new param, DD can update the docblock for me. Lots of existing plugins will create the template once, but none will update it afterwards. Also most have very few controls over the template they use and with DD I can setup it up exactly as I like.

Enchiridion avatar Oct 05 '23 17:10 Enchiridion

Same for me. I would rank the best features a follows:

  1. Re-flow existing doxygen when updating description. This include nicely aligning each block, etc. As @Enchiridion current vscode alternative will only create the initial template for you. This is a killer feature that I've only seen in this plugin.
  2. Update parameter names to reflect updated function parameters. I like how it's trying to find the closest match and update it if it's close enough, or move deleted args at the end and select them so they're easy to delete.
  3. Ability to update doxygen style to switch between C-style comments and C++-style comments.

jdumas avatar Oct 05 '23 17:10 jdumas