Reputation: 8706
MonoDevelop allows creation and installation of custom policies to control all aspects of code formatting. I have created a policy for our work site, which can be applied via Project > Apply Policy ...
We are using the Unity game engine, which regularly regenerates the MonoDevelop solution, requiring each developer to re-apply the policy -- irritating and error-prone.
How can I make my policy file be the default for new MonoDevelop solutions?
Also, where is the information about the applied policy saved?
In the .sln file I see "$0.CSharpFormattingPolicy = $2", but this is unchanged after applying my custom policy. I have compared all the project files before and after applying the policy, and the only changes are (1) a .userprefs file is generated, but doesn't mention policies, and (2) various .pidb files are different, but this can't be where policy information goes??
I'm using the version of MonoDevelop that is integrated with Unity 3.5.2, which is MonoDevelop version 2.8.2 (on Windows 7). (Yes, 2.8.2 is a little out of date, and it's possible that Unity Technologies has made changes that are causing my issues.)
Upvotes: 8
Views: 5879
Reputation: 1166
This is a year after the other answers, but none of the above works for unity, and this was near the top of the google search.
Here are the steps I had to follow to get formatting to work:
MonoDevelop->Tools->Custom Policies->Add Policy->New Policy
Edit the policy inside of the 'Custom Policies' window, making sure your policy is selected.
Project->Apply Policy->Apply Stock or Custom Policy Set (select your policy)->Apply
Upvotes: 11
Reputation: 677
Goto Tools->Options->KeyBinding Then goto Edit -> FormatDocument Then assign your shortcut key and click on apply and use it in your document.
Upvotes: 4
Reputation: 9219
After a year of dealing with this, we wrote a Unity editor script that would watch the project files for changes, and when they changed, check the policy entries in the project (pretty simple XML to parse.) If they had deviated from our desired policy, we'd modify them and write them back out with the correct policy changes.
Another idea (we wanted to enforce a policy) would be do do the same thing, but just remove the policy entries from the project whenever they got updated, and then you'd never have project policies overriding what you set up at the tool level.
Upvotes: 0
Reputation: 11
I spent like 30 minutes fixing this and finally figure it out.
In Windows:
Go to Project -> Assembly C-Sharp Options
Then change the Code Formatting from there!
Going to Project -> Solution Options
does absolutely nothing
Upvotes: 1
Reputation: 16153
The default policy is applied to new solutions or solutions without policies. It can be edited in the Preferences/Options dialog, where it's mixed in with the user preferences: Tools->Options on Windows, MonoDevelop->Preferences on Mac. You can identify the policies because they have a "Policy" dropdown at the top of the panel that allows you to load from a named policy.
Upvotes: 2