Forum Programmation.autre Plier des régions de code avec vim

Posté par  .
Étiquettes :
1
15
avr.
2012

Bonjour,

J'utilise vim pour la programmation en PHP, et j'en suis actuellement satisfait.

Il y a cependant une chose qui me manque, et que j'aimerais pouvoir faire avec vim, comme je le fais avec notepad++ sous Windows.

Lorsque j'ai une longue classe en PHP, j'aime utiliser des régions pour organiser le code, comme en C#. Comme en PHP, les commentaires peuvent commencer par le caractère '#', cela n'affecte en rien le comportement du programme.

Au final, quand je «plie» le code de ma classe, cela doit donner quelque chose comme ceci:

class UserController extends BaseController
{
    [Private members]

    [Registration]

    [Login and Logout]

    [Forgot password]

    [Avatars]
}

Donc, la question est la suivante:

Comment étendre la capacité de vim à plier du code, sans perdre la possibilité de plier les classes et méthodes.

Dans le même genre, quand j'aimerais que quand une fonction ou une méthode en PHP contient un entête PHPDoc. je puisse plier la fonction et l'entête en une zone qui ne contient que la description de la fonction. (Comme en C#):

Exemple:

/**
* Authenticate user with user name / password or email / password
*
* @param mixed $userIdOrEmail UserID or email
* @access public
* @return object user data or null if not authenticated
*/

public function Authenticate($userIdOrEmail, $password)
{
}

devrait pouvoir se plier en:

[public function Authenticate: Authenticate user with user name / password or email / password]

Merci.

  • # fold manuel ?

    Posté par  (site web personnel) . Évalué à 2. Dernière modification le 15 avril 2012 à 16:26.

    en créant des fold manuellement ? une fois crées, on peut les sauver dans une session je crois

    pour des trucs plus évolués de configurations des folds, je peux pas aider. Je suis pas assez pointu là-dessus

  • # foldmethod, foldexpr, foldtext

    Posté par  . Évalué à 1.

    Pour faire quelque chose plus simple j'avais défini :
    :set foldmethod=expr
    :set foldexpr=FoldLevel()
    :set foldtext=FoldTextIndent()

    Avec :

    FoldLevel() qui retourne le niveau hiérarchique d'indentation des lignes, et FoldTextIndent() qui retourne le texte à afficher quand le bloc est plié.

    Mais je ne sais pas si cette méthode permet de conserver les pliages déjà définis (c.à.d. la possibilité de plier les classes et méthodes).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.