Changeset 4734


Ignore:
Timestamp:
11/14/03 13:32:57 (18 years ago)
Author:
piso
Message:

foldNearLine(): XML mode.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/Editor.java

    r4355 r4734  
    33 *
    44 * Copyright (C) 1998-2003 Peter Graves
    5  * $Id: Editor.java,v 1.117 2003-10-13 23:56:03 piso Exp $
     5 * $Id: Editor.java,v 1.118 2003-11-14 13:32:57 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    72617261            next = next.next();
    72627262        if (next != null) {
     7263            final String trim = line.trim();
    72637264            switch (getModeId()) {
    72647265                case JAVA_MODE:
     
    72687269                case PERL_MODE:
    72697270                case PHP_MODE:
    7270                     if (line.trim().endsWith("{")) {
     7271                    if (trim.endsWith("{")) {
    72717272                        if (!next.isHidden()) {
    72727273                            fold(next);
     
    72747275                        }
    72757276                    }
    7276                     if (line.trim().startsWith("}")) {
     7277                    if (trim.startsWith("}")) {
    72777278                        // We're at the end of a code block. Find the start of
    72787279                        // the block and fold from there.
     
    73047305                    }
    73057306                    break;
     7307                case XML_MODE: {
     7308                    if (trim.startsWith("/>") || trim.startsWith("</")) {
     7309                        Line prev = line.previous();
     7310                        while (prev != null && prev.isBlank())
     7311                            prev = prev.previous();
     7312                        if (prev != null) {
     7313                            int indent =
     7314                                buffer.getCol(line, line.getIndentation());
     7315                            int prevIndent =
     7316                                buffer.getCol(prev, prev.getIndentation());
     7317                            if (indent < prevIndent) {
     7318                                fold(prev);
     7319                                return;
     7320                            }
     7321                        }
     7322                    } else if (trim.startsWith("<")) {
     7323                        int indent =
     7324                            buffer.getCol(line, line.getIndentation());
     7325                        int nextIndent =
     7326                            buffer.getCol(next, next.getIndentation());
     7327                        if (indent < nextIndent) {
     7328                            fold(next);
     7329                            return;
     7330                        }
     7331                    }
     7332                }
    73067333                default:
    73077334                    break;
Note: See TracChangeset for help on using the changeset viewer.