Najprostszym rozwiązaniem, które ja znalazłem to:
Pobierz Karabiner i zmienić private.xml
(można również przeglądać dokumentację here)
swojej private.xml
może wyglądać następująco:
<?xml version="1.0"?>
<root>
<item>
<name>Command+Enter to complete single block</name>
<identifier>private.swap_cmnd+Enter_to_complete__single_block</identifier>
<autogen>
__KeyToKey__
KeyCode::RETURN, ModifierFlag::COMMAND_L | ModifierFlag::NONE,
KeyCode::RETURN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::DELETE, ModifierFlag::COMMAND_L,
KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L,
KeyCode::BRACKET_RIGHT,
KeyCode::SEMICOLON,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::CURSOR_LEFT,
KeyCode::RETURN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::I, ModifierFlag::CONTROL_L,
KeyCode::CURSOR_RIGHT,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L,
KeyCode::TAB,
</autogen>
</item>
<item>
<name>Option+Enter to complete double block</name>
<identifier>private.swap_Option+Enter_to_complete_double_block</identifier>
<autogen>
__KeyToKey__
KeyCode::RETURN, ModifierFlag::OPTION_L | ModifierFlag::NONE,
KeyCode::CURSOR_RIGHT,
KeyCode::RETURN,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L,
KeyCode::TAB,
KeyCode::RETURN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L,
KeyCode::TAB,
KeyCode::RETURN,
KeyCode::DELETE,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::DELETE, ModifierFlag::COMMAND_L,
KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L,
KeyCode::BRACKET_RIGHT,
KeyCode::SEMICOLON,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::CURSOR_LEFT,
KeyCode::RETURN,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::CURSOR_LEFT,
KeyCode::RETURN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_DOWN,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,
KeyCode::I, ModifierFlag::CONTROL_L,
KeyCode::CURSOR_RIGHT,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_UP,
KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L,
KeyCode::TAB,
</autogen>
</item>
</root>
Po wykonaniu tej czynności można teraz otworzyć blok, naciskając: ⌘
+ ENTER
(zamiast tego naciśnięcia ENTER
, po otwarciu bloku, naciśnij ⌘
+ ENTER
). Oto preview (spowolnione, aby zobaczyć szczegóły).
Powyższe działa tylko z pojedynczymi blokami. Jeśli chcesz otworzyć dwa bloki naraz, możesz nacisnąć ALT
+ ENTER
. Oto preview (spowolnione, aby zobaczyć szczegóły).
Oto preview z prędkością rzeczywistą:
Xcode wymusza jeden określony styl. Nie możesz tego zmienić bez wtyczek. – Sulthan
@Sulthan, znasz jakieś wtyczki, które mogą pomóc w rozwiązaniu problemu? – OlDor
Problem polega na tym, że nie można ustawić typowych formaterów stylów nawet do formatowania w tym stylu. Styl jest tak specyficzny, że nikt nie wprowadził opcji, które by go umożliwiały. A to obejmuje pisanie Obj-C w innych IDE. – Sulthan