Skip to content

Commit

Permalink
JetBrains IDE configurations snowblock
Browse files Browse the repository at this point in the history
This new snowblock includes all important configurations for all used
JetBrains (1) IDEs and products which are currently IntelliJ (2)
(Ultimate Edition), PyCharm (3) (Community Edition), Webstorm (4) and
GoLand (5). For details about the paths see the documentation about
directories used by the IDE to store settings, caches, plugins and logs
(6).

It includes…

* …the code style (7) XMl configuration file stored in the `codestyles`
  folder.
* …the inspections (8) XMl configuration file stored in the
  `inspections`  folder.
* …the keymaps (9) XMl configuration files for Linux and macOS stored in
  the `keymaps` folder. See the keymap reference (10) for a visual
  presentation of the default mappings.
* …the preferences (11) XMl configuration files stored in the `options`
  folder. This includes the following settings:
  * `code.style.schemes.xml` - settings of the currently used code style.
  * `colors.scheme.xml` - settings of the currently used color scheme.
  * `customization.xml` and `project.default.xml` - settings of the
    customized menus and toolbars (12).
  * `editor.codeinsight.xml` - settings of various automatic code
    transformations.
  * `keymap.xml` - the currently used keymap.
  * `laf.xml` and `ui.lnf.yml` - settings of the currently used UI theme.
  * all other customized preferences defined in the various categories:
  `editor.xml`, `ide.general.xml` and `options.xml`
* …the list of disabled plugins (13) stored in the
  `disabled_plugins.txt` file.

>> snowsaw core plugin configuration

NOTE: JetBrains uses a naming scheme for the folder all user
configurations are stored in based on the product major/minor version!
This requires this snowblock to be updated as soon as the product gets
updated to adapt to the new version string.

>>>>>> `clean`

The target paths (based on the host OS) with the naming scheme
`<PRODUCT><VERSION>` should be cleaned before the `link` core plugin
execution.

NOTE: Due to the JetBrains naming scheme for the target path (more
details described above) the previous targets should be kept to ensure
they are cleaned up by this plugin after updating to a new product
version.

>>>>>> `link`

The target paths (based on the host OS) with the naming scheme
`<PRODUCT><VERSION>` should be created by snowsaw if they doesn't exist
yet.

NOT: Due to the JetBrains naming scheme for the target path (more
details described above) must be updated after updating to a new product
version.

References:

  (1) https://www.jetbrains.com/products.html
  (2) https://www.jetbrains.com/idea
  (3) https://www.jetbrains.com/pycharm
  (4) https://www.jetbrains.com/webstorm
  (5) https://www.jetbrains.com/go
  (6) https://intellij-support.jetbrains.com/hc/en-us/articles/206544519-Directories-used-by-the-IDE-to-store-settings-caches-plugins-and-logs
  (7) https://www.jetbrains.com/help/idea/settings-code-style.html
  (8) https://www.jetbrains.com/help/idea/inspections-settings.html
  (9) https://www.jetbrains.com/help/idea/settings-keymap.html
  (10) https://www.jetbrains.com/help/idea/keymap-reference.html
  (11) https://www.jetbrains.com/help/idea/settings-preferences-dialog.html
  (12) https://www.jetbrains.com/help/idea/menus-and-toolbars.html
  (13) https://www.jetbrains.com/help/idea/managing-plugins.html

Closes GH-137
  • Loading branch information
arcticicestudio committed Sep 17, 2018
1 parent 505e340 commit 2fa3d1d
Show file tree
Hide file tree
Showing 18 changed files with 1,092 additions and 0 deletions.
64 changes: 64 additions & 0 deletions snowblocks/jetbrains/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# JetBrains IDEs

This snowblock provides all important configurations for all used [JetBrains][] IDEs and products, currently [IntelliJ][] (Ultimate Edition), [PyCharm][] (Community Edition), [Webstorm][] and [GoLand][]. For details about the paths for user configurations see the documentation about [directories used by the IDE to store settings, caches, plugins and logs][intellij-doc-settings-paths].

## Content

The includes configurations are mostly platform and IDE/product independent.

* The [code style][intellij-doc-code-style] XMl configuration file stored in the `codestyles` folder.
* The [inspections][intellij-doc-inspections] XMl configuration file stored in the `inspections` folder.
* The [keymaps][intellij-doc-keymap] XMl configuration files for Linux and macOS stored in the `keymaps` folder. See the [keymap reference][intellij-doc-keymap-ref] for a visual presentation of the default mappings.
* The [preference][intellij-doc-prefs] XMl configuration files are stored in the `options` folder:
* `code.style.schemes.xml` - settings of the currently used code style.
* `colors.scheme.xml` - settings of the currently used color scheme.
* `customization.xml` and `project.default.xml` - settings of the customized [menus and toolbars][intellij-doc-menu-toolbar].
* `editor.codeinsight.xml` - settings of various automatic code transformations.
* `keymap.xml` - the currently used keymap.
* `laf.xml` and `ui.lnf.yml` - settings of the currently used UI theme.
* all other customized preferences defined in the various categories: `editor.xml`, `ide.general.xml` and `options.xml`
* The list of [disabled plugins][intellij-doc-plugins] stored in the `disabled_plugins.txt` file.

## Configurations

### Typeface

Due to licensing and the availability of specific font families on different operating systems the preferences for the sans-serif UI typefaces must be configured manually using the IntelliJ UI (_Preferences__Appearance & Behavior__Appearance__UI Options_) or by adding the following `<option>` entries with the desired font family names:

```xml
<!-- Linux -->
<option name="FONT_FACE" value="Noto Sans" />

<!-- macOS (default font families) -->
<option name="FONT_FACE" value=".SF NS Text" />
```

The default and secondary monospace fonts for the editor typeface are system independent and have already been set in the [`editor.xml`][gh-igloo-sb-jb-editor.xml] file to [Source Code Pro][google-font-source-code-pro] and [Hack][font-hack]:

```xml
<option name="FONT_FAMILY" value="Source Code Pro" />
<option name="SECONDARY_FONT_FAMILY" value="Hack" />
```

### snowsaw core plugins

JetBrains uses a [naming scheme for the folder all user configurations][intellij-doc-settings-paths] are stored in based on the product major/minor version! This requires this snowblock to be updated as soon as the product gets updated to adapt to the new version string based on the pattern `<PRODUCT><VERSION>`.

The base target folder name for the `clean` and `link` plugins must be updated after updating to a new product version. Next to this, the `clean` plugin should also keep the previous target paths to ensure they are cleaned up after updating.

[font-hack]: https://sourcefoundry.org/hack
[gh-igloo-sb-jb-editor.xml]: https://github.com/arcticicestudio/igloo/blob/develop/snowblocks/jetbrains/ooptions/editor.xml
[goland]: https://www.jetbrains.com/go
[google-font-source-code-pro]: https://fonts.google.com/specimen/Source+Code+Pro
[intellij]: https://www.jetbrains.com/idea
[intellij-doc-code-style]: https://www.jetbrains.com/help/idea/settings-code-style.html
[intellij-doc-inspections]: https://www.jetbrains.com/help/idea/inspections-settings.html
[intellij-doc-keymap]: https://www.jetbrains.com/help/idea/settings-keymap.html
[intellij-doc-keymap-ref]: https://www.jetbrains.com/help/idea/keymap-reference.html
[intellij-doc-menu-toolbar]: https://www.jetbrains.com/help/idea/menus-and-toolbars.html
[intellij-doc-plugins]: https://www.jetbrains.com/help/idea/managing-plugins.html
[intellij-doc-prefs]: https://www.jetbrains.com/help/idea/settings-preferences-dialog.html
[intellij-doc-settings-paths]: https://intellij-support.jetbrains.com/hc/en-us/articles/206544519-Directories-used-by-the-IDE-to-store-settings-caches-plugins-and-logs
[jetbrains]: https://www.jetbrains.com/products.html
[pycharm]: https://www.jetbrains.com/pycharm
[webstorm]: https://www.jetbrains.com/webstorm
79 changes: 79 additions & 0 deletions snowblocks/jetbrains/codestyles/arctic-codestyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<!--
Copyright (C) 2016-present Arctic Ice Studio <development@arcticicestudio.com>
Copyright (C) 2016-present Sven Greb <development@svengreb.de>
Project: igloo
Repository: https://github.com/arcticicestudio/igloo
License: MIT
-->
<code_scheme name="arctic-codestyle" version="173">
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</value>
</option>
<option name="LINE_SEPARATOR" value="&#10;" />
<option name="RIGHT_MARGIN" value="160" />
<option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="true" />
<option name="SOFT_MARGINS" value="160" />
<CssCodeStyleSettings>
<option name="HEX_COLOR_UPPER_CASE" value="true" />
<option name="HEX_COLOR_LONG_FORMAT" value="true" />
</CssCodeStyleSettings>
<HTMLCodeStyleSettings>
<option name="HTML_DO_NOT_INDENT_CHILDREN_OF" value="" />
</HTMLCodeStyleSettings>
<JavaCodeStyleSettings>
<option name="VISIBILITY" value="private" />
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
</JavaCodeStyleSettings>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<codeStyleSettings language="CSS">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Groovy">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="HTML">
<option name="WRAP_ON_TYPING" value="1" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="5" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JSON">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
49 changes: 49 additions & 0 deletions snowblocks/jetbrains/disabled_plugins.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
AngularJS
CFML Support
CVS
CloudBees
CloudFoundry
Emma
Geronimo
GlassFish
JBoss
OpenShift
Osmorc
PerforceDirectPlugin
Resin
StrutsAssistant
Subversion
TFS
TestNG-J
WebSphere
Weblogic
com.intellij.appengine
com.intellij.dmserver
com.intellij.drools
com.intellij.flex
com.intellij.freemarker
com.intellij.gwt
com.intellij.javaee.view
com.intellij.jboss.arquillian
com.intellij.jboss.core
com.intellij.jbpm
com.intellij.play
com.intellij.seam
com.intellij.seam.pageflow
com.intellij.seam.pages
com.intellij.struts2
com.intellij.tapestry
com.intellij.vaadin
com.intellij.velocity
com.jetbrains.plugins.asp
cucumber-groovy
cucumber-java
gherkin
hg4idea
org.coffeescript
org.intellij.grails
org.jetbrains.idea.eclipse
org.jetbrains.kotlin
org.jetbrains.plugins.haml
org.jetbrains.plugins.stylus
spy-js
143 changes: 143 additions & 0 deletions snowblocks/jetbrains/inspection/arctic-inspections.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<!--
Copyright (C) 2016-present Arctic Ice Studio <development@arcticicestudio.com>
Copyright (C) 2016-present Sven Greb <development@svengreb.de>
Project: igloo
Repository: https://github.com/arcticicestudio/igloo
License: MIT
-->
<profile version="1.0">
<option name="myName" value="arctic-inspections" />
<inspection_tool class="ArrayEquality" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="BashFloatArithmetic" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="BashSimpleArrayUse" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="BashUnregisterGlobalVariableInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="CheckEmptyScriptTag" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ClassHasNoToStringMethod" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="excludeClassNames" value="" />
<option name="excludeException" value="true" />
<option name="excludeDeprecated" value="true" />
<option name="excludeEnum" value="false" />
<option name="excludeAbstract" value="false" />
<option name="excludeTestCode" value="false" />
<option name="excludeInnerClasses" value="false" />
</inspection_tool>
<inspection_tool class="CollectionContainsUrl" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="DynamicRegexReplaceableByCompiledPattern" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="EqualsHashCodeCalledOnUrl" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="HtmlTagCanBeJavadocTag" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="layout:decorator" />
<item index="1" class="java.lang.String" itemvalue="layout:fragment" />
<item index="2" class="java.lang.String" itemvalue="th:fragment" />
<item index="3" class="java.lang.String" itemvalue="class" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
<inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="8">
<item index="0" class="java.lang.String" itemvalue="nobr" />
<item index="1" class="java.lang.String" itemvalue="noembed" />
<item index="2" class="java.lang.String" itemvalue="comment" />
<item index="3" class="java.lang.String" itemvalue="noscript" />
<item index="4" class="java.lang.String" itemvalue="embed" />
<item index="5" class="java.lang.String" itemvalue="script" />
<item index="6" class="java.lang.String" itemvalue="th:block" />
<item index="7" class="java.lang.String" itemvalue="style" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
<inspection_tool class="IOResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredTypesString" value="java.io.ByteArrayOutputStream,java.io.ByteArrayInputStream,java.io.StringBufferInputStream,java.io.CharArrayWriter,java.io.CharArrayReader,java.io.StringWriter,java.io.StringReader" />
<option name="insideTryAllowed" value="false" />
</inspection_tool>
<inspection_tool class="IgnoreUnusedEntry" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="InconsistentLineSeparators" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="JDBCResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="insideTryAllowed" value="false" />
</inspection_tool>
<inspection_tool class="JNDIResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="insideTryAllowed" value="false" />
</inspection_tool>
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="INNER_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="METHOD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
</value>
</option>
<option name="FIELD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="IGNORE_DEPRECATED" value="false" />
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
<option name="myAdditionalJavadocTags" value="{inheritDoc}" />
</inspection_tool>
<inspection_tool class="JavaLangImport" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MissingDeprecatedAnnotation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MissingPackageInfo" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="OnDemandImport" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PackageDotHtmlMayBePackageInfo" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PackageInfoWithoutPackage" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ProblematicWhitespace" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PublicStaticArrayField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="RedundantMethodOverride" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SamePackageImport" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SetReplaceableByEnumSet" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SocketResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="insideTryAllowed" value="false" />
</inspection_tool>
<inspection_tool class="StringEqualsEmptyString" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="StringReplaceableByStringBuffer" enabled="true" level="WARNING" enabled_by_default="true">
<option name="onlyWarnOnLoop" value="true" />
</inspection_tool>
<inspection_tool class="TodoComment" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UnnecessaryInheritDoc" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UnnecessaryJavaDocLink" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreInlineLinkToSuper" value="false" />
</inspection_tool>
<inspection_tool class="UnusedImport" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WeakerAccess" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS" value="true" />
<option name="SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES" value="true" />
<option name="SUGGEST_PRIVATE_FOR_INNERS" value="false" />
</inspection_tool>
<inspection_tool class="unused" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="LOCAL_VARIABLE" value="true" />
<option name="FIELD" value="true" />
<option name="METHOD" value="true" />
<option name="CLASS" value="true" />
<option name="PARAMETER" value="true" />
<option name="REPORT_PARAMETER_FOR_PUBLIC_METHODS" value="true" />
<option name="ADD_MAINS_TO_ENTRIES" value="true" />
<option name="ADD_APPLET_TO_ENTRIES" value="true" />
<option name="ADD_SERVLET_TO_ENTRIES" value="true" />
<option name="ADD_NONJAVA_TO_ENTRIES" value="true" />
</inspection_tool>
</profile>
Loading

0 comments on commit 2fa3d1d

Please sign in to comment.