Vim: Custom Folding for special doc

2

Oto kod:

package localhost

import scala.tools.nsc.reporters._
import scala.tools.nsc.util.Position


class MyReporter extends Reporter {


  /** <p>
   *    Give message of an rejected program
   *  </p>
   */
  def info0(pos: Position, msg: String, severity: Severity, force: Boolean) = {
    severity match {
      case INFO =>
      case WARNING =>
      case ERROR => println("error on pos: " +pos+" message: "+msg)
    }
  }
}

Więc chcę spasować

  /** <p>
   *    Give message of an rejected program
   *  </p>
   */

do czegoś takiego:

/** */

Jak to jest możliwe? Dzięki za pomoc.

Matthias Guenther
źródło

Odpowiedzi:

2

Najprostsza metoda to:

:set foldmarker=/*,*/
:set foldmethod=marker

Te złożone linie wyglądają wtedy następująco:

+--  4 lines: * <p>------------------------------

Przy odrobinie pracy możesz być w stanie utworzyć 'foldtext'wyrażenie, które utworzy pożądaną złożoną linię z elementów pierwszej i ostatniej linii złożonego regionu. :help foldtext()Mówi jednak, że „Wiodąca biała spacja”, „//” lub „/ *” oraz tekst z opcji „foldmarker” i „ciąg komentarzy” zostały usunięte ”, więc możesz nie być w stanie uzyskać dokładnie takiego wyglądu, jaki chcesz.

garyjohn
źródło
Garyjohn: Zręczny. Jako nowość zauważam, że: foldo! otwiera wszystkie fałdy i: foldc! zamyka wszystkie fałdy
Rolnik
1
@Rolnik: Możesz także użyć zRi zM, które w typowych przypadkach mają ten sam efekt i są nieco szybsze w pisaniu .
garyjohn