Skip to content

Instantly share code, notes, and snippets.

@marcjubero
Last active May 1, 2016 14:01
Show Gist options
  • Save marcjubero/e89f62aa2092eaef23d9 to your computer and use it in GitHub Desktop.
Save marcjubero/e89f62aa2092eaef23d9 to your computer and use it in GitHub Desktop.
Android Studio - Live Templates

Android Studio - Live Templates

Using Settings panel:

  • Settings - Editor - Live Templates
  • Add Live Template or create a Template Group. Choose the Template Group option will create an .xml file with the same name of the Template Group you defined before.
  • The .xml file can be found in a different folder, depends on the operating system.

Example:

Log.e(TAG,MESSAGE);
Log Class Example

To create a Live Template for Log.e(...):

  • Abbreviation: what we want to write in our code (shortcut word)
  • Description: Whatever
  • Template text:
  Log.e("$CLASS_NAME$", "$METHOD_NAME$ - $END$");
  • Edit Variables Expression:
$CLASS_NAME$ = className()
$METHOD_NAME$ = methodName()
  • Check the Skip if defined checkbox for both variables
  • Define Context, Java is fine.

We can copy/paste the following xml file to certain folter too.

Log.xml location
* Windows: <your home directory>\.<product name><version number>\config\templates
* Linux: ~/.<product name><version number>/config/templates
* OS X: ~/Library/Preferences/<product name><version number>/templates
Log.xml
<templateSet group="Log">
  <template name="loge" value="Log.e(&quot;$CLASS_NAME$&quot;,&quot;[error] $METHOD_NAME$ - $END$&quot;);" description="Log error" toReformat="false" toShortenFQNames="true">
    <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="false" />
    <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" />
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_STATEMENT" value="true" />
      <option name="JAVA_EXPRESSION" value="false" />
      <option name="JAVA_DECLARATION" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="COMPLETION" value="false" />
    </context>
  </template>
  <template name="logd" value="Log.d(&quot;$CLASS_NAME$&quot;,&quot;[debug] $METHOD_NAME$ - $END$&quot;);" description="Log debug" toReformat="false" toShortenFQNames="true">
    <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="false" />
    <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" />
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_STATEMENT" value="true" />
      <option name="JAVA_EXPRESSION" value="false" />
      <option name="JAVA_DECLARATION" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="COMPLETION" value="false" />
    </context>
  </template>
  <template name="logi" value="Log.i(&quot;$CLASS_NAME$&quot;,&quot;[info] $METHOD_NAME$ - $END$&quot;);" description="Log info" toReformat="false" toShortenFQNames="true">
    <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="false" />
    <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" />
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_STATEMENT" value="true" />
      <option name="JAVA_EXPRESSION" value="false" />
      <option name="JAVA_DECLARATION" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="COMPLETION" value="false" />
    </context>
  </template>
  <template name="logv" value="Log.v(&quot;$CLASS_NAME$&quot;,&quot;[vervbose] $METHOD_NAME$ - $END$&quot;);" description="Log verbose" toReformat="false" toShortenFQNames="true">
    <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="false" />
    <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" />
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_STATEMENT" value="true" />
      <option name="JAVA_EXPRESSION" value="false" />
      <option name="JAVA_DECLARATION" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="COMPLETION" value="false" />
    </context>
  </template>
  <template name="wtf" value="Log.wtf(&quot;$CLASS_NAME$&quot;,&quot;[wtf!] $METHOD_NAME$ - $END$&quot;);" description="Log What the Fuck" toReformat="false" toShortenFQNames="true">
    <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="false" />
    <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" />
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_STATEMENT" value="true" />
      <option name="JAVA_EXPRESSION" value="false" />
      <option name="JAVA_DECLARATION" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="COMPLETION" value="false" />
    </context>
  </template>
  <template name="logw" value="Log.w(&quot;$CLASS_NAME$&quot;,&quot;[warning] $METHOD_NAME$ - $END$&quot;);" description="Log warning" toReformat="false" toShortenFQNames="true">
    <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="false" />
    <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" />
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_STATEMENT" value="true" />
      <option name="JAVA_EXPRESSION" value="false" />
      <option name="JAVA_DECLARATION" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="COMPLETION" value="false" />
    </context>
  </template>
</templateSet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment