ChatGPT解决这个技术问题 Extra ChatGPT

Intellij IDEA generate for-each/for keyboard shortcut

Is there a keyboard shortcut generating a foreach and also for loop?


d
d-live

you can use 'live templates' to generate several types of code snippets, loop iteration is done by following -

iter    Iterate (for each..in) 
itin    Iterate (for..in) 
itli    Iterate over a List
itar    Iterate elements of array 
ritar   Iterate elements of array in reverse order 

There are probably many more, just lookup 'Live Templates' in help documentation.


Also checkout postfix completion, e.g. stackoverflow.com/a/40020608/109795
d
dcharles

Pressing Ctrl+J opens the list of live templates within your code context. Then type 'itin'.


I am using IdeaVim plugin on Mac. I had to do Ctrl+Alt+Shift+J to trigger live templates.
B
BlondCode

Aditionally to other answers, you don't even have to use Ctrl + J (but nice for checking what are your possibilities..) Just start type and press Enter:

Foreach: type "iter" then press Enter.

For loop: type "fori" then press Enter.

Idea will recognize the context and suggest the most likely var to iter through, if you like the given options, just press Enters!


d
duffymo

Of course, have a look in the help at the default keymap references. Type one of the following and hit "tab":

iter Iteration according to Java SDK 1.5 style
inst Check object type with instanceof and downcast it
itco Iterate elements of java.util.Collection
itit Iterate elements of java.util.Iterator
itli Iterate elements of java.util.List

d
d4kris

Create for loop from an existing list statement:

Highlight the list Cmd+Alt+J or Ctrl+Alt+J Choose Iterate Iterable from the dropdown (i)

https://www.jetbrains.com/phpstorm/help/creating-code-constructs-using-surround-templates.html


M
Meabed

You can also use Surround with!
Mac : Command+Option+T
Windows : Ctrl+Alt+T
https://www.jetbrains.com/phpstorm/webhelp/surrounding-blocks-of-code-with-language-constructs.html

There is also plenty of live templates in the internet ! you can just google it.


Z
Zizou

You can use Postfix Completion too. Press Ctrl + Alt + S to open the Settings. For example:

int[] list = {1, 2, 3};    
list.for -> for(int i : list) {}

A
Arefe

You can create your own live template, for example, I created this for iterating over an array:

https://i.stack.imgur.com/r5Kli.png