Skip to content

Latest commit

 

History

History
291 lines (236 loc) · 12.9 KB

CHANGELOG.md

File metadata and controls

291 lines (236 loc) · 12.9 KB

0.33

  • Added inlay hints for vararg array allocation
  • Shortening pathData when rewriting
  • Fix upcast hints confusing variadic argument with lambda parameter
  • Vector pathData error correction when trimming relative commands

0.32

  • IDEA 2024.1 compatibility

0.31

  • Use IntelliJ ColorPicker instead of Android one, resolves #57
  • Skip KDoc/comments when folding backing property

0.30

  • Fix Color.parseColor("cyan") mistakenly rendered yellow (copy-paste error, he-he)
  • Report that <layer-list><item android:gravity> requires API 23
  • Android Studio Hedgehog and Iguana compatibility (someone please tell Google that I'm tired with their zoo)

0.29

  • BigDecimal|BigInteger constant inspection: full number parsing (e.g. "0" = "0000.0000" = "0e10") and Java 9's BigInteger.TWO constant support
  • Removed “Nullable argument to string concatenation” because of false-positives
  • Stopped reporting AnyEnum.values() calls in non-static context, leave this to Kotlin team and their new AnyEnum.entries feature
  • Reporting new OkHttpClient() in “Allocation should be cached” inspection (and not reporting Gson.Builder(), it could be configured somehow)
  • Previewing even less opaque colors, >= 0x19 instead of > 0x27, useful for Ripple
  • Don't showing useless interface hints for anonymous classes
  • Reporting heavyweight property delegation for vars, not only vals
  • Stop logging errors on R.styleable when trying to find un-sorted styled attributes
  • Stop reporting empty layer-list on LayerList subclasses like Ripple
  • Stop reporting absent getConstantState() for Java type variables

0.28

  • Added live templates for implementing Property for ObjectAnimator
  • Reporting that Activity#onCreate(, PersistableBundle) will highly likely not be called
  • Reporting that <AnyScrollableView> should have an ID to save its scroll position

0.27

  • Inspecting more drawable types
  • Reporting Drawable classes without getConstantState()
  • Eliminated some false-positives on useless fillColor/Alpha, strokeWidth/Color/Alpha
  • Vector underdraw detection ((sub-)path adds nothing to the image)
  • Suggest merging sibling vector path and clip-path pathData
  • Unhidden interface hints from IDE settings
  • Added color picker

0.26

  • Moved from Trove to fastutil, fixes crash on new IDE builds
  • Reworked upcast hints, fixes various bugs
  • Not showing override hints for single-interface anonymous classes

0.25

  • Fixed trimming tails in pathData for floats with exponent
  • Fixed crash when parsing pathData which is incomplete or starts with spaces/linebreaks/etc
  • Fixed handling overdraw of clipped paths
  • Reporting that RecyclerView.setOnClickListener is unsupported; stopped mistakenly reporting VideoView.setOnTouchListener
  • Quickfix for removing empty vector sub-path and fixing the following relative moveTo command
  • Quickfix for splitting <path> tag
  • Live templates for SVG and Android Vector Drawable pathData
  • Suggest merging (layout_margin|padding)(Left|Top|Right|Bottom|Start|End) pairs into (Horizontal|Vertical) even for SDK<22 (without highlight though)

0.24

  • Showing a quickfix for inlining layer-list only if on-the-fly to force conscious choice
  • UselessResElement: merging intersecting sub-path into single to support “donut hole” effect

0.23

  • Added inspection about programmatic GradientDrawable (a.k.a. <shape>) attribute application order
  • Support comparison operators when reporting `Big(Integer|Decimal).compareTo(ZERO)`
  • Fixed binary incompatibility with Android Studio Chipmunk | 2021.2.1 Patch 1
  • Reporting unsorted arrays passed to obtainStyledAttributes
  • Relaxed warning on “useless” layer-lists: they may actually behave differently than insets
  • Fallen back to standard introduceConstantHandler when suggesting fix for uncached allocations inspection due to incompatibility with IU-222.2270.31 (2022.2 (eap)) (may not work for Kotlin)
  • When pasting colors in Kotlin, adding .toInt() only if necessary
  • When detecting vector <group> usefulness, looking at successors, not siblings

0.22

  • Fix reflective property replacement search when name is capitalized
  • More compact backing property folding
  • Suggest merging (layout_margin|padding)(Left|Top|Right|Bottom|Start|End) pairs into (Horizontal|Vertical)
  • Fix clip-path application order in UselessResourceElement
  • Split vector paths and report useless sub-paths separately
  • Skip Java keywords in Kotlin declaration if its container is not exposed

0.21

  • Fix interface upcast hints after last fix
  • Fix vector path optimizations: don't let numbers stick together when optimizing -0.01 to 0
  • Reporting Kotlin Android Extensions imports as deprecated
  • Reporting overridden attributes in (layout_margin|padding)(|Left|Top|Right|Bottom|Start|End|Horizontal|Vertical)
  • Added “Boxed primitive array allocation” inspection

0.20

  • Reworked Reflective Property Animation inspection with various fixes
  • Vector drawable analysis: better accuracy when detecting emptiness, fix crash on bad paths, add resource resolution, fix trimming accuracy
  • Fix crash due to absent libcore
  • Fix interface upcast inlay hints for lambda argument outside of parentheses

0.19

  • Detecting empty and single-item animation sets
  • Fixed Kotlin upcast hints for extension functions and named arguments
  • Added backing property folding for Kotlin
  • Added “Android utility methods should be replaced with Kotlin extension” inspection
  • Improved vector drawable inspection: reporting paths fully overdrawn by other paths

0.18

  • Numerous quickfix quality fixes: shorten references, reformat etc
  • “Function won't be inlined” inspection made disabled by default
  • “This allocation should be cached” inspection provides “Introduce constant” quickfix for Kotlin
  • Reporting `VideoView.setOnClickListener` which has no sense before Android API 26

0.17

  • Marked ConstantParseColor, ReflectPropAnimInspection, TargetApiInspection as cleanup tools
  • Added uselessDrawableElement inspection for Android
  • More accurate and less annoying UncachedAlloc inspection

0.16

  • Implemented Kotlin upcast hints. Reworked interface inlay hints so their settings reside with their colleagues
  • Transforming colors from CSS (#RRGGBB, #RRGGBBAA, rgb[a](r, g, b[, a])) to 0xAARRGGBB on paste
  • “Kotlin identifier is a Java keyword”: detecting keywords in a package directive
  • Android: reporting use of container parameter in AnyDialogFragment.onCreateView which is always null
  • BigDecimalConstant, BigDecimalSignum: BigInteger and Kotlin support, inspection description

0.15

  • Fixed crashes in ConcatNullable and inline/noinline function inspections
  • Override hints: showing FunctionN as (…) -> … (without actual type arguments, LOL)
  • More sensitive main interface detection heuristic for hints

0.14

  • Fixed WrongStateAttr for negative states
  • Gutter colors: improved performance and preview accuracy, added preview for @ColorInt constant references
  • Added folding of int literals which suspected to be colors
  • Removed XML-related inspections superseded by Android Lint: <bitmap tintMode, “<view class="@resource or ?themeAttribute"> is not supported”
  • Improved accuracy of “Nullable argument to String concatenation”, less false-positives
  • Added settings to disable upcast or override hints

0.13

  • Fixed NoSuchMethodError in ReflectPropAnimException
  • Added Android inspection: state attribute expected
  • Added Android inspection: parseColor(with constant string)
  • Added gutter icon: ColorInt preview

0.12

  • Fixed crash in TargetApiInspection

0.11

  • Added Kotlin inspection: “Nullable argument to string concatenation”
  • Stopped reporting “identifier is Java keyword” for functions with reified type parameters

0.10

  • Added BadCyrillicRegexp inspection
  • Shut up false-positive KtInlineFunctionLeaksAnonymousDeclaration
  • Less severity of ktNoinlineFunc for :: which are gonna be optimized
  • Added Android inspection: <view class="@resource or ?themeAttribute"> is not supported

0.9

  • Kotlin identifier is Java keyword: ignoring props with normal getter-setter, looking into @JvmName of getter-setter

0.8

  • added minSdk check for layout=?attr inspection
  • Added inspection for <bitmap tint=
  • fixed noinline function inspection to ignore return type
  • added quickfix to UncachedAlloc inspection
  • Upgraded main interface inference heuristic for override hints
  • migrate off deprecated API in EditorCustomElementRenderer by Dmitry Batrak
  • property animation quickfix for Kotlin

0.7

  • Less noise from KtNoinlineFuncInspection and UpcastHints
  • Added Java+Kotlin hints for interface method overrides
  • uncachedEnumValues inspection becomes uncachedAlloc and also detects new Gson()
  • @TargetApi quickfix now adds imports in Java
  • Caught up property delegation inspection with Kotlin 1.3.60

0.6

  • Added android inspection: Use of reflective ObjectAnimator/PropertyValuesHolder
  • Upcast hints made less noisy
  • Enum.values() without caching inspection supported for Kotlin files

0.5

  • Added Android inspection: @TargetApi should be replaced with @RequiresApi
  • Added Java hints for upcast to interface

0.4

  • Added Java inspection: BigDecimal instantiation can be replaced with constant by stokito
  • Added Java inspection: BigDecimal.compareTo(ZERO) can be replaced with signum() by stokito
  • Android plugin dependency made optional

0.3

  • Fixed NPE in “Atomic as volatile” inspection

0.2

  • “Kotlin declaration name is Java keyword” now inspects only declarations, also checks whether they are public to Java
  • “Kotlin identifier is Java keyword”: added @JvmName support

0.1

  • Added UAST inspection: Atomic can be replaced with volatile
  • Added UAST inspection: Calling Enum values() without caching
  • Added Kotlin inspection: Property delegation
  • Added Kotlin inspection: Declaration name is Java keyword
  • Added Kotlin inspection: Inline function leaks anonymous declaration
  • Added Kotlin inspection: Function won't be inlined; noinline callable references are a bit more expensive than noinline lambdas; function cannot be inlined if it is a receiver of an extension function
  • Added Android inspection: <include layout="?themeAttribute">