diff --git a/CHANGELOG.md b/CHANGELOG.md index 18c6d011..934ead13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - **Migration to the native IDE indexing** - EAP repository channel +- Prettier (.prettierignore) support [\#466](https://github.com/hsz/idea-gitignore/issues/466) **Fixed bugs:** diff --git a/README.md b/README.md index e3cc2f5c..b039a4ea 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,7 @@ Changelog - **Migration to the native IDE indexing** - EAP repository channel +- Prettier (.prettierignore) support [\#466](https://github.com/hsz/idea-gitignore/issues/466) **Fixed bugs:** diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml index 93e69887..0e922b70 100644 --- a/resources/META-INF/plugin.xml +++ b/resources/META-INF/plugin.xml @@ -30,6 +30,7 @@ .jshintignore (JSHint), .tfignore (Team Foundation), .p4ignore (Perforce), + .prettierignore (Prettier), .flooignore (Floobits), .eslintignore (ESLint), .cfignore (Cloud Foundry), @@ -83,6 +84,7 @@ Fixed bugs: @@ -242,6 +244,8 @@ implementationClass="mobi.hsz.idea.gitignore.lang.IgnoreParserDefinition"/> + + + + + + + + diff --git a/resources/icons/icon_prettier.png b/resources/icons/icon_prettier.png new file mode 100644 index 00000000..57fda360 Binary files /dev/null and b/resources/icons/icon_prettier.png differ diff --git a/resources/icons/icon_prettier@2x.png b/resources/icons/icon_prettier@2x.png new file mode 100644 index 00000000..4ae933d8 Binary files /dev/null and b/resources/icons/icon_prettier@2x.png differ diff --git a/resources/icons/icon_prettier@2x_dark.png b/resources/icons/icon_prettier@2x_dark.png new file mode 100644 index 00000000..cb8ebbca Binary files /dev/null and b/resources/icons/icon_prettier@2x_dark.png differ diff --git a/resources/icons/icon_prettier_dark.png b/resources/icons/icon_prettier_dark.png new file mode 100644 index 00000000..a1ba0be3 Binary files /dev/null and b/resources/icons/icon_prettier_dark.png differ diff --git a/resources/messages/IgnoreBundle.properties b/resources/messages/IgnoreBundle.properties index 2a47bd28..5823da6c 100644 --- a/resources/messages/IgnoreBundle.properties +++ b/resources/messages/IgnoreBundle.properties @@ -157,6 +157,7 @@ notification.update.content=
\ Features:
\ - Migration to the native IDE indexing
\ - EAP repository channel
\ +- Prettier (.prettierignore) support (#466)
\
\ Fixes:
\ - ~/.gitignore_global is not handled (#453)
\ diff --git a/src/mobi/hsz/idea/gitignore/IgnoreBundle.java b/src/mobi/hsz/idea/gitignore/IgnoreBundle.java index ebfb6f6f..4c5a58fd 100644 --- a/src/mobi/hsz/idea/gitignore/IgnoreBundle.java +++ b/src/mobi/hsz/idea/gitignore/IgnoreBundle.java @@ -87,6 +87,7 @@ private IgnoreBundle() { NodemonLanguage.INSTANCE, NpmLanguage.INSTANCE, PerforceLanguage.INSTANCE, + PrettierLanguage.INSTANCE, StyleLintLanguage.INSTANCE, StylintLanguage.INSTANCE, SwaggerCodegenLanguage.INSTANCE, diff --git a/src/mobi/hsz/idea/gitignore/file/type/kind/PrettierFileType.java b/src/mobi/hsz/idea/gitignore/file/type/kind/PrettierFileType.java new file mode 100644 index 00000000..75948d12 --- /dev/null +++ b/src/mobi/hsz/idea/gitignore/file/type/kind/PrettierFileType.java @@ -0,0 +1,44 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2017 hsz Jakub Chrzanowski + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package mobi.hsz.idea.gitignore.file.type.kind; + +import mobi.hsz.idea.gitignore.file.type.IgnoreFileType; +import mobi.hsz.idea.gitignore.lang.kind.PrettierLanguage; + +/** + * Describes Prettier file type. + * + * @author Jakub Chrzanowski + * @since 2.2.0 + */ +public class PrettierFileType extends IgnoreFileType { + /** Contains {@link PrettierFileType} singleton. */ + public static final PrettierFileType INSTANCE = new PrettierFileType(); + + /** Private constructor to prevent direct object creation. */ + private PrettierFileType() { + super(PrettierLanguage.INSTANCE); + } +} diff --git a/src/mobi/hsz/idea/gitignore/lang/kind/PrettierLanguage.java b/src/mobi/hsz/idea/gitignore/lang/kind/PrettierLanguage.java new file mode 100644 index 00000000..428a6ade --- /dev/null +++ b/src/mobi/hsz/idea/gitignore/lang/kind/PrettierLanguage.java @@ -0,0 +1,58 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2017 hsz Jakub Chrzanowski + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package mobi.hsz.idea.gitignore.lang.kind; + +import mobi.hsz.idea.gitignore.file.type.IgnoreFileType; +import mobi.hsz.idea.gitignore.file.type.kind.PrettierFileType; +import mobi.hsz.idea.gitignore.lang.IgnoreLanguage; +import mobi.hsz.idea.gitignore.util.Icons; +import org.jetbrains.annotations.NotNull; + +/** + * Prettier {@link IgnoreLanguage} definition. + * + * @author Jakub Chrzanowski + * @since 2.2.0 + */ +public class PrettierLanguage extends IgnoreLanguage { + /** The {@link PrettierLanguage} instance. */ + public static final PrettierLanguage INSTANCE = new PrettierLanguage(); + + /** {@link IgnoreLanguage} is a non-instantiable static class. */ + private PrettierLanguage() { + super("Prettier", "prettierignore", null, Icons.PRETTIER); + } + + /** + * Language file type. + * + * @return {@link PrettierFileType} instance + */ + @NotNull + @Override + public IgnoreFileType getFileType() { + return PrettierFileType.INSTANCE; + } +} diff --git a/src/mobi/hsz/idea/gitignore/util/Icons.java b/src/mobi/hsz/idea/gitignore/util/Icons.java index 6542fd35..8a7bd72a 100644 --- a/src/mobi/hsz/idea/gitignore/util/Icons.java +++ b/src/mobi/hsz/idea/gitignore/util/Icons.java @@ -92,6 +92,9 @@ public class Icons { /** Perforce icon. */ public static final Icon PERFORCE = IconLoader.getIcon("/icons/icon_perforce.png"); + /** Prettier icon. */ + public static final Icon PRETTIER = IconLoader.getIcon("/icons/icon_prettier.png"); + /** StyleLint icon. */ public static final Icon STYLELINT = IconLoader.getIcon("/icons/icon_stylelint.png");