Plugin which generates Android Parcelable boilerplate code for kotlin's class.

Overview

Android Parcelable boilerplate code generation

Inspired by android-parcelable-intellij-plugin

Installation

Plugin is uploaded to plugin repository. If you like, you can also install it manually:

  1. Download ParcelableGenerator release
  2. Open IntelliJ/Android Studio
  3. Preferences -> Plugins -> Install plugin from disk....
  4. Choose the downloaded jar file

Dependencies

It depends on the latest version of Kotlin plugin.

Usage

Just press ALT + Insert (or your equivalent keybinding for code generation) in your editor and select Parcelable. It will auto generate Parcelable boilerplate code for your class.

Now Suported Types

  • Types implementing Parceable or Serializable
  • List of Parcelable objects
  • Array of Parcelable objects
  • Primitive Kotlin types: String, Byte, Double, Float, Int, Long, Boolean, Char
  • Kotlin Array types: Array<String>, ByteArray, DoubleArray, FloatArray, IntArray, LongArray, CharArray, BooleanArray
  • List of any objects (Warning: validation is not performed)
  • Enum type

License

Copyright (C) 2016 Nekocode (https://github.com/nekocode)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • uncaught NoSuchMethodError

    uncaught NoSuchMethodError

    Hi guys,

    this plugin worked pretty good for me before, today I am getting this plugin crash while trying to generate parcelable code. This error occurs even when I try to regenerate code at existed classes. I tried to clear cache and restart, clean project, reinstall plugin, degrade kotlin version, even new project. Nothing helps.

    Kotlin 1.0.5-2 Android Studio 2.2.3 Build #AI-145.3537739, built on December 2, 2016 JRE: 1.8.0_112-release-b05 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

    Plugin Error: Parcelable Code Generator(for kotlin) threw an uncaught NoSuchMethodError. Disable Plugin
    NoSuchMethodError: org.jetbrains.kotlin.descriptors.ClassDescriptor.getUnsubstitutedPrimaryConstructor()Lorg/jetbrains/kotlin/descriptors/ConstructorDescriptor;
    
    bug 
    opened by Spazzze 14
  • Plugin Exception

    Plugin Exception

    Using Android Studio 1.5.1 and trying to install this plugin, all I get is the following exception which might have something to do with compiled version?

    cannot create class "cn.nekocode.plugin.parcelablegenerator.ParcelableAction" [Plugin:     cn.nekocode.plugin.parcelablegenerator]
    com.intellij.diagnostic.PluginException: cannot create class "cn.nekocode.plugin.parcelablegenerator.ParcelableAction" [Plugin: cn.nekocode.plugin.parcelablegenerator]
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:178)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convert(ActionManagerImpl.java:518)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:498)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:491)
        at com.intellij.openapi.actionSystem.DefaultActionGroup.unStub(DefaultActionGroup.java:354)
        at com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:312)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$5.compute(ActionManagerImpl.java:1323)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$5.compute(ActionManagerImpl.java:1316)
        at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1316)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1310)
        at com.intellij.codeInsight.generation.actions.GenerateAction.preload(GenerateAction.java:99)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1328)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1331)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.preloadActionGroup(ActionManagerImpl.java:1310)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.doPreloadActions(ActionManagerImpl.java:1298)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.access$200(ActionManagerImpl.java:78)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$4.run(ActionManagerImpl.java:1281)
        at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:400)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:695)
        at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56)
    Caused by: com.intellij.diagnostic.PluginException: cn/nekocode/plugin/parcelablegenerator/ParcelableAction : Unsupported major.minor version 52.0 [Plugin: cn.nekocode.plugin.parcelablegenerator]
        at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:130)
        at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:77)
        at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:66)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:249)
        at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:154)
        ... 25 more
    Caused by: java.lang.UnsupportedClassVersionError: cn/nekocode/plugin/parcelablegenerator/ParcelableAction : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:471)
        at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:259)
        at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:255)
        at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:231)
        at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:124)
        ... 31 more
    
    opened by maarek 12
  • Bad style for generated code for constructor

    Bad style for generated code for constructor

    Version: 0.7.1 Android Studio: 2.2.3

    Response:

    constructor(source: Parcel) : this(
      source.readLong(),
      source.readString(),
      source.readString()
      )
    

    How it will be better:

    constructor(source: Parcel) : this(source.readLong(), source.readString(),  source.readString())
    
    bug 
    opened by danielgomezrico 8
  • optional fields

    optional fields

    If the class has optional fields, it might be helpful to use writeValue/readValue calls. With my optional fields, current plugin generates source.readString?() which is invalid, besides if I remove the '?', the function will probably result in NPE if field is null.

    bug 
    opened by CapnSpellcheck 7
  • Unneded '?' in classLoader declaration

    Unneded '?' in classLoader declaration

    I have val income: Income? property and following code is generated for it

    source.readParcelable<Income?>(Income?::class.java.classLoader)
    

    As you see the '?' mark in Income?::class.java.classLoader is not needed. And lint says "type in class literal must not be nullable".

    opened by Jeevuz 3
  • Support Enums

    Support Enums

    When I try to generate a parcelable class which contains an enum, it generates something like:

    enum class SortOrder {
        AlphaAscending ,
        AlphaDescending,
        Date
    }
    
    constructor(source: Parcel) : this(source.readSortOrder())
    
    override fun writeToParcel(dest: Parcel?, flags: Int) {
            dest?.writeSortOrder(sortOrder)
        }
    

    and cannot resolve those read or write methods. Not sure if this has something to do with my code, or this plugin.

    opened by Jawnnypoo 3
  • Compat generated code

    Compat generated code

    Will be cool if the generated code was more compact using one liner functions or something like:

    override fun describeContents(): Int = 0
    
    companion object {
        @JvmField val CREATOR: Parcelable.Creator<User> = object : Parcelable.Creator<User> {
          override fun createFromParcel(source: Parcel): User = User(source)
          override fun newArray(size: Int): Array<User?> = arrayOfNulls(size)
        }
      }
    

    instead of

    override fun describeContents(): Int {
        return 0
      }
    
      companion object {
        @JvmField final val CREATOR: Parcelable.Creator<User> = object : Parcelable.Creator<User> {
          override fun createFromParcel(source: Parcel): User {
            return User(source)
          }
    
          override fun newArray(size: Int): Array<User?> {
            return arrayOfNulls(size)
          }
        }
      }
    
    opened by danielgomezrico 2
  • Exception when using code generation in Java class, plugin enabled

    Exception when using code generation in Java class, plugin enabled

    I have this exception when i using code generation in Java class (IDEA 14.1.01674, java 1.7.0_79):

    org/jetbrains/kotlin/psi/KtFile java.lang.NoClassDefFoundError: org/jetbrains/kotlin/psi/KtFile at cn.nekocode.plugin.parcelablegenerator.ParcelableAction.getPsiClassFromEvent(ParcelableAction.java:82) at cn.nekocode.plugin.parcelablegenerator.ParcelableAction.update(ParcelableAction.java:69) at com.intellij.openapi.actionSystem.AnAction.beforeActionPerformedUpdate(AnAction.java:243) at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:111) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.b(PopupFactoryImpl.java:934) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.b(PopupFactoryImpl.java:924) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.buildGroup(PopupFactoryImpl.java:860) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.a(PopupFactoryImpl.java:257) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.(PopupFactoryImpl.java:214) at com.intellij.ui.popup.PopupFactoryImpl.a(PopupFactoryImpl.java:194) at com.intellij.ui.popup.PopupFactoryImpl.a(PopupFactoryImpl.java:168) at com.intellij.ui.popup.PopupFactoryImpl.createActionGroupPopup(PopupFactoryImpl.java:296) at com.intellij.codeInsight.generation.actions.GenerateAction.actionPerformed(GenerateAction.java:38) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$3.performAction(IdeKeyEventDispatcher.java:586) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:637) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.d(IdeKeyEventDispatcher.java:476) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:212) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:538) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

    java.lang.NoClassDefFoundError: org/jetbrains/kotlin/psi/KtFile at cn.nekocode.plugin.parcelablegenerator.ParcelableAction.getPsiClassFromEvent(ParcelableAction.java:82) at cn.nekocode.plugin.parcelablegenerator.ParcelableAction.update(ParcelableAction.java:69) at com.intellij.openapi.actionSystem.AnAction.beforeActionPerformedUpdate(AnAction.java:243) at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:111) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.b(PopupFactoryImpl.java:934) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.b(PopupFactoryImpl.java:924) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.buildGroup(PopupFactoryImpl.java:860) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.a(PopupFactoryImpl.java:257) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.(PopupFactoryImpl.java:214) at com.intellij.ui.popup.PopupFactoryImpl.a(PopupFactoryImpl.java:194) at com.intellij.ui.popup.PopupFactoryImpl.a(PopupFactoryImpl.java:168) at com.intellij.ui.popup.PopupFactoryImpl.createActionGroupPopup(PopupFactoryImpl.java:296) at com.intellij.codeInsight.generation.actions.GenerateAction.actionPerformed(GenerateAction.java:38) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$3.performAction(IdeKeyEventDispatcher.java:586) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:637) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.d(IdeKeyEventDispatcher.java:476) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:212) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:538) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

    java.lang.NoClassDefFoundError: org/jetbrains/kotlin/psi/KtFile at cn.nekocode.plugin.parcelablegenerator.ParcelableAction.getPsiClassFromEvent(ParcelableAction.java:82) at cn.nekocode.plugin.parcelablegenerator.ParcelableAction.update(ParcelableAction.java:69) at com.intellij.openapi.actionSystem.AnAction.beforeActionPerformedUpdate(AnAction.java:243) at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:111) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.b(PopupFactoryImpl.java:934) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.b(PopupFactoryImpl.java:924) at com.intellij.ui.popup.PopupFactoryImpl$ActionStepBuilder.buildGroup(PopupFactoryImpl.java:860) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.a(PopupFactoryImpl.java:257) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.(PopupFactoryImpl.java:214) at com.intellij.ui.popup.PopupFactoryImpl.a(PopupFactoryImpl.java:194) at com.intellij.ui.popup.PopupFactoryImpl.a(PopupFactoryImpl.java:168) at com.intellij.ui.popup.PopupFactoryImpl.createActionGroupPopup(PopupFactoryImpl.java:296) at com.intellij.codeInsight.generation.actions.GenerateAction.actionPerformed(GenerateAction.java:38) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$3.performAction(IdeKeyEventDispatcher.java:586) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:637) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.d(IdeKeyEventDispatcher.java:476) at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:212) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:538) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

    opened by sosmolovskii 2
  • Plagiarism ?

    Plagiarism ?

    Hello @nekocode and @xorsk I'm just accidentally browse some kotlin plugin through android studio and found that this man also re-publish your plugin with the same name with yours Parcelable Code Generator Hope this information helps both of you.

    opened by rhonyabdullah 1
  • Companion object should be below method declarations

    Companion object should be below method declarations

    According to the official style guide the companion object should be below the methods: https://github.com/JetBrains/kotlin-web-site/blob/636fe9e9d799eaa1e5c9d02b838f45aab1a13af2/pages/docs/reference/coding-conventions.md#class-layout

    Its a small change but would you be able to swap the default layout to match this?

    enhancement 
    opened by REggar 1
  • Use apply writing values to improve readability

    Use apply writing values to improve readability

    To make the generated code more idiomatic you can use apply to apply things to the same object, sample:

    Before:

    override fun writeToParcel(dest: Parcel, flags: Int) {
        dest.writeLong(id)
        dest.writeString(firstName)
        dest.writeString(lastName)
        dest.writeString(affiliation)
        dest.writeString(about)
        dest.writeString(city)
        dest.writeString(state)
        dest.writeString(country)
        dest.writeDouble(latitude)
        dest.writeDouble(longitude)
        dest.writeTypedList(subtopics)
        dest.writeInt((if (isTopExpert) 1 else 0))
      }
    

    After:

    override fun writeToParcel(dest: Parcel, flags: Int) = dest.apply {
        writeLong(id)
        writeString(firstName)
        writeString(lastName)
        writeString(affiliation)
        writeString(about)
        writeString(city)
        writeString(state)
        writeString(country)
        writeDouble(latitude)
        writeDouble(longitude)
        writeTypedList(subtopics)
        writeInt((if (isTopExpert) 1 else 0))
      }
    
    enhancement 
    opened by danielgomezrico 1
  • Improvements idea

    Improvements idea

    The idea was took from https://medium.com/@BladeCoder/reducing-parcelable-boilerplate-code-using-kotlin-741c3124a49a.

    If you have an internal KParcelable then:

    1. You dont have to put describeContents everywhere.
    interface KParcelable : Parcelable {
        override fun describeContents() = 0
        override fun writeToParcel(dest: Parcel, flags: Int)
    }
    
    1. You can have a parcelableCreator function like:
    inline fun <reified T> parcelableCreator(crossinline create: (Parcel) -> T): 
    Parcelable.Creator<T> {
        return object : Parcelable.Creator<T> {
            override fun createFromParcel(source: Parcel) = create(source)
            override fun newArray(size: Int) = arrayOfNulls<T>(size)
        }
    }
    

    to write simpler creators:

    companion object {
            @JvmField
            val CREATOR: Parcelable.Creator<RealEstate> = parcelableCreator(::RealEstate)
        }
    
    opened by danielgomezrico 0
  • Deserialization for list parcelable crashes when you call writeTypedList(null) first

    Deserialization for list parcelable crashes when you call writeTypedList(null) first

    Current generated code for list of parcelables will crash if you put an empty list.

    Error example

    Caused by: java.lang.IllegalStateException: source.createTypedArrayL…(AvatarUrlHolder.CREATOR) must not be null
    

    Example code

    class AvatarUrlHolder(val id: Long, val url: String) : Parcelable {
    
      constructor(source: Parcel) : this(source.readLong(), source.readString())
    
      override fun describeContents() = 0
    
      override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) {
        writeLong(id)
        writeString(url)
      }
    
      companion object {
        @JvmField
        val CREATOR: Parcelable.Creator<AvatarUrlHolder> = object : Parcelable.Creator<AvatarUrlHolder> {
          override fun createFromParcel(source: Parcel): AvatarUrlHolder = AvatarUrlHolder(source)
          override fun newArray(size: Int): Array<AvatarUrlHolder?> = arrayOfNulls(size)
        }
      }
    
    }
    
    // Class that have the list
    class People(val avatars: List<AvatarUrlHolder>) : Parcelable {
    
      constructor(source: Parcel) : this(
        source.createTypedArrayList(AvatarUrlHolder.CREATOR)
      )
    
      override fun describeContents() = 0
    
      override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) {
        writeTypedList(agreedExpertsAvatars)
      }
    
      companion object {
        @JvmField
        val CREATOR: Parcelable.Creator<People> = object : Parcelable.Creator<People> {
          override fun createFromParcel(source: Parcel): People = People(source)
          override fun newArray(size: Int): Array<People?> = arrayOfNulls(size)
        }
      }
    }
    

    If you create the people with People(listOf()) the method writeTypedList will crash with:

    Caused by: java.lang.IllegalStateException: source.createTypedArrayL…(AvatarUrlHolder.CREATOR) must not be null
    

    Solution

    This can be fixed if the generated code in the constructor looks like:

    listOf<AvatarUrlHolder>().apply {
      source.readTypedList(this, AvatarUrlHolder.CREATOR)
    }
    

    instead of:

    source.createTypedArrayList(AvatarUrlHolder.CREATOR)
    
    opened by danielgomezrico 1
  • Request: allow to use the new androidExtensions  way

    Request: allow to use the new androidExtensions way

    It's much shorter code:

    gradle file:

    apply plugin: 'org.jetbrains.kotlin.android.extensions' androidExtensions { experimental = true }

    sample code of a class with 3 Dates in it:

    @SuppressLint("ParcelCreator")
    @Parcelize
    class MonthItem(val today: Date, val startDate: Date, val endDate: Date) : Parcelable {
    }
    

    The plugin here will only ask us which fields to add there, and which to ignore. Maybe also the order.

    opened by AndroidDeveloperLB 0
  • ClassCastException: org.jetbrains.kotlin.psi.KtAnnotationEntry cannot be cast to org.jetbrains.kotlin.psi.KtParameter

    ClassCastException: org.jetbrains.kotlin.psi.KtAnnotationEntry cannot be cast to org.jetbrains.kotlin.psi.KtParameter

    Android Studio 2.3.3 Build #AI-162.4069837, built on June 6, 2017 JRE: 1.8.0_112-release-b06 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Kotlin version: 1.1.4-3

    Plugin is crashing with following stacktrace:

    plugin-crash

    opened by sreejithbnaick 5
  • Plugin works only with default constructor vars

    Plugin works only with default constructor vars

    For some reason your plugin takes into account only vars that are declared in the default constructor and doesn't see any outstanding vars. IMO it's a bug, since some attributes are not supposed to be a part of the constructor, but are supposed to be preserved through Parcelable.

    enhancement 
    opened by n-belokopytov 2
  • How to get the kotlin-plugin.jar

    How to get the kotlin-plugin.jar

    hi,i want to learn how to develop plugin for kotlin . but when i pull your project , the library about kotlin is not found. like "KtClass" and so on. please tell me how to build this project

    question 
    opened by JDDJJ 3
Releases(0.7.2)
Owner
nekocode
Hack it.
nekocode
Kotlin compiler plugin generates support synthetic methods for use SaveStateHandle without constants and string variables.

SavedState Compiler Plugin Kotlin compiler plugin generates support methods for use SaveStateHandle without constants and string variables. Example If

Anton Nazarov 3 Sep 20, 2022
UTBotJava generates test cases by code, trying to cover maximum statements and execution paths.

UTBotJava generates test cases by code, trying to cover maximum statements and execution paths. We treat source code as source of truth assuming that behavior is correct and corresponds to initial user demand. Generated tests are placed in so-called regression suite

null 60 Jan 3, 2023
Ownership-gradle-plugin - Gradle code ownership verification plugin

Gradle code ownership verification plugin A gradle plugin that will verify owner

null 4 Dec 15, 2022
gradle-android-scala-plugin adds scala language support to official gradle android plugin

gradle-android-scala-plugin gradle-android-scala-plugin adds scala language support to official gradle android plugin. See also sample projects at htt

saturday06 345 Dec 10, 2022
eventbus-intellij-plugin 3.8 0.0 L1 Java Plugin to navigate between events posted by EventBus.

eventbus-intellij-plugin Plugin to navigate between events posted by EventBus. Post to onEvent and onEvent to Post Install There are two ways. Prefere

Shinnosuke Kugimiya 315 Aug 8, 2022
IntelliJ Idea Astor Plugin is a plugin that integrates Astor in Intellij Idea

IntelliJ Idea Astor Plugin IntelliJ Idea Astor Plugin is a plugin that integrates Astor in Intellij Idea. It communicates with a local/remote program

null 4 Aug 28, 2021
Intellij-platform-plugin-template - IntelliJ Platform Plugin Template

IntelliJ Platform Plugin Template TL;DR: Click the Use this template button and

null 0 Jan 1, 2022
BuildPlots-Plugin - PaperMC-Plugin for build contests written in Kotlin.

BuildPlotsPlugin PaperMC-Plugin for build contests. This is my first time using Kotlin and the first plugin I've written after a long time. It is stil

Lukas Heinzl 0 Jan 1, 2022
K6-intellij-plugin - IntelliJ-based Plugin to run k6 tests locally or in the k6 Cloud from your IntelliJ IDE

IntelliJ-based Plugin to run k6 tests locally or in the k6 Cloud from your Intel

Mikhail Bolotov 8 Jan 2, 2023
Gradle plugin which downloads and manages your Android SDK.

DEPRECATED This plugin is deprecated and is no longer being developed. Tools and dependencies are automatically downloaded using version 2.2.0 of the

Jake Wharton 1.4k Dec 29, 2022
Gradle plugin which helps you analyze the size of your Android apps.

Ruler Ruler is a Gradle plugin which helps you analyze the size of your Android apps. Motivation App size is an important metric which directly correl

Spotify 913 Dec 28, 2022
IntelliJ plugin that provides a modern and powerful byte code analyzer tool window.

IntelliJ Byte Code Analyzer Plugin This IntelliJ plugin provides a modern and powerful byte code analyzer tool window. Its supports Java, Kotlin, Groo

Marcel Kliemannel 29 Nov 9, 2022
A plugin for Jetbrains IDE, Your code is powerful, unleash it like playing osu!

Osu! Mode A plugin for Jetbrains IDE, Your code is powerful, unleash it like playing osu! Demo 2021-10-15.18-50-30.mp4 Bilibili Feature open project /

Nthily 8 Sep 8, 2022
CKlib is a gradle plugin that will build and package C/C++/Objective-C code for Kotlin/Native.

C Klib CKlib is a gradle plugin that will build and package C/C++/Objective-C code for Kotlin/Native. The Problem When you want to access C-etc code f

Touchlab 73 Nov 8, 2022
Intellij Idea Plugin that can convert HTML to Compose for Web code.

HtmlToComposeWebConverter Intellij Idea Plugin that can convert HTML to Compose for Web code. Turn this: Into this: Show some ❤️ and star the repo to

Jens Klingenberg 90 Oct 10, 2022
Kirill Rakhman 4 Sep 15, 2022
An IntelliJ IDEA plugin is used to inspire you to write code.

InspireWritingPlugin An IntelliJ IDEA plugin is used to inspire you to write code. Whenever you write code that exceeds the specified character, the p

Airsaid 6 Feb 11, 2021
Social share - Social Sharing Plugin For Private Use only (Code without error checking)

Flutter Social Share plugin for sharing file to media with multiple (More option

MP IT SPACE 0 Mar 19, 2022
Dokka plugin to render Mermaid graphics, from your code comments to your Dokka documentation.

Dokka plugin to render Mermaid graphics, from your code comments to your Dokka documentation.

Grégory Lureau 24 Jan 7, 2023