<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx</link><description>I noticed a question on the C# faq by David who asks:
 
---
 
Is it possible when you type {, (, [, etc. to have the IDE automatically insert the corresponding }, ), ] etc.? Does this exist in VS.NET 2003? Am I just blind?
 
Would it be possible</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#192070</link><pubDate>Fri, 23 Jul 2004 05:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:192070</guid><dc:creator>redguardtoo</dc:creator><description>Because my english is poor, I always select the simple words to express my idea. thus maybe looks i am rude? if so, I apologize.&lt;br&gt;&lt;br&gt;What I mean is that basic idea behind some auto-complete software's core design is wrong. Among those auto-complete softwares, maybe intellicomplete is the best. but it is still un-mature.&lt;br&gt;&lt;br&gt;Actually, it is Microsoft whom developed Iput Method Editor (IME) technology. but seems Microsoft have not recognized that same technoglogy can be applied on their IDEs.&lt;br&gt;&lt;br&gt;Now, comes to  the meaning of &amp;quot;define everything as a word&amp;quot;.&lt;br&gt;&lt;br&gt;a word is something you want to input by striking the keyboard.&lt;br&gt;&lt;br&gt;for example, below is some code fragment from my project:&lt;br&gt;&amp;quot;&lt;br&gt;class trackIterator : public ExeCtx::trackIterator&lt;br&gt;	{&lt;br&gt;		TrackRegistry::const_iterator _iter;&lt;br&gt;		TrackRegistry::const_iterator _end;&lt;br&gt;	public:&lt;br&gt;		trackIterator(const TrackRegistry::const_iterator begin,&lt;br&gt;					 const TrackRegistry::const_iterator end)&lt;br&gt;			: ExeCtx::trackIterator(for_derived()), _iter(begin), _end(end) {}&lt;br&gt;&lt;br&gt;		void next() { if (!atEnd()) ++_iter; }&lt;br&gt;		bool atEnd() const { return _iter == _end; }&lt;br&gt;&lt;br&gt;		const NodeJmp&amp;amp; operator*() const { return *(*_iter); }&lt;br&gt;	};&lt;br&gt;&amp;quot;&lt;br&gt;TrackRegistry is a word, serials of space chars, or &amp;quot;::&amp;quot; is not a word?&lt;br&gt;If I strike &amp;quot;T&amp;quot; key, you guess I want to input &amp;quot;TrackRegistry&amp;quot;? so Intellisense will give me hint &amp;quot;TrackRegistry&amp;quot; and later input it into the editor, then I type &amp;quot;::&amp;quot;, Intellisense list all the method of the namespace TrackRegistry. Then I will strike Return to confirm the guess (for example, const_iterator _iter&amp;quot;). This is called smart guess.&lt;br&gt;&lt;br&gt;Actually,  I just want to input  &amp;quot;TrackRegistry::const_iterator _iter&amp;quot;. I am a lazy programmer, I just want to type &amp;quot;T&amp;quot; and IntelliSense should give me the hint &amp;quot;TrackRegistry::const_iterator _iter&amp;quot;?  This is named wild guess.&lt;br&gt;&lt;br&gt;if I can have a choice to configure intellisense between smart guess and wild guess?&lt;br&gt;&lt;br&gt;for the wild guess, a more extreme example is if I type &amp;quot;d&amp;quot; then return, Intellisense should guess I will input the whole webster dictionary into the editor.&lt;br&gt;&lt;br&gt;more examples:&lt;br&gt;If I type &amp;quot;/&amp;quot;, FlashIME will guess I will input &amp;quot;/usr/local/bin/ddd&amp;quot;, if I type &amp;quot;C:&amp;quot;, FlashIME will guess I will input &amp;quot;c:\Program Files\FlashIME\devime.db&amp;quot;&lt;br&gt;&lt;br&gt;If I type &amp;quot;&amp;lt;&amp;quot;, FlashIME guess I wll input &amp;quot;&amp;lt;boost/python/filesystem.hpp&amp;gt;&amp;quot;&lt;br&gt;&lt;br&gt;How FlashIME guess should be configurable.&lt;br&gt;&lt;br&gt;As to configurable, if I choose other languages like python, perl, ruby, lisp and I still want to use VS2003, as an editor, Intellisense will work? As a customer, I buy the VS2003 or 2005, then someday I will use it to develop application in a totally new language on a new platform (linux , for example? +samba, of course) Could I have a FREE and easy way (Click button once or twice) to make IntelliSense know the keywords of the Linux and the new language?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=192070" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#191913</link><pubDate>Fri, 23 Jul 2004 04:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:191913</guid><dc:creator>Cyrus Najmabadi</dc:creator><description>RedGuardToo: I'm not sure what you mean by &amp;quot;we hard coded in what a word was&amp;quot;.&lt;br&gt;&lt;br&gt;What does it mean to &amp;quot;define everything a word&amp;quot;?&lt;br&gt;&lt;br&gt;Could you show an example of how this is useful, and how 'expansions' don't give you this functionality?  THanks!&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=191913" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#191911</link><pubDate>Fri, 23 Jul 2004 04:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:191911</guid><dc:creator>redguardtoo</dc:creator><description>&amp;quot;#include&amp;quot; is just an example, it means you can change the definition of a word character.&lt;br&gt;&lt;br&gt;The keypont is:&lt;br&gt;&lt;br&gt;You hardcoded the definition of a word. but in FlashIME, I can configure everything.&lt;br&gt;&lt;br&gt;For example,&lt;br&gt;&amp;quot;boost&amp;quot; is a word. &amp;quot;boost.filesystem.iterator&amp;quot; is not a word.&lt;br&gt;But why not? FlashIME gives you a choice to define what is a word.&lt;br&gt;&lt;br&gt;If you like, you can define everything a word&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=191911" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#191884</link><pubDate>Fri, 23 Jul 2004 03:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:191884</guid><dc:creator>Cyrus Najmabadi</dc:creator><description>redguardtoo: In what ways do yo think FlashIME is better.&lt;br&gt;&lt;br&gt;We support use configurable expansions as well, and I'm not sure why auto completing to #include would be desirable behavior in C# which doesn't have an include statment.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=191884" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#191858</link><pubDate>Fri, 23 Jul 2004 02:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:191858</guid><dc:creator>redguardtoo</dc:creator><description>You can try FlashIME (&lt;a target="_new" href="http://www.d2ksoft.com"&gt;http://www.d2ksoft.com&lt;/a&gt;) much better than intellinsense, Visual Assist&lt;br&gt;&lt;br&gt;for example:&lt;br&gt;you can type &amp;quot;#&amp;quot;+return to input &amp;quot;#include&amp;quot;&lt;br&gt;or you can type &amp;quot;fncmt&amp;quot; +return to input &lt;br&gt;&amp;quot;//-------------------&lt;br&gt; //Description:...&lt;br&gt; //Function Name: ...&lt;br&gt;&amp;quot;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=191858" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#147518</link><pubDate>Thu, 03 Jun 2004 11:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:147518</guid><dc:creator>Joku</dc:creator><description>I think VS could borrow from Word here. Shift-Enter anyone? I don't see it being used in the code editor in a useful way. Here's what I propose:&lt;br&gt;&lt;br&gt;Suppose you have typed: (@ marks position of the cursor)&lt;br&gt;&lt;br&gt;if (true@&lt;br&gt;&lt;br&gt;now if you press shift-enter, the IDE would complete to:&lt;br&gt;if (true)&lt;br&gt;{&lt;br&gt;@&lt;br&gt;&lt;br&gt;Now you can write a command&lt;br&gt;&lt;br&gt;Dispose();@&lt;br&gt;&lt;br&gt;now if you press shift-enter, the IDE would complete to:&lt;br&gt;&lt;br&gt;if (true)&lt;br&gt;{&lt;br&gt; Dispose();&lt;br&gt;}&lt;br&gt;@&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Other variation of this idea (implement it quick before i patent shift-enter LOL)..&lt;br&gt;&lt;br&gt;You write&lt;br&gt;&lt;br&gt;if &lt;br&gt;&lt;br&gt;and&lt;br&gt;&lt;br&gt;(&lt;br&gt;The IDE gives ) automatically:&lt;br&gt;&lt;br&gt;if (@)&lt;br&gt;&lt;br&gt;Now you write true&lt;br&gt;&lt;br&gt;if (true@)&lt;br&gt;&lt;br&gt;now if you press shift-enter, the IDE would skip over the ) and add space:&lt;br&gt;&lt;br&gt;if (true) @&lt;br&gt;&lt;br&gt;but pressing shift-enter here would indicate you want to end writing the if () ()'s :&lt;br&gt;&lt;br&gt;if (true)&lt;br&gt;{&lt;br&gt;@&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;Write the command(s): &lt;br&gt;&lt;br&gt;if (true)&lt;br&gt;{&lt;br&gt;Dispose();@&lt;br&gt;}&lt;br&gt;&lt;br&gt;now if you press shift-enter, the IDE would just skip out of the { }:&lt;br&gt;&lt;br&gt;if (true)&lt;br&gt;{&lt;br&gt;Dispose();&lt;br&gt;}&lt;br&gt;@&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;So what good is this ? Well it would be nice for us who are used to out native language keyboards, where getting ( ) or { } requires more than 1 key press, it the shift-enter auto-skip/completion there would be a ton of saving of the { } ) key combos and some saving of using cursor keys to get over the }'s.. &lt;br&gt;&lt;br&gt;So you could end up saving a whole two minutes in a year with this !!&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=147518" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#146139</link><pubDate>Tue, 01 Jun 2004 23:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:146139</guid><dc:creator>Cyrus Najmabadi</dc:creator><description>Vince: Correct.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=146139" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#146111</link><pubDate>Tue, 01 Jun 2004 22:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:146111</guid><dc:creator>Vince Pacella</dc:creator><description>That's in the new version right? Not 2003?&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=146111" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#145040</link><pubDate>Mon, 31 May 2004 20:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:145040</guid><dc:creator>Cyrus Najmabadi</dc:creator><description>Vince: When your cursor is now up against a one of a pair of elements ( { &amp;lt; &amp;gt; } ) we will match the corresponding element.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=145040" width="1" height="1"&gt;</description></item><item><title>re: Intellisense interaction</title><link>http://blogs.msdn.com/b/cyrusn/archive/2004/05/28/143885.aspx#144926</link><pubDate>Mon, 31 May 2004 15:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:144926</guid><dc:creator>Brian Schkerke</dc:creator><description>I think he means what you're asking for.  When you highlight the ending brace the beginning brace will bold, or turn red, and vice versa.  It allows for easy identification of the code block that you're in and is a very nice feature.&lt;br&gt;&lt;br&gt;Generally brace matching is done as well as parentheses matching too.  I tend to screw up parentheses more than braces, although the compiler barfs those errors out fairly quickly. ;)&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=144926" width="1" height="1"&gt;</description></item></channel></rss>