<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<?xml-stylesheet type="text/xml" href="../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC
	"-//NetBeans//DTD API changes list 1.0//EN"
        "../nbbuild/javadoctools/apichanges.dtd"
>

<!--

INFO FOR PEOPLE ADDING CHANGES:

Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, this will be done periodically; just
change the XML. If you can, validate the XML against the DTD, if not
do not worry about it. Rough syntax of a change (several parts optional):

<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>

Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.

Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.

Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.

Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.

Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.

This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.

-->

<apichanges>

  <!-- First, a list of API names you may use: -->
  <apidefs>
    <!-- org.netbeans.api.editor.fold -->
    <apidef name="api">Fold API</apidef>
    <!-- org.netbeans.spi.editor.fold -->
    <apidef name="spi">Fold SPI</apidef>
  </apidefs>

<!-- ACTUAL CHANGES BEGIN HERE: -->

  <changes>
      <change id="fold-api-enhancements">
          <api name="api"/>
          <summary>Extensible FoldTypes, enhanced support for fold updates</summary>
          <version major="1" minor="35"/>
          <date day="12" month="3" year="2013"/>
          <author login="sdedic"/>
          <compatibility source="compatible" binary="compatible" semantic="compatible" addition="yes"/>
          <description>
              <p>
                  <code>FoldTypes</code> can be defined for a <i>mime type</i> by <code>FoldTypeProviders</code>. They
                  can form a type hierarchy. <code>FoldUtilities</code> provide methods to check fold enablement and
                  available FoldTypes. Working directly with Preferences is not advised.
              </p>
              <p>
                  Fold can provide offsets to start and end of its content excluding <i>guard areas</i>. <code>FoldingSupport</code>
                  provides factories for comment-driven <code>FoldManager</code> and for fold <code>ContentReader</code> capable
                  of reading javadoc-style comments or similar.
              </p>
              <p>
                  <code>FoldOperation</code> allows to <code>update</code> folds with <code>FoldInfos</code>, removing, adding
                  or updating Folds as necessary. Existing FoldManagers can be simplified. Folds can be defined wihtout 
                  initial state - the state will be determined form the options by the infrastructure. All folds defined
                  by a FoldManager can be retrieved from <code>FoldOperation.foldIterator()</code>, even though they are
                  blocked.
              </p>
          </description>
          <class name="FoldTypeProvider" package="org.netbeans.spi.editor.fold"/>
          <class name="FoldInfo" package="org.netbeans.spi.editor.fold"/>
          <class name="FoldType" package="org.netbeans.api.editor.fold"/>
          <class name="Fold" package="org.netbeans.api.editor.fold"/>
          <class name="FoldUtilities" package="org.netbeans.api.editor.fold"/>
          <class name="FoldingSupport" package="org.netbeans.api.editor.fold"/>
          <issue number="226413"/>
      </change>
    <change id="fold-editorlib-separation">
        <api name="api"/>
        <summary>Fold UI separation from Editor Library</summary>
        <version major="1" minor="34"/>
        <date day="8" month="3" year="2013"/>
        <author login="sdedic"/>
        <compatibility source="compatible" binary="compatible" semantic="compatible" deletion="no" addition="yes"/>
        <description>
            <p>
                <code>FoldHierarchyMonitor</code> was introduced to allow hooking into UI when
                a FoldHierarchy is produced for a JTextComponent. The 'active' flag is provided on 
                the <code>FoldHierarchy</code> to determine whether the hierarchy be popuplated with folds 
                at all.
            </p>
            <p>
                Using <code>FoldingSupport</code> utility class, clients can create instance of
                <code>FoldManager</code> that creates folds based on comments, previously <code>CustomFoldManager</code>
                in editor.lib module.
            </p>
        </description>
        <class name="FoldHierarchy" package="org.netbeans.api.editor.fold"/>
        <class name="FoldingSupport" package="org.netbeans.api.editor.fold"/>
        <class name="FoldHierarchyMonitor" package="org.netbeans.spi.editor.fold"/>
        <issue number="226368"/>
        <issue number="226413"/>
    </change>
  <change id="FoldOperation-owns-added">
      <api name="api"/>
      <summary>FoldOperation.owns(Fold) added</summary>
      <version major="1" minor="8"/>
      <date day="3" month="3" year="2008"/>
      <author login="mmetelka"/>
      <compatibility source="compatible" binary="compatible" semantic="compatible" deletion="no" addition="yes" modification="no"/>
      <description>
        <p>
            Added FoldOperation.owns(Fold) to check whether fold was produced
            by a particular FoldOperation.
        </p>
      </description>
      <issue number="108030"/>
  </change>
  </changes>

  <htmlcontents>
<!--

                            NO NO NO NO NO!

         ==============>    DO NOT EDIT ME!  <======================

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE editor/fold/apichanges.xml

-->
    <head>
      <title>Fold API Changes by Date</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
      <meta name="CATEGORY" content="OtherDevelopmentDoc"/>
      <meta name="DESCRIPTION" content="A cross-indexed list of all changes made to the Fold API."/>
    </head>
    <body>

<h1>Introduction</h1>

<h2>What do the Dates Mean?</h2>

<p>The supplied dates indicate when the API change was made, on the CVS
trunk. From this you can generally tell whether the change should be
present in a given build or not; for trunk builds, simply whether it
was made before or after the change; for builds on a stabilization
branch, whether the branch was made before or after the given date. In
some cases corresponding API changes have been made both in the trunk
and in an in-progress stabilization branch, if they were needed for a
bug fix; this ought to be marked in this list.</p>

<!-- The actual lists of changes, as summaries and details: -->

      <hr/><standard-changelists module-code-name="org.netbeans.modules.editor.fold/1"/>

    </body>
  </htmlcontents>

</apichanges>
