Is there someway to get VS 2008 intellisense to default to Properties over Classes in a name collision?
Example:
Within my scope I have a property Foo, but I'm also using a class Foo. When writing code, if I start to type F o, VS2008 intellisense will think I mean the class Foo. I want it to think I mean the property Foo instead.
Unfortunately no this is not possible. Customization of the priority of value categories like classes / properties is not supported
There is no possibility in VS2010 and not even in ReSharper 5.0 to deal with this issue. It won't be a feature of ReSharper 6.0 as well, according to JetBrains. I use a different name for the property, when it starts making me aggressive and refactor it after I've done most of the work.
Update:
I reported the issue to JetBrains some time ago and I just got an eMail that the feature has been added and will be available in Release 6.1. So good news for ReSharper users on this one!
http://youtrack.jetbrains.net/issue/RSRP-273067?projectKey=RSRP
I was thinking the exact same thing today.
While the functionality is not in vanilla VS, it is quite possible to modify some code to add this functionality. For example, the XAML Presenter, probably named after the presenter component that you have to modify does something similiar.XAML Presenter
It narrows by namespace and sorts by attribute type. Basically, I'm just gonna take the list the Intellisense Completion Source gives and sort the list. Sounds simple enough.
More challenging is implementing the UI controls. I hate designing UI controls . . .
Edit:
However, I don't forsee a way to do this without breaking Resharper's Intelllisense features.
Use VS 2010, I suppose? I can't see which situation would make VS put classes over properties, though.
Related
I am using Visual Studio 2010 with Resharper plugin and my web application is heavy on JavaScript.
By that I mean there is a lot of libraries (knockout.js, jQuery, jQuery UI - to name a few).
While intellisense works alright in C#, I'm having a hard time to start it working for JavaScript. I've tried googling and going through options, preferences and docs all through out the holidays, but seems that I'm searching for something that just isn't there.
So by example there's a class in knockout.js "ko.utils", which has methods like "ko.utils.arrayMap". My question is, how can I make intellisense (of either R# or VS) index this class and offer me methods when I type "ko.utils.", hence speeding up my development in JavaScript?
Note: Possible to get custom javascript files to have intellisense in VS 2010? this is not a duplicate I think, because it is seldom for these libraries to have a special VSDoc script here and if they had one, I still couldn't refere it globally.
You can create a ReSharper plugin to extend the code completion mechanism to provide the features you need. What you'd have to do is analyze the parsed structures yourself, derive the relevant content to be added to completion lists, and inject it when necessary.
Visual Studio 2010 contains error corrections for VB programmers, for example, it will allow you to import a namespace or generate a stub class/method where you get compiler errors.
For example, if you type:
Dim mm As MailMessage without an Imports System.Net.Mail, you'll get a handy little tooltip that just allows you to import the namespace with a single click.
I've recently switched to C# developing, and I really miss this little tool - if you're not sure of a namespace you have to go looking on Google to find out and then add the using manually.
Is there no way to enable the error corrections like you get when writing VB?
I've done the usual Googling, and there seems to be no mention of it for C#- just VB.
I use C# in VS2010 daily and it does all the things you mention. As an example, usually when you paste code into a class without the relevant using statements already being present VS will ask you if you want to add usings for the code you pasted. It is worth checking your settings to make sure you have things like this enabled such as 'Auto List Members' etc. There are other useful settings in there too. It is worth familiarising yourself with your options.
One thing I would recommend for C# development is Resharper 7. It is a great tool and speeds up coding an awful lot. It will also make suggestions to improve code, enforce standards etc. You can also configure it to enforce the coding standards your company uses. I believe you can get a trial version. I would get that to try it out and then if required make a purchase request to your company or buy it yourself. Its worth it.
Resharper 7
P.S. As a side note, in case you didn't know, you can press ctrl+spacebar to get your intellisense options to open up.
C# editor has that. Just click on the class name and you'll see a colored underscore. Click on it and you'll get suggestions on how to resolve class (or interface, or whatever).
Or put code editor cursor on the class name and press ALT + SHIFT + F10 and the same suggestions will popup for you.
I would like to manually extend the IntelliSense list by various items. I want to be responsible for the action triggered by the item (i.e. code completion and tooltip info). It doesn't matter what items.
Is this possible with an VisualStudio add-in, ReSharper / DXCore or any otherg plugin?
Background:
Some of you may know FOP (feature-oriented programming). FOP would require various changes to intellisense and editor behavior.
Edit:
Another interesting post.
This is definitely doable very easily by writing a ReSharper plugin.
Start by implementing ICodeCompletionItemsProvider which will provide additional IntelliSense items. The easiest way is to inherit from ItemsProviderOfSpecificContext<TContext> (with TContext being CSharpCodeCompletionContext if you're interested in C# code completion).
Your provider will add the additional items in the implementation of AddLookupItems(). You have the chance to provide a custom implementation of ILookupItem here: the Accept() method of this interface will be called when the user chooses the item in the completion popup. Here is your chance to execute the code you need.
Note that this information is for R# 6.1/7.0. I don't think it is much different in previous versions though. Obviously, you have to enable ReSharper IntelliSense instead of Visual Studio IntelliSense for this to work.
Customized intelliSense for VS2010 XML editor can be added by putting customized xsd files in C:\Program Files\Microsoft Visual Studio 10.0\Xml\Schemas folder but I guess you are looking for something more.
You should take a look at Creating and Using IntelliSense Code Snippets and decide whether it is what you are looking for. This question on programmers.stockexchange might also be helpful. This question also seems similar which suggests CSharpIntellisensePresenter(Free).
Maybe ReSharper's Live Templates can help you (ReSharper->Live Templates...).
I've heard that Visual Studio 2010 = Visual Studio 2008 + Resharper. I'd like to know how true that is. I don't want to start using Resharper to accomplish superficial things, nor to accomplish things that VS 2010 now already handles. I'm sure Resharper 5.1.X offers features that VS 2010 does not have, but which of those - in your opinion - represent the true value-adds? Which of those "truly-valuable" features are available only in the licensed copy?
This is a 'joke' based on the fact that Microsoft supposedly released a screenshot of 2010 with ReSharper UI visible.
VS.Net 2010 definitely does not go any way towards making ReSharper redundant!
Resharper adds alot to VS2010. Just check out this comparison matrix.
I'm sure Resharper 5.1.X offers features that VS 2010 does not have, but which of those - in your opinion - represent the true value-adds? Which of those "truly-valuable" features are available only in the licensed copy?
All features are available in a non-licensed (demo) copy. Check out this post of what single feature people like about Resharper.
I know this is slightly off topic. However, as a response to whether VS2010 is making Resharper redundant;
I've upgraded ReSharper from 5.1 to 6 roughly 1 month after release. It got slower. To the point when I have to Suspend it occasionally - particularly when doing lots of work on JavaScript, CSS or larger template files (Razor). Sad thing is it just gets slower.
At home, I'm using just a plain VS2010 Professional without any add-ons. And it just feels like a breeze - everything is responsive and there are no hiccups when copy pasting (during manual re factoring). Admittedly at work I have T4MVC and Chirpy installed along Resharper.
Feature wise, what I'm using in ReSharper:
Auto usings (alt + Enter)
Cannot use auto include references as it gets it wrong 80% of the time
Refactor: initialize member variable from constructor parameter
Refactor: replace with LinQ expression
Sadly that's about it. In light of this, because of the slowdowns I'm considering dropping ReSharper altogether. This is my grievances:
Delay every time I copy a piece of code in order to move it - anything from half a second to 2 seconds. Please note the delay increases with project / solution size
Auto completion in JavaScript and CSS: 95% of the time it inserts code I don't want - in particular () after selecting an object property. Getting fed up having to delete the brackets each time
class name and id suggestion. This happens in CSS as well as Razor template. It will try to insert an existing class name / html id when you are in fact creating a new one. It will do this whenever you press space. Instead you have to press escape.
Pasting code. Again when refactoring manually and code is moved from one class to another it will keep pestering you with all missing usings. First you have to press Escape for "Insert all missing usings" and then once for every occurrence of a class without a reference. Usually you want to change something upon pasting code but this feature makes code unreadable with all the popups.
I could go on abut the things I find annoying with ReSharper. Not trying to offend any die-hard productivity tool enthusiasts, bottom line is VS2010 is on it's own a very decent IDE and a lot of ReSharper features can be found within it - though not always intuitively.
If you are just learning C# ReSharper is a great tool that helps you organize your code better. But if you've been working with .NET for a while you will most likely find it intrusive and hampering productivity on some occasions.
Re#er still got much stronger code check and refactoring options.
I heard that R#5.0 (still in beta) will support VS 2010. My question is
VS2010 == VS2008 + ReSharper ?
I know there are many improvements to VS2010, so I 'm not sure weather is it really worth purchasing the R#5.0 for VS2010?
Well, I haven't explored VS 2010 new refactoring features that much, but its my understanding that VS has some but definitely not all of resharpers features implemented (From MSDN):
Navigate To
You can use the Navigate
To feature to search for a symbol or
file in the source code.
Navigate To lets you find a specific
location in the solution or explore
elements in the solution. It helps you
pick a good set of matching results
from a query.
You can search for keywords that are
contained in a symbol by using Camel
casing and underscore characters to
divide the symbol into keywords.
For more information, see How to:
Search for Objects, Definitions, and
References (Symbols).
Generate From Usage
The Generate From
Usage feature lets you use classes and
members before you define them. You
can generate a stub for any undefined
class, constructor, method, property,
field, or enum that you want to use
but have not yet defined. You can
generate new types and members without
leaving your current location in code,
This minimizes interruption to your
workflow.
Generate From Usage supports
programming styles such as test-first
development.
IntelliSense Suggestion Mode
IntelliSense now provides two
alternatives for IntelliSense
statement completion, completion mode
and suggestion mode. Use suggestion
mode for situations where classes and
members are used before they are
defined.
In suggestion mode, when you type in
the editor and then commit the entry,
the text you typed is inserted into
the code. When you commit an entry in
completion mode, the editor shows the
entry that is highlighted on the
members list.
When an IntelliSense window is open,
you can press CTRL+ALT+SPACEBAR to
toggle between completion mode and
suggestion mode.
So I guess it would depend on which of Resharpers features you want to use. If you are satisfied with the above which is certainly great improvements, then you don't need Resharper.
On the performance question, well it might perform better because of tighter integration.
Personally the above leaves me still needing a lot of features like (just the ones i can think of right now - might be more):
There are as far as I can tell only about 6 refactorings, where resharper currently has more than 30
No import type completion, which i use ALL the time. One shortcut adds to references and adds import statement
No smart completion
Change namespace to follow navigation structure and update all references with one shortcut
Goto is more advanced in R# you can go to inheritors and bases,
file member, recent files and edits and theres the fast goto feature
Resharpers static analysis is far more comprehensive than what you get from VS
So what do you need? (I am definitely not giving up Resharper)
Peter,
Best person that can answer this question is yourself. What I suggest is you download it, learn it (and note I said learn it, not just play with it). Then decide. However, I'll warn you that it's quite addictive.
My question is VS2010 == VS2008 + ReSharper ?
Oh hell no. VS2010 has more features than VS2008, and some of those feature ideas were stolen from ReSharper, but vanilla VS2010 is still a long way behind VS2010 + ReSharper 5 or even VS2008 + ReSharper 5.
From a quick glance at my 31 Days of ReSharper blog posts (written back in the R# 2.5 days), here are just a few ReSharper features that are still not present in VS2010: (Please correct me if VS2010 does have any of these -- I haven't actually used it that much without ReSharper!)
Unused code highlighted in gray and with quick-fixes to delete the unused code for you (this is just one of many hints and warnings R# does that VS does not)
Visual indication of where you have hints, warnings, and errors in a source file (colored stripe next to the vertical scroll bar)
Integrated unit-test runner that's not locked down to only MS's test framework
Shared settings for code formatting, code templates, etc. -- check these settings into version control, and they'll be picked up automatically by other computers (no manual export/import)
Go To Type -- a pop-up window where you can enter a type name (or part of the name) and jump straight to the right source file
Navigate to derived types / overriding methods
Code Structure View -- view a list of members in your type, and drag/drop to reorder them in your source code
R# will suggest variable names for you
You can invoke an Intellisense dropdown that shows types from all namespaces (and then it adds the using for you)
It's eerily good at guessing what you meant when you tell it to fix an error for you
Remove unused braces and Invert If
Generate Code (I particularly like Generate Equals and GetHashCode, even though I use them very rarely)
Viral Rename (if you rename a type, it'll also suggest that you rename any variables that were named after the type)
And best of all, Safe Delete.
Safe Delete rocks.
And that's just the features that R# had in 2.5 when I wrote the 31 Days of ReSharper. They've added plenty of new features since (I just don't have a comprehensive list handy). A couple of my favorites are the background solution-wide analysis, which will tell you in nearly real-time if you have compiler errors anywhere in your solution, and Inspect > Value Origin, which is just wicked cool.
If your having to ask the question, my guess is that you're not using ReSharper to its full potential. Personally I find that R# writes most of my code for me and I feel like a noob using visual studio without it.
YES. unequivocably YES.
After migrating to Visual Studio 2010 we asked our development team if buying Resharper upgrades is worth the investment. The votes were unanimous: yes!
Btw: we use VS2010 Premium and the devteam has its own budget.
Why don't you try out the R# 5 betas and then you can decide if you're using enough of its features to justify purchasing it.
http://confluence.jetbrains.net/display/ReSharper/ReSharper+5.0+Nightly+Builds
ReSharper has been around long enough that developers might purchase the upgrade just out of habit! :)
I recall that when VS2008 was released, R# wasn't quite ready, and there was griping among the .NET community about it. "Must...have...ReSharper!". Heh. Jetbrains appear to be on top of it this time though.