[Vim] Snippets et autoindentation

Mammouth du PHP | 1668 Messages

17 déc. 2009, 19:30

Bonjour à toutes et à tous,

j'ai un gros soucis avec vim : j'utilise l'auto-indentation avec SnippetsEmu, et il n'indente pas comme il faut.
Je code selon la syntaxe BSD en PHP, et j'utilise la PHPDoc.
J'obtiens ça :
<?php

/**
 * Description
 *
 * @author Katagoto <...>
 */

class Nom
{
    /**
        * Description
        *
        * @param [type] [nom] [description]
        * @return [type] [description]
     */

    public function FunctionName ()
{
    if( true )
    {
        true;
    }

}

}

Au lieu de :
<?php

/**
  * Description
  *
  * @author Katagoto <...>
  */

class Nom
{
    /**
      * Description
      *
      * @param [type] [nom] [description]
      * @return [type] [description]
      */

    public function FunctionName ()
    {
        if( true )
        {
            true;
        }
    }
}
Avec comme snippets :

Code : Tout sélectionner

if !exists('loaded_snippet') || &cp finish endif let st = g:snip_start_tag let et = g:snip_end_tag let cd = g:snip_elem_delim exec "Snippet elseif elseif( ".st."condition".et." )<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet class /**<CR>".st."Description".et." <CR><CR>@author Katagoto <...><CR>/<CR><CR>class ".st."Nom".et."<CR>{<CR>".st.et."<CR>}<CR>" exec "Snippet ns /**<CR>".st."Description".et." <CR>*<CR>@author Katagoto <...><CR>/<CR><CR>namespace ".st."Nom".et."<CR>{<CR>".st.et."<CR>}<CR>" exec "Snippet namespace /**<CR>".st."Description".et." <CR>*<CR>@author Katagoto <...><CR>/<CR><CR>namespace ".st."Nom".et."<CR>{<CR>".st.et."<CR>}<CR>" exec "Snippet do do<CR>{<CR>".st.et."<CR><CR>}<CR>while( ".st.et." );<CR>".st.et exec "Snippet reql require_once( '".st."file".et."' );<CR>".st.et exec "Snippet if? $".st."retVal".et." = ( ".st."condition".et." ) ? ".st."a".et." : ".st."b".et." ;<CR>".st.et exec "Snippet phpp <?php<CR><CR>".st.et."<CR><CR>?>" exec "Snippet switch switch( ".st."variable".et." )<CR>{<CR>case ".st."value".et.":<CR>".st.et."<CR>break;<CR><CR>".st.et."<CR><CR>default:<CR>".st.et."<CR>break;<CR>}<CR>".st.et exec "Snippet incll include_once( '".st."file".et."' );".st.et exec "Snippet incl include( '".st."file".et."' );".st.et exec "Snippet foreach foreach( $".st."variable".et." as $".st."key".et." => $".st."value".et." )<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet ifelse if( ".st."condition".et." )<CR>{<CR>".st.et."<CR>}<CR>else<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet $_ $_REQUEST['".st."variable".et."']<CR>".st.et exec "Snippet case case ".st."variable".et.":<CR>".st.et."<CR>break;<CR>".st.et exec "Snippet print print \"".st."string".et."\"".st.et.";".st.et."<CR>".st.et exec "Snippet function /**<CR>".st."Description".et."<CR><CR>@param [type] [nom] [description]<CR>@return [type] [description]<CR>/<CR><CR>".st."public".et." function ".st."FunctionName".et." (".st.et.")<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet func /**<CR>".st."Description".et."<CR><CR>@param [type] [nom] [description]<CR>@return [type] [description]<CR>/<CR><CR>".st."public".et." function ".st."FunctionName".et." (".st.et.")<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet if if( ".st."condition".et." )<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet else else<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet array $".st."arrayName".et." = array( '".st.et."',".st.et." );".st.et exec "Snippet -globals $GLOBALS['".st."variable".et."']".st.et.st."something".et.st.et.";<CR>".st.et exec "Snippet req require( '".st."file".et."' );<CR>".st.et exec "Snippet for for ( $".st."i".et."=".st.et."; $".st."i".et." < ".st.et."; $".st."i".et."++ )<CR>{<CR>".st.et."<CR>}<CR>".st.et exec "Snippet while while( ".st.et." )<CR>{<CR>".st.et."<CR>}<CR>".st.et


Comment faire ?

Par avance merci de votre aide

PS : Lorsque j'effectue =a{ ça me met tout en place
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol