I want to be able to achieve the following with Resharper:
When I type (e.g.) "Insights.Report(" I do not want a closing parenthesis added automatically.
Be able to cycle through the individual signatures with the arrow keys
As soon as I type the "(" I get the list of signatures but I cannot loop through them because a weird list of parameters is offered:
I do not see what is wrong in my settings:
My initial thought is that the intellisense prompt is taking focus from the method parameter info list.
Trying it out myself I can tap Escape to dismiss the intellisense prompt and then use the arrow keys to switch between the parameter info options.
As for not automatically populating the closing parentheses I don't know how to set that up and I don't see why you would want to either. I found the option to turn it off in VisualStudio but it seems that ReSharper is overriding it somehow.
Related
In Visual Studio, there's a button on the toolbar with tooltip:
Toggles between suggestion and standard completion modes. (Ctrl+Alt+Space)
My guess is that these have something to do with IntelliSense, but I'm not sure.
What is suggestion mode and what is standard completion mode?
The difference seems to be in whether completion is committed when you type keys that are not explicit commit keystrokes while typing. Tab is an explicit commit character; . and ; are examples of keys that are not explicit commit characters.
If I type "foo".sub( (in C# as an example) the behavior will be as follows:
with the button enabled (suggestion mode), I will get the same literal output with a closing parenthesis added: "foo".sub()
with the button disabled (standard mode), it completes using the best match in the completion list: "foo".Substring()
Turning this behavior on is more suitable in languages or projects where you are invoking dynamic (or new, not-yet-existing) methods and properites that are not present in the completion list, so that you don't have to fight with undesired partial matches.
When a DataTip is open while debugging in Visual Studio it appears the only way to get to a specific object property is scrolling with the mouse.
This can get very cumbersome as some objects can have hundreds of properties and scrolling to a property near the bottom takes a long time.
Yes, I know I can scroll faster if I hover the mouse over the bottom edge and pin a property once I found it but it can still take a long time to get to the property and pin it.
I've tried various combinations with Ctrl and Alt but what ever key I press the DataTip is promptly closed...
Once the DataTip has focus, you don't have to use the mouse. You can use the PgUp/PgDn (Page Up/Page Down) keys on your keyboard. But you're right: There is not a way to get to the end of the list or to get to items that start with a certain letter. When I need to do that often I take one of two approaches:
If possible, I create a [temporary] variable assignment after the code-line of interest and ensure that the variable gets assigned to the property of interest.
Create a watch variable and interact with that.
Open an Immediate Window and paste a copy of the object-instance name in question. Once in the Immediate Window, IntelliSense is available as soon as you type the "."--you can then type the letter of the property in question and drill-down as needed more quickly.
(Probaby the best tip!)
Open (and keep open for convenience) a Debug | Windows | Autos and/or Debug | Windows | Locals window. Those windows simplify navigating variables near the code break or in the current module--and they even seem to retain their tree-node-expanded state in some cases while debugging. More information is available here: https://msdn.microsoft.com/en-us/library/bhawk8xd.aspx
You could use the oz-code as an extension tool which could help you search the properties or variables easily.
Search in debug mode inside an object
In most key bindings a small minus sign appears on the right to remove the binding, but with Jump to Next/Previous Counterpart it seems it is not possible to clear that one.
I want to use that key binding for a different command and I can't do it without removing it first.
When trying to delete those a small error message appears that says:
Can't delete the keyboard shortcut because it has alternate menu items
Any idea on how to get rid of those shortcuts?
In this situation, is there a way to see namespaces info without the need of having to type two commas?
There is in fact a keyboard shortcut for what you are trying to accomplish.
In order to see all of the overloaded method parameters, you can place your cursor inside the method's parenthesis and press Ctrl+Shift+Space and that will bring up the first method, and then you can arrow up and down to go through all of the different types of overloaded methods.
So in your example:
using(Stream fileStream = new FileStream(imeXmlFajla,FileMode.OpenOrCreate))
{
xmlFormat.Serialize() // place cursor in between parenthesis and press Ctrl+Shift+Space
}
Hopefully this helps!
I'd like to use the keyboard more in Visual Studio, and my memory for ctrl+alt+f??, alt+?? key combinations is failing me.
I'd prefer an adjunct like the emacs model, where it's possible to search commands by name; For instance, in emacs you type
alt+x enab <tab><tab>
and it presents you with a list of commands starting 'enab';
enable-command
enable-flow-control
enable-theme
I'd like to know if there is a shortcut or extension so that I could do something similar in VS, like
alt+x imm <tab><tab>
and then choose to execute one of
Debug.Immediate
Tools.ImmediateMode
Any clues?
EDIT
Both #Trillian and #the_mandrill have given me the right answers. It turns out there are two ways to enter the kind of mode I'm looking for;
1) The Edit.GoToFindCombo, which gives you a small bit of menu-bar space to type things like
>Debug.Immediate
2) The View.CommandWindow, which gives you a full panel (like the immediate window or the output window) which allows you to type in a bit more space and see the text output of executed commands.
It's also possible to alias commands in either window yourself, using the command window and a syntax like
alias sol View.SolutionExplorer
And to retrieve the current list like
alias
I've mapped Edit.GoToFindCombo to alt-x and View.CommandWindow to alt-shift-x and it's feelimg more emacs-y already :)
It would be nice if this was integrated in the Ctrl+Q Quick Launch box. Until then, the best built-in tool for this is probably the Go To Find Combo. You can use this to launch arbitrary commands by typing the '>' character and then the beginning of a Visual Studio command, including those you listed. You get autocompletion, but only for strings that start with what you're typing, so >Deb would list you all commands starting with Debug.. For your specific example, >imm would actually work because there is an immed shortcut to Debug.Immediate, but in general you'll have to know the prefix.
The Go To Find Combo is not in the VS2013 UI by default, but you can add it to any toolbar by selecting "Customize" and finding the command in the "Edit" category. Once it's sitting in a toolbar, the Ctrl+/ shortcut will give it the focus by default.
The '>' prefix for command completion also works from the Command and Immediate windows.
Try using the Command Window (Ctrl-Alt-A). This brings up an emacs-like command buffer. Type:
Deb.Imm<tab>
to expand to Debug.Immediate. Typing the '.' forces autocompletion if there's one unique command (Debug is the only match for 'De'). Tab key will cycle through options. More info at the Command Window article on MSDN. There's also a list of Aliases that you can also add your own to, eg
alias di Debug.Immediate
I've also just discovered that you can type Ctrl-\ to set the focus to the Find pane and enter a command directly in there.