Compare commits
3 Commits
master
...
screenshot
| Author | SHA1 | Date |
|---|---|---|
|
|
b2c2185b75 | |
|
|
014f6c45b1 | |
|
|
2622dd2c61 |
|
|
@ -1,2 +1,2 @@
|
||||||
Policies/Default.mdpolicy.xml
|
Policies/Default.mdpolicy.xml.previous
|
||||||
*.previous
|
*.previous
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,231 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Policies>
|
||||||
|
<PolicySet name="Default" id="Default">
|
||||||
|
<DotNetNamingPolicy>
|
||||||
|
<DirectoryNamespaceAssociation>PrefixedHierarchical</DirectoryNamespaceAssociation>
|
||||||
|
<ResourceNamePolicy>FileName</ResourceNamePolicy>
|
||||||
|
</DotNetNamingPolicy>
|
||||||
|
<VersionControlPolicy inheritsSet="Mono" />
|
||||||
|
<TextStylePolicy inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain" />
|
||||||
|
<TextStylePolicy inheritsSet="Mono" inheritsScope="text/plain" scope="text/x-csharp">
|
||||||
|
<FileWidth>120</FileWidth>
|
||||||
|
<TabWidth>4</TabWidth>
|
||||||
|
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
|
||||||
|
</TextStylePolicy>
|
||||||
|
<CSharpFormattingPolicy inheritsSet="Mono" inheritsScope="text/x-csharp" scope="text/x-csharp">
|
||||||
|
<IndentSwitchBody>True</IndentSwitchBody>
|
||||||
|
<PropertyBraceStyle>NextLine</PropertyBraceStyle>
|
||||||
|
<PropertyGetBraceStyle>NextLine</PropertyGetBraceStyle>
|
||||||
|
<PropertySetBraceStyle>NextLine</PropertySetBraceStyle>
|
||||||
|
<EventBraceStyle>NextLine</EventBraceStyle>
|
||||||
|
<EventAddBraceStyle>NextLine</EventAddBraceStyle>
|
||||||
|
<EventRemoveBraceStyle>NextLine</EventRemoveBraceStyle>
|
||||||
|
<StatementBraceStyle>NextLine</StatementBraceStyle>
|
||||||
|
<ForBraceForcement>AddBraces</ForBraceForcement>
|
||||||
|
<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>
|
||||||
|
<StandardHeader>
|
||||||
|
<Text />
|
||||||
|
<IncludeInNewFiles>True</IncludeInNewFiles>
|
||||||
|
</StandardHeader>
|
||||||
|
<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>Static Readonly Fields</Name>
|
||||||
|
<AffectedEntity>ReadonlyField</AffectedEntity>
|
||||||
|
<VisibilityMask>Internal, Protected, Public</VisibilityMask>
|
||||||
|
<NamingStyle>PascalCase</NamingStyle>
|
||||||
|
<IncludeInstanceMembers>False</IncludeInstanceMembers>
|
||||||
|
<IncludeStaticEntities>True</IncludeStaticEntities>
|
||||||
|
</NamingRule>
|
||||||
|
<NamingRule>
|
||||||
|
<Name>Fields (Non Private)</Name>
|
||||||
|
<AffectedEntity>Field</AffectedEntity>
|
||||||
|
<VisibilityMask>Internal, Protected, Public</VisibilityMask>
|
||||||
|
<NamingStyle>PascalCase</NamingStyle>
|
||||||
|
<IncludeInstanceMembers>True</IncludeInstanceMembers>
|
||||||
|
<IncludeStaticEntities>True</IncludeStaticEntities>
|
||||||
|
</NamingRule>
|
||||||
|
<NamingRule>
|
||||||
|
<Name>ReadOnly Fields (Non Private)</Name>
|
||||||
|
<AffectedEntity>ReadonlyField</AffectedEntity>
|
||||||
|
<VisibilityMask>Internal, Protected, Public</VisibilityMask>
|
||||||
|
<NamingStyle>PascalCase</NamingStyle>
|
||||||
|
<IncludeInstanceMembers>True</IncludeInstanceMembers>
|
||||||
|
<IncludeStaticEntities>False</IncludeStaticEntities>
|
||||||
|
</NamingRule>
|
||||||
|
<NamingRule>
|
||||||
|
<Name>Fields (Private)</Name>
|
||||||
|
<AllowedPrefixes>
|
||||||
|
<String>_</String>
|
||||||
|
<String>m_</String>
|
||||||
|
</AllowedPrefixes>
|
||||||
|
<AffectedEntity>Field, ReadonlyField</AffectedEntity>
|
||||||
|
<VisibilityMask>Private</VisibilityMask>
|
||||||
|
<NamingStyle>CamelCase</NamingStyle>
|
||||||
|
<IncludeInstanceMembers>True</IncludeInstanceMembers>
|
||||||
|
<IncludeStaticEntities>False</IncludeStaticEntities>
|
||||||
|
</NamingRule>
|
||||||
|
<NamingRule>
|
||||||
|
<Name>Static Fields (Private)</Name>
|
||||||
|
<AffectedEntity>Field</AffectedEntity>
|
||||||
|
<VisibilityMask>Private</VisibilityMask>
|
||||||
|
<NamingStyle>CamelCase</NamingStyle>
|
||||||
|
<IncludeInstanceMembers>False</IncludeInstanceMembers>
|
||||||
|
<IncludeStaticEntities>True</IncludeStaticEntities>
|
||||||
|
</NamingRule>
|
||||||
|
<NamingRule>
|
||||||
|
<Name>ReadOnly Fields (Private)</Name>
|
||||||
|
<AllowedPrefixes>
|
||||||
|
<String>_</String>
|
||||||
|
<String>m_</String>
|
||||||
|
</AllowedPrefixes>
|
||||||
|
<AffectedEntity>ReadonlyField</AffectedEntity>
|
||||||
|
<VisibilityMask>Private</VisibilityMask>
|
||||||
|
<NamingStyle>CamelCase</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>
|
||||||
|
</Rules>
|
||||||
|
</NameConventionPolicy>
|
||||||
|
</PolicySet>
|
||||||
|
</Policies>
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Policies>
|
<Policies>
|
||||||
<PolicySet name="Touchin">
|
<PolicySet name="Touchin">
|
||||||
<TextStylePolicy inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain">
|
<TextStylePolicy inheritsSet="Mono" inheritsScope="text/plain" scope="text/plain">
|
||||||
<FileWidth>120</FileWidth>
|
<FileWidth>120</FileWidth>
|
||||||
<TabWidth>4</TabWidth>
|
<TabWidth>4</TabWidth>
|
||||||
<IndentWidth>4</IndentWidth>
|
|
||||||
<TabsToSpaces>False</TabsToSpaces>
|
|
||||||
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
|
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
|
||||||
</TextStylePolicy>
|
</TextStylePolicy>
|
||||||
<VersionControlPolicy inheritsSet="Mono" />
|
<VersionControlPolicy inheritsSet="Mono" />
|
||||||
|
|
@ -19,7 +17,6 @@
|
||||||
<EventAddBraceStyle>NextLine</EventAddBraceStyle>
|
<EventAddBraceStyle>NextLine</EventAddBraceStyle>
|
||||||
<EventRemoveBraceStyle>NextLine</EventRemoveBraceStyle>
|
<EventRemoveBraceStyle>NextLine</EventRemoveBraceStyle>
|
||||||
<StatementBraceStyle>NextLine</StatementBraceStyle>
|
<StatementBraceStyle>NextLine</StatementBraceStyle>
|
||||||
<IfElseBraceForcement>AddBraces</IfElseBraceForcement>
|
|
||||||
<ForBraceForcement>AddBraces</ForBraceForcement>
|
<ForBraceForcement>AddBraces</ForBraceForcement>
|
||||||
<WhileBraceForcement>AddBraces</WhileBraceForcement>
|
<WhileBraceForcement>AddBraces</WhileBraceForcement>
|
||||||
<ElseNewLinePlacement>NewLine</ElseNewLinePlacement>
|
<ElseNewLinePlacement>NewLine</ElseNewLinePlacement>
|
||||||
|
|
@ -178,7 +175,7 @@
|
||||||
<RequiredPrefixes>
|
<RequiredPrefixes>
|
||||||
<String>_</String>
|
<String>_</String>
|
||||||
</RequiredPrefixes>
|
</RequiredPrefixes>
|
||||||
<AffectedEntity>Field, ReadonlyField</AffectedEntity>
|
<AffectedEntity>Field</AffectedEntity>
|
||||||
<VisibilityMask>Private, Protected</VisibilityMask>
|
<VisibilityMask>Private, Protected</VisibilityMask>
|
||||||
<NamingStyle>CamelCase</NamingStyle>
|
<NamingStyle>CamelCase</NamingStyle>
|
||||||
<IncludeInstanceMembers>True</IncludeInstanceMembers>
|
<IncludeInstanceMembers>True</IncludeInstanceMembers>
|
||||||
|
|
@ -198,9 +195,7 @@
|
||||||
<TextStylePolicy inheritsSet="Mono" inheritsScope="text/plain" scope="text/x-csharp">
|
<TextStylePolicy inheritsSet="Mono" inheritsScope="text/plain" scope="text/x-csharp">
|
||||||
<FileWidth>120</FileWidth>
|
<FileWidth>120</FileWidth>
|
||||||
<TabWidth>4</TabWidth>
|
<TabWidth>4</TabWidth>
|
||||||
<IndentWidth>4</IndentWidth>
|
|
||||||
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
|
<NoTabsAfterNonTabs>True</NoTabsAfterNonTabs>
|
||||||
<TabsToSpaces>False</TabsToSpaces>
|
|
||||||
</TextStylePolicy>
|
</TextStylePolicy>
|
||||||
<DotNetNamingPolicy>
|
<DotNetNamingPolicy>
|
||||||
<DirectoryNamespaceAssociation>PrefixedHierarchical</DirectoryNamespaceAssociation>
|
<DirectoryNamespaceAssociation>PrefixedHierarchical</DirectoryNamespaceAssociation>
|
||||||
|
|
|
||||||
64
README.md
64
README.md
|
|
@ -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`
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
В разделе `Source code → Code Formatting → C# source code` выставляем `Policy: Touchin`
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
В разделе `Source code → Name Conventions` выставляем `Policy: Touchin` (для Monodeveop 2.8 и младше, походу, неактуально)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Для того чтобы MonoDevelop выделял места, где нарушается соглашение о кодировании, можно включить анализ кода `Other → Source Analysis`
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Настройки будут влиять на новые проекты и решения. В существующих надо изменить настройки вручную.
|
|
||||||
|
|
||||||
Если по какой-то причине вы не хотите использовать все общие настройки, то можно скопировать отдельно нужны вам файлы.
|
|
||||||
|
|
||||||
## Обновление настроек
|
|
||||||
```bash
|
|
||||||
cd ~/Library/MonoDevelop-3.0/
|
|
||||||
git pull origin master
|
|
||||||
```
|
|
||||||
|
|
||||||
Пользователи Windows делают почти то же самое, но в другую папку, и потом ручками заново копируют нужные настройки в AppData.
|
|
||||||
|
|
||||||
## Как поделиться своими наработками?
|
|
||||||
* Сделать fork проекта. Для этого достаточно нажать кнопку Fork на этой странице.
|
|
||||||
* Склонировать форк.
|
|
||||||
* Закоммитить свои изменения.
|
|
||||||
* Отправить изменения в основной репозиторий. Это делается с помощью кнопки Pull request.
|
|
||||||
|
|
||||||
## Ссылки
|
|
||||||
* https://github.com/gaech/coding-style
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
* Подсказка по хоткеям MonoDevelop
|
|
||||||
* Подсказка по шаблонам кода
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 94 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
Loading…
Reference in New Issue