Skip to content

Commit 5f5e8d0

Browse files
committed
Version 1.23
1 parent 236a580 commit 5f5e8d0

File tree

9 files changed

+233
-302
lines changed

9 files changed

+233
-302
lines changed

CHANGES.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
### 1.23
2+
* Some Suppression ids have been changed for consistency. See [Inspections.md](https://github.com/BlueBoxWare/LibGDXPlugin/Inspections.md) for an up to date list.
3+
* Reworking of JSON handling, fixing several bugs (like [#26](https://github.com/BlueBoxWare/LibGDXPlugin/issues/26)).
4+
* Display a warning when *.gwt.xml files are changed in a html module that a full rebuild is necessary.
5+
* JSON: highlight usages of the same key in a file, find usages of a key in a file, rename all usages of a key.
6+
7+
### 1.22.1
8+
* Bundle kotlin-reflect dependency.
9+
10+
### 1.22
11+
* Compatibility with Kotlin plugin 1.4.20+ ([#23](https://github.com/BlueBoxWare/LibGDXPlugin/issues/23))
12+
* Build for Java target 1.8 (fixes compatibility with Android Studio)
13+
14+
### 1.21
15+
* Changed plugin name to libGDX ([#22](https://github.com/BlueBoxWare/LibGDXPlugin/issues/22)).
16+
* Improvements and additions to the outdated library versions inspections.
17+
18+
### 1.20.2
19+
* Compatibility with IntelliJ 2020.1.
20+
21+
### 1.20.1
22+
* Fix NPE when running with IntelliJ 2019.2 EAP.
23+
24+
### 1.20
25+
* Skin files now use the standard IntelliJ method of suppressing warnings, with `//noinspection` comments.
26+
* libGDX JSON: allow suppression of warnings.
27+
* Skin files & libGDX JSON: spell checking.
28+
* Skin files & libGDX JSON: breadcrumbs.
29+
* libGDX JSON: move array element foward/backward intentions.
30+
31+
### 1.19
32+
* Support for libGDX style JSON ([#19](https://github.com/BlueBoxWare/LibGDXPlugin/issues/19)).
33+
In the project panel context menu use <i>Mark as libGDX style JSON</i> to have a file treated as libGDX JSON.
34+
35+
### 1.18
36+
* Support for com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator in Skin files ([#18](https://github.com/BlueBoxWare/LibGDXPlugin/issues/18)).
37+
* Minor fixes
38+
39+
### 1.17.2
40+
* Fix issue [#17](https://github.com/BlueBoxWare/LibGDXPlugin/issues/17).
41+
42+
### 1.17.1
43+
* Fix issues with IntelliJ 2018.3 EAP
44+
45+
### 1.17
46+
* Support for com.badlogic.gdx.graphics.Colors
47+
* Find Usages for tags in @GDXTag annotation
48+
* Unused tag inspection for @GDXTag annotation
49+
* Show color previews in decompiled classes too
50+
* Always show completion popup when there is something useful to show
51+
* Miscellaneous small improvements
52+
53+
### 1.16.1
54+
* Fix non existing resource inspection: it should only look at annotated elements
55+
56+
### 1.16
57+
* Inspection to highlight references in Java/Kotlin to resources which don't exist. @GDXAssets annotated
58+
fields and variables only.
59+
* Warn about outdated libraries in Gradle Kotlin DSL too
60+
* Performance improvements
61+
* Skins: Inspection to inform about the ability to use short class names instead of qualified names when
62+
using libGDX >= 1.9.9
63+
* Skins: Inspection to highlight usage of deprecated classes and fields
64+
* Skins: Quickfix to create resources which don't exist
65+
* Skins: Use the @GDXTag annotation to inform the plugin about custom short names for classes
66+
* Skins: Intentions to convert color resources to hex or to float components
67+
* Skins: Create new color wizard (`Code` -> `Generate` or `Alt-Insert`, `Command-N`)
68+
69+
### 1.15.2
70+
* Fix Settings pane ([#14](https://github.com/BlueBoxWare/LibGDXPlugin/issues/14)).
71+
* Add setting to enable/disable color previews in Skins
72+
73+
### 1.15.1
74+
* Don't crash on 'invalid' color values ([#13](https://github.com/BlueBoxWare/LibGDXPlugin/issues/13)).
75+
* Skins: don't treat parent property as special when using a libGDX version below 1.9.9
76+
77+
### 1.15
78+
* Skins: support tagged classes and cascading styles (libGDX 1.9.9, [#12](https://github.com/BlueBoxWare/LibGDXPlugin/issues/12)).
79+
* Minor fixes and improvements
80+
81+
### 1.14
82+
* Warning when @GDXAsset annotation is used on an invalid target
83+
* @GDXAsset related functionality now works correctly with array literals in the annotation (available
84+
since Kotlin 1.2)
85+
* Minor fixes
86+
87+
### 1.13
88+
* Completion for `I18NBundle.get()` and `I18NBundle.format()` arguments
89+
* Improved Go to definition, Find Usages and renaming support for properties keys
90+
* Invalid property key inspection for `I18NBundle.get()` and `I18NBundle.format()`
91+
92+
### 1.12
93+
* New inspection: missing `WRITE_EXTERNAL_STORAGE` permission
94+
* Skin files: improved autocompletion, refactoring support and string handling
95+
* Bugfixes
96+
97+
### 1.11
98+
* Skin files:
99+
* Allow suppression of warnings for specific objects or entire file
100+
* Added quickfixes to suppress warnings
101+
* Added a number of inspections
102+
* Smart closing quotes insertion and removal
103+
* Bugfixes
104+
* Previews for Textures/Drawables: with `SHIFT` pressed, hover over a region in an Atlas files, a Drawable
105+
name in a Skin file or Drawable name in Skin methods of a properly annotated Skin object.
106+
* Color previews in the debug view
107+
108+
### 1.10
109+
* Proper support for arrays and nested objects in Skin files
110+
* Fixed Structure View not updating when changing files
111+
112+
### 1.9
113+
* Support for Completion, Go to Definition and Find Usages of resources from Skin files and Atlas files in
114+
Java and Kotlin code. Use the @LibGDXAssets annotation to specify the files to use. See the README for usage
115+
instructions.
116+
* Atlas files: allow spaces in region names
117+
* Misc. bug fixes

Inspections.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
| Suppression ID | Name | Description |
2+
|---|---|---|
3+
| GDXAbbrClass | Use short class name | Notes when a short class name can be used for a standard scene2d.ui class instead of the full class name (libGDX >= 1.9.9). |
4+
| GDXDuplicateProperty | Duplicate properties in Skin files | Looks for duplicate properties in Skin files. |
5+
| GDXDuplicateResource | Duplicate resource names in Skin files | Looks for duplicate resource name in Skin files. |
6+
| GDXGradlePropertiesTestId | Test/dummy IDs in gradle.properties | Looks for the use of some known test IDs. |
7+
| GDXGradleTestId | Test/dummy IDs in build.gradle | Looks for the use of some known test IDs. |
8+
| GDXInvalidEscape | Invalid escape sequence | Marks invalid escape sequences in libGDX style JSON files. |
9+
| GDXJavaAssetsFileError | @GDXAssets problem | Checks for problems related to @GDXAssets annotations |
10+
| GDXJavaFlushInsideLoop | Flushing a batch inside a loop | Looks for the possibility of a flush of a batch or renderer occuring inside a loop, either directly or indirectly. <br />For performance reasons care should be taken to not cause unnecessary flushes, and to limit the number of flushes per frame as much as possible. <br />Note that calling SpriteBatch.draw(..) with a different texture also causes a flush, which is not detected by this inspection. Use a <a href="https://github.com/libgdx/libgdx/wiki/Texture-packer">Texture Atlas</a> instead of many different textures. |
11+
| GDXJavaInvalidPropertyKey | Property key does not exist | Looks for the use of property keys which do not exist. |
12+
| GDXJavaLogLevel | Overly verbose log level | Looks for calls to Gdx.app.setLogLevel() setting the log level to LOG_INFO or LOG_VERBOSE, which while useful for debugging should propably not be used in production builds. |
13+
| GDXJavaMissingFlush | Missing flush on Preferences | Call Preferences.flush() to make sure changes to preferences are persisted. |
14+
| GDXJavaNonExistingAsset | Resource doesn't exist | Looks in Java and Kotlin code for usages of resources which don't exist. @GDXAssets annotated elements only. |
15+
| GDXJavaProfilingCode | Profiling code | Looks for profiling code, which should be disabled before release. |
16+
| GDXJavaShapeRendererCrash | Using problematic ShapeRenderer | Using ShapeRenderer with libGDX versions prior to 1.9.2 causes a crash on ARM64 Android devices. Upgrade to libGDX to version 1.9.2 or higher (see <a href="https://github.com/libgdx/libgdx/issues/3790">https://github.com/libgdx/libgdx/issues/3790</a>). |
17+
| GDXJavaStaticResource | Static resource | Don't make resources static, unless you take care to properly manage them. Static resources can cause problems on Android, because the life-cycle of a static variable is not necessarily the same as the life-cycle of your application. |
18+
| GDXJavaTestId | Test/dummy IDs | Looks for the use of some known test IDs. |
19+
| GDXJavaUnsafeIterator | Use of non reentrant iterator method | Iterator methods on libGDX collections return the same iterator instance each time the method is called. For nested or multithreaded iteration create a new iterator using the appropriate constructor. |
20+
| GDXJavaUnusedTag | Unused class tag | Looks for unused class tags in GDXTag annotations. |
21+
| GDXJsonDuplicateProperty | Duplicate property | Looks for properties which are defined multiple times in the same object. |
22+
| GDXKotlinAssetsFileError | @GDXAssets problem | Checks for problems related to @GDXAssets annotations |
23+
| GDXKotlinFlushInsideLoop | Flushing a batch inside a loop | Looks for the possibility of a flush of a batch or renderer occuring inside a loop, either directly or indirectly. <br />For performance reasons care should be taken to not cause unnecessary flushes, and to limit the number of flushes per frame as much as possible. <br />Note that calling SpriteBatch.draw(..) with a different texture also causes a flush, which is not detected by this inspection. Use a <a href="https://github.com/libgdx/libgdx/wiki/Texture-packer">Texture Atlas</a> instead of many different textures. |
24+
| GDXKotlinInvalidPropertyKey | Property key does not exist | Looks for the use of property keys which do not exist. |
25+
| GDXKotlinLogLevel | Overly verbose log level | Looks for calls to Gdx.app.setLogLevel() setting the log level to LOG_INFO or LOG_VERBOSE, which while useful for debugging should propably not be used in production builds. |
26+
| GDXKotlinMissingFlush | Missing flush on Preferences | Call Preferences.flush() to make sure changes to preferences are persisted. |
27+
| GDXKotlinNonExistingAsset | Resource doesn't exist | Looks in Java and Kotlin code for usages of resources which don't exist. @GDXAssets annotated elements only. |
28+
| GDXKotlinProfilingCode | Profiling code | Looks for profiling code, which should be disabled before release. |
29+
| GDXKotlinShapeRendererCrash | Using problematic ShapeRenderer | Using ShapeRenderer with libGDX versions prior to 1.9.2 causes a crash on ARM64 Android devices. Upgrade to libGDX to version 1.9.2 or higher (see <a href="https://github.com/libgdx/libgdx/issues/3790">https://github.com/libgdx/libgdx/issues/3790</a>). |
30+
| GDXKotlinStaticResource | Static resource | Don't make resources static, unless you take care to properly manage them. Static resources can cause problems on Android, because the life-cycle of a static variable is not necessarily the same as the life-cycle of your application.<br /><br />Note that Kotlin top-level properties and properties of object literals and companion objects are compiled to static properties. |
31+
| GDXKotlinTestId | Test/dummy IDs | Looks for the use of some known test IDs. |
32+
| GDXKotlinUnsafeIterator | Use of non reentrant iterator method | Iterator methods on libGDX collections return the same iterator instance each time the method is called. For nested or multithreaded iteration create a new iterator using the appropriate constructor. |
33+
| GDXKotlinUnusedTag | Unused class tag | Looks for unused class tags in GDXTag annotations. |
34+
| GDXMalformedColorString | Malformed color string | Looks in Skin files for malformed color strings. |
35+
| GDXMissingFilesPermission | Missing permissions for using external files | If you want to use external storage on Android you have to declare the appropriate permissions in AndroidManifest.xml. |
36+
| GDXMissingProperty | Missing properties in Skin files | Looks for missing mandatory properties in Skin files. |
37+
| GDXNonExistingClass | Non existing classes in Skin files | Looks in Skin files for classes that don't exist and the use of non static inner classes. |
38+
| GDXNonExistingField | Non existing fields in Skin files | Looks in Skin files for fields/properties that don't exist. |
39+
| GDXNonExistingFile | Non existing font files in Skin files | Looks for non existing font files in Skin files. |
40+
| GDXNonExistingResourceInAlias | Non existing resources in Skin files | Looks in Skin files for resource aliases for resources which do not exist. |
41+
| GDXOpenGLVersion | Missing OpenGL ES directive | If your application requires OpenGL ES 2 or 3 to function, add the appropriate declaration to the manifest: &lt;uses-feature android:glEsVersion="0x00020000" android:required="true" /&gt; or &lt;uses-feature android:glEsVersion="0x00030000" android:required="true" /&gt;. |
42+
| GDXOutdatedVersionGradleGroovy | Outdated library versions in Gradle build files | Looks for the use of outdated versions of some libGDX related libraries.<br><br>The following libraries are checked: anim8-gdx, Artemis-odb, Ashley, Autumn, Autumn MVC, blade-ink, Box2d, Box2dLights, Colorful, formic, Gdx AI, GDX Bullet, GDX Controllers, GDX FreeType, gdx-controllers-advanced, gdx-controllers-scene2d, gdx-dialogs, gdx-facebook, gdx-lml, gdx-lml-vis, Gdx-Pay, gdx-utils, gdx-utils-box2d, gdx-vfx, gdx-vfx-effects, Jaci, Jaci GWT, Joise, Kiwi, KTX actors, KTX app, KTX ashley, KTX assets, KTX assets-async, KTX async, KTX box2d, KTX collections, KTX freetype, KTX freetype-async, KTX graphics, KTX i18n, KTX inject, KTX json, KTX log, KTX math, KTX preferences, KTX scene2d, KTX style, KTX tiled, KTX vis, KTX vis-style, LibGDX, LibGDX Annotations, libGDX In-Game Console, libgdx-utils, libgdx-utils-box2d, make-some-noise, Noise4J, Overlap2D, RegExodus, Shape Drawer, spine-libgdx, SquidLib, SquidLib Extra, SquidLib Util, TenPatch, TypingLabel, Vis Runtime, VisUI, Web Sockets, Web Sockets Serialization |
43+
| GDXOutdatedVersionGradleKotlin | Outdated library versions in Gradle Kotlin build files | Looks for the use of outdated versions of some libGDX related libraries.<br><br>The following libraries are checked: anim8-gdx, Artemis-odb, Ashley, Autumn, Autumn MVC, blade-ink, Box2d, Box2dLights, Colorful, formic, Gdx AI, GDX Bullet, GDX Controllers, GDX FreeType, gdx-controllers-advanced, gdx-controllers-scene2d, gdx-dialogs, gdx-facebook, gdx-lml, gdx-lml-vis, Gdx-Pay, gdx-utils, gdx-utils-box2d, gdx-vfx, gdx-vfx-effects, Jaci, Jaci GWT, Joise, Kiwi, KTX actors, KTX app, KTX ashley, KTX assets, KTX assets-async, KTX async, KTX box2d, KTX collections, KTX freetype, KTX freetype-async, KTX graphics, KTX i18n, KTX inject, KTX json, KTX log, KTX math, KTX preferences, KTX scene2d, KTX style, KTX tiled, KTX vis, KTX vis-style, LibGDX, LibGDX Annotations, libGDX In-Game Console, libgdx-utils, libgdx-utils-box2d, make-some-noise, Noise4J, Overlap2D, RegExodus, Shape Drawer, spine-libgdx, SquidLib, SquidLib Extra, SquidLib Util, TenPatch, TypingLabel, Vis Runtime, VisUI, Web Sockets, Web Sockets Serialization |
44+
| GDXOutdatedVersionGradleProperties | Outdated library versions in gradle.properties files | Looks for the use of outdated versions of some libGDX related libraries.<br><br>The following libraries are checked: anim8-gdx, Artemis-odb, Ashley, Autumn, Autumn MVC, blade-ink, Box2d, Box2dLights, Colorful, formic, Gdx AI, GDX Bullet, GDX Controllers, GDX FreeType, gdx-controllers-advanced, gdx-controllers-scene2d, gdx-dialogs, gdx-facebook, gdx-lml, gdx-lml-vis, Gdx-Pay, gdx-utils, gdx-utils-box2d, gdx-vfx, gdx-vfx-effects, Jaci, Jaci GWT, Joise, Kiwi, KTX actors, KTX app, KTX ashley, KTX assets, KTX assets-async, KTX async, KTX box2d, KTX collections, KTX freetype, KTX freetype-async, KTX graphics, KTX i18n, KTX inject, KTX json, KTX log, KTX math, KTX preferences, KTX scene2d, KTX style, KTX tiled, KTX vis, KTX vis-style, LibGDX, LibGDX Annotations, libGDX In-Game Console, libgdx-utils, libgdx-utils-box2d, make-some-noise, Noise4J, Overlap2D, RegExodus, Shape Drawer, spine-libgdx, SquidLib, SquidLib Extra, SquidLib Util, TenPatch, TypingLabel, Vis Runtime, VisUI, Web Sockets, Web Sockets Serialization |
45+
| GDXSkinDeprecated | Usage of deprecated class/field | Looks for the use of deprecated classes and fields in Skin files. |
46+
| GDXSkinType | Type errors in Skin files | Looks for type errors in Skin files. |
47+
| GDXToplevel | Invalid toplevel value | The toplevel value of a JSON file should be an object. |
48+
| GDXXmlTestId | Test/dummy IDs | Looks for the use of some known test IDs. |

README.md

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,7 @@ to the newest version, go to: *Tools* -> *Kotlin* -> *Configure Kotlin Plugin Up
3232
## Inspections
3333
libGDXPlugin adds several inspections, which look for possible issues in a project. Code inspections support both Java and
3434
[Kotlin](https://kotlinlang.org/). To disable or enable inspections go to *Settings* -> *Editor* -> *Inspections* -> *libGDX*.
35-
The following inspections are included:
36-
37-
* Use of profiling code, like FPSLogger or GLProfiler
38-
* Setting an overly verbose log level
39-
* Causing flushing of a batch or renderer from inside a loop
40-
* Missing flush() after changing Preferences
41-
* Use of some commonly known test ids or dummy ids (ex. AdMob and MoPub)
42-
* Use of ShapeRenderer with a release of libGDX older than 1.9.2 (It crashes on 64bit devices. See [Issue 3790](https://github.com/libgdx/libgdx/issues/3790)) \[1]
43-
* Use of static resources (more info on the use of statics: [here](http://bitiotic.com/blog/2013/05/23/libgdx-and-android-application-lifecycle/) and [here](http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=22358))
44-
* Use of non-reentrant iterator methods of libGDX collection classes
45-
* Missing OpenGL declaration in AndroidManifest.xml \[1]
46-
* Invalid property keys for I18NBundle.get() and I18NBundle.format()
47-
* Missing WRITE_EXTERNAL_STORAGE permission in AndroidManifest.xml when using external files
48-
* Using outdated versions of libGDX and related libraries \[1]
49-
* Declaring a combination of minSdkVersion, maxSdkVersion, targetSdkVersion and &lt;support-screens&gt; which excludes the App from being listed as "Designed for Tablets" in the Google Play Store \[1]
50-
51-
\[1]: These inspections assume the project uses a fairly standard setup, like those created by `gdx-setup` and [`gdx-liftoff`](https://github.com/tommyettinger/gdx-liftoff).
35+
See [Inspections.md](Inspections.md]) for an up to date list.
5236

5337
## Color previews
5438
When using a libGDX color in Java or Kotlin code (e.g. `Color.BLUE` or `Color.valueOf("#0000ff")`) a preview of the the color is shown in the left gutter.

build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ intellij {
4242

4343
}
4444

45+
// TODO
46+
tasks.buildSearchableOptions {
47+
enabled = false
48+
}
49+
4550
runIde {
4651
maxHeapSize = "2g"
4752
systemProperties = [

0 commit comments

Comments
 (0)