<?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 History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx</link><description>Hello, this is Jim Springfield again. I want to start explaining our plan to fundamentally change how IntelliSense and other code browsing features work for C/C++. The recent GDR for VS2005 and the changes that went into VS2008 were significant, but they</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6799272</link><pubDate>Tue, 18 Dec 2007 23:32:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6799272</guid><dc:creator>ulric</dc:creator><description>&lt;p&gt;It's bizarre, but for our very app (300 Dlls inlcluding third-parties, MFC, ATL, STL application), VC++ 98 actually provided better intellisense support and speed. &amp;nbsp;It has had a large hit on the team when we finally switched to VC++ 2003. &amp;nbsp; Some of the team members have switched to Visual Assist X, other gave up on intellisense. One welcomed change in VC++ 2003 was that browser information is often not necessary - when intellisense info is available, that's cool for &amp;quot;F12&amp;quot;.&lt;/p&gt;
&lt;p&gt;Edit-and-continue is another area that's been rendered extremely slow and generally fails since VC++ 98. Some of us still use VC++ 98 when we can.&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6802251</link><pubDate>Wed, 19 Dec 2007 07:19:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6802251</guid><dc:creator>Phaeron</dc:creator><description>&lt;p&gt;IMO, there were two poor decisions made:&lt;/p&gt;
&lt;p&gt;The first was to eliminate the prebuilt NCBs. Yes, this allowed Intellisense to be more accurate, but I would gladly give that up for a performance increase. &amp;lt;windows.h&amp;gt; is easily one of the most complex include files a project can include, and forcing it to be parsed every time caused a huge increase in database size and parsing time.&lt;/p&gt;
&lt;p&gt;The second was thinking that moving work to a background thread would fix the problems. For one thing, CPU priorities do zip for the disk. One of the problems I see daily is that VS2005 decides to rebuild the Intellisense database when it thinks the system is idle, but it hogs the disk so much that it seriously impacts system performance. Second, even low priority threads using a lot of CPU cause problems. Before the QFE, it was pretty bad when you edited a shared header and three copies of VS2005 all decided to parse at the same time, completely slamming the CPU for upwards of five minutes. (Haven't been able to try the QFE yet in that scenario due to conflicts.) Allowing Intellisense parsing to be manually suspended was a good move.&lt;/p&gt;
&lt;p&gt;There's no doubt that VC6's Intellisense was MUCH faster -- I don't remember it being a performance problem at all. That having been said, it is nice that F12 works without having to compile, and I do like having macros show up, so there's definitely been improvement in functionality.&lt;/p&gt;
&lt;p&gt;One suggestion, to help performance: Can we have a way to manually exclude files from Intellisense? Often I have large portions of my code base that I don't really need Intellisense for, such as code I'm not working on, or auto-generated files. I think I'd be fine if Win32 APIs were excluded much of the time. If I could exclude header and source files, then I could improve its performance just by allowing it to do less. I think there used to be some undocumented #pragmas for doing this, but they seem to be defunct in 2005.&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6807171</link><pubDate>Wed, 19 Dec 2007 17:57:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6807171</guid><dc:creator>Filippo</dc:creator><description>&lt;p&gt;I use VC2005 and i think it's great. But sometimes, when i try to reach a class through&lt;/p&gt;
&lt;p&gt;the ...in italian is called &amp;quot;Visualizzatore classi&amp;quot;, i think it's the class visualizer.. anyway, when i try to reach a class, the intellisense rebuild the tree and i can't reach the class until it's done. if it's possible i think is better to turn off the rebuild of the tree when there is the focus.&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6807574</link><pubDate>Wed, 19 Dec 2007 19:04:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6807574</guid><dc:creator>Mike</dc:creator><description>&lt;p&gt;Agreed, if there's one thing you could do, if you find out that it is not going to be possible to redo the feature from scratch by the VC10 timeframe, is to bring back the pre-built NCB files (at least as an option)&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6811155</link><pubDate>Thu, 20 Dec 2007 02:42:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6811155</guid><dc:creator>Henry Skoglund</dc:creator><description>&lt;p&gt;While I also appreciate the speed of pre-built NCB files, I think they constitute an obsolete approach.&lt;/p&gt;
&lt;p&gt;Case in point: right now I'm working with an MFC project in Orcas. If I type in&lt;/p&gt;
&lt;p&gt;::CreateWindow&lt;/p&gt;
&lt;p&gt;IntelliSense will display: #define CreateWindow CreateWindowA&lt;/p&gt;
&lt;p&gt;If I switch my project's properties to Unicode and rebuild, then IntelliSense will instead show #define CreateWindow CreateWindowW&lt;/p&gt;
&lt;p&gt;Pretty neat and not easily obtained with prebuilt NCBs, I think.&lt;/p&gt;
&lt;p&gt;To give my 2 cents of ideas, isn't it possible to borrow some ideas from the explorer? I'm thinking of in later releases of Windows, when browsing a directory on a file server, first the files are displayed with a neutral icon, and then later on they are redrawn with their correct icons. &lt;/p&gt;
&lt;p&gt;So, instead of do a fullblown compilation of say, windows.h, wouldn't it be possible to introduce some kind of &amp;quot;skim&amp;quot; or &amp;quot;lite&amp;quot; compilation, just to list the symbols. Never mind function arguments and return flavors. Those could be parsed at a later time, when the user types in that function call etc. Sort of &amp;quot;just in time&amp;quot; Intellisense compilation :-)&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6811305</link><pubDate>Thu, 20 Dec 2007 03:04:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6811305</guid><dc:creator>Norman Diamond</dc:creator><description>&lt;p&gt;&amp;gt; If I type in&lt;/p&gt;
&lt;p&gt;&amp;gt; ::CreateWindow&lt;/p&gt;
&lt;p&gt;&amp;gt; IntelliSense will display:&lt;/p&gt;
&lt;p&gt;&amp;gt; #define CreateWindow CreateWindowA&lt;/p&gt;
&lt;p&gt;which tells us zip about the parameters that we have to type next.&lt;/p&gt;
&lt;p&gt;&amp;gt; If I switch my project's properties to Unicode and rebuild, then IntelliSense will instead show&lt;/p&gt;
&lt;p&gt;&amp;gt; #define CreateWindow CreateWindowW&lt;/p&gt;
&lt;p&gt;which tells us zip about the parameters that we have to type next.&lt;/p&gt;
&lt;p&gt;This is exactly one of the reasons why prebuilt NCBs are useful. &amp;nbsp;They can tell us the parameters that we have to type next.&lt;/p&gt;
&lt;p&gt;If designed properly, prebuilt NCBs can even tell us things like LPTSTR instead of whichever underlying type it maps to in the present environment. &amp;nbsp;For functions like WideCharToMultiByte or gethostname we want to be told when a parameter really has to be an LPSTR (never Unicode), an LPWSTR (never ANSI), or LPTSTR (has to match the present environment). &amp;nbsp;Do you really consider that to be too intelligent or sensible?&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6813891</link><pubDate>Thu, 20 Dec 2007 09:13:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6813891</guid><dc:creator>Norman Diamond</dc:creator><description>&lt;p&gt;Oh here we go. &amp;nbsp;I experimented with converting a Visual Studio 2005 SP1 solution to Visual Studio 2008, and the very first failure is Intellisense.&lt;/p&gt;
&lt;p&gt;'{AECA1A9A-4E97-4879-999A-2FC44788878F}' ('指定されたファイルが見つかりません。') からメタデータを読み取る際に問題が発生しました。ソリューションが再度読み込まれるまで、IntelliSense が正常に動作しない可能性があります。&lt;/p&gt;
&lt;p&gt;I closed the Visual Studio 2008 window, and then in Explorer I double-clicked the newly converted .sln file. &amp;nbsp;Doesn't this force the solution to be reread? &amp;nbsp;But the very same Intellisense error was repeated. &amp;nbsp;Also every time I switch between Debug and Release, it repeats again.&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6826176</link><pubDate>Fri, 21 Dec 2007 14:15:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6826176</guid><dc:creator>Gerg Draeb</dc:creator><description>&lt;p&gt;After becomming frustrated with VC2005's intellisense, I got a copy of Visual Assist X which was a vast improvement, in my opinion. That said, I recently switched to VC2008 (w/o VAX) and it seems a lot better. Its intellisense deals with my Boost.Test based projects (or similar apps whose structure is almost completely defined using macros) much better than either VC2005 or VAX ever did. You're definately getting there guys - bring on VC10!&lt;/p&gt;
</description></item><item><title>re: IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#6901203</link><pubDate>Sun, 30 Dec 2007 01:34:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6901203</guid><dc:creator>Nikolay</dc:creator><description>&lt;p&gt;Unfortunately, according to my experience, 2008's intellisense for C++ is still as useless as 2005's or 2003's. Actually, all I expect now from VC10 is a switch to turn the built-in intellisense off without having to delete feacp.dll :)&lt;/p&gt;
&lt;p&gt;For now, we are just stuck to VAX... Though it is not infallible, at least it does the job.&lt;/p&gt;
</description></item><item><title>IntelliSense, Part 2 (The Future)</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#7954663</link><pubDate>Fri, 29 Feb 2008 20:50:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7954663</guid><dc:creator>Visual C++ Team Blog</dc:creator><description>&lt;p&gt;Hi, Jim Springfield again. This post covers our current work to fundamentally change how we implement&lt;/p&gt;
</description></item><item><title>IntelliSense, Part 2 (The Future)</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#7955372</link><pubDate>Fri, 29 Feb 2008 21:13:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7955372</guid><dc:creator>Noticias externas</dc:creator><description>&lt;p&gt;Hi, Jim Springfield again. This post covers our current work to fundamentally change how we implement&lt;/p&gt;
</description></item><item><title>My Visual Studio vNext wish list</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#8829943</link><pubDate>Mon, 04 Aug 2008 13:21:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8829943</guid><dc:creator>Granville Barnett</dc:creator><description>&lt;p&gt;My wish list for Visual Studio vNext isn&amp;amp;#39;t that long. The things I would like to see in Visual Studio&lt;/p&gt;
</description></item><item><title>My Visual Studio vNext wish list</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#8829948</link><pubDate>Mon, 04 Aug 2008 13:21:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8829948</guid><dc:creator>Granville Barnett</dc:creator><description>&lt;p&gt;My wish list for Visual Studio vNext isn't that long. The things I would like to see in Visual Studio&lt;/p&gt;
</description></item><item><title>VC智能感知历史-IntelliSense History, Part 1</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#8943823</link><pubDate>Thu, 11 Sep 2008 11:03:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8943823</guid><dc:creator>lake.cn</dc:creator><description>&lt;p&gt;大家好，我是Jim Springfield. 我要开始解释我们的计划，关于从根本上改变C / C 的智能感知和代码浏览功能的工作方式。最近vs2005的GDR和vs2008的变化是很重要的，但他们并没有将这些特点的真正实现。这个文章涵盖了这个功能的历史，并帮助我们解释智能感知如何在vc10(VS2008的下一个Release)完成的情况。&lt;/p&gt;
</description></item><item><title>Dev10 Is Just The Beginning</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#9377731</link><pubDate>Tue, 27 Jan 2009 19:49:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9377731</guid><dc:creator>Visual C++ Team Blog</dc:creator><description>&lt;p&gt;Hello, I’m Mark Hall, an architect in the Visual C++ group. I wanted to follow up on Jim Springfield’s&lt;/p&gt;
</description></item><item><title>Rebuilding Intellisense</title><link>http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx#9644636</link><pubDate>Wed, 27 May 2009 19:34:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9644636</guid><dc:creator>Visual C++ Team Blog</dc:creator><description>&lt;p&gt;Hi, my name is Boris Jabes. I've been working on the C++ team for over 4 years now (you may have come&lt;/p&gt;
</description></item></channel></rss>