Click here to Skip to main content
Click here to Skip to main content

Linkify Add-in for Visual Studio

By , 2 Aug 2008
 
Sample Image - linkify.gif

New features: Version 1.3 (August 2008)

Introduction

Linkify is a Visual Studio add-in that links your source code comments to your bug tracker, development Wiki, MSDN, Google or any other site or utility. It supports Visual Studio 2005 and 2008.

Instead of inserting a URL, you insert text that starts with a known prefix, e.g.:

// this code fixes bugz:666 - don't remove!
// for more info, see msdn:MakeSureDirectoryPathExists and wiki:ThatUglySaveBug

To follow one of the links, set the caret on the link text and select the "Linkify" from the Tools menu. It helps a lot to create a toolbar button and/or a keyboard shortcut for it!

The above example - if configured so - uses the bugz: protocol to link to your bug tracker, immediately opening case 666. msdn: is a preconfigured protocol that searches MSDN for MakeSureDirectoryPathExists via Google. wiki: might link to your development Wiki.

Why Not Just Paste a URL?

Of course, you could paste the URL as well, but Linkify has some advantages:

  • The source remains more readable.
  • Linkify allows everything that a creative ShellExecute call can do: open URLs, open documents, run programs.
  • If your bug tracker moves to a new URL, just reconfigure the Linkify protocol and you are done for all links.

Installing

The article now contains an installer that puts it in one of the five folders that Visual Studio 2005 and 2008 searches for add-ins in by default. However, if you have changed your add-in search folders or you run into other funny problems, here is how to install manually:

To install manually for Visual Studio 2005, unzip the two files from LinkifyAddin.zip to your Visual Studio Addins folder, e.g. \Documents and Settings\<user>\My Documents\Visual Studio 2005\Addins where <user> is either your user name or "All Users". When you start Visual Studio again, Linkify appears in the Tools menu. From there you can also put it on a toolbar button and/or assign a hotkey to it.

Visual Studio 2008 Notes

Installation is similar for Visual Studio 2008. The addin binary is the same for both versions of Visuaol Studio, and two .AddIn files are included - one for each Visual Studio version. I haven't seen bad side effects when placing both addin files in the search path for one Studio instance (Except that my AddIn manager recognizes it twice).

I haven't been able to test the installation and the latest binaries on VS2008 yet, please report any errors you find.

How to Configure

Holding down Shift while clicking Linkify or starting it while on unrecognized text opens the configuration dialog. There you can manage the list of recognized protocols and associate them with URLs and other commands.

settings3.png

Example

  • Prefix=bugz:
  • EXE/URL=http://companyserver/bugtracker/showbug.asp?id=*
  • Clicking Linkify while the cursor is on bugz:666 opens http://companyserver/bugtracker/showbug.asp?id=666

The asterisk (*) is replaced by the link text from the source code.

Configuration

Prefix: The protocol prefix. You can use any character sequence here, but it is recommended to trail it with a colon.
End of Link: Configures how the end of the link is detected after the protocol was recognized:
  • Space scans until a space is encountered
  • Default uses some heuristically selected characters and should be (mostly) equivalent to the algorithm used in previous versions
  • Remainder of Line uses everything that follows on the line, no questions asked
  • Regular Expression allows to specify a regular expression that selects the link form the remainder of the line

Note that your link text may use single or double quotes directly after the protocol prefix to override Space or Default.

Regular Expression:

(only available if End of Link is set to Regular Expression)
A regular expression to extract the link from the remainder of the line.

Description Just so you recognize what this was supposed to do.
URL Escape: Escapes the link text according to URL rules, which is usually necessary when your target is a URL.
Confirm Execution: Shows a confirmation box before running the command. Recommended if you are doing something irreversible or dangerous, or prefer being asked.
Expand Environment Strings: if checked, environment strings in the URL/exe parameter are expanded before calling ShellExecute. This allows generic references such as %PROGRAMFILES%\SomeTool\SomeTool.exe, and other trickery.
URL/EXE:
Arguments:
filename and arguments parameters for ShellExecute / ProcessStartInfo. The first takes an executable and URL or a document path. If you specify an executable, you may also want to specify the command line arguments for it.
Utility URL:

A link to more information / installation instructions for the prefix. The link is displayed when an error occurs or you enable Test Mode.

If the prefix calls a custom tool, you could link to installaiton instructions here. Also, you could provide a page with additional details here.

More/Export... Exports your settings to a file so you can move it to another PC.
More/Import... Imports settings from a file. You can replace all existing protocols, add or merge them.
More/Add Defaults... Adds the default (sample) protocols to the list, in case you deleted them but want them back.
More/Shift forces Config... Enables / Disables going directly to the configuration dialog when Shift is pressed while clicking on Linkify. (on by default)
More/Test Mode... Enables / Disables and extended confirmation dialog for all protocols (overrides the Confirm Execution option). This dialog contains additional information on what was recognized on the line and is intended for testing.
More/About... Puts Linkify in power save mode to prevent global warming. (to be implemented)

How Link Text is Recognized

The link text parser is all-ugly manual scanning for specific characters. I'm quite happy with the results, but YMMV.

  • To find the prefix, Linkify scans from the caret poistion to the left until it finds a whitespace or the beginning of the line.
  • At this position check if the text matches a known protocol prefix. Comparison is case sensitive. I end my prefixes with a colon, but you don't have to.
  • If it doesn't, but the first character following is an opening parenthesis, skip this and check again. (hack)

The End of Link setting now determines how the link is recognized.

  • Remainder of Line uses the rest of the line.
  • Regular Expression uses the Regex specified in the settings.
    If the regular expression contains a named group "link", it uses this value. Otherwise, if it contains any group, it uses the first one encountered. Otherwise, it uses the entire match.
    If this is all gibberish to you, try Jim Hollenhorst's 30 Minute Regex Tutorial and his Expresso.
  • Space scans to the next whitespace (or end of line).
  • Default scans to the next terminating character: ) . or ;

The settings Space and Default allow single or double quotes to enclose an expresison that does contain terminating characters:

  • google:"Visual Studio 2005" searches for Visual Studio 2005 (no quotes).
  • google:'"Visual Studio 2005"' searches for "Visual Studio 2005" (with quotes).

The Source Code

Source code is included with this add-in, although it isn't recommended reading (FxCop would probably handcuff me). It was a bit tricky to extract the text under the cursor using a sequence of manipulations to the current selection. I've changed that now to extracting the entire line and selection positions and working my way from there.

Visual Studio allows add-ins to save settings in a Globals object, but I found that this works only for strings. Since the settings class is serializable, I serialize to a memory stream and then convert the contents to a base-64 string. It's weird, I know, but I wanted to avoid any Unicode troubles. The settings can be imported from and exported to a file through the configuration dialog. The remaining code (configuration form, etc.) is pretty much straightforward. Most of the initialization is code created by the add-in wizard. If you are curious, you can diff my code against a default add-in wizard-generated project.

Example: Linkifying CodeProject

To search articles on The Code Project, you can add the following settings:

  • Articles by keyword search
    • Prefix: cp:
    • URL: http://www.codeproject.com/info/search.aspx?artkw=*&sbo=kw
  • Articles by author search (currently isn't available)
    • Prefix: cpian:
    • URL: http://www.codeproject.com/info/search.aspx?st=au&target=*
  • cp:Linkify will search for articles containing Linkify
  • cpian:shog9 will search for articles by shog9

It doesn't make much sense; it's just a little tribute...

License

The add-in in binary form is free for any use (including development of a commercial application) and may be redistributed without charge, as long as it remains unmodified and the copyright notice stays intact. Source code of the add-in itself is free for non-commercial use. Please share bug fixes and improvements here. Inclusion in commercial add-ins on request.

Enjoy!

History

  • Aug 15, 2006: Initial release
  • Aug 20, 2006
    • Fixes:
      • No more error message at first start after installing (duh!)
      • Few improvements to file import/export
      • Linking to CP added to defaults
  • Aug 27, 2006 (Version 1.1)
    • Fixes:
      • Error message(s) at first start (sorry folks... it should be really gone)
      • Correct parenting
      • Keyboard shortcuts for the dialog
    • New features:
      • Separate program / argument settings
  • Dec 2007 (Version 1.2)
    • New features:
      • Supports constructor overloads
      • More flexible parser. // (bugz:765) now works, which was driving me crazy!
      • End of link detection configurable as "Space" / "Default" / "Remainder of Line" for each protocol individually*
      • For each protocol, you can set "Confirm Execution" to show a message box that will run before it actually does. Recommended if your action makes non-reversible changes (like deleting files. uh-oh)
      • Shift-Click skips the parser and directly shows the configuration dialog
      • Some UI gimmicks and a general better look
  • Aug 2008 (Version 1.3)
    • Fixes:
      • fixed an Obi Wan when using quotes around the link expression
    • Features
      • Allowing a Regular Expression for matching the link expresison
      • Added better diagnostics when running a link (or failing to do so)
      • Checkboxes to enable/disable individual prefixes
      • Expanding environment strings in the URL/executable
      • Added "utility link"
      • Revamped the dialogs a bit
      • Support for VS 2008 (semi-tested...)

* Note: if I accidentally broke your existing links, first see if changing the configuration for that protocol helps. If not, please leave a message with the protocol prefix and the comment line in question.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

peterchen
Klippel
Germany Germany
Peter is tired of being called "Mr. Chen", even so certain individuals insist on it. No, he's not chinese.
 
Peter has seen lots of boxes you youngsters wouldn't even accept as calculators. He is proud of having visited the insides of a 16 Bit Machine.
 
In his spare time he ponders new ways of turning groceries into biohazards, or tries to coax South American officials to add some stamps to his passport.
 
Beyond these trivialities Peter works for Klippel[^], a small german company that wants to make mankind happier by selling them novel loudspeaker measurement equipment.
 

Where are you from?[^]



Please, if you are using one of my articles for anything, just leave me a comment. Seeing that this stuff is actually useful to someone is what keeps me posting and updating them.
Should you happen to not like it, tell me, too

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralWholeTomato SourceLinksmemberpeterchen2-Aug-09 0:07 
WholeTomato - maybe due to poking from FogCreek - has released a free SourceLinks addin[^] that clearly outdoes whatever I provided here.
 
(I have some minor "extra" features, but they don't make up for the polish SourceLinks provides)
 
For that reason, I'll no longer even think of maintaining this tool. (I feel relieved Smile | :) )
 
Don't attribute to stupidity what can be equally well explained by buerocracy.
My latest article | Linkify!| FoldWithUs! | sighist


GeneralReally CoolmemberPaul Conrad2-Aug-08 19:27 
Peter,
 
Linkify is really cool. Glad I found it in the latest articles that have been modified/updated. Putting it to good use Smile | :)
 
Paul
 
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
 
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon


GeneralThanks very much + potential (small) bug + 1 whish....memberI'm Chris28-Jul-08 23:55 
Hello,
A big big thank for your addin - really so useful! Really wondering why MS didn't include it natively into VS. You should propose it to them (no kidding).
 
I may just have one issue with it: when using a link of the form
// wiki:"my key in many words"
I systematically loose the last character (the 's' of 'words' here) in the link that linkify generates. I precise I'm using the default 'end of link' and that I checked the "URL -escape parameter".
 
And to finish, one strong whish about linkify: that it support "mouse hovering", ie links being detected when the mouse is over them, as VS currently does for regular hyperlinks...
 
Thanks again for Linkify!
 
Chris
 
Chris
www.aulofee.com - Infrastructure and Security Supervision, Event Correlation

GeneralRe: Thanks very much + potential (small) bug + 1 whish....memberpeterchen29-Jul-08 13:21 
Thanks for your feedback!
 
Sorry for the bug, I'm currently preparing an update, but I want to test this on VS2008 first.
 
In the meantime, if you are in a hurry:
 
Connect.cs(310):
        if (quoteEndIdx > 0)
        {
          parameter = lineInfo.Text.Substring(startIdx + 1, quoteEndIdx - startIdx - 1);
          return protocol;
        }
 

 
I'm Chris wrote:
And to finish, one strong whish about linkify: that it support "mouse hovering", ie links being detected when the mouse is over them, as VS currently does for regular hyperlinks...

 
If you find someone to tell me how to do that, I'll do it. Deal? Big Grin | :-D
 
It looks liek I can't do it in an addin, I would need to convert it to an exptension package, and documentation on that is even more ridiculous than the Addin stuff.
 
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist


GeneralRe: Thanks very much + potential (small) bug + 1 whish.... [modified]memberI'm Chris29-Jul-08 22:54 
Glad to see that you're both maintaining the addin and that you quickly solved the issue! I really can't live without it: all our web tools (wiki, bug tracker...) were already linked together, but we missed the link with VS.NET and now we have it.
 
If you have some tip about where/what to look for for mouse integration, I'd glad to know as I've already spent some time on it but without any luck. In the meantime, we've assigned a key shortcut to the Linkify menu item and that's pretty efficient.
 
May I bring another suggestion which could be very useful (at least for me)? My idea would be to be able to define a prefix which would be separated from the keyword by a blank space... That could look trivial but that indeed would have a huge consequence: the ability to automatically 'jump' from a class name to some external tool (a documentation wiki in our case). To be more clear, when I have in my code:
public class XXX
{
...
}
my whish would be that Linkify would recognize the prefix 'class' and isolate XXX as the keyword. That way, I would automatically jump to my wiki portal on the page dedicated to that class...
 
--> update I did it actually, but my hack is hardcoded. I simply ignore the first empty spaces between the prefix and the link itself. Here's my Connect.cs in MatchProtocol (line 277):
      // ---- scan the link parameter ----

      // check for "remainder of line":
      if (protocol.separator == Protocol.Separator.LineRemainder)
      {
        parameter = lineInfo.Text.Substring(startIdx + protocol.prefix.Length);
		// Aulofee customization - start. Code changed to trim left blank in the link. Original line was:
		//parameter = parameter.TrimEnd(null);
		parameter = parameter.Trim(null);
		// Aulofee customization - end
        return protocol;
      }
 
      startIdx = startIdx + protocol.prefix.Length;
	  // Aulofee customization - start. Code added to trim left blank in the link.
	  while (lineInfo[startIdx] == ' ')
		  startIdx++;
	  // Aulofee customization - end

      [...]
 
=> Can you integrate this or something equivalent in your official version?
 
Many thanks again
 
PS: suggestion number 2: why wouldn't you move the Linkify addin to sourceforge or codeplex so that others (me...) could contribute to it?
 
 
Chris
www.aulofee.com - Infrastructure and Security Supervision, Event Correlation
modified on Wednesday, July 30, 2008 10:38 AM

GeneralRe: Thanks very much + potential (small) bug + 1 whish....memberpeterchen30-Jul-08 13:47 
Thank you very much for the kind words - as I've said before, what drives me is to see that these things are actually useful to someone.
 
The update I'm preparing allows a regular expression for matching the parameter, it is still experimental and I still have to verify that it actually works as intended. It should do what you need, though I agree adding an "ignore lead spaces" option is bit simpler to use Smile | :)
 
Maybe lead spaces can be ignored generally - I believe avoiding options is good - let me consider that.
 

I'm Chris wrote:
PS: suggestion number 2: why wouldn't you move the Linkify addin to sourceforge or codeplex so that others (me...) could contribute to it?

 
Tough question. I don't trust Open Source to be a good thing by default, my own experiences are minimal but tend towards the negative. for the time being, I'd like to maintain it here -including contributions etc.
 
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist


GeneralUpdatedmemberpeterchen2-Aug-08 15:18 
I've added the update I promised, hope it does what you need.
 
Please check if the new "RegEx" option provides the behavior you want for your links.
 
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist


GeneralRe: UpdatedmemberI'm Chris29-Oct-08 23:34 
Thanks very much for the update.
I've just upgraded, and all the 'rules' we defined still works fine.
 
Furthermore, we added (but maybe I already told you) a little enhancement which is to launch a web page into VS.NET's internal browser rather than into an external one. This was a requirement from our dev team, and I must say it's nice not to have to jump between application but to stay in a single "window".
 
As there is a couple of classes impacted (but in a light way), I'm not going to post the changes here. Simply tell me if you want me to email them to you.
 
Regards,
Chris
 
Chris
www.aulofee.com - Infrastructure and Security Supervision, Event Correlation

GeneralRe: Updatedmemberpeterchen30-Oct-08 5:34 
I'm Chris wrote:
Simply tell me if you want me to email them to you.

 
that would be egg-cellent Wink | ;)
 
good to know it's working for you.
 

GeneralRe: UpdatedmemberI'm Chris4-Nov-08 5:01 
Hi Peter,
 
Remember we discuss about how to implement underlining/highlighting linkify's link in VS? I fell on it by hasard - but pitifully I've no time to digg into the subject.
 
The key is the IVsTextMarkerTypeProvider class (look for it in MSDN).
A few interesting pages I found afterward on it:
- http://blogs.msdn.com/dr._ex/archive/2004/06/09/152220.aspx[^]
- "visual studio .net ide : syntax highlighting for .net addin" : http://developmentnow.com/g/55_2005_10_0_0_623957/syntax-highlighting-for-net-addin.htm[^]
 
Would you have any spare time to (try to) implement this?
 
Regards,
Chris
 
Chris
www.aulofee.com - Infrastructure and Security Supervision, Event Correlation

GeneralRe: UpdatedmemberI'm Chris4-Nov-08 5:02 
Hi Peter,
 
Remember we discuss about how to implement underlining/highlighting linkify's link in VS? I fell on it by hasard - but pitifully I've no time to digg into the subject.
 
The key is the IVsTextMarkerTypeProvider interface (look for it in MSDN).
A few interesting pages I found afterward on it:
- http://blogs.msdn.com/dr._ex/archive/2004/06/09/152220.aspx[^]
- "visual studio .net ide : syntax highlighting for .net addin" : http://developmentnow.com/g/55_2005_10_0_0_623957/syntax-highlighting-for-net-addin.htm[^]
 
Would you have any spare time to (try to) implement this?
 
Regards,
Chris
 
Chris
www.aulofee.com - Infrastructure and Security Supervision, Event Correlation

QuestionCan you fix this to work with Visual Studio 2008?memberJosh K10-Dec-07 7:04 
Can you fix this to work with Visual Studio 2008?
AnswerRe: Can you fix this to work with Visual Studio 2008?memberpeterchen15-Dec-07 23:24 
OMG | :OMG: What do I have to do? Big Grin | :-D

We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
My first real C# project | Linkify!|">FoldWithUs! | sighist


AnswerRe: Can you fix this to work with Visual Studio 2008? [modified]memberpeterchen16-Dec-07 4:47 
I have an update in the queue mainly to support better integration with DefaultOverloader[^]
 
When it's published, I see what I can do - but it seems like I need help
 
All I found is this (2, "Managed Addins")
 
http://msdn2.microsoft.com/en-us/library/bb513851(VS.90).aspx[^]
 
It seems I need VS2008 installed for that, which I don't have - could you help me with VS2008 compatibility? That would be nice (and you'd be mentioned on the about box Big Grin | :-D )

We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
My first real C# project | Linkify!|">FoldWithUs! | sighist

modified on Tuesday, December 18, 2007 7:34:53 PM

GeneralRe: Can you fix this to work with Visual Studio 2008?memberSaurabh.Garg13-Jan-08 21:53 
Hello peterchen, I have converted the addin to VS 2008 and uploaded the source at http://www.mediafire.com/download.php?8mhgnyfnnzz[^]. The setup project was not successfully converted there was a dependency on a custom build rule, details are in the UpgradeLog folder. I have tested and it works well on my machine but if there are problems let me know I will try to fix them.
GeneralRe: Can you fix this to work with Visual Studio 2008?memberJonathan C Dickinson18-May-08 20:17 
As far as I know, VS2008 has full binary compatibility with VS2005 plugins. All you need to (apparantly) do is duplicate registry entries. Where you had hklm/Software/Microsoft/Visual Studio 8/... you use hklm/Microsoft/Visual Studio 9.0/... (note the .0).
Answeryes :)memberpeterchen2-Aug-08 15:20 
The latest linkify update should work with VS 2008. I couldn't test the installer yet, as well as the latest binary - but for all I know it SHOULD work.
 
If you are still interested, and try it, üplease let me know the results.
 
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
blog: TDD - the Aha! | Linkify!| FoldWithUs! | sighist


GeneralSeens not to be working with VS2005 SP1memberMarcelEllerbrok11-Jul-07 21:41 
Hi there,
 
I tried to use your plugin, but I can put the files anywhere, the Visual Studio ignores them. Nothing happens, nothinf appears underneath die Tools menue.
 
I have installed a Visual Studio 2005 Professional SP1 on a Windows XP Pro SP2 platform.
 
maybe something changed with the SP1. Would you be so kind and test this?
 
Thanks!
 
Best regards,
Ellerbrok
GeneralRe: Seens not to be working with VS2005 SP1memberpeterchen12-Jul-07 0:01 
I had to uninstall SP1, because it did break some of my C++ builds. D'Oh! | :doh:
 
I'll try to install it again.
 
Addin registration in VS2005 is driving me crazy, I can tell you.!
 
Could you check with my Addin manager[^] and maybe send me ascreenshot? Just to see if there's something odd.
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
My first real C# project | Linkify!|FoldWithUs! | sighist

QuestionWhat wiki do you use?memberMatt Casto28-Aug-06 2:55 
I'm interested in hearing about what wiki you use for your development wiki. This is something I (and some other co-workers) have been interested in implementing recently, but we're not sure which platform to start with. Thanks in advance.
AnswerRe: What wiki do you use?memberpeterchen28-Aug-06 8:41 
OpenWikiNG at home, OpenWiki at work.
Not for long, so I can't say how much I'm hooked on having a wiki. Currently I use it more as a scratch pad, and I **DO** miss some structure.
 
The worst thing for your decision is: there are many wikis out there and all use slightly different syntax. So the best choice might be one with a big following.

 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

AnswerRe: What wiki do you use?memberVictor Boctor22-Dec-06 15:35 
I use DokuWiki for my projects. You can see it in action here:
http://www.mantisbt.org/wiki/[^]
 
The main reasons I chose it are:
- Doesn't require a DBMS (although this makes it flexible, it is not always a good thing due to performance).
- Elegant
- PHP Based
- Simple to setup and use.
- Supports plug-ins
 
If you want to compare most (if not all) of the available wiki engines, you can visit the following site:
http://www.wikimatrix.org[^]
 

GeneralArgument exceptionmemberAvi_Harush20-Aug-06 2:00 
System.ArgumentException: Value does not fall within the expected range.
 
at EnvDTE.Globals.get_VariableValue(String VariableName)
 
at Linkify.Connect.OnConnection(Object application, ext_ConnectMode connectMode, Object addInInst, Array& custom)

GeneralRe: Argument exceptionmemberpeterchen20-Aug-06 10:57 
Do you get a message box on load? It should go away after confirming the Config dialog once.
 
(If it persists, can you tell me how to reproduce it?)
 
I'll upload the latest code (which catches this exception silently). It happens at startup, when Linkify tries to load its settings, but doesn't have any.
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralRe: Argument exceptionmemberpeterchen20-Aug-06 11:12 
P.S. I've uploaded the latest sources + binary. Does it now work for you?
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralRe: Argument exceptionmemberfeline_dracoform24-Aug-06 1:28 
i have only just got around to installing this, and already i am loving it! Big Grin | :-D
 
short version:
i got exactly the same error, as a message box that appeared on top of the IDE.
 
long version:
i installed the plugin as described, into my local user directory in documents and settings. i had to create the Addins directory, this probably does not matter but it is worth mentioning.
 
according to "IDE menu -> tools menu -> add-in manager" i only have two plugin's installed (which is correct), Visual Assist (currently build 1532) and linkify.
 
the first time i ran VS2005 after installing linkify i got the message box with the error. the message box was overlaid on the IDE's splash screen, and stopped the IDE loading until i accepted the message.
 
i then restarted the IDE (it seemed best) and it loaded without any errors. i get the linkify menu option under the tools menu, as expected. when i clicked on this the first time i got the message box / error again. this time (from memory) the linkify options dialog opened in the background and the message box opened on top of it.
 
the second time i triggered linkify there was no error message.
 
i have now done a second IDE restart and i am not seeing any more errors from linkify.
 
i only have one IDE installed on this system, VS2005. i downloaded the addin zip file (not the project) today, 24th August, and got a zip file with size 19,138 bytes.
 
hopefully this is enough information to help get you started Smile | :)
 
if / when i find the time i will try this at home, in a virtual machine, and see what happens. if these errors on first install and first run are to be expected you probably want to put a warning into the article, so people know to get past them so they see and enjoy this in action Smile | :)
 
zen is the art of being at one with the two'ness

GeneralRe: Argument exception [modified]memberpeterchen24-Aug-06 3:10 
Great to hear that you like it!
 
If you find any uses beyond those I mentioned in the article, just let me know. I'm still trying to figure out how practical this is.
 
feline_dracoform wrote:
i only have one IDE installed on this system, VS2005. i downloaded the addin zip file (not the project) today, 24th August, and got a zip file with size 19,138 bytes.

 
Damn - reverse roles Roll eyes | :rolleyes:
 
I'll look into it again - I hope I get it done before vacations.
 
(I try to load the settings, and find none are there - I thought I do supress the error in this case now, but ahh well...)
 

[edit]I guess I can remove the message box for the release version. The error occurs because I couldn't load settings, so revert to the default ones anyway... But now you have to export your settings and keep them warm Smile | :) [/edit]
 
-- modified at 10:54 Thursday 24th August, 2006
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralRe: Argument exceptionmemberfeline_dracoform24-Aug-06 9:14 
i will try not to abuse my new found power as bug reporter Poke tongue | ;-P
 
*prods the software*
 
* thinking of which, there should be shortcut keys (& in the names) on the buttons in the options dialog Smile | :)
 
* on a related front, is there some specific URL format to say "open these types of links in this web brower"? some sites do not like firefox, my default web browser. if not, how about adding a "use this program" field? this would open the door to new possible uses, especially if the programs have good command line parameter support
 
* when i open the options dialog i get a new taskbar icon, but this is for the modal dialog that sits over the IDE, so it should be re-using the IDE's task bar entry Wink | ;)
 

for now i just want to link bug numbers from the code. i know i can go and type the bug number in, but when you consider that i sometimes have to track things across two or three different bug trackers just having the number is not all that useful.
 
now i just have to get used to this idea, and start inserting the formatted bug numbers Smile | :)
 
zen is the art of being at one with the two'ness

GeneralRe: Argument exceptionmemberpeterchen24-Aug-06 12:57 
feline_dracoform wrote:
* thinking of which, there should be shortcut keys (& in the names) on the buttons in the options dialog

 
easy as a pie!
 
feline_dracoform wrote:
* on a related front, is there some specific URL format to say "open these types of links in this web brower"?

 
OK, half of it is easy:
I've changed "URL" to two parameters: "EXE" and "ARGS". In both the asterisk is replaced by the keyword (if present). Normal URLs can just be entered in the "EXE" field, or you can specify iexplore.exe as executable and your url as argument. This also gives more flexibility to external programs.
 
What would be cool: specifying a target frame for the URL as it is possible inside <a href="url" target="linkify_bugz">) This would allow to e.g. always open "bugz:" in the same browser window.
 
Unfortunately, IE doesn't seem to support this over the command line. I'll see if I find a way (other than creating a hidden HTML control and simulate a click Cool | :cool: )
 
feline_dracoform wrote:
when i open the options dialog i get a new taskbar icon,

I've asked at the newsgroup how to get a veritable parent window (as IWin32Window), which is what I should use. If that ain't possible, I'll trick around a bit with the window styles.
 

 
Upload coming soon (I'm tired...)
 

 

 

 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralRe: Argument exceptionmemberpeterchen27-Aug-06 0:01 
fixed (I hope Blush | :O )
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralI'm afraid to use thisprotectorMarc Clifton18-Aug-06 12:13 
Because then I will never ever want to use any other version of Visual Studio, unless it has this feature in it (or you provide it for future versions!).
 
Very, very cool.
 
About your license--can I use this for developing a commercial app? I wasn't clear whether non-commercial part was restricting the use of the plug-in code or the use of the plug-in in developing other code.
 
Marc
 

Thyme In The Country

People are just notoriously impossible. --DavidCrow
There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh Smith


GeneralDon't be :)memberpeterchen18-Aug-06 17:47 
Absolutely. I'll make the licence clearer.
 

Marc Clifton wrote:
Because then I will never ever want to use any other version of Visual Studio, unless it has this feature in it (or you provide it for future versions!).

 
Blush | :O When I thought of this it was either this or "what a stupid idea is that?"

 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralLinkifying CodeProjectmemberpeterchen16-Aug-06 20:28 
to search articles on codeproject
 
Articles by Keyword search:
prefix: cp:
url: http://www.codeproject.com/info/search.asp?st=kw&target=*
 
Articles by Author search:
prefix: cpian:
url: http://www.codeproject.com/info/search.asp?st=au&target=*
 
cp:Linkify will search for articles containing Linkify
cpian:shog9 will search for articles by shog9
 
It doesn't make much sense, it's just a little tribute.. Smile | :)


 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

QuestionVersion for Visual studio 2003 ?memberploufs16-Aug-06 2:16 
Version for Visual studio 2003 ?
AnswerRe: Version for Visual studio 2003 ?memberpeterchen16-Aug-06 4:12 
I have no idea how much the AddIn model differs. Do you know a "how to develop an Add-In for VS2003" tutorial? That could get me started Smile | :)
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralRe: Version for Visual studio 2003 ?memberfeline_dracoform16-Aug-06 8:43 
there is some discussion on writing an add-in in this article:
 
http://www.codeproject.com/macro/linecount.asp
 
but since i have yet to try and write an add-in i cannot really comment on how useful it is. still it might be a good starting place Smile | :)
 
zen is the art of being at one with the two'ness

GeneralRe: Version for Visual studio 2003 ?memberpeterchen17-Aug-06 4:33 
From the article, it's relatively disgusting Cool | :cool:
Well, maybe after the vacations.
 

 
feline_dracoform wrote:
zen is the art of being at one with the two'ness

 
OT: I always wondered where I know this from - and only recently made the feline/~_dracoform connection. It was a big "doh!"
Very good job you are doing over there.
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

GeneralRe: Version for Visual studio 2003 ?memberfeline_dracoform17-Aug-06 12:50 
>> From the article, it's relatively disgusting
 
so long as someone else is doing the work, i believe the technical term is "an interesting programming challenge" *rolls eyes*
 

as for doing the good job, many thanks Smile | :) i like to feel i make a positive contribution Smile | :)
 
zen is the art of being at one with the two'ness

GeneralRe: Version for Visual studio 2003 ?memberAnna-Jayne Metcalfe18-Aug-06 12:30 
It doesn't differ that much, although the command bar model uses a diferent namespace.
 
The big gotcha is that to support VS2003 in a managed add-in, it must be built in eitnher VS2002 or VS2003 - it can't be built in VS2005 because of .NET Framework versioning restrictions. Native add-ins don't suffer from this restriction of course (our own Visual Lint is developed in VS2003, and supports VS2002, VS2003 and VS2005, with VS6 support arriving in the autumn).
 
If you are getting to know the extensibility model, I'd strongly suggest you join the vsnetaddin Yahoo Group (http://groups.yahoo.com/group/vsnetaddin/[^]). Rose | [Rose]
 
Anna Rose | [Rose]
 
Currently working mostly on: Visual Lint Cool | :cool:
 
Anna's Place | Tears and Laughter
 
"Be yourself - not what others think you should be"
- Marcia Graesch
 
"Anna's just a sexy-looking lesbian tart"
- A friend, trying to wind me up. It didn't work.

GeneralRe: Version for Visual studio 2003 ?memberpeterchen5-Nov-06 10:53 
Hi,
 
could you help me with a little thing?
I'm currently toying around with an "improved addin manager", it works well already for the "registry free" method,. Can you point me to a good description of the COM registration method, so I can support them? Esp. VS2002/2003/2005 differences, if any.
 
Thanks Smile | :)
 


We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP

Linkify! || Fold With Us! || sighist

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130617.1 | Last Updated 2 Aug 2008
Article Copyright 2006 by peterchen
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid