IntelliJ’s live templates are a key feature for programming workflows. From saving keystrokes to auto generating code snippets that I otherwise have to look up, there are plenty of use-cases.

The templates are (on my system) stored under /Users/lars/Library/Application Support/JetBrains/IntelliJIdea2021.1/jba_config/templates in a file called Lars.xml. Grouping them under my name makes it easier to figure out which ones are from me and which ones came with the IDE.

The content of that file currently looks like this:

<templateSet group="Lars">
  <template name="clink" value="{@link package.class#member label}" description="link from within javadoc" toReformat="false" toShortenFQNames="true">
    <context>
      <option name="JAVA_COMMENT" value="true" />
    </context>
  </template>
  <template name="logger" value="private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($class$.class);" description="slf4j logger" toReformat="true" toShortenFQNames="true" useStaticImport="true">
    <variable name="class" expression="className()" defaultValue="" alwaysStopAt="true" />
    <context>
      <option name="JAVA_DECLARATION" value="true" />
    </context>
  </template>
  <template name="readResource" value="java.nio.file.Files.readString(&#10;    java.nio.file.Paths.get(&quot;src/test/resources/toc.xml&quot;));&#10;&#10;java.io.InputStream is = getClass().getResourceAsStream(&quot;/toc.xml&quot;);&#10;String fromInputStream = new java.io.BufferedReader(&#10;    new java.io.InputStreamReader(is, java.nio.charset.StandardCharsets.UTF_8))&#10;    .lines()&#10;    .collect(java.util.stream.Collectors.joining(&quot;\n&quot;));" description="read file from test resource folder" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="sleep" value="private static boolean sleep(int ms) {&#10;    try {&#10;        Thread.sleep(ms);&#10;        return true;&#10;    } catch (InterruptedException e) {&#10;        return false;&#10;    }&#10;}" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
    </context>
  </template>
  <template name="at" value="org.assertj.core.api.Assertions.assertThat($SELECTION$).isEqualTo(&quot;-1&quot;);" description="assertJ assertThat" toReformat="true" toShortenFQNames="true" useStaticImport="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="time" value="long $TIME$ = System.nanoTime();&#10;try {&#10;    $SELECTION$&#10;} finally {&#10;    $TIME$ = System.nanoTime() - $TIME$;&#10;    System.out.printf(&quot;$TIME$ = %dms%n&quot;, ($TIME$/1_000_000));&#10;}" description="Measure execution time" toReformat="true" toShortenFQNames="true">
    <variable name="TIME" expression="" defaultValue="&quot;time&quot;" alwaysStopAt="true" />
    <context>
      <option name="JAVA_CODE" value="true" />
    </context>
  </template>
  <template name="aa" value="org.junit.jupiter.api.Assertions.assertAll(&#10;    () -&gt; $END$,&#10;    () -&gt; );" description="assertAll( () -&gt; assertThat..., () -&gt; assertThat...);" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="clock" value="Clock clock = java.time.Clock.fixed(java.time.Instant.parse(&quot;2019-01-01T10:15:30.00Z&quot;), java.time.ZoneOffset.UTC);" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="para" value="@org.junit.jupiter.params.ParameterizedTest&#10;@org.junit.jupiter.params.provider.ValueSource(strings = {&quot;&quot;, &quot;  &quot;})&#10;@org.junit.jupiter.params.provider.CsvSource({&quot;test,TEST&quot;, &quot;tEst,TEST&quot;, &quot;Java,JAVA&quot;})&#10;@org.junit.jupiter.params.provider.CsvFileSource(resources = &quot;/data.csv&quot;, numLinesToSkip = 1)&#10;@org.junit.jupiter.params.provider.MethodSource(&quot;grossSalaryProvider&quot;)&#10;void isBlank_ShouldReturnTrueForNullOrBlankStrings(String input) {&#10;    org.assertj.core.api.Assertions.assertThat(input.strip().isEmpty()).isTrue();&#10;}&#10;&#10;static java.util.stream.Stream&lt;Arguments&gt; grossSalaryProvider() {&#10;  return Stream.of(&#10;      org.junit.jupiter.params.provider.Arguments.of(5_000, 1337),&#10;      org.junit.jupiter.params.provider.Arguments.of(5_000, 1337),&#10;      org.junit.jupiter.params.provider.Arguments.of(5_000, 1337)&#10;      );&#10;}" description="JUnit 5 Parameterized Tests" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
    </context>
  </template>
  <template name="restassured" value="// @formatter:off&#10;// testImplementation(&quot;io.rest-assured:rest-assured:4.3.3&quot;)&#10;// testImplementation(&quot;io.rest-assured:json-path:4.3.3&quot;)&#10;io.restassured.RestAssured.given().&#10;    port(TEST_VERTICLE_PORT).&#10;    header(&quot;Client-Id&quot;, &quot;test:1.2.3&quot;).&#10;when().&#10;    get(&quot;/ulmcustomertest&quot;).&#10;then().&#10;    statusCode(200).&#10;    body(equalTo(&quot;true&quot;).&#10;    //extract().&#10;    //response()&#10;    );&#10;// @formatter:on" description="" toReformat="false" toShortenFQNames="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="stdout" value="final java.io.PrintStream systemOut = System.out;&#10;try (java.io.ByteArrayOutputStream baos = new ByteArrayOutputStream()) {&#10;  System.setOut(new java.io.PrintStream(baos, true, java.nio.charset.StandardCharsets.UTF_8));&#10;  &#10;  &#10;  &#10;  org.approvaltests.Approvals.verify(baos.toString());&#10;} catch (java.io.IOException e) {&#10;  throw new RuntimeException(e);&#10;} finally {&#10;    System.setOut(systemOut);&#10;}" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="reversedIntStream" value="java.util.stream.IntStream.rangeClosed(to, from)&#10;        .map(i -&gt; to - i + from)" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_EXPRESSION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="enumlookup" value="    private static final java.util.Map&lt;String, Xxx&gt; lookup = new java.util.HashMap&lt;&gt;();&#10;&#10;    static {&#10;        for (Xxx x : Xxx.values()) {&#10;            lookup.put(x.value, x);&#10;        }&#10;    }&#10;&#10;    public static Xxx get(String x) {&#10;        return lookup.getOrDefault(x, Xxx.ANY);&#10;    }" description="lookup enum by string" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
    </context>
  </template>
  <template name="ll" value="java.util.List&lt;$END$&gt; list = new java.util.ArrayList&lt;&gt;();" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_EXPRESSION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="lo" value="java.util.List.of($END$);" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_EXPRESSION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="disabled" value="@org.junit.jupiter.api.Disabled(&quot;make the change easy, then make the easy change&quot;)" description="" toReformat="false" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
    </context>
  </template>
  <template name="mockstatic" value="try (var myMock = org.mockito.Mockito.mockStatic(CurrencyConversion.class)) {&#10;    myMock.when(CurrencyConversion::currencySymbols).thenReturn(List.of(&quot;EUR&quot;, &quot;USD&quot;));&#10;    assertThat(CurrencyConversion.currencySymbols()).contains(&quot;EUR&quot;, &quot;USD&quot;);&#10;}&#10;// use testImplementation(&quot;org.mockito:mockito-inline:3.5.11&quot;)" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="await" value="org.awaitility.Awaitility.await().atLeast(1, TimeUnit.SECONDS).atMost(1, java.util.concurrent.TimeUnit.SECONDS).until(future::isComplete);" description="awaitly" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="snippet" value="// begin-snippet: $SnippetName$&#10;$SELECTION$&#10;// end-snippet&#10;&#10;// use in .md file:   snippet: $SnippetName$" description="generate a code snippet" toReformat="true" toShortenFQNames="true">
    <variable name="SnippetName" expression="&quot;MySnippetName&quot;" defaultValue="" alwaysStopAt="true" />
    <context>
      <option name="JAVA_CODE" value="true" />
    </context>
  </template>
  <template name="typeref" value="com.fasterxml.jackson.core.type.TypeReference&lt;List&lt;Repository&gt;&gt; ref = new TypeReference&lt;&gt;() {};" description="jackson typeref" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="given" value="org.mockito.BDDMockito.given(accountService.getLoggedUser()).willReturn(new User());" description="" toReformat="true" toShortenFQNames="true" useStaticImport="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="ae" value="org.junit.jupiter.api.Assertions.assertEquals(ex, ac);" description="assertEquals from JUnit 5" toReformat="true" toShortenFQNames="true" useStaticImport="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="mockMvc" value="@org.springframework.beans.factory.annotation.Autowired org.springframework.test.web.servlet.MockMvc mockMvc;&#10;&#10;org.springframework.test.web.servlet.MvcResult result =&#10;    this.mockMvc&#10;        .perform(&#10;            org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post(&quot;/api/users&quot;)&#10;                .header(&quot;Authorization&quot;, &quot;&quot;)&#10;                .contentType(org.springframework.http.MediaType.APPLICATION_JSON)&#10;                .content(&#10;                    &quot;{\&quot;userName\&quot;:\&quot;testUserDetails\&quot;,\&quot;firstName\&quot;:\&quot;xxx\&quot;,\&quot;lastName\&quot;:\&quot;xxx\&quot;,\&quot;password\&quot;:\&quot;xxx\&quot;}&quot;))&#10;        .andDo(org.springframework.test.web.servlet.result.MockMvcResultHandlers.print())&#10;        .andExpect(org.springframework.test.web.servlet.result.MockMvcResultMatchers.status().isBadRequest())&#10;        .andReturn();&#10;&#10;String content = result.getResponse().getContentAsString();" description="" toReformat="true" toShortenFQNames="true" useStaticImport="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="bools" value="Boolean[] booleans = new Boolean[]{true, false};" description="Boolean array" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="aeot" value="org.assertj.core.api.Assertions.assertThatExceptionOfType(IllegalStateException.class)&#10;    .isThrownBy(() -&gt; callme())    &#10;    .withMessage(&quot;Expected message&quot;); " description="" toReformat="true" toShortenFQNames="true" useStaticImport="true">
    <context>
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="ftcr" value="@org.junit.jupiter.api.extension.ExtendWith(com.github.larseckart.tcr.FastTestCommitRevertMainExtension.class)" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
    </context>
  </template>
  <template name="cor" value="public abstract class Handler&lt;T&gt; {&#10;&#10;    private final Handler&lt;T&gt; next;&#10;&#10;    public Handler() {&#10;        this.next = new Handler&lt;T&gt;() {&#10;            @Override&#10;            protected boolean canHandle(T item) {&#10;                return true;&#10;            }&#10;&#10;            @Override&#10;            protected void handle(T item) {&#10;&#10;            }&#10;        };&#10;    }&#10;&#10;    public Handler(Handler&lt;T&gt; next) {&#10;        this.next = next;&#10;    }&#10;&#10;    public void process(T item) {&#10;        if (canHandle(item)) {&#10;            handle(item);&#10;        } else {&#10;            next.process(item);&#10;        }&#10;    }&#10;&#10;    protected abstract boolean canHandle(T item);&#10;&#10;    protected abstract void handle(T item);&#10;&#10;}" description="chain of responsibility" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_DECLARATION" value="true" />
      <option name="JAVA_STATEMENT" value="true" />
    </context>
  </template>
  <template name="mockwebserver" value="testImplementation(&quot;com.squareup.okhttp3:mockwebserver:4.10.0&quot;)" description="" toReformat="false" toShortenFQNames="true">
    <context>
      <option name="GROOVY_DECLARATION" value="true" />
      <option name="GROOVY_STATEMENT" value="true" />
    </context>
  </template>
  <template name="given-surround" value="org.mockito.BDDMockito.given($SELECTION$).willReturn();" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_EXPRESSION" value="true" />
    </context>
  </template>
</templateSet>