2016-01-31 8 views
5

Voglio aprire i blocchi con le parentesi a partire dalla nuova riga.Rientro blocco Xcode (NSMallocBlock) (parentesi automaticamente a partire dalla nuova riga)

Passiamo dalla discussione filosofica dal fatto che questa è una buona decisione o no - regardless of 'where' and 'when', 'how' remains absolute.

Quindi, il problema è descritto di seguito:

enter image description here

C'è un modo per raggiungere questo obiettivo ?


Mi guardavo intorno da un po ', ma non ho trovato alcuna soluzione.

Sono già a conoscenza di tali cose come:

  1. Snippet Edit - questo piccolo programma vi permetterà di modificare frammenti di codice di default di Xcode. Pertanto, sarà possibile aprire le parentesi graffe dalla nuova riga nel numero if, for, while, ecc. Tuttavia, ciò non consente di modificare il rientro del blocco.

  2. Uncrustify - questo potrebbe risolvere il mio problema, ma non sembra facile da configurare. E formatta solo il codice dopo il è già stato scritto, invece di formattare 'on the go'. Inoltre, anche se imposto correttamente uncrustify, sarà comunque piuttosto lento: sono necessari circa 4 clic del mouse per formattare il blocco, che richiede molto tempo.

Qualcuno sa di altre soluzioni?

EDIT:

Per essere più precisi, voglio che il blocco da rientrato non appena premo ENTER su questo passaggio:

enter image description here

+0

Xcode applica uno stile specifico. Non puoi cambiarlo senza plugin. – Sulthan

+0

@Sulthan, conosci qualche plugin, che potrebbe essere d'aiuto per il problema? – OlDor

+0

Il problema è che non è possibile impostare i formattatori di stile comuni nemmeno per formattarli con questo stile. Lo stile è così specifico che nessuno ha implementato le opzioni che lo avrebbero consentito. E questo include scrivere Obj-C in altri IDE. – Sulthan

risposta

0

La soluzione più semplice che ho trovato è questo:

Scarica Karabiner e cambiare la vostra private.xml (è anche possibile visualizzare la documentazione here)

tuo private.xml può apparire come questo:

<?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> 

Al termine, è ora possibile aprire il blocco premendo + ENTER (anziché della pressione di ENTER, quando si apre il blocco, premere + ENTER). Ecco lo preview (rallentato, in modo da vedere i dettagli).

Quanto sopra funziona solo con blocchi singoli. Se si desidera aprire due blocchi contemporaneamente, è possibile premere ALT + ENTER. Ecco lo preview (rallentato, in modo da vedere i dettagli).

Ecco la preview con la velocità reale:

Demo CountPages alpha

-2

Non credo c'è un modo per farlo automaticamente dopo aver premuto ENTER.

Cosa si può fai, viene colpito ENTER di lasciarlo riempire il frammento, e poi andare prima { e ha colpito ENTER di nuovo. Xcode lo formatta nel modo che preferisci in seguito.

-1

Basta mettere manualmente si partire brace in una nuova linea, allora il vostro rientro dovrebbe essere buona.

Problemi correlati