Shortcut to run a project in VS 2012 - visual-studio-2012

I'm working on a large Silverlight solution with 75+ projects. Instead of right clicking on the start up project and then selecting Debug | Start New Instance... I'd like to use a keyboard shortcut to run this specific project. Hitting F5 is a non-starter, even if I select the option to only build the start up project and it's dependencies. Takes too long.
Accomplishing this was easy with the macro functionality in VS 2010. I haven't been able to find a good way to replace this capability in VS2102. Note, I have tried the Visual Commander extension but it doesn't seem to be able to automate this kind of command sequence.

While you can't record it automatically, you can just paste this code as a VB command in Visual Commander with your project name:
DTE.Windows.Item(EnvDTE.Constants.vsWindowKindSolutionExplorer).Activate()
DTE.ActiveWindow.Object.GetItem("MySolution\MyProject").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance")

Related

Compiling pascal program in Visual Studio Code for Linux

Recently, I switched my OS to Ubuntu. I just started with collage and I have to learn pascal for my finals. But a problem occurred.
I installed Visual Studio Code and Pascal extension for it, but I am unable to run even a simple Hello World code. I wrote code, it saved automatically as .pas, but when I enter debug & run option in VSC it displays a message that says 'Open a file which can be debugged or run.', followed by 'debug' and 'run' buttons that I am unable to click and another message that says 'To further configure Debug and Run create a launch.json file.'
I am not even sure am I supposed to post questions such as this one on stackoverflow, but I sincerelly hope that someone could give me a hint on what to do. Solve this within Visual Studio Code or switch to another IDE (and which one would you recommend for Linux user) and pretend that nothing happened?
Thanks in advance.
I know this isn't an answer to "how to debug with pascal with vscode" but, perhaps you would find it easier to just use FPC / Lazarus (IDE) to do your work. While it doesn't have a dark theme, contrary to popular belief, that's not necessary to program.
The IDE is feature packed and allows for full code completion, debugging, etc... (everything you really need to do the work for school).
Additionally, you can use this open source tool to install everything you need for your platform in just a few button clicks (also allows for installing common library packages)
https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases
download release for your OS
under "FPC Version" & "Lazarus Version" select trunkgit (or stable for an older version)
click the "Install/Update FPC + Lazarus" button
Have you Installed Pascal extension which is available for code to smoothly run pascal code.
If you haven't then try installing this extension using,
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
ext install alefragnani.pascal
You can always check,
https://marketplace.visualstudio.com/items?itemName=alefragnani.pascal
to install and configure pascal in vscode.
I will direct you to the debugging page from the Visual Studio Code documentation that details how to use the debugger and configure a launch.json file. VSCode is a generic IDE so you need to give it some information about your project before it knows how to run the debugger. This is what launch.json is for.
If I could make a suggestion. When you're learning how to program, it's best to start with the basics. Write a small program in a text editor (VSCode is fine, or Vim, or Nano, or Notepad, or whatever). Save the file. Compile and run the program on the command line.
Once you put an IDE in the mix, you have to learn how to use that as well. If you're stuck on both parts, it can be hard to make progress. That said, it's good to learn how to use the IDE, and you should spend some time reading the documentation and working through some of the examples. It takes some time, but it will pay you back a thousand times when you can work more quickly.

How can I fix the broken keyboard shortcut in VS2012 to copy from schema-compare definition text?

If I run an SQL Schema Compare in Visual Studio 2012 (part of the SQL Server Data Tools add-on), I can highlight text inside an object definition, and can right-click to select "Copy (Ctrl+C)", and it works. But actually pressing Ctrl+C doesn't work — absolutely nothing happens.
How can I fix this?
What I've tried: messing around in the Keyboard Shortcuts dialog, which doesn't seem to list that specific version of the copy command.
Other info: the default Edit.Copy command doesn't seem to be enabled; the Edit menu's Copy command is greyed out when selecting in the Object Definition panel, curiously.
This a bug in the July 2014 release, with no workaround right now. It's been fixed internally and will be included in the next SQL Server tooling update - for more information see this Connect bug.

How to choose which file to debug in Visual Studio 2012 prof

Kinda stupid question, but I've only been using this IDE for two days now. I havent found anything in google yet and I figured that once in a while you're entitled to a stupid question:
I have a project (or solution as Microsoft chose to call it) with two .cs-files. When I click on debug, it's alwys the same file that opens. How can I get VS to open the other .cs-file?
It sounds like you have multiple static Main methods in your project. If that's the case then you have to set the startup object to the object that you want to run.
Right-click on the project in the Solution Explorer and select
Properties (or select Project >> Projectname Properties from the
toolbar).
On the Application form, select the appropriate value
for Startup Object.

Alternative to macros in Visual Studio 2012

I use macros extensively for ViewModel properties in XAML development. I use them even more in WCF to generate Message and DataContract properties.
To my disappointment, the macros I've built aren't going to be usable in Visual Studio 2012.
An example of what I'm talking about, for a VM, I would enter something like this.
int id;
string name;
Select both lines, run a macro and end up with
private int _id;
private string _name;
public int Id
{
get {return _id;}
set
{
if(_id != value)
{
_id = value;
RaisePropertyChanged("Id");
}
}
public string Name
{
if(_name != value)
{
_name = value;
RaisePropertyChanged("Name");
}
}
I'm looking for ideas of other solutions deal with losing macros.
The simplest alternative to macros is creating add-ins. I know, I know, I wasn't excited about it either, but it's actually surprisingly easy. There are three simple parts to it:
Create the macro project, stepping through a wizard UI.
Write your code.
Copy the macro's .addin and .dll files to your Visual Studio Addins directory.
Let's take a simple macro I wrote to show the Start Page after closing a solution and turn it into an add-in.
Create the macro project
Run VS 2012 and create a new project.
Go to Templates > Other Project Types > Extensibility and select Visual Studio Add-in.
Give it a name, such as ShowStartPage.
Click OK. This brings up the Add-in Wizard.
Step through the wizard, choosing:
Programming language: we'll use C#
Application host: VS 2012 should be selected
Name and description for your add-in
On the add-in options page, checkmark only the second option ("I would like my Add-in to load when the host application starts")
Skip past the About Box stuff for now, and click Finish.
Now you have an add-in project. Here's what you do with it:
Write the code
Open the Connect.cs file. (It might already be open. Some of the "DTE" stuff should look familiar.)
Add this code at class level:
SolutionEvents solutionEvents;
Add this code to the OnConnection method, right after the _addInInstance = (AddIn)addInInst; line:
solutionEvents = _applicationObject.Events.SolutionEvents;
solutionEvents.AfterClosing += () =>
{
_applicationObject.ExecuteCommand("View.StartPage");
};
Hit the "Run" button to test your code. A new instance of Visual Studio 2012 starts up, with your add-in loaded. Now test the add-in and make sure it works. (Open a solution, then close it; the Start Page should return when you do.)
Deploy it
Once the add-in works, to use it regularly with Visual Studio 2012, you only need to deploy two files:
ShowStartPage.AddIn (from your main project directory)
ShowStartPage.dll (from your project's build directory; e.g. bin\Debug or bin\Release)
Put those two files in your VS 2012 add-ins directory, probably located here:
C:\Users\[your user name]\Documents\Visual Studio 2012\Addins
Then exit and restart Visual Studio, and you should see your add-in working. You should also see it listed when you go to Tools > Add-in Manager.
While this is a bit more of a nuisance than just opening the macro editor and sticking your macro code in there, it does have the advantage that you can use any language you want, instead of being stuck with the somewhat flaky VB-like editor in past versions of Visual Studio.
The Visual Commander extension (developed by me) is an alternative to macros in Visual Studio 2012/2013/2015. You can even reuse your existing Visual Studio macros code in new VB commands.
I'll stick to cutting the text into Notepad++ and using macros there, then pasting back. It is a shame the feature isn't in Visual Studio 2012 any more...
There is an add-in, VSScript, for Visual Studio which replaces missing macros functionality. Although it does not use Visual Basic, but the Lua scripting language, you might want to try it out.
There is a recorder, macro code editor window with IntelliSense, and a simple debugger. The add-in also supports earlier versions of Visual Studio, so if you prefer the Lua language rather than Visual Basic, you can use it instead original Visual Studio macros.
I was very sad to see Macros go too. You can get close with substitutions using the regular expression search and replace inside of Visual Studio 2012. In your case:
Find:
(.*) (.*);
Replace with:
private $1 _$2;\npublic $1 $2\n{\n get {return _$2;}\n set\n {\n if(_$2 = value;\n RaisePropertyChanged("$2");\n }\n}\n
That will get you everything except capitalization of property names which Macros would be better for.
But one advantage of the regular expression approach is when the input isn't as simple (e.g. database table DDL statements).
Here are a couple of useful links from MSDN:
Substitutions in Regular Expressions
Using Regular Expressions in Visual Studio
I use Notepad++ with regular expressions like this:
Find:
public (.\*) (.)(.*) \\{ get; set; \\}
Replace:
private \1 \l(\2)\3; \r\n public \1 \2\3 \\{ get \\{ return \l(\2)\3; \\} \r\n set \\{ \l(\2)\3 = value; OnPropertyChanged\(para => this\.\2\3\); \\}\\}
Check out http://devexpress.com/coderush
The templates feature does pretty much what you want.
There is a free "Express" version too.
Visual Studio 2012's lack of macros was getting me down, as I have a few that I use literally all the time to insert standard little bits of text with a single keypress. So I wrote a very simple scripts extensibility package, VSScripts, which allows manipulation of the current selection from a command-line program.
This doesn't claim to be some all-encompassing full replacement for the old macro system, and it doesn't provide keyboard macros, but it does make it possible to recreate many types of text manipulation macro.
Here's what I did to keep my macro functionality...
Download and install the Visual Studio 2012 SDK here (it contains the "Visual Studio Package" template)
New project -> Installed.Templates.Visual C#.Extensibility.Visual Studio Package
Wizard page 1 of 7
language = C#
gen new key is fine, or use another if you have one
wizard page 3 of 7
check "menu command"
Wizard page 7 of 7
uncheck both integration and unit test project options
Click finish
In the .cs file:
using EnvDTE;
using EnvDTE80;
...
private void MenuItemCallback(object sender, EventArgs e)
{
MenuCommand cmd = sender as MenuCommand;
// This should start to look like familiar macro code...
EnvDTE80.DTE2 dte2 = Package.GetGlobalService(typeof(EnvDTE.DTE)) as DTE2;
TextSelection selection = (TextSelection)dte2.ActiveDocument.Selection;
dte2.UndoContext.Open("macro command replacement");
selection.Text = "inserted from macro replacement";
selection.NewLine(1);
dte2.UndoContext.Close();
...
Run the project. A new Visual Studio instance will start with the package loaded.
Find your command as the first entry at the top of the Tools menu. Click it to see if it works.
To install for real, go to your bin\debug(/release) directory and double-click on the .vsix file
It should be installed for the next time you run
Go to menu Tools -> Options... -> environment.keyboard and map a keystroke to your tool
Mapping theme : Visual C# 2005
Command : Tool.yourFunctionName (functions defined in the .vsct file)
If you want more than one command, you will need to add menu id's in the PkgCmdID.cs, Guids in the Guids.cs, layouts in the .vsct and a function in the *package.cs (and button(MenuCommand) in the Initialize function) for each one. It can all be done in the same project.
I used this project to create several new 'tools' with my old macro code, then mapped my keys to them. It's a lot more work (and headaches) up front, but doesn't have the lag time that macros had.
There is probably a way to do this without having it take up tool menus. I started looking at this last night and finally got it to work, so I'm done with it for now (at least until Microsoft decides to drop this too).
Personally I like this one - the Visual Commander extension lets you automate repetitive tasks in Visual Studio.

Where can I locate themes for VS2012

Okay, the lack of color on VS2012 is gross.
Is there someplace I can get a theme pack or something for it so that it actually looks reasonable? I really liked the look of VS2010. However, the new one reminds me way too much of 1984.
While we are at it, is there anyway to have it stop shouting at me? ALL CAPS menus are pretty hard to read. [ note: caps was resolved, thanks Konamiman]
Yes, luckily you can revert the Visual Studio 2012 ALL CAPS menus to normal menus by hacking the registry:
Launch regedit and navigate to
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General
Create a DWORD value named SuppressUppercaseConversion with value 1.
NOTE: As explained in the answer pointed by Yahoo Serious, the VisualStudio part on the registry key name should be changed to VSWinExpress for Visual Studio Express, and to VWDExpress for Visual Studio Express for Web.
UPDATE:
I have applied this hack in another machine and at first it did not work. It turned out that I had selected the key name from this response by double clicking it, then copied it, then pasted it in regedit. Well, by doing so I had inadvertently created the key with a trailing space in the name! And hence it did not work.
So, if you apply this hack and it seems to not work, ensure that there are no trailing spaces in the key name.
New Theme editor Specifically for 2012:
http://visualstudiogallery.msdn.microsoft.com/366ad100-0003-4c9a-81a8-337d4e7ace05
Comes w/ VS 2010 style blue and a few others...
Here is a shot of my VS2012 install that almost looks like the familiar 2010 we are all used to. It makes me feel normal again!
Here is exactly how I did this, step-by-step:
1) Close all instances of Visual Studio
2) Download vsip and extract it to a temp directory. (as of 1/3/2013 the current version is 1.5.2)
3) Open up a command prompt with "Run as administrator"
4) Go to the temp directory and run VSIP.exe - This will run an interactive program that accepts commands.
4a) Type "backup --version=2012" - This will backup all of your VS2012 UI dlls, just in case something gets messed up and you want to uninstall VSIP.
4b) Type "extract" - This will extract all of the old icons from your installation of VS2010 (per VS2010 license VSIP can not distribute those icons so we have to have a local install to pull them from).
4c) Type "inject" - This will inject all of the old 2010 icons from the previous step into the VS2012 DLLs.
4d) Type "menus -n" - This will change the menus so they are NOT ALL CAPITALIZED!
5) Download and install NiceVS - do not download the one dated 10/14 or you will be missing icons. As of 1/3/2013 I downloaded the file named "NiceVS.0.8.1.1 Beta.Full.vsix".
6) Download and install VS2012 Color Theme Editor - The next time you start VS2012 select the "Blue" theme from the color select window.
Now you should have a nice install of VS2012 that looks like my screen shot above! It takes three different applications to patch that hideous UI but it's certainly workable now! If you don't have VS2010 installed on the same machine as VS2012 then you will have to run 4b on a machine with VS2010 and then copy the VSIP Images directory to your 2012 development machine.
Update: If you install "VS 2012 Update 1" after running these steps you will need to re-run step 4c from the VSIP admin prompt (or all of step 4 if you didn't keep the extract of the VS2010 images). The file menu icons and color scheme stay as they are but the update reverts the icons in the solution explorer back to the ugly ones. Re-running the VSIP inject fixes it right up!
I feel your pain, and have been checking daily for a solution. I've now discovered this site, which includes a theme editor, as well as drumroll a VS2010 theme for VS2012!
http://bchavez.bitarmory.com/archive/2012/08/27/modify-visual-studio-2012-dark-and-light-themes.aspx
Edit - I just noticed that Brian Chavez already posted the same link as me. However, I don't think it included a premade 2010 theme until today.
Edit 2 - Another theme editor - http://visualstudiogallery.msdn.microsoft.com/366ad100-0003-4c9a-81a8-337d4e7ace05
AND ICONS!!! - http://vsip.codeplex.com/
http://studiostyl.es/
The themes for 2010 work for 2012 as well
This extension was just released a couple of days ago:
Visual Studio 2012 Color Theme Editor
If you want to change the VS shell environment themes in Visual Studio 2012, try this utility:
Modify Visual Studio 2012 Dark (and Light) Themes
Source Code
The quick option to look is VSColorOutput extension for VS2012. Just look at Tools->Extensions and NUGet package will help you to locate it asap.
Another option would be downloading and Visual Studio Color Schemes. http://studiostyles.info/ . Here is a link to Scott Gu's blog which describes how to apply your preferred schema.

Resources