Ad

How To Create A Kotlin Live Template For NewInstance Fragments Using Android Studio

I'm searching for a way to create a new Kotlin live code template so that whenever I type newIns.... it and hit tab it will be able to print the following as a live template choice:

companion object {
    fun newInstance(b: Bundle): DetailsFragment {
        val frag = DetailsFragment()
        frag.arguments = b
        return frag
    }
}

In Java, it was done the same way and there is already a "newInstance" abbreviation and a live template exists in Android Studio. I want the same thing for Kotlin. Let me show you a photo :

enter image description here

Notice that, Java Android already has newInstance template. I want this for Kotlin. Here is what I have so far:

enter image description here

and the template code I have so far looks like this:

companion object { 
    fun newInstance($args$:Bundle):$fragment$ {
        $nullChecks$
        android.os.Bundle args = Bundle();
        $addArgs$
        $fragment$ fragment = $fragment$();
        fragment.setArguments(args);
        return fragment;
    }
}

but when I exit the settings and in Kotlin type the first few words of the abbreviation and hit tab or ctrl + spacebar on mac nothing happens. I guess I have the syntax wrong, I'm not sure. Anyone of suggestions?

Ad

Answer

Step 1:

Go to Live Templates section in Android Studio.

For Windows:

File >Settings >Editor >Live Templates

For Mac:

Android Studio >Preferences >Editor >Live Templates

Step 2:

Select Kotlin template group. Then tap on + present at the top-right corner of the popup. Select Live Template.

Step 3:

Now you can add your live template. Check at the bottom of the popup.

Add abbreviation: newInstance

Add description: Creates an instance of the fragment with arguments

Add template text:

companion object {
    fun newInstance(args: Bundle): $fragment$ {
        val fragment = $fragment$()
        fragment.arguments = args
        return fragment
    }
}

Add applicable context. Tap on Define. Select Kotlin from the list.

Select Reformat according to style

Step 4:

Tap on Edit Variables below the description.

Now tap on Expression for the variable name fragment. Tap on down arrow. You can see a list of expressions. From there select kotlinClassName().

Tap on OK of the Edit Templates Variable

Now tap on Apply and OK of the Live Templates.

To check type newInstance in a Fragment written in Kotlin.

Ad
source: stackoverflow.com
Ad