IntelliJ IDEA 2024.2 Help

Surround code fragments

IntelliJ IDEA provides standard templates for surrounding code fragments with various constructs based on the language of the source code. This includes if...else conditional statements, do...while and for loops, combinations of try...catch...finally, XML tags, folding regions, and other constructs.

Surround a code block with language constructs

  1. Select a code fragment.

  2. Press Ctrl+Alt+T or go to Code | Surround With in the main menu.

    Alternatively, on the toolbar that appears, click Surround.

  3. Select the necessary surround statement from the list. When you hover over an option, you will see a preview of the change that will be applied if you select that statement.

Preview for surround with options

You can edit code templates that are used in the surround statements. In the Settings dialog (Ctrl+Alt+S) , go to Editor | File and Code Templates.

For example, you can configure final modifier, name or even a type of the exception for the try...catch conditional statement.

Code template settings

Example

In the following example, we select the int number = scanner.nextInt(); Java statement and apply the try / catch surround statement to it.

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter a number: "); int number = scanner.nextInt(); System.out.println("You entered: " + number); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter a number: "); int number = 0; try { number = scanner.nextInt(); } catch (Exception e) { throw new RuntimeException(e); } System.out.println("You entered: " + number); } }

This feature applies to the following languages (contexts):

Context

Surround with

Java statements

  • if

  • if/else

  • while

  • do/while

  • for

  • try/catch

  • try/finally

  • try/catch/finally

  • synchronized

  • Runnable

  • {}

Java expressions

  • (expr)

  • ((Type)expr)

  • !(expr instanseof Type)

XML/HTML /JSP/JSPX tags

  • Tag

  • CDATA section

  • <% ... %>

  • Emmet

JavaScript statements

  • (expr)

  • !(expr)

  • if

  • if / else

  • while

  • do / while

  • for

  • try / catch

  • try / finally

  • try / catch / finally

  • with

  • function

  • { }

  • function expression

PHP statements

  • if

  • if / else

  • while

  • do / while

  • for

  • foreach

  • try / catch

  • function

Custom folding region comments

Any fragment of code, where Surround With is applicable

Last modified: 08 July 2024