Compare commits

...

No commits in common. "master" and "gh-pages" have entirely different histories.

11 changed files with 450 additions and 411 deletions

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
Policies/Default.mdpolicy.xml
*.previous

View File

@ -1,85 +0,0 @@
<schemes version="1.0">
<scheme name="current">
<binding command="MonoDevelop.Ide.Commands.EditCommands.DeleteKey" shortcut="BackSpace" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.Copy" shortcut="Meta+C" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.Cut" shortcut="Meta+X" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.Paste" shortcut="Meta+V" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.Rename" shortcut="Meta+R" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.Undo" shortcut="Meta+Z" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.Redo" shortcut="Shift+Meta+Z" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.SelectAll" shortcut="Meta+A" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.IndentSelection" shortcut="Meta+]" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.UnIndentSelection" shortcut="Meta+[" />
<binding command="MonoDevelop.Ide.Commands.EditCommands.MonodevelopPreferences" shortcut="Meta+," />
<binding command="MonoDevelop.Ide.Commands.EditCommands.ToggleFolding" shortcut="Control+Meta+Left" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.AddFiles" shortcut="Alt+Meta+A" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.BuildSolution" shortcut="Meta+B" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.Build" shortcut="Meta+K" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.RebuildSolution" shortcut="Control+Meta+B" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.Rebuild" shortcut="Control+Meta+K" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.Run" shortcut="Alt+Meta+Return" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.Clean" shortcut="Shift+Meta+K" />
<binding command="MonoDevelop.Ide.Commands.ProjectCommands.Stop" shortcut="Shift+Meta+Return" />
<binding command="MonoDevelop.Debugger.DebugCommands.Debug" shortcut="Meta+Return" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.OpenFile" shortcut="Meta+O" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.NewFile" shortcut="Meta+N" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.Save" shortcut="Meta+S" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.NewProject" shortcut="Shift+Meta+N" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.CloseFile" shortcut="Meta+W" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.CloseAllFiles" shortcut="Shift+Meta+W" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.ReloadFile" shortcut="Meta+U" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.SaveAs" shortcut="Shift+Meta+S" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.PrintDocument" shortcut="Meta+P" />
<binding command="MonoDevelop.Ide.Commands.FileCommands.Exit" shortcut="Meta+Q" />
<binding command="MonoDevelop.Ide.Commands.ViewCommands.ShowNext" shortcut="Meta+=" />
<binding command="MonoDevelop.Ide.Commands.ViewCommands.ShowPrevious" shortcut="Meta++" />
<binding command="MonoDevelop.Ide.Commands.NavigationCommands.NavigateBack" shortcut="Alt+Meta+Left" />
<binding command="MonoDevelop.Ide.Commands.NavigationCommands.NavigateForward" shortcut="Alt+Meta+Right" />
<binding command="MonoDevelop.Ide.Commands.WindowCommands.NextWindow" shortcut="Meta+}" />
<binding command="MonoDevelop.Ide.Commands.WindowCommands.PrevWindow" shortcut="Meta+{" />
<binding command="MonoDevelop.Ide.Commands.WindowCommands.SwitchNextDocument" shortcut="Control+Tab" />
<binding command="MonoDevelop.Ide.Commands.WindowCommands.SwitchPreviousDocument" shortcut="Control+Shift+Tab" />
<binding command="MonoDevelop.MacIntegration.MacIntegrationCommands.MinimizeWindow" shortcut="Meta+M" />
<binding command="MonoDevelop.MacIntegration.MacIntegrationCommands.HideWindow" shortcut="Meta+H" />
<binding command="MonoDevelop.MacIntegration.MacIntegrationCommands.HideOthers" shortcut="Alt+Meta+H" />
<binding command="MonoDevelop.Ide.Commands.HelpCommands.Help" shortcut="Alt+Meta+?" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.Find" shortcut="Meta+F" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.FindNext" shortcut="Meta+G" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.FindPrevious" shortcut="Shift+Meta+G" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.FindNextSelection" shortcut="Meta+E" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.FindInFiles" shortcut="Shift+Meta+F" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.GotoType" shortcut="Shift+Meta+T" />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.GotoFile" shortcut="Shift+Meta+D" />
<binding command="MonoDevelop.Ide.NavigateToDialog.Commands.NavigateTo" shortcut="Meta+." />
<binding command="MonoDevelop.Ide.Commands.SearchCommands.GotoLineNumber" shortcut="Meta+L" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.ShowCompletionWindow" shortcut="Control+Space" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.ToggleCompletionSuggestionMode" shortcut="Alt+Shift+Space" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.DeleteToLineEnd" shortcut="Control+K" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.MoveBlockUp" shortcut="Alt+Up" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.MoveBlockDown" shortcut="Alt+Down" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.ShowParameterCompletionWindow" shortcut="Control+Shift+Space" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.InsertNewLinePreserveCaretPosition" shortcut="Control+O" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.TransposeCharacters" shortcut="Control+T" />
<binding command="MonoDevelop.Ide.Commands.TextEditorCommands.RecenterEditor" shortcut="Control+L" />
<binding command="MonoDevelop.SourceEditor.SourceEditorCommands.DynamicAbbrev" shortcut="Meta+/" />
<binding command="MonoDevelop.SourceEditor.SourceEditorCommands.PulseCaret" shortcut="Meta+|" />
<binding command="MonoDevelop.SourceEditor.SourceEditorCommands.ToggleCodeFocus" shortcut="Shift+Meta+K" />
<binding command="MonoDevelop.CSharp.Highlighting.MoveToUsagesCommand.PrevUsage" shortcut="Shift+Meta+Up" />
<binding command="MonoDevelop.CSharp.Highlighting.MoveToUsagesCommand.NextUsage" shortcut="Shift+Meta+Down" />
<binding command="MonoDevelop.CSharp.ExpandCommands.ExpandSelection" shortcut="Alt+Shift+Up" />
<binding command="MonoDevelop.CSharp.ExpandCommands.ShrinkSelection" shortcut="Alt+Shift+Down" />
<binding command="MonoDevelop.DesignerSupport.Commands.SwitchBetweenRelatedFiles" shortcut="Alt+Meta+Up" />
<binding command="MonoDevelop.Debugger.DebugCommands.Pause" shortcut="Alt+Meta+P" />
<binding command="MonoDevelop.Debugger.DebugCommands.StepOver" shortcut="Shift+Meta+O" />
<binding command="MonoDevelop.Debugger.DebugCommands.StepInto" shortcut="Shift+Meta+I" />
<binding command="MonoDevelop.Debugger.DebugCommands.StepOut" shortcut="Shift+Meta+T" />
<binding command="MonoDevelop.Debugger.DebugCommands.ToggleBreakpoint" shortcut="Meta+\" />
<binding command="MonoDevelop.Debugger.DebugCommands.EnableDisableBreakpoint" shortcut="Alt+Meta+/" />
<binding command="MonoDevelop.Refactoring.RefactoryCommands.GotoDeclaration" shortcut="Meta+D" />
<binding command="MonoDevelop.Refactoring.RefactoryCommands.QuickFix" shortcut="Alt+Return" />
<binding command="MonoDevelop.Refactoring.RefactoryCommands.ImportSymbol" shortcut="Control+Alt+Space" />
<binding command="MonoDevelop.AnalysisCore.AnalysisCommands.ShowFixes" shortcut="Control+." />
<binding command="MonoDevelop.Ide.Commands.EditCommands.FoldDefinitions" shortcut="Control+Meta+Up" />
<binding command="MonoDevelop.Ide.CodeFormatting.CodeFormattingCommands.FormatBuffer" shortcut="Control+`" />
</scheme>
</schemes>

View File

@ -1,210 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Policies>
<PolicySet name="Touchin">
<TextStylePolicy inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain">
<FileWidth>120</FileWidth>
<TabWidth>4</TabWidth>
<IndentWidth>4</IndentWidth>
<TabsToSpaces>False</TabsToSpaces>
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
</TextStylePolicy>
<VersionControlPolicy inheritsSet="Mono" />
<CSharpFormattingPolicy inheritsSet="Mono" inheritsScope="text/x-csharp" scope="text/x-csharp">
<IndentSwitchBody>True</IndentSwitchBody>
<AnonymousMethodBraceStyle>NextLine</AnonymousMethodBraceStyle>
<PropertyBraceStyle>NextLine</PropertyBraceStyle>
<PropertyGetBraceStyle>NextLine</PropertyGetBraceStyle>
<PropertySetBraceStyle>NextLine</PropertySetBraceStyle>
<EventBraceStyle>NextLine</EventBraceStyle>
<EventAddBraceStyle>NextLine</EventAddBraceStyle>
<EventRemoveBraceStyle>NextLine</EventRemoveBraceStyle>
<StatementBraceStyle>NextLine</StatementBraceStyle>
<IfElseBraceForcement>AddBraces</IfElseBraceForcement>
<ForBraceForcement>AddBraces</ForBraceForcement>
<WhileBraceForcement>AddBraces</WhileBraceForcement>
<ElseNewLinePlacement>NewLine</ElseNewLinePlacement>
<ElseIfNewLinePlacement>SameLine</ElseIfNewLinePlacement>
<CatchNewLinePlacement>NewLine</CatchNewLinePlacement>
<FinallyNewLinePlacement>NewLine</FinallyNewLinePlacement>
<WhileNewLinePlacement>NewLine</WhileNewLinePlacement>
<BeforeMethodDeclarationParentheses>False</BeforeMethodDeclarationParentheses>
<BeforeMethodCallParentheses>False</BeforeMethodCallParentheses>
<BeforeConstructorDeclarationParentheses>False</BeforeConstructorDeclarationParentheses>
<BeforeIndexerDeclarationBracket>False</BeforeIndexerDeclarationBracket>
<BeforeDelegateDeclarationParentheses>False</BeforeDelegateDeclarationParentheses>
<NewParentheses>False</NewParentheses>
<BeforeNewParameterComma>True</BeforeNewParameterComma>
<SpacesBeforeBrackets>False</SpacesBeforeBrackets>
</CSharpFormattingPolicy>
<NameConventionPolicy>
<Rules>
<NamingRule>
<Name>Namespaces</Name>
<AffectedEntity>Namespace</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Types</Name>
<AffectedEntity>Class, Struct, Enum, Delegate</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Interfaces</Name>
<RequiredPrefixes>
<String>I</String>
</RequiredPrefixes>
<AffectedEntity>Interface</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Attributes</Name>
<RequiredSuffixes>
<String>Attribute</String>
</RequiredSuffixes>
<AffectedEntity>CustomAttributes</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Event Arguments</Name>
<RequiredSuffixes>
<String>EventArgs</String>
</RequiredSuffixes>
<AffectedEntity>CustomEventArgs</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Exceptions</Name>
<RequiredSuffixes>
<String>Exception</String>
</RequiredSuffixes>
<AffectedEntity>CustomExceptions</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Methods</Name>
<AffectedEntity>Methods</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Fields (Non Private)</Name>
<AffectedEntity>Field, ReadonlyField</AffectedEntity>
<VisibilityMask>Internal, Public</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>False</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Constant Fields</Name>
<AffectedEntity>ConstantField</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Properties</Name>
<AffectedEntity>Property</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Events</Name>
<AffectedEntity>Event</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Enum Members</Name>
<AffectedEntity>EnumMember</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Parameters</Name>
<AffectedEntity>Parameter</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>CamelCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Type Parameters</Name>
<RequiredPrefixes>
<String>T</String>
</RequiredPrefixes>
<AffectedEntity>TypeParameter</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Local Variables</Name>
<AffectedEntity>LocalVariable</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>CamelCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Fields (Private, Protected)</Name>
<RequiredPrefixes>
<String>_</String>
</RequiredPrefixes>
<AffectedEntity>Field, ReadonlyField</AffectedEntity>
<VisibilityMask>Private, Protected</VisibilityMask>
<NamingStyle>CamelCase</NamingStyle>
<IncludeInstanceMembers>True</IncludeInstanceMembers>
<IncludeStaticEntities>False</IncludeStaticEntities>
</NamingRule>
<NamingRule>
<Name>Static Fields</Name>
<AffectedEntity>Field, ReadonlyField</AffectedEntity>
<VisibilityMask>VisibilityMask</VisibilityMask>
<NamingStyle>PascalCase</NamingStyle>
<IncludeInstanceMembers>False</IncludeInstanceMembers>
<IncludeStaticEntities>True</IncludeStaticEntities>
</NamingRule>
</Rules>
</NameConventionPolicy>
<ChangeLogPolicy inheritsSet="Mono" />
<TextStylePolicy inheritsSet="Mono" inheritsScope="text/plain" scope="text/x-csharp">
<FileWidth>120</FileWidth>
<TabWidth>4</TabWidth>
<IndentWidth>4</IndentWidth>
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
<TabsToSpaces>False</TabsToSpaces>
</TextStylePolicy>
<DotNetNamingPolicy>
<DirectoryNamespaceAssociation>PrefixedHierarchical</DirectoryNamespaceAssociation>
<ResourceNamePolicy>FileName</ResourceNamePolicy>
</DotNetNamingPolicy>
</PolicySet>
</Policies>

View File

@ -1,64 +0,0 @@
# monodevelop-settings
У этого проекта две основные цели. Во-первых, упрощение внедрения стиля кодирования. Во-вторых, сохранение и распространение лучших практик использования MonoDevelop.
## Что внутри?
* Настройки для автоматического форматирования кода.
* Настройки именования.
* Настройки хоткеев.
* Code templates(ctor) адаптированные под наш стиль кодирования.
## Как установить настройки?
Настройки устанавливаются простым клонированием репозитория в нужную папку.
```bash
mkdir ~/Library/MonoDevelop-3.0-orig/
cp -R ~/Library/MonoDevelop-3.0/ ~/Library/MonoDevelop-3.0-orig/
rm -rf ~/Library/MonoDevelop-3.0/
git clone https://github.com/gaech/monodevelop-settings.git ~/Library/MonoDevelop-3.0/
```
### Пользователям Windows
Пользователи Windows клонируют репозиторий в любое удобное место на компьютере, и далее ручками копируют папки Policies и Snippets в папку
```
C:\Users\%USERNAME%\AppData\Roaming\MonoDevelop-X.X
```
Копировать папку KeyBindings, равно как и делать репозиторий напрямую в папке настроек монодевелопа, не рекомендуется. У макоси нет клавиши Control, а у винды нет клавиши Meta, так что их хоткеи несовместимы.
После успешного клонирования надо изменить глобальные настройки MonoDevelop. `MonoDevelop → Preferences...`
В разделе `Source code → .NET Naming Policies` выставляем `Policy: Touchin`
![](https://github.com/gaech/monodevelop-settings/raw/014f6c45b1b40f69aeba8641a3cca22af635abd9/Screenshots/global-naming-policies.jpg)
В разделе `Source code → Code Formatting → C# source code` выставляем `Policy: Touchin`
![](https://github.com/gaech/monodevelop-settings/raw/2622dd2c61fe2cb0cbf9cd8220285ac95ab7c199/Screenshots/global-code-formating.jpg)
В разделе `Source code → Name Conventions` выставляем `Policy: Touchin` (для Monodeveop 2.8 и младше, походу, неактуально)
![](https://github.com/gaech/monodevelop-settings/raw/014f6c45b1b40f69aeba8641a3cca22af635abd9/Screenshots/global-name-convention.jpg)
Для того чтобы MonoDevelop выделял места, где нарушается соглашение о кодировании, можно включить анализ кода `Other → Source Analysis`
![](https://github.com/gaech/monodevelop-settings/raw/b2c2185b757fb934668d73ae1a79c9ad76448059/Screenshots/source-analysis.jpg)
Настройки будут влиять на новые проекты и решения. В существующих надо изменить настройки вручную.
Если по какой-то причине вы не хотите использовать все общие настройки, то можно скопировать отдельно нужны вам файлы.
## Обновление настроек
```bash
cd ~/Library/MonoDevelop-3.0/
git pull origin master
```
Пользователи Windows делают почти то же самое, но в другую папку, и потом ручками заново копируют нужные настройки в AppData.
## Как поделиться своими наработками?
* Сделать fork проекта. Для этого достаточно нажать кнопку Fork на этой странице.
* Склонировать форк.
* Закоммитить свои изменения.
* Отправить изменения в основной репозиторий. Это делается с помощью кнопки Pull request.
## Ссылки
* https://github.com/gaech/coding-style
## TODO
* Подсказка по хоткеям MonoDevelop
* Подсказка по шаблонам кода

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<CodeTemplates version="3.0">
<CodeTemplate version="2.0">
<Header>
<_Group>C#</_Group>
<Version>1.0</Version>
<MimeType>text/x-csharp</MimeType>
<Shortcut>ctor</Shortcut>
<_Description>Template for constructor</_Description>
<TemplateType>Expansion</TemplateType>
</Header>
<Variables>
<Variable name="classname" isEditable="false">
<_ToolTip>Class name</_ToolTip>
<Function>GetCurrentClassName()</Function>
</Variable>
<Variable name="modifier" isEditable="false">
<Function>GetConstructorModifier()</Function>
</Variable>
</Variables>
<Code><![CDATA[$modifier$$classname$()
{
$end$
}]]></Code>
</CodeTemplate>
</CodeTemplates>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<CodeTemplates version="3.0">
<CodeTemplate version="2.0">
<Header>
<_Group>C#</_Group>
<Version>1.0</Version>
<MimeType>text/x-csharp</MimeType>
<Shortcut>propg</Shortcut>
<_Description>Template for a short property with private set.</_Description>
<TemplateType>Expansion</TemplateType>
</Header>
<Variables>
<Variable name="type" isIdentifier="true">
<Default>object</Default>
<_ToolTip>Return type of the indexer</_ToolTip>
</Variable>
<Variable name="name" isIdentifier="true">
<Default>MyProperty</Default>
<_ToolTip>Property name</_ToolTip>
</Variable>
</Variables>
<Code><![CDATA[public $type$ $name$ { get; protected set; }]]></Code>
</CodeTemplate>
</CodeTemplates>

108
index.html Normal file
View File

@ -0,0 +1,108 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>monodevelop-settings by gaech</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<h1>monodevelop-settings</h1>
<p></p>
<p class="view"><a href="https://github.com/gaech/monodevelop-settings">View the Project on GitHub <small>gaech/monodevelop-settings</small></a></p>
<ul>
<li><a href="https://github.com/gaech/monodevelop-settings/zipball/master">Download <strong>ZIP File</strong></a></li>
<li><a href="https://github.com/gaech/monodevelop-settings/tarball/master">Download <strong>TAR Ball</strong></a></li>
<li><a href="https://github.com/gaech/monodevelop-settings">View On <strong>GitHub</strong></a></li>
</ul>
</header>
<section>
<h1>monodevelop-settings</h1>
<p>У этого проекта две основные цели. Во-первых, упрощение внедрения стиля кодирования. Во-вторых, сохранение и распространение лучших практик использования MonoDevelop.</p>
<h2>Что внутри?</h2>
<ul>
<li>Настройки для автоматического форматирования кода. </li>
<li>Настройки именования.</li>
<li>Настройки хоткеев. </li>
<li>Code templates(ctor) адаптированные под наш стиль кодирования.</li>
</ul><h2>Как установить настройки?</h2>
<p>Настройки устанавливаются простым клонированием репозитория в нужную папку.</p>
<div class="highlight">
<pre>mkdir ~/Library/MonoDevelop-3.0-orig/
cp -R ~/Library/MonoDevelop-3.0/ ~/Library/MonoDevelop-3.0-orig/
rm -rf ~/Library/MonoDevelop-3.0/
git clone https://github.com/gaech/monodevelop-settings.git ~/Library/MonoDevelop-3.0/
</pre>
</div>
<p>После успешного клонирования надо изменить глобальные настройки MonoDevelop. <code>MonoDevelop → Preferences...</code>
В разделе <code>Source code → .NET Naming Policies</code> выставляем <code>Policy: Touchin</code></p>
<p><img src="https://github.com/gaech/monodevelop-settings/raw/014f6c45b1b40f69aeba8641a3cca22af635abd9/Screenshots/global-naming-policies.jpg" alt=""></p>
<p>В разделе <code>Source code → Code Formatting → C# source code</code> выставляем <code>Policy: Touchin</code></p>
<p><img src="https://github.com/gaech/monodevelop-settings/raw/2622dd2c61fe2cb0cbf9cd8220285ac95ab7c199/Screenshots/global-code-formating.jpg" alt=""></p>
<p>В разделе <code>Source code → Name Conventions</code> выставляем <code>Policy: Touchin</code></p>
<p><img src="https://github.com/gaech/monodevelop-settings/raw/014f6c45b1b40f69aeba8641a3cca22af635abd9/Screenshots/global-name-convention.jpg" alt=""></p>
<p>Для того чтобы MonoDevelop выделял места, где нарушается соглашение о кодировании, можно включить анализ кода <code>Other → Source Analysis</code></p>
<p><img src="https://github.com/gaech/monodevelop-settings/raw/b2c2185b757fb934668d73ae1a79c9ad76448059/Screenshots/source-analysis.jpg" alt=""></p>
<p>Настройки будут влиять на новые проекты и решения. В существующих надо изменить настройки вручную. </p>
<p>Если по какой-то причине вы не хотите использовать все общие настройки, то можно скопировать отдельно нужны вам файлы. </p>
<h2>Обновление настроек</h2>
<div class="highlight">
<pre><span class="nb">cd</span> ~/Library/MonoDevelop-3.0/
git pull origin master
</pre>
</div>
<h2>Как поделиться своими наработками?</h2>
<ul>
<li>Сделать fork проекта. Для этого достаточно нажать кнопку Fork на этой странице.</li>
<li>Склонировать форк.</li>
<li>Закоммитить свои изменения.</li>
<li>Отправить изменения в основной репозиторий. Это делается с помощью кнопки Pull request.</li>
</ul><h2>Ссылки</h2>
<ul>
<li><a href="https://github.com/gaech/coding-style">https://github.com/gaech/coding-style</a></li>
</ul><h2>TODO</h2>
<ul>
<li>Подсказка по хоткеям MonoDevelop</li>
<li>Подсказка по шаблонам кода</li>
</ul>
</section>
<footer>
<p>This project is maintained by <a href="https://github.com/gaech">gaech</a></p>
<p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
</footer>
</div>
<script src="javascripts/scale.fix.js"></script>
</body>
</html>

17
javascripts/scale.fix.js Normal file
View File

@ -0,0 +1,17 @@
var metas = document.getElementsByTagName('meta');
var i;
if (navigator.userAgent.match(/iPhone/i)) {
for (i=0; i<metas.length; i++) {
if (metas[i].name == "viewport") {
metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
}
}
document.addEventListener("gesturestart", gestureStart, false);
}
function gestureStart() {
for (i=0; i<metas.length; i++) {
if (metas[i].name == "viewport") {
metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
}
}
}

1
params.json Normal file
View File

@ -0,0 +1 @@
{"name":"monodevelop-settings","body":"# monodevelop-settings\r\nУ этого проекта две основные цели. Во-первых, упрощение внедрения стиля кодирования. Во-вторых, сохранение и распространение лучших практик использования MonoDevelop.\r\n## Что внутри?\r\n * Настройки для автоматического форматирования кода. \r\n * Настройки именования.\r\n * Настройки хоткеев. \r\n * Code templates(ctor) адаптированные под наш стиль кодирования.\r\n\r\n## Как установить настройки?\r\nНастройки устанавливаются простым клонированием репозитория в нужную папку.\r\n```bash\r\nmkdir ~/Library/MonoDevelop-3.0-orig/\r\ncp -R ~/Library/MonoDevelop-3.0/ ~/Library/MonoDevelop-3.0-orig/\r\nrm -rf ~/Library/MonoDevelop-3.0/\r\ngit clone https://github.com/gaech/monodevelop-settings.git ~/Library/MonoDevelop-3.0/\r\n```\r\nПосле успешного клонирования надо изменить глобальные настройки MonoDevelop. `MonoDevelop → Preferences...`\r\nВ разделе `Source code → .NET Naming Policies` выставляем `Policy: Touchin`\r\n\r\n![](https://github.com/gaech/monodevelop-settings/raw/014f6c45b1b40f69aeba8641a3cca22af635abd9/Screenshots/global-naming-policies.jpg) \r\n\r\nВ разделе `Source code → Code Formatting → C# source code` выставляем `Policy: Touchin`\r\n\r\n![](https://github.com/gaech/monodevelop-settings/raw/2622dd2c61fe2cb0cbf9cd8220285ac95ab7c199/Screenshots/global-code-formating.jpg)\r\n\r\nВ разделе `Source code → Name Conventions` выставляем `Policy: Touchin`\r\n\r\n![](https://github.com/gaech/monodevelop-settings/raw/014f6c45b1b40f69aeba8641a3cca22af635abd9/Screenshots/global-name-convention.jpg)\r\n\r\nДля того чтобы MonoDevelop выделял места, где нарушается соглашение о кодировании, можно включить анализ кода `Other → Source Analysis`\r\n\r\n![](https://github.com/gaech/monodevelop-settings/raw/b2c2185b757fb934668d73ae1a79c9ad76448059/Screenshots/source-analysis.jpg) \r\n\r\nНастройки будут влиять на новые проекты и решения. В существующих надо изменить настройки вручную. \r\n\r\nЕсли по какой-то причине вы не хотите использовать все общие настройки, то можно скопировать отдельно нужны вам файлы. \r\n\r\n## Обновление настроек\r\n```bash\r\ncd ~/Library/MonoDevelop-3.0/\r\ngit pull origin master\r\n```\r\n\r\n## Как поделиться своими наработками?\r\n * Сделать fork проекта. Для этого достаточно нажать кнопку Fork на этой странице.\r\n * Склонировать форк.\r\n * Закоммитить свои изменения.\r\n * Отправить изменения в основной репозиторий. Это делается с помощью кнопки Pull request.\r\n\r\n## Ссылки \r\n * https://github.com/gaech/coding-style\r\n\r\n## TODO\r\n * Подсказка по хоткеям MonoDevelop\r\n * Подсказка по шаблонам кода","tagline":"","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}

View File

@ -0,0 +1,69 @@
.highlight { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kn { font-weight: bold } /* Keyword.Namespace */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
.type-csharp .highlight .nc { color: #2B91AF }
.type-csharp .highlight .nn { color: #000000 }
.type-csharp .highlight .s { color: #A31515 }
.type-csharp .highlight .sc { color: #A31515 }

255
stylesheets/styles.css Normal file
View File

@ -0,0 +1,255 @@
@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
body {
padding:50px;
font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
color:#777;
font-weight:300;
}
h1, h2, h3, h4, h5, h6 {
color:#222;
margin:0 0 20px;
}
p, ul, ol, table, pre, dl {
margin:0 0 20px;
}
h1, h2, h3 {
line-height:1.1;
}
h1 {
font-size:28px;
}
h2 {
color:#393939;
}
h3, h4, h5, h6 {
color:#494949;
}
a {
color:#39c;
font-weight:400;
text-decoration:none;
}
a small {
font-size:11px;
color:#777;
margin-top:-0.6em;
display:block;
}
.wrapper {
width:860px;
margin:0 auto;
}
blockquote {
border-left:1px solid #e5e5e5;
margin:0;
padding:0 0 0 20px;
font-style:italic;
}
code, pre {
font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
color:#333;
font-size:12px;
}
pre {
padding:8px 15px;
background: #f8f8f8;
border-radius:5px;
border:1px solid #e5e5e5;
overflow-x: auto;
}
table {
width:100%;
border-collapse:collapse;
}
th, td {
text-align:left;
padding:5px 10px;
border-bottom:1px solid #e5e5e5;
}
dt {
color:#444;
font-weight:700;
}
th {
color:#444;
}
img {
max-width:100%;
}
header {
width:270px;
float:left;
position:fixed;
}
header ul {
list-style:none;
height:40px;
padding:0;
background: #eee;
background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
border-radius:5px;
border:1px solid #d2d2d2;
box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0;
width:270px;
}
header li {
width:89px;
float:left;
border-right:1px solid #d2d2d2;
height:40px;
}
header ul a {
line-height:1;
font-size:11px;
color:#999;
display:block;
text-align:center;
padding-top:6px;
height:40px;
}
strong {
color:#222;
font-weight:700;
}
header ul li + li {
width:88px;
border-left:1px solid #fff;
}
header ul li + li + li {
border-right:none;
width:89px;
}
header ul a strong {
font-size:14px;
display:block;
color:#222;
}
section {
width:500px;
float:right;
padding-bottom:50px;
}
small {
font-size:11px;
}
hr {
border:0;
background:#e5e5e5;
height:1px;
margin:0 0 20px;
}
footer {
width:270px;
float:left;
position:fixed;
bottom:50px;
}
@media print, screen and (max-width: 960px) {
div.wrapper {
width:auto;
margin:0;
}
header, section, footer {
float:none;
position:static;
width:auto;
}
header {
padding-right:320px;
}
section {
border:1px solid #e5e5e5;
border-width:1px 0;
padding:20px 0;
margin:0 0 20px;
}
header a small {
display:inline;
}
header ul {
position:absolute;
right:50px;
top:52px;
}
}
@media print, screen and (max-width: 720px) {
body {
word-wrap:break-word;
}
header {
padding:0;
}
header ul, header p.view {
position:static;
}
pre, code {
word-wrap:normal;
}
}
@media print, screen and (max-width: 480px) {
body {
padding:15px;
}
header ul {
display:none;
}
}
@media print {
body {
padding:0.4in;
font-size:12pt;
color:#444;
}
}