diff --git a/enterprise/api.web.webmodule/src/org/netbeans/modules/web/spi/webmodule/WebPrivilegedTemplates.java b/enterprise/api.web.webmodule/src/org/netbeans/modules/web/spi/webmodule/WebPrivilegedTemplates.java
index da0b9a2..139588e 100644
--- a/enterprise/api.web.webmodule/src/org/netbeans/modules/web/spi/webmodule/WebPrivilegedTemplates.java
+++ b/enterprise/api.web.webmodule/src/org/netbeans/modules/web/spi/webmodule/WebPrivilegedTemplates.java
@@ -38,7 +38,7 @@
      *         by a framework and then appropriate templates for the framework can be offered
      *         in the list of privileged list of templates.
      *
-     * @return full paths to privileged templates, e.g. <samp>Templates/Other/XmlFile.xml</samp>; never null.
+     * @return full paths to privileged templates, e.g. <code>Templates/Other/XmlFile.xml</code>; never null.
      */
     public String[] getPrivilegedTemplates(WebModule webModule);
 }
diff --git a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/OpenServiceConsoleAction.java b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/OpenServiceConsoleAction.java
index ad2a6df..2bf9e01 100644
--- a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/OpenServiceConsoleAction.java
+++ b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/OpenServiceConsoleAction.java
@@ -33,7 +33,7 @@
 
 @ActionID(
         category = "Tools",
-        id = "org.netbeans.modules.cloud.oracle.OpenServiceConsoleAction"
+        id = "org.netbeans.modules.cloud.oracle.actions.OpenServiceConsoleAction"
 )
 @ActionRegistration(
         displayName = "#CTL_OpenServiceConsoleAction"
diff --git a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/database/DatabaseNode.java b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/database/DatabaseNode.java
index 01f2ca6..94af7f8 100644
--- a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/database/DatabaseNode.java
+++ b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/database/DatabaseNode.java
@@ -81,7 +81,7 @@
                         DatabaseItem item = new DatabaseItem(
                                 OCID.of(d.getId(), "Databases"), //NOI18N
                                 d.getDbName(),
-                                d.getServiceConsoleUrl(),
+                                d.getConnectionUrls().getApexUrl().replace("apex", "admin/_sdw"),
                                 getConnectionName(profiles));
                         StringBuilder sb = new StringBuilder();
                         sb.append(Bundle.LBL_WorkloadType(d.getDbWorkload().getValue()));
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DescriptionInterface.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DescriptionInterface.java
index 5a7b23a..e39e82b 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DescriptionInterface.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DescriptionInterface.java
@@ -69,7 +69,7 @@
     public String getDefaultDescription();
 
     /**
-     * Returns all description elements in the form of <@link java.util.Map>. 
+     * Returns all description elements in the form of {@link java.util.Map}. 
      *
      * @return map of all descriptions in the form of [locale:description]
      */
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DisplayNameInterface.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DisplayNameInterface.java
index 2892a5f..fcd4b4b 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DisplayNameInterface.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/DisplayNameInterface.java
@@ -69,7 +69,7 @@
     public String getDefaultDisplayName();
     
     /**
-     * Returns all display-name elements in the form of <@link java.util.Map>. 
+     * Returns all display-name elements in the form of {@link java.util.Map}. 
      *
      * @return map of all display-names in the form of [locale:display-name]
      */
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/IconInterface.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/IconInterface.java
index 2e13cab..eb20e84 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/IconInterface.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/IconInterface.java
@@ -109,7 +109,7 @@
      */
     public org.netbeans.modules.j2ee.dd.api.common.Icon getDefaultIcon();
     /**
-     * Returns all icon elements in the form of <@link java.util.Map>. 
+     * Returns all icon elements in the form of {@link java.util.Map}. 
      *
      * @return map of all icons in the form of [locale:String[]{smallIcon, largeIcon}]
      */
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/RootInterface.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/RootInterface.java
index a943b7d..91bfc93 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/RootInterface.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/common/RootInterface.java
@@ -67,8 +67,8 @@
      *
      *	Then,
      *		MERGE_UPDATE is 	G1 - E1 + E2	(G1 becomes G2)
-     *		MERGE_UNION is 	G1 U G2 <=> G1 + E2
-     *		MERGE_INTERSECT is	G1 n G2 <=> (G1 U G2) - E1 - E2
+     *		MERGE_UNION is 	G1 U G2 &lt;=&gt; G1 + E2
+     *		MERGE_INTERSECT is	G1 n G2 &lt;=&gt; (G1 U G2) - E1 - E2
      *</pre>
      * @param root of the bean graph that is merged with actual bean graph
      * @param mode type of merging (INTERSECT, UNION, UPDATE)
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/FilterMapping.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/FilterMapping.java
index 4e853c2..6237f29 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/FilterMapping.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/FilterMapping.java
@@ -69,7 +69,6 @@
          */
 	public java.lang.String getDispatcher(int index) throws VersionNotSupportedException;
         /** Setter for dispatcher property.
-         * @param index position in the array of dispatchers
          * @param value array of dispatcher properties
          */
 	public void setDispatcher(java.lang.String[] value) throws VersionNotSupportedException;
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/JspPropertyGroup.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/JspPropertyGroup.java
index bc9f616..c4aad5f 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/JspPropertyGroup.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/JspPropertyGroup.java
@@ -37,7 +37,6 @@
          */
 	public java.lang.String getUrlPattern(int index);
         /** Setter for url-pattern property.
-         * @param index position in the array of url-patterns
          * @param value array of url-pattern properties
          */
 	public void setUrlPattern(java.lang.String[] value);
@@ -102,7 +101,6 @@
          */
 	public java.lang.String getIncludePrelude(int index);
         /** Setter for include-prelude property.
-         * @param index position in the array of include-preludes
          * @param value array of include-prelude properties
          */
 	public void setIncludePrelude(java.lang.String[] value);
@@ -135,7 +133,6 @@
          */
 	public java.lang.String getIncludeCoda(int index);
         /** Setter for include-coda property.
-         * @param index position in the array of include-codas
          * @param value array of include-coda properties
          */
 	public void setIncludeCoda(java.lang.String[] value);
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/ServletMapping.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/ServletMapping.java
index 98c77e7..7f2dda8 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/ServletMapping.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/ServletMapping.java
@@ -34,7 +34,6 @@
          */
 	public java.lang.String getServletName();
         /** Getter for url-pattern property. Use ServletMapping25.setUrlPattern(int, String) instead.
-         * @return property value 
          */
         @Deprecated
 	public void setUrlPattern(java.lang.String value);
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebFragment.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebFragment.java
index 6e7f9e2..a311565 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebFragment.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebFragment.java
@@ -22,7 +22,7 @@
  * Interface for WebFragment element.<br>
  * The WebFragment object is the root of bean graph generated<br>
  * for deployment descriptor(web-fragment.xml) file.<br>
- * For getting the root (WebFragment object) use the {@link WebFragmentProvider#getDDRoot} method.
+ * For getting the root (WebFragment object) use the {@link WebFragmentProvider#getWebFragmentRoot(org.openide.filesystems.FileObject) } method.
  *
  *<p><b><font color="red"><em>Important note: Do not provide an implementation of this interface unless you are a DD API provider!</em></font></b>
  *</p>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebResourceCollection.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebResourceCollection.java
index 8eb7ee1a..236d3b0 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebResourceCollection.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WebResourceCollection.java
@@ -45,7 +45,6 @@
          */
 	public java.lang.String getUrlPattern(int index);
         /** Setter for url-pattern property.
-         * @param index position in the array of url-patterns
          * @param value array of url-pattern properties
          */
 	public void setUrlPattern(java.lang.String[] value);
@@ -78,7 +77,6 @@
          */
 	public java.lang.String getHttpMethod(int index);
         /** Setter for http-method property.
-         * @param index position in the array of http-methods
          * @param value array of http-method properties
          */
 	public void setHttpMethod(java.lang.String[] value);
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WelcomeFileList.java b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WelcomeFileList.java
index 6e9a054..057b652 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WelcomeFileList.java
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/api/web/WelcomeFileList.java
@@ -36,7 +36,6 @@
          */
 	public java.lang.String getWelcomeFile(int index);
         /** Setter for welcome-file property.
-         * @param index position in the array of welcome-files
          * @param value array of welcome-file properties
          */
 	public void setWelcomeFile(java.lang.String[] value);
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eeModule.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eeModule.java
index aff9693..ea375a0 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eeModule.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eeModule.java
@@ -92,14 +92,14 @@
     /**
      * J2EE specification version 1.3
      * @since 1.5
-     * @deprecated use {@link Profile#J2EE_13}
+     * @deprecated use {@link org.netbeans.api.j2ee.core.Profile#J2EE_13}
      */
     @Deprecated
     public static final String J2EE_13 = "1.3"; //NOI18N
     /**
      * J2EE specification version 1.4
      * @since 1.5
-     * @deprecated use {@link Profile#J2EE_14}
+     * @deprecated use {@link org.netbeans.api.j2ee.core.Profile#J2EE_14}
      */
     @Deprecated
     public static final String J2EE_14 = "1.4"; //NOI18N
@@ -108,7 +108,7 @@
      * JAVA EE 5 specification version
      *
      * @since 1.6
-     * @deprecated use {@link Profile#JAVA_EE_5}
+     * @deprecated use {@link org.netbeans.api.j2ee.core.Profile#JAVA_EE_5}
      */
     @Deprecated
     public static final String JAVA_EE_5 = "1.5"; // NOI18N
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eePlatform.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eePlatform.java
index 5261a0d..4369d27 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eePlatform.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/J2eePlatform.java
@@ -479,7 +479,7 @@
      * @param moduleType one of the constants defined in
      *   {@link org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule}
      * @return list of supported J2EE specification versions.
-     * @deprecated use {@link #getSupportedProfiles(java.lang.Object)}
+     * @deprecated use {@link #getSupportedProfiles(Type)}
      */
     @Deprecated
     public Set<String> getSupportedSpecVersions(Object moduleType) {
@@ -513,9 +513,9 @@
 
     /**
      * Returns the set of supported profiles (terminology of Java EE 6) for
-     * the given module type (one of {@link J2eeModule#EAR},
-     * {@link J2eeModule#EJB}, {@link J2eeModule#WAR}, {@link J2eeModule#RAR}
-     * and {@link J2eeModule#CAR}).
+     * the given module type (one of {@link J2eeModule.Type#EAR},
+     * {@link J2eeModule.Type#EJB}, {@link J2eeModule.Type#WAR}, {@link J2eeModule.Type#RAR}
+     * and {@link J2eeModule.Type#CAR}).
      *
      * @param moduleType type of the module
      * @return set of {@link Profile}s supported by the server.
@@ -711,7 +711,6 @@
     /**
      * Lookup providing a way to find non mandatory technologies supported
      * by the platform.
-     * <p>
      * <div class="nonnormative">
      * The typical example of such support is a webservice stack.
      * </div>
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/ServerInstance.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/ServerInstance.java
index ec170d2..e21f9a7 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/ServerInstance.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/api/ServerInstance.java
@@ -285,7 +285,7 @@
 
         /**
          * Returns the set of libraries the server has access to and can be deployed
-         * on request (by call to {@link #deployRequiredLibraries(java.util.Set)}.
+         * on request (by call to {@link org.netbeans.modules.j2ee.deployment.devmodules.api.ServerInstance.LibraryManager#deployLibraries(java.util.Set)}.
          *
          * @return the set of libraries which can be deployed on server
          */
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java
index ab72ebb..e3c0011 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/devmodules/spi/J2eeModuleProvider.java
@@ -516,7 +516,7 @@
          * Removes the listener listening for deploy on save.
          * 
          * @param listener listener to remove
-         * @see #addDeployOnSaveListener(org.netbeans.modules.j2ee.deployment.devmodules.spi.J2eeModuleProvider.DeployOnSaveListener)
+         * @see #addDeployOnSaveListener(DeployOnSaveListener)
          * @since 1.97
          */
         public void removeDeployOnSaveListener( DeployOnSaveListener listener );
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibrary.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibrary.java
index 3df993e..60c9480 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibrary.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibrary.java
@@ -54,7 +54,6 @@
     /**
      * Returns the specification title of the library. May return
      * <code>null</code>.
-     * <p>
      * <div class="nonnormative">
      * For example specification title for JSF would be JavaServer Faces.
      * </div>
@@ -80,7 +79,6 @@
     /**
      * Returns the implementation title of the library. May return
      * <code>null</code>.
-     * <p>
      * <div class="nonnormative">
      * For example specification title for MyFaces implementation of JSF
      * this would be something like MyFaces.
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibraryDependency.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibraryDependency.java
index 4ce21d7..168ab02 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibraryDependency.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/api/ServerLibraryDependency.java
@@ -165,7 +165,7 @@
     }
 
     /**
-     * @{@inheritDoc}
+     * {@inheritDoc}
      *
      * Dependencies are equal if they have the same name, specification version,
      * implementation version and exact match flag.
@@ -219,7 +219,7 @@
     }
 
     /**
-     * @{@inheritDoc}
+     * {@inheritDoc}
      * <p>
      * Implementation consistent with {@link #equals(java.lang.Object)}.
      * @see #equals(java.lang.Object)
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/J2eePlatformImpl.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/J2eePlatformImpl.java
index 90f7ca8..b0c34f3 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/J2eePlatformImpl.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/J2eePlatformImpl.java
@@ -131,7 +131,7 @@
      * class.
      *
      * @return list of supported J2EE specification versions.
-     * @deprecated override {@link #getSupportedProfiles()} and {@link #getSupportedProfiles(java.lang.Object)}
+     * @deprecated override {@link #getSupportedProfiles()} and {@link #getSupportedProfiles(Type)}
      */
     @Deprecated
     public Set<String> getSupportedSpecVersions() {
@@ -151,7 +151,7 @@
      * @param moduleType one of the constants defined in 
      *   {@link org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule}
      * @return list of supported J2EE specification versions.
-     * @deprecated override {@link #getSupportedProfiles()} and {@link #getSupportedProfiles(java.lang.Object)}
+     * @deprecated override {@link #getSupportedProfiles()} and {@link #getSupportedProfiles(Type)}
      */
     @Deprecated
     public Set <String> getSupportedSpecVersions(Object moduleType) {
@@ -181,7 +181,7 @@
     /**
      * Returns a set of supported profiles for the given module type
      * (one of {@link J2eeModule#EAR}, {@link J2eeModule#EJB},
-     * {@link J2eeModule#WAR}, {@link J2eeModule#RAR} and {@link J2eeModule#CAR}).
+     * {@link J2eeModule#WAR}, {@link org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule.Type#RAR} and {@link org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule.Type#CAR}).
      * By default method converts specification version returned by
      * {@link #getSupportedSpecVersions(java.lang.Object)} to profiles.
      *
@@ -316,7 +316,6 @@
     /**
      * Lookup providing a way to find non mandatory technologies supported
      * by the platform.
-     * <p>
      * <div class="nonnormative">
      * The typical example of such support is a webservice stack.
      * </div>
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OldJSPDebug.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OldJSPDebug.java
index 257f36e..feb3b9f 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OldJSPDebug.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OldJSPDebug.java
@@ -32,7 +32,7 @@
  */
 public interface OldJSPDebug extends FindJSPServlet {
 
-    /** Creates a servlet <-> JSP mapping for a given JSP. May be null if the server is not running
+    /** Creates a servlet &lt;-&gt; JSP mapping for a given JSP. May be null if the server is not running
      *  or the page has not been compiled. Also may be null if the server plugin does not support
      *  creation of the line mapping information.
      * @param module web module in which the JSP is located.
@@ -42,7 +42,7 @@
      */
     public JspSourceMapper getSourceMapper(TargetModuleID module, String jspResourcePath);
     
-    /** Provides common interface for JSP <----> Java mappings */
+    /** Provides common interface for JSP &lt;----&gt; Java mappings */
     public interface JspSourceMapper {
         
         /** Converts the JSP file name (from the string int the servlet comments into
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryImplementation.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryImplementation.java
index 446e7d2..7cac2a0 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryImplementation.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryImplementation.java
@@ -35,7 +35,6 @@
     /**
      * Returns the specification title of the library. May return
      * <code>null</code>.
-     * <p>
      * <div class="nonnormative">
      * For example specification title for JSF would be JavaServer Faces.
      * </div>
@@ -48,7 +47,6 @@
     /**
      * Returns the implementation title of the library. May return
      * <code>null</code>.
-     * <p>
      * <div class="nonnormative">
      * For example specification title for MyFaces implementation of JSF
      * this would be something like MyFaces.
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryManager.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryManager.java
index ab5f1bf..af6a367 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryManager.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/ServerLibraryManager.java
@@ -37,7 +37,7 @@
 
     /**
      * Returns the set of libraries the server has access to and can be deployed
-     * on request (by call to {@link #deployRequiredLibraries(java.util.Set)}.
+     * on request (by call to {@link org.netbeans.modules.j2ee.deployment.devmodules.api.ServerInstance.LibraryManager#deployLibraries(java.util.Set)}.
      *
      * @return the set of libraries which can be deployed on server
      */
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ModuleConfigurationFactory2.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ModuleConfigurationFactory2.java
index ae8d568..e7198cf 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ModuleConfigurationFactory2.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ModuleConfigurationFactory2.java
@@ -40,7 +40,7 @@
      * 
      * @param j2eeModule J2EE module the created ModuleConfigucation should be 
      *        associated with
-     * @param deployment URL of the target server instance
+     * @param instanceUrl  URL of the target server instance
      * 
      * @return ModuleConfiguration associated with the specified J2EE module
      */    
diff --git a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ServerLibraryConfiguration.java b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ServerLibraryConfiguration.java
index c11a17f..2bab489 100644
--- a/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ServerLibraryConfiguration.java
+++ b/enterprise/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/config/ServerLibraryConfiguration.java
@@ -42,7 +42,7 @@
      * to work properly.
      * <p>
      * Once library is configured it should be present in the result
-     * of the {@link #getRequiredLibraries()} call.
+     * of the {@link #getLibraries()} call.
      *
      * @param library the library the enterprise module needs in order to work
      *             properly
diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
index 193f4a3..bbf2118 100644
--- a/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
+++ b/extide/gradle/netbeans-gradle-tooling/src/main/java/org/netbeans/modules/gradle/tooling/NbProjectInfoBuilder.java
@@ -91,6 +91,7 @@
 import org.gradle.api.plugins.ExtensionAware;
 import org.gradle.api.plugins.ExtensionContainer;
 import org.gradle.api.plugins.ExtensionsSchema.ExtensionSchema;
+import org.gradle.api.plugins.ExtraPropertiesExtension;
 import org.gradle.api.provider.Provider;
 import org.gradle.api.reflect.HasPublicType;
 import org.gradle.api.reflect.TypeOf;
@@ -100,6 +101,7 @@
 import org.gradle.api.tasks.TaskDependency;
 import org.gradle.api.tasks.bundling.Jar;
 import org.gradle.api.tasks.testing.Test;
+import org.gradle.internal.extensibility.DefaultExtraPropertiesExtension;
 import org.gradle.jvm.JvmLibrary;
 import org.gradle.language.base.artifact.SourcesArtifact;
 import org.gradle.language.java.artifact.JavadocArtifact;
@@ -121,6 +123,11 @@
      * project loader is enabled to FINER level.
      */
     private static final Logger LOG =  Logging.getLogger(NbProjectInfoBuilder.class);
+
+    /**
+     * Name of the default extensibility point for various domain objects defined by Gradle.
+     */
+    private static final String DEFAULT_EXTENSION_NAME = "ext"; // NOI18N
     
     private static final String NB_PREFIX = "netbeans.";
     private static final Set<String> CONFIG_EXCLUDES = new HashSet<>(asList( new String[]{
@@ -536,32 +543,45 @@
         return adapter.isMutableType(potentialValue);
     }
     
+    private void addNestedKeys(String prefix, Map<String, String> propertyTypes, Collection<String> keys) {
+            propertyTypes.merge(prefix + COLLECTION_KEYS_MARKER, String.join(";;", keys), (old, add) -> {
+                List<String> oldList = new ArrayList<>(Arrays.asList(old.split(";;")));
+                List<String> newList = Arrays.asList(add.split(";;"));
+                oldList.addAll(newList);
+                return String.join(";;", oldList);
+            });
+    }
+    
     private void inspectObjectAndValues0(Class clazz, Object object, String prefix, Map<String, Map<String, String>> globalTypes, Map<String, String> propertyTypes, Map<String, Object> defaultValues, Set<String> excludes, boolean type) {
         Class nonDecorated = findNonDecoratedClass(clazz);
         
         // record object's type first, even though the value may be excluded (i.e. ignored class). Do not add types for collection or map items -- to much clutter.
+        String typeKey = prefix;
+        if (prefix.endsWith(".")) {
+            typeKey = prefix.substring(0, prefix.length() - 1);
+        } else {
+            typeKey = prefix;
+        }
         if (type) {
-            String typeKey = prefix;
-            if (prefix.endsWith(".")) {
-                typeKey = prefix.substring(0, prefix.length() - 1);
-            } else {
-                typeKey = prefix;
-            }
             if (propertyTypes.putIfAbsent(typeKey, nonDecorated.getName()) != null && object == null) {
                 // type already introspected, no value to fetch properties from.
                 return;
             }
         }
-        if (clazz == null || (excludes == null && ignoreClassesPattern.matcher(clazz.getName()).matches())) {
+        
+        if (clazz == null || clazz.isEnum()) {
             return;
         }
-        if (clazz.isEnum() || clazz.isArray()) {
+        if (clazz.isArray() || (excludes == null && ignoreClassesPattern.matcher(clazz.getName()).matches())) {
+            // try to dump as a list/map
+            dumpValue(object, typeKey, propertyTypes, defaultValues, clazz, null);
             return;
         }
 
         MetaClass mclazz = GroovySystem.getMetaClassRegistry().getMetaClass(clazz);
         Map<String, String> globTypes = globalTypes.computeIfAbsent(nonDecorated.getName(), cn -> new HashMap<>());
         List<MetaProperty> props = mclazz.getProperties();
+        List<String> addedKeys = new ArrayList<>();
         for (MetaProperty mp : props) {
             Class propertyDeclaringClass = null;
             String getterName = null;
@@ -656,6 +676,8 @@
                 }
             }
             
+            addedKeys.add(propName);
+            
             String cn = findNonDecoratedClass(t).getName();
             globTypes.put(propName, cn);
             propertyTypes.put(prefix + propName, cn);
@@ -675,6 +697,7 @@
                         itemClass = findIterableItemClass(pubType.getConcreteClass());
                     }
                     propertyTypes.put(prefix + propName + COLLECTION_TYPE_MARKER, COLLECTION_TYPE_NAMED);
+                    propertyTypes.put(prefix + propName, findNonDecoratedClass(t).getName());
                     if (itemClass != null) {
                         propertyTypes.put(prefix + propName + COLLECTION_ITEM_MARKER, itemClass.getName());
                         newPrefix = prefix + propName + COLLECTION_ITEM_PREFIX; // NOI18N
@@ -683,88 +706,10 @@
 
                     NamedDomainObjectContainer nc = (NamedDomainObjectContainer)value;
                     Map<String, ?> m = new HashMap<>(nc.getAsMap());
-                    List<String> ss = new ArrayList<>(m.keySet());
-                    propertyTypes.put(prefix + propName + COLLECTION_KEYS_MARKER, String.join(";;", ss));
-                    for (Map.Entry<String, ?> it : m.entrySet()) {
-                        String k = it.getKey();
-                        newPrefix = prefix + propName + "." + k + "."; // NOI18N
-                        Object v = it.getValue();
-                        defaultValues.put(prefix + propName + "." + k, Objects.toString(v)); // NOI18N
-                        inspectObjectAndValues(v.getClass(), v, newPrefix, globalTypes, propertyTypes, defaultValues, null, false);
-                    }
+                    dumpContainerProperties(m, prefix + propName, defaultValues);
                     dumped = true;
-                } else if (Iterable.class.isAssignableFrom(t)) {
-                    itemClass = findIterableItemClass(t);
-                    if (itemClass == null && typeParameters != null && !typeParameters.isEmpty()) {
-                        if (typeParameters.get(0) instanceof Class) {
-                            itemClass = (Class)typeParameters.get(0);
-                        }
-                    }
-                    
-                    propertyTypes.put(prefix + propName + COLLECTION_TYPE_MARKER, COLLECTION_TYPE_LIST);
-                    if (itemClass != null) {
-                        cn = findNonDecoratedClass(itemClass).getName();
-                        propertyTypes.put(prefix + propName + COLLECTION_ITEM_MARKER, cn);
-                        String newPrefix = prefix + propName + COLLECTION_ITEM_PREFIX; // NOI18N
-                        if (!cn.startsWith("java.lang.") && !Provider.class.isAssignableFrom(t)) { //NOI18N
-                            inspectObjectAndValues(itemClass, null, newPrefix, globalTypes, propertyTypes, defaultValues);
-                        }
-                    }
-                    
-                    if (value instanceof Iterable) {
-                        int index = 0;
-                        try {
-                            for (Object o : (Iterable)value) {
-                                String newPrefix = prefix + propName + "[" + index + "]."; // NOI18N
-                                defaultValues.put(prefix + propName + "[" + index + "]", Objects.toString(o)); //NOI18N
-                                inspectObjectAndValues(o.getClass(), o, newPrefix, globalTypes, propertyTypes, defaultValues, null, false);
-                                index++;
-                            }
-                        } catch (RuntimeException ex) {
-                            // values cannot be obtained
-                        }
-                        dumped = true;
-                    }
-                } else if (value instanceof Map) {
-                    Map mvalue = (Map)value;
-                    Set<Object> ks = mvalue.keySet();
-                    Class keyClass = findIterableItemClass(ks.getClass());
-                    if (keyClass == null || keyClass == java.lang.Object.class) {
-                        boolean ok = true;
-                        for (Object k : ks) {
-                            if (!(k instanceof String)) {
-                                ok = false;
-                            }
-                        }
-                        if (ok) {
-                            keyClass = String.class;
-                        }
-                    }
-                    if (keyClass == String.class) {
-                        itemClass = findIterableItemClass(mvalue.values().getClass());
-
-                        String keys = ks.stream().map(k -> k.toString()).map((String k) -> k.replace(";", "\\;")).collect(Collectors.joining(";;"));
-                        propertyTypes.put(prefix + propName + COLLECTION_KEYS_MARKER, keys);
-                        
-                        propertyTypes.put(prefix + propName + COLLECTION_TYPE_MARKER, COLLECTION_TYPE_MAP);
-                        if (itemClass != null) {
-                            cn = findNonDecoratedClass(itemClass).getName();
-                            propertyTypes.put(prefix + propName + COLLECTION_ITEM_MARKER, cn);
-                            String newPrefix = prefix + propName + COLLECTION_ITEM_PREFIX; // NOI18N
-                            if (!cn.startsWith("java.lang.") && !Provider.class.isAssignableFrom(t)) { //NOI18N
-                                inspectObjectAndValues(itemClass, null, newPrefix, globalTypes, propertyTypes, defaultValues);
-                            }
-                        }
-
-                        for (Object o : ks) {
-                            String k = o.toString();
-                            String newPrefix = prefix + propName + "[" + k + "]"; // NOI18N
-                            Object v = mvalue.get(o);
-                            defaultValues.put(newPrefix, Objects.toString(v)); // NOI18N
-                            inspectObjectAndValues(v.getClass(), v, newPrefix + ".", globalTypes, propertyTypes, defaultValues, null, itemClass == null);
-                        }
-                        dumped = true;
-                    }
+                } else {
+                    dumped = dumpValue(value, prefix + propName, propertyTypes, defaultValues, t, typeParameters);
                 }
                 
                 if (!dumped) {
@@ -777,6 +722,129 @@
                 }
             }
         }
+        addNestedKeys(typeKey, propertyTypes, addedKeys);
+    }
+    
+    private void dumpContainerProperties(Map<String, ?> m, String prefix, Map<String, Object> defaultValues) {
+        // merge with other properties
+        addNestedKeys(prefix, propertyTypes, m.keySet());
+
+        for (Map.Entry<String, ?> it : m.entrySet()) {
+            String k = it.getKey();
+            String newPrefix = prefix + "." + k + "."; // NOI18N
+            Object v = it.getValue();
+            defaultValues.put(prefix + "." + k, Objects.toString(v)); // NOI18N
+            inspectObjectAndValues(v.getClass(), v, newPrefix, globalTypes, propertyTypes, defaultValues, null, false);
+        }
+    }
+    
+    private boolean dumpValue(Object value, String prefix, Map<String, String> propertyTypes, Map<String, Object> defaultValues, Class t, List<Type> typeParameters) {
+        // attemtp to enumerate membrs of a Container or an Iterable.
+        Class itemClass = null;
+        String cn = null;
+        boolean dumped = false;
+        if ((value instanceof NamedDomainObjectContainer) && (value instanceof HasPublicType)) {
+            String newPrefix;
+
+            TypeOf pubType = ((HasPublicType)value).getPublicType();
+            if (pubType != null && pubType.getComponentType() != null) {
+                itemClass = pubType.getComponentType().getConcreteClass();
+            } else {
+                itemClass = findIterableItemClass(pubType.getConcreteClass());
+            }
+            propertyTypes.put(prefix + COLLECTION_TYPE_MARKER, COLLECTION_TYPE_NAMED);
+            if (itemClass != null) {
+                propertyTypes.put(prefix + COLLECTION_ITEM_MARKER, itemClass.getName());
+                newPrefix = prefix + COLLECTION_ITEM_PREFIX; // NOI18N
+                inspectObjectAndValues(itemClass, null, newPrefix, globalTypes, propertyTypes, defaultValues);
+            }
+
+            NamedDomainObjectContainer nc = (NamedDomainObjectContainer)value;
+            Map<String, ?> m = new HashMap<>(nc.getAsMap());
+            List<String> ss = new ArrayList<>(m.keySet());
+            propertyTypes.put(prefix + COLLECTION_KEYS_MARKER, String.join(";;", ss));
+            for (String k : m.keySet()) {
+                newPrefix = prefix + "." + k + "."; // NOI18N
+                Object v = m.get(k);
+                defaultValues.put(prefix + "." + k, Objects.toString(v)); // NOI18N
+                inspectObjectAndValues(v.getClass(), v, newPrefix, globalTypes, propertyTypes, defaultValues, null, false);
+            }
+            dumped = true;
+        } else if (Iterable.class.isAssignableFrom(t)) {
+            itemClass = findIterableItemClass(t);
+            if (itemClass == null && typeParameters != null && !typeParameters.isEmpty()) {
+                if (typeParameters.get(0) instanceof Class) {
+                    itemClass = (Class)typeParameters.get(0);
+                }
+            }
+
+            propertyTypes.put(prefix + COLLECTION_TYPE_MARKER, COLLECTION_TYPE_LIST);
+            
+            if (itemClass != null) {
+                cn = findNonDecoratedClass(itemClass).getName();
+                propertyTypes.put(prefix + COLLECTION_ITEM_MARKER, cn);
+                String newPrefix = prefix + COLLECTION_ITEM_PREFIX; // NOI18N
+                if (!cn.startsWith("java.lang.") && !Provider.class.isAssignableFrom(t)) { //NOI18N
+                    inspectObjectAndValues(itemClass, null, newPrefix, globalTypes, propertyTypes, defaultValues);
+                }
+            }
+
+            if (value instanceof Iterable) {
+                int index = 0;
+                try {
+                    for (Object o : (Iterable)value) {
+                        String newPrefix = prefix + "[" + index + "]."; // NOI18N
+                        defaultValues.put(prefix + "[" + index + "]", Objects.toString(o)); //NOI18N
+                        inspectObjectAndValues(o.getClass(), o, newPrefix, globalTypes, propertyTypes, defaultValues, null, false);
+                        index++;
+                    }
+                } catch (RuntimeException ex) {
+                    // values cannot be obtained
+                }
+                dumped = true;
+            }
+        } else if (value instanceof Map) {
+            Map mvalue = (Map)value;
+            Set<Object> ks = mvalue.keySet();
+            Class keyClass = findIterableItemClass(ks.getClass());
+            if (keyClass == null || keyClass == java.lang.Object.class) {
+                boolean ok = true;
+                for (Object k : ks) {
+                    if (!(k instanceof String)) {
+                        ok = false;
+                    }
+                }
+                if (ok) {
+                    keyClass = String.class;
+                }
+            }
+            if (keyClass == String.class) {
+                itemClass = findIterableItemClass(mvalue.values().getClass());
+
+                String keys = ks.stream().map(k -> k.toString()).map((String k) -> k.replace(";", "\\;")).collect(Collectors.joining(";;"));
+                propertyTypes.put(prefix + COLLECTION_KEYS_MARKER, keys);
+
+                propertyTypes.put(prefix + COLLECTION_TYPE_MARKER, COLLECTION_TYPE_MAP);
+                if (itemClass != null) {
+                    cn = findNonDecoratedClass(itemClass).getName();
+                    propertyTypes.put(prefix + COLLECTION_ITEM_MARKER, cn);
+                    String newPrefix = prefix + COLLECTION_ITEM_PREFIX; // NOI18N
+                    if (!cn.startsWith("java.lang.") && !Provider.class.isAssignableFrom(t)) { //NOI18N
+                        inspectObjectAndValues(itemClass, null, newPrefix, globalTypes, propertyTypes, defaultValues);
+                    }
+                }
+
+                for (Object o : ks) {
+                    String k = o.toString();
+                    String newPrefix = prefix + "[" + k + "]"; // NOI18N
+                    Object v = mvalue.get(o);
+                    defaultValues.put(newPrefix, Objects.toString(v)); // NOI18N
+                    inspectObjectAndValues(v.getClass(), v, newPrefix + ".", globalTypes, propertyTypes, defaultValues, null, itemClass == null);
+                }
+                dumped = true;
+            }
+        }
+        return dumped;
     }
     
     private static Class findNonDecoratedClass(Class clazz) {
@@ -810,7 +878,7 @@
             
             Object ext;
             try {
-                ext = project.getExtensions().getByName(extName);
+                ext = container.getByName(extName);
                 if (ext == null) {
                     continue;
                 }
@@ -818,6 +886,15 @@
                 // ignore, the extension could not be obtained, ignore.
                 continue;
             }
+            
+            // special case for 'ext' DefaultProperiesExtension whose properties are 'merged' with the base object
+            // can be read in the buildscript as if the object itself defined them
+            if (DEFAULT_EXTENSION_NAME.equals(extName) && (ext instanceof ExtraPropertiesExtension)) {
+                String p = prefix.endsWith(".") ? prefix.substring(0, prefix.length() - 1) : prefix;
+                dumpContainerProperties(((ExtraPropertiesExtension)ext).getProperties(), p, values);
+                continue;
+            }
+            
             Class c = findNonDecoratedClass(ext.getClass());
             propertyTypes.put(prefix + extName, c.getName());
             inspectObjectAndValues(ext.getClass(), ext, prefix + extName + ".", globalTypes, propertyTypes, values);
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/BuildPropertiesSupport.java b/extide/gradle/src/org/netbeans/modules/gradle/api/BuildPropertiesSupport.java
index 091992e..1f8590a 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/BuildPropertiesSupport.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/BuildPropertiesSupport.java
@@ -45,11 +45,11 @@
  * then use
  * <ul>
  * <li>{@link BuildPropertiesSupport#findExtensionProperty(java.lang.String, java.lang.String)}, or
- * <li>{@link BuildPropertiesSupport#findTaskProperty(java.lang.String, java.lang.String)
+ * <li>{@link BuildPropertiesSupport#findTaskProperty(java.lang.String, java.lang.String)}
  * </ul>
  * <p>
  * There's a limited support for maps and lists. If a {@link Property} indicates a {@link BuildPropertiesSupport.PropertyKind#MAP} type, it is
- * possible to use {@link #keys} to enumerate keys of the map. For {@link PropertyKidn#LIST}s, {@link #items} enumerate items of the list.
+ * possible to use {@link #keys} to enumerate keys of the map. For {@link PropertyKind#LIST}s, {@link #items} enumerate items of the list.
  * @author sdedic
  * @since 2.28
  */
@@ -180,10 +180,12 @@
     }
     
     /**
-     * Returns keys of map-style properties. Works only for properties of {@link PropertyKind#MAP}.
-     * @param owner
-     * @return 
+     * Returns keys of map-style properties. Works only for properties of {@link PropertyKind#MAP} or
+     * {@link PropertyKind#STRUCTURE}. May return an empty list, if keys cannot be enumerated or represented as Strings.
+     * @param owner the property
+     * @return list of keys, possibly empty. Does not return null
      */
+    @NonNull
     public Collection<String> keys(Property owner) {
         if ((owner.getKind() != PropertyKind.STRUCTURE) && (owner.getKind() != PropertyKind.MAP)) {
             return Collections.emptyList();
@@ -204,8 +206,9 @@
      * @param base the map property
      * @param key map item's key
      * @param path optional path within an item to the property.
-     * @return map item, or a property of a map item.
+     * @return map item, or a property of a map item. Null, if the item can not be found.
      */
+    @CheckForNull
     public Property get(Property base, String key, String path) {
         if ((base.getKind() != PropertyKind.MAP)) {
             return null;
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
index 76f8ddd..36d6c62 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
@@ -47,7 +47,7 @@
  * Note: Caching / storing this object inn a member field is discouraged. Use
  * {@link GradleBaseProject#get(Project)} instead.
  * </p>
- * @see @see <a href="https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html">org.gradle.api.Project</a>
+ * @see <a href="https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html">org.gradle.api.Project</a>
  * @since 1.0
  * @author Laszlo Kishalmi
  */
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java
index 63966d6..3c21520 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleConfiguration.java
@@ -216,7 +216,7 @@
     /**
      * Returns the attributes of this configuration. The returned map is a
      * simplified version of the Gradle configuration
-     * {@link https://docs.gradle.org/current/javadoc/org/gradle/api/attributes/AttributeContainer.html AttributeContainer},
+     * <a href="https://docs.gradle.org/current/javadoc/org/gradle/api/attributes/AttributeContainer.html">AttributeContainer</a>,
      * where the attribute names are the keys and the attribute string values are the values.
      *
      * @return the attributes of this configuration
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/ModuleSearchSupport.java b/extide/gradle/src/org/netbeans/modules/gradle/api/ModuleSearchSupport.java
index 28d70d3..45725af 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/ModuleSearchSupport.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/ModuleSearchSupport.java
@@ -39,7 +39,6 @@
      * all for that parameter.
      *
      * @see java.util.regex.Pattern
-     * {@
      * @param group regexp matcher for the group part.
      * @param artifact regexp matcher for the artifact part.
      * @param version regexp matcher for the version part.
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
index ae4ebeb..b82bd8b 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
@@ -70,7 +70,7 @@
      * E.g. If we just need to know if the project is a Gradle project, there
      * is no need to go and fetch all the dependencies.
      * <p>
-     * <img src="doc-files/gradle-quality.png" alt="Quality States"/>
+     * <img src="doc-files/gradle-quality.png" alt="Quality States">
      * </p>
      * <p>
      * Gradle project is associated with the quality of the
@@ -262,9 +262,9 @@
      * the current {@link #getQuality()} level. Reason for the reload may be specified: if the reload
      * takes some time (i.e. executing Gradle build), the IDE may use the {@code reason} text to annotate
      * the ongoing progress.
-     * <p/>
+     * <p>
      * The returned {@link CompletionStage} may complete in this thread, or asynchronously in an unspecified thread.
-     * <p/>
+     * <p>
      * Note that the loading may fail, so the returned Quality may be <b>less than requested</b>. For example
      * if the project is not trusted, its Gradle build will not be executed, so the returned quality can be {@link Quality#EVALUATED}.
      * 
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/ActionMapping.java b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/ActionMapping.java
index b35097b..f91ea6d 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/ActionMapping.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/ActionMapping.java
@@ -27,7 +27,7 @@
  * <p>
  * The mapping can cause the action to be <b>disabled</b>: if {@link #getReloadRule()} == {@link ReloadRule#NEVER} and
  * {@link #getArgs()} == {@code null}. Such mapping had no effect in previous versions. This can be checked by a
- * convenience method {@link RunUtils#isActionDisabled}.
+ * convenience method {@link ActionMapping#isDisabled}.
  * @since 1.0
  * @since 2.14 concept of empty/disabled action
  * @author Laszlo Kishalmi
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleExecConfiguration.java b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleExecConfiguration.java
index 0587811..b560425 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleExecConfiguration.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/execute/GradleExecConfiguration.java
@@ -29,6 +29,7 @@
 import org.netbeans.modules.gradle.execute.GradleExecAccessor;
 import org.netbeans.modules.gradle.spi.actions.BeforeBuildActionHook;
 import org.netbeans.modules.gradle.execute.ProjectConfigurationSupport;
+import org.netbeans.modules.gradle.spi.actions.AfterBuildActionHook;
 import org.netbeans.modules.gradle.spi.actions.DefaultGradleActionsProvider;
 import org.netbeans.spi.project.ProjectConfiguration;
 import org.netbeans.spi.project.ProjectConfigurationProvider;
@@ -43,7 +44,7 @@
  * The configuration can be defined by the user using the UI. There are no API calls (yet) to 
  * create or manage Configurations.
  * <p>
- * <a name="request-for-invocation">One can <b>request action invocation</b> in a specific {@link GradleExecConfiguration}. In that
+ * <a name="request-for-invocation"></a>One can <b>request action invocation</b> in a specific {@link GradleExecConfiguration}. In that
  * case, {@link ActionMapping} for the action specific for the selected configuration (if defined) will be used. Also, if the {@link #getCommandLineArgs()}
  * or {@link #getProjectProperties()} are not empty, their values will be combined with the {@link ActionMapping} settings.
  * To invoke a Project Action with a specific Configuration, place the Configuration instance in the Action's context Lookup:
@@ -195,7 +196,7 @@
     /**
      * Attempts to find an effective configuration for the project. The effective configuration is the 
      * {@link ProjectConfigurationProvider#getActiveConfiguration()}, unless it has been overriden by contents of 
-     * the `context` {@link Lookup}, or by some caller. Can be used from implementations of {@link AfterBuildActionHoo},
+     * the `context` {@link Lookup}, or by some caller. Can be used from implementations of {@link AfterBuildActionHook},
      * {@link BeforeBuildActionHook} etc.
      * 
      * @param prj project
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/package-info.java b/extide/gradle/src/org/netbeans/modules/gradle/api/package-info.java
index 9343bec..7ccb07d 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/package-info.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/package-info.java
@@ -19,7 +19,7 @@
 /**
  * Domain and access classes for Gradle projects.
  * <p>
- * <img src="doc-files/gradle-classes.png" alt="Main Gradle Support Classes"/>
+ * <img src="doc-files/gradle-classes.png" alt="Main Gradle Support Classes">
  * </p>
  * @since 1.0
  */
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractor.java b/extide/gradle/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractor.java
index 1f45a2b..10c3ebe 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractor.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractor.java
@@ -27,6 +27,7 @@
 import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 import org.netbeans.modules.gradle.api.BuildPropertiesSupport;
 import org.netbeans.modules.gradle.spi.GradleFiles;
 import org.netbeans.modules.gradle.spi.ProjectInfoExtractor;
@@ -121,15 +122,16 @@
                 default:
                     return null;
             }
-            if (base.getName()== null || propertyPath == null) {
+            if (base.getName()== null) {
                 return null;
             }
             Object id = base.getId();
             String path;
+            String suffix = propertyPath == null ? "" : "." + propertyPath; // NOI18N
             if (id == null) {
-                path = base.getName() + "." + propertyPath; // NOI18N
+                path = base.getName() + suffix; // NOI18N
             } else if (id instanceof String) {
-                path = id.toString() + "." + propertyPath; // NOI18N
+                path = id.toString() + suffix; // NOI18N
             } else {
                 return null;
             }
@@ -170,7 +172,7 @@
             if (c == null) {
                 return null;
             }
-            return Arrays.asList(c.split(";;")).stream().map(s -> s.replaceAll("\\;", ";")).collect(Collectors.toList());
+            return Stream.of(c.split(";;")).map(s -> s.replace("\\;", ";")).collect(Collectors.toList());
         }
 
         @Override
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/GradleActionsProvider.java b/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/GradleActionsProvider.java
index c89bb54..cd371a7 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/GradleActionsProvider.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/GradleActionsProvider.java
@@ -46,7 +46,7 @@
  * <div class="nonnormative">
  * This is an example, how to disable e.g. {@code debug.single} action in a specific configuration the user may activate:
  * {@snippet file="org/netbeans/modules/gradle/actions/declarative-actions2.xml" region="disable-action-xml"}
- * 
+ * </div>
  * @author Laszlo Kishalmi
  * @author Svata Dedic
  */
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/ProjectActionMappingProvider.java b/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/ProjectActionMappingProvider.java
index 88e404b..301539a 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/ProjectActionMappingProvider.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/actions/ProjectActionMappingProvider.java
@@ -36,11 +36,11 @@
  *     ProjectActionMappingProvider pamp = project.getLookup().lookup(ProjectActionMappingProvider.class);
  *     ActionMapping actionMapping = pamp.findMapping(action);
  *     GradleCommandLine cli = new GradleCommandLine(
- *             RunUtils.evaluateAcrionArgs(project, actionMapping.getArgs(), action, context));
+ *             RunUtils.evaluateActionArgs(project, actionMapping.getArgs(), action, context));
  * </pre>
  * <p>
  * Since 2.14, the Provider may return a disabled {@link ActionMapping}. Check using 
- * {@link RunUtils#isActionDisabled}, rather than just {@code == null}.
+ * {@link ActionMapping#isDisabled}, rather than just {@code == null}.
  * 
  * @author Laszlo Kishalmi
  * @since 2.6
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/GradleDistributionProvider.java b/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/GradleDistributionProvider.java
index 3e9e1dc..74965d0 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/GradleDistributionProvider.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/execute/GradleDistributionProvider.java
@@ -36,7 +36,7 @@
      * GradleDistribution requirements. Gradle defaults of the actual project
      * and tooling API would be used in that case (not recommended).
      *
-     * @return The {@link GradeDistribution} to use for the project.
+     * @return The {@link GradleDistribution} to use for the project.
      */
     GradleDistribution getGradleDistribution();
 
@@ -44,13 +44,13 @@
      * Add a {@link ChangeListener} to be notified when the required
      * {@link GradleDistribution} changes for the project;
      *
-     * @param l the {@link ChanegListener}
+     * @param l the {@link ChangeListener}
      */
     void addChangeListener(ChangeListener l);
 
     /**
      * Remove a registered {@link ChangeListener}.
-     * @param l the {@link ChanegListener}
+     * @param l the {@link ChangeListener}
      */
     void removeChangeListener(ChangeListener l);
 
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
index bdf327b..7fdc1dd 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/spi/newproject/TemplateOperation.java
@@ -171,7 +171,7 @@
 
     /** Builder to specify additional parameters for the {@link #createGradleInit(java.io.File, java.lang.String)}
      * operation. At the end call {@link #add()} to finish the operation and 
-     * add it to the list of {@link OperationStep}s to perform.
+     * add it to the list of {@link TemplateOperation.OperationStep}s to perform.
      * 
      * @since 2.20
      */
@@ -179,7 +179,7 @@
         InitOperation() {
         }
 
-        /** Add the operation to the list of {@link OperationStep}s to perform.
+        /** Add the operation to the list of {@link TemplateOperation.OperationStep}s to perform.
          * @since 2.20
          */
         public final void add() {
diff --git a/extide/gradle/test/unit/data/buildprops/micronaut/build.gradle b/extide/gradle/test/unit/data/buildprops/micronaut/build.gradle
index 15ddebd..9e0b09a 100644
--- a/extide/gradle/test/unit/data/buildprops/micronaut/build.gradle
+++ b/extide/gradle/test/unit/data/buildprops/micronaut/build.gradle
@@ -61,7 +61,22 @@
 
 graalvmNative.binaries.main.systemProperties = [prop1 : 'value1', 'prop2': 'value2', 'prop;;3': 'value3' ];
 
+graalvmNative.binaries.main.buildArgs.addAll([ 'x', 'y', 'z' ])
+
+// define an extra property using extension mechanism
+graalvmNative.ext.weirdKeys = [ 
+    normalKey: 'Hello!',
+    'semi;key': "There",
+    'semi;;key': "DoubleSemi",
+    'semi;\\;key': "EscapedSemi"
+]
+
+// initialize a List<String>
+tasks.named('nativeCompile')  {
+    options.get().getRuntimeArgs().addAll(['a', 'b'])
+}
 
 println project.group
 println project.name
 println project.version
+println tasks.nativeCompile.options.get().getRuntimeArgs().get()
diff --git a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractorTest.java b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractorTest.java
index 2f766ba..372f303 100644
--- a/extide/gradle/test/unit/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractorTest.java
+++ b/extide/gradle/test/unit/src/org/netbeans/modules/gradle/loaders/ExtensionPropertiesExtractorTest.java
@@ -20,15 +20,22 @@
 
 import java.io.File;
 import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
+import java.util.List;
+import java.util.stream.Collectors;
 import static junit.framework.TestCase.assertNotNull;
+import org.gradle.internal.impldep.com.google.common.collect.Streams;
 import org.netbeans.api.project.Project;
 import org.netbeans.api.project.ProjectManager;
 import org.netbeans.api.project.ui.OpenProjects;
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.modules.gradle.ProjectTrust;
 import org.netbeans.modules.gradle.api.BuildPropertiesSupport;
+import org.netbeans.modules.gradle.api.BuildPropertiesSupport.PropertyKind;
 import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.modules.gradle.options.GradleExperimentalSettings;
 import org.openide.filesystems.FileObject;
@@ -164,6 +171,25 @@
         item = support.get(prop, "test", null);
         assertNotNull(item);
     }
+    
+    public void testAddedListExtensionProperty() throws Exception {
+        Project p = makeProject("buildprops/micronaut");
+        BuildPropertiesSupport support = BuildPropertiesSupport.get(p);
+        assertNotNull(support);
+        
+        BuildPropertiesSupport.Property prop;
+        
+
+        prop = support.findExtensionProperty("graalvmNative", "binaries.main.buildArgs");
+        assertEquals(BuildPropertiesSupport.PropertyKind.LIST, prop.getKind());
+        Iterable<BuildPropertiesSupport.Property> it = support.items(prop, null);
+        assertNotNull(it);
+        Iterator<BuildPropertiesSupport.Property> iter = it.iterator();
+        assertTrue(iter.hasNext());
+        
+        List<String> l = Streams.stream(iter).map(BuildPropertiesSupport.Property::getStringValue).collect(Collectors.toList());
+        assertEquals(Arrays.asList("x", "y", "z"), l);
+    }
 
     public void testMapExtensionProperty2() throws Exception {
         Project p = makeProject("buildprops/micronaut");
@@ -194,7 +220,33 @@
         assertNotNull(item);
         assertEquals("value3", item.getStringValue());
     }
-
+    
+    /**
+     * Keys are ;; delimited, check various weird keys that needs to be encoded, if they decode back properly.
+     * @throws Exception 
+     */
+    public void testWeirdKeysMapExtensionProperty() throws Exception {
+        Project p = makeProject("buildprops/micronaut");
+        BuildPropertiesSupport support = BuildPropertiesSupport.get(p);
+        assertNotNull(support);
+        
+        BuildPropertiesSupport.Property prop;
+        prop = support.findExtensionProperty("graalvmNative", "weirdKeys");
+        prop = support.get(prop, "main", null);
+        prop = support.findExtensionProperty("graalvmNative", null);
+        BuildPropertiesSupport.Property prop2 = support.get(prop, "binaries", null);
+        prop = support.findExtensionProperty("graalvmNative", "weirdKeys");
+        
+        
+        Collection<String> keys = support.keys(prop);
+        assertNotNull(keys);
+        
+        List<String> sorted = new ArrayList<>(keys);
+        Collections.sort(sorted);
+        
+        assertEquals(Arrays.asList("normalKey", "semi;;key", "semi;\\;key", "semi;key"), sorted);
+    }
+    
 
     public void testSimpleTaskProperty() throws Exception {
         Project p = makeProject("buildprops/micronaut");
@@ -213,8 +265,8 @@
         prop = support.findTaskProperty("nativeCompile", "options");
         assertNotNull(prop);
         assertEquals(BuildPropertiesSupport.PropertyKind.STRUCTURE, prop.getKind());
-
-        assertTrue(support.keys(prop).isEmpty());
+        
+        assertFalse(support.keys(prop).isEmpty());
         assertFalse(support.items(prop, null).iterator().hasNext());
 
         prop = support.findTaskProperty("nativeTestCompile", "workingDirectory");
@@ -228,4 +280,21 @@
         assertFalse(support.items(prop, null).iterator().hasNext());
     }
     
+    /**
+     * Checks that a list property of a task is populated
+     * @throws Exception 
+     */
+    public void testTaskListProperty() throws Exception {
+        Project p = makeProject("buildprops/micronaut");
+        BuildPropertiesSupport support = BuildPropertiesSupport.get(p);
+        assertNotNull(support);
+        
+        BuildPropertiesSupport.Property prop = support.findTaskProperty("nativeCompile", "options.runtimeArgs");
+        assertNotNull(prop);
+        assertEquals(PropertyKind.LIST, prop.getKind());
+        
+        assertTrue(support.keys(prop).isEmpty());
+        assertTrue(support.items(prop, null).iterator().hasNext());
+    }
+    
 }
diff --git a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/IntrospectedInfo.java b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/IntrospectedInfo.java
index d6e236f..728bc09 100644
--- a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/IntrospectedInfo.java
+++ b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/IntrospectedInfo.java
@@ -59,10 +59,10 @@
  * and makes them safely serializable (stores only classnames, etc.).
  * <p>
  * All task and type names may be namespace-qualified for use
- * in Ant 1.6: a name of the form <samp>nsuri:localname</samp> refers to
- * an XML element with namespace <samp>nsuri</samp> and local name <samp>localname</samp>.
+ * in Ant 1.6: a name of the form <code>nsuri:localname</code> refers to
+ * an XML element with namespace <code>nsuri</code> and local name <code>localname</code>.
  * Attribute names could also be similarly qualified, but in practice attributes
- * used in Ant never have a defined namespace. The prefix <samp>antlib:org.apache.tools.ant:</samp>
+ * used in Ant never have a defined namespace. The prefix <code>antlib:org.apache.tools.ant:</code>
  * is implied, not expressed, on Ant core element names (for backwards compatibility).
  * Subelement names are *not* namespace-qualified here, even though in the script
  * they would be - because the namespace used in the script will actually vary
diff --git a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/ActionUtils.java b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/ActionUtils.java
index 3b56e55..47dc8c8 100644
--- a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/ActionUtils.java
+++ b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/ActionUtils.java
@@ -122,11 +122,11 @@
      * </p>
      * @param context a selection as provided to e.g. <code>ActionProvider.isActionEnabled(...)</code>
      * @param dir a constraining parent directory, or null to not check for a parent directory
-     * @param suffix a file suffix (e.g. <samp>.java</samp>) to constrain files by,
+     * @param suffix a file suffix (e.g. <code>.java</code>) to constrain files by,
      *               or null to not check suffixes
      * @param strict if true, all files in the selection have to be accepted
      * @return a nonempty selection of disk files, or null
-     * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/spi/project/ActionProvider.html#isActionEnabled(java.lang.String,%20org.openide.util.Lookup)"><code>ActionProvider.isActionEnabled(...)</code></a>
+     * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/spi/project/ActionProvider.html#isActionEnabled-java.lang.String-org.openide.util.Lookup-"><code>ActionProvider.isActionEnabled(...)</code></a>
      */
     public static FileObject[] findSelectedFiles(Lookup context, FileObject dir, String suffix, boolean strict) {
         if (dir != null && !dir.isFolder()) {
@@ -181,7 +181,7 @@
      * <span class="nonnormative">(If you expect the target files to be created
      * by Ant you do not need this method, since Ant's mappers suffice.)</span>
      * The file paths considered by the regular expression (if supplied) always use
-     * <samp>/</samp> as the separator.
+     * <code>/</code> as the separator.
      * <p class="nonnormative">
      * Typical usage to map a set of Java source files to corresponding tests:
      * <code>regexpMapFiles(files, srcDir, Pattern.compile("/([^/]+)\\.java"), testSrcDir, "/\\1Test.java", true)</code>
@@ -239,7 +239,7 @@
     /**
      * Create an "includes" string such as is accepted by many Ant commands
      * as well as filesets.
-     * <samp>/</samp> is always used as the separator in the relative paths.
+     * <code>/</code> is always used as the separator in the relative paths.
      * @param files a list of files or folders to include, in the case of folder
      * the generated include contains recursively all files under the folder.
      * @param dir a directory in which all the files reside
@@ -254,7 +254,7 @@
     /**
      * Create an "includes" string such as is accepted by many Ant commands
      * as well as filesets.
-     * <samp>/</samp> is always used as the separator in the relative paths.
+     * <code>/</code> is always used as the separator in the relative paths.
      * @param files a list of files or folders to include, in the case of folder
      * the generated include contains recursively all files under the folder.
      * @param dir a directory in which all the files reside
diff --git a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/TargetLister.java b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/TargetLister.java
index 07da834..e57ce25 100644
--- a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/TargetLister.java
+++ b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/api/support/TargetLister.java
@@ -138,7 +138,7 @@
         
         /**
          * Gets the qualified name of the target.
-         * This consists of the name of the project followed by a dot (<samp>.</samp>)
+         * This consists of the name of the project followed by a dot (<code>.</code>)
          * followed by the simple target name.
          * (Or just the simple target name in case the project has no defined name;
          * questionable whether this is even legal.)
@@ -200,13 +200,13 @@
         
         /**
          * Tests whether a target is marked as internal to the script.
-         * Currently this means that the target name begins with a hyphen (<samp>-</samp>),
+         * Currently this means that the target name begins with a hyphen (<code>-</code>),
          * though the precise semantics may be changed according to changes in Ant.
          * Conventionally, internal targets are not intended to be run directly, and only
          * exist to be called from other targets. As such, they should not normally
          * be presented in the context of targets you might want to run.
          * @return true if this is marked as an internal target, false for a regular target
-         * @see <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22020">Ant issue #22020</a>
+         * @see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22020">Ant issue #22020</a>
          */
         public boolean isInternal() {
             String n = getName();
diff --git a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/AntLogger.java b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/AntLogger.java
index 574c3fc..48786ce 100644
--- a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/AntLogger.java
+++ b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/AntLogger.java
@@ -72,14 +72,14 @@
  * which may or may not handle any events which have not already been consumed
  * (marking them consumed itself) and will typically process message logged events
  * by printing them to the output somehow, using hyperlinks for common file error
- * patterns such as <samp>/path/to/File.java:34: some message</samp>. It may also
+ * patterns such as <code>/path/to/File.java:34: some message</code>. It may also
  * handle sequences of messages logged within a task in the format
  * </p>
  * <pre>&nbsp;/path/to/File.java:34: you cannot throw a bogus exception here
  * &nbsp;        throw new Exception("bogus!");
  * &nbsp;                            ^</pre>
  * <p>
- * by linking to the column number indicated by the caret (<samp>^</samp>).
+ * by linking to the column number indicated by the caret (<code>^</code>).
  * </p>
  * <p>
  * Please Note: Using <code>System.out</code> or <code>System.err</code> in your subclass 
@@ -88,7 +88,7 @@
  * </p>
  * </div>
  * @author Jesse Glick
- * @see <a href="http://www.netbeans.org/issues/show_bug.cgi?id=42525">Issue #42525</a>
+ * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=42525">Issue #42525</a>
  * @since org.apache.tools.ant.module/3 3.12
  */
 public abstract class AntLogger {
diff --git a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/package.html b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/package.html
index 3fe3416..e5da90f 100644
--- a/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/package.html
+++ b/extide/o.apache.tools.ant.module/src/org/apache/tools/ant/module/spi/package.html
@@ -63,7 +63,7 @@
 <samp>org-netbeans-modules-foo.jar</samp>.
 Create an entry in that JAR <samp>org/netbeans/modules/foo/antlib.xml</samp>
 listing tasks (or types, macrodefs, etc.) you wish to define, in the
-<a href="http://ant.apache.org/manual/CoreTypes/antlib.html">standard Antlib format</a>.
+<a href="https://ant.apache.org/manual/Types/antlib.html">standard Antlib format</a>.
 For example:</p>
 
 <pre>
@@ -131,7 +131,7 @@
 </pre>
 
 <p>Complete working example of task registration:
-<a href="http://www.netbeans.org/source/browse/ant/browsetask/"><samp>ant/browsetask</samp>
+<a href="https://github.com/apache/netbeans/tree/master/java/ant.browsetask"><samp>java/ant.browsetask</samp>
 module</a></p>
 
 </body>
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/Bundle.java b/harness/jellytools.platform/src/org/netbeans/jellytools/Bundle.java
index 8c0d0df..edb9f4c 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/Bundle.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/Bundle.java
@@ -97,11 +97,11 @@
         return getString(getBundle(bundle), key);
     }
     
-    /** Gets string from bundle, removes mnemonic (i.e. '&' or '(&X)') from it
+    /** Gets string from bundle, removes mnemonic (i.e. '&amp;' or '(&amp;X)') from it
      * and cuts parameters like {0} from the end.
      * @param bundle path to bundle (e.g. "org.netbeans.core.Bundle")
      * @param key key of requested string
-     * @return string from bundle in current locale. Mnemonic (i.e. '&' or '(&X)')
+     * @return string from bundle in current locale. Mnemonic (i.e. '&amp;' or '(&amp;X)')
      * is removed and parameter patterns are also removed starting by first '{'.
      */
     public static String getStringTrimmed(String bundle, String key) {
@@ -118,7 +118,7 @@
         return java.text.MessageFormat.format(getString(bundle, key), params);
     }
     
-    /** Gets string from bundle and formats it. It removes mnemonic (i.e. '&' or '(&X)') 
+    /** Gets string from bundle and formats it. It removes mnemonic (i.e. '&amp;' or '(&amp;X)') 
      * from it and cuts parameters like {0} from the end if any.
      * @param bundle path to bundle (e.g. "org.netbeans.core.Bundle")
      * @param key key of requested string
@@ -130,7 +130,7 @@
         return trim(getString(getBundle(bundle), key, params));
     }
     
-    /** Removes mnemonic (i.e. '&' or '(&X)') and cut parameters like {0} from the end.
+    /** Removes mnemonic (i.e. '&amp;' or '(&amp;X)') and cut parameters like {0} from the end.
      * @param value string to modify
      * @return string with removed mnemonic and parameters like {0} from the end.
      */
@@ -146,7 +146,7 @@
 
     /**
      * Removes an ampersand from a text string; commonly used to strip out unneeded mnemonics.
-     * Replaces the first occurence of <samp>&amp;?</samp> by <samp>?</samp> or <samp>(&amp;??</samp> by the empty string 
+     * Replaces the first occurence of <em>&amp;?</em> by <samp>?</samp> or <samp>(&amp;??</samp> by the empty string 
      * where <samp>?</samp> is a wildcard for any character.
      * <samp>&amp;?</samp> is a shortcut in English locale.
      * <samp>(&amp;?)</samp> is a shortcut in Japanese locale.
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/FavoritesOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/FavoritesOperator.java
index c3f06c6..bd06ea5 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/FavoritesOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/FavoritesOperator.java
@@ -28,7 +28,7 @@
  * Functionality related to files tree is delegated to JTreeOperator (method
  * tree()) and nodes.<p>
  *
- * Example:<p>
+ * Example:
  * <pre>
  *      FavoritesOperator fo = FavoritesOperator.invoke();
  *      // or when Favorites pane is already opened
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/OptionsOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/OptionsOperator.java
index d340772..7a22c20 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/OptionsOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/OptionsOperator.java
@@ -163,7 +163,7 @@
     //definition levels
 
     /**
-     * Shows definition levels column by clicking on the "<<" table
+     * Shows definition levels column by clicking on the "&lt;&lt;" table
      * column title.
      */
     public void showLevels() {
@@ -302,7 +302,7 @@
     }
 
     /**
-     * Clicks on "<<" column header.
+     * Clicks on "&lt;&lt;" column header.
      */
     protected void clickOnSecondHeader() {
         JTableHeader header = treeTable().getTableHeader();
@@ -365,7 +365,7 @@
                                                "OpenIDE-Module-Display-Category"));
     }
 
-    /** Selects Fonts & Colors category. */
+    /** Selects Fonts &amp; Colors category. */
     public void selectFontAndColors() {
         selectCategory(Bundle.getStringTrimmed("org.netbeans.modules.options.colors.Bundle",
                                                "CTL_Font_And_Color_Options"));
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/WizardOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/WizardOperator.java
index c94a9bf..64cf134 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/WizardOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/WizardOperator.java
@@ -71,8 +71,8 @@
         return _btNext;
     }
     
-    /** Returns operator of "< Back" button.
-     * @return  JButtonOperator instance of "< Back" button
+    /** Returns operator of "&lt; Back" button.
+     * @return  JButtonOperator instance of "&lt; Back" button
      */
     public JButtonOperator btBack() {
         if (_btBack == null) {
@@ -108,7 +108,7 @@
         btNext().push();
     }
     
-    /** Pushes "< Back" button. */
+    /** Pushes "&lt; Back" button. */
     public void back() {
         btBack().push();
     }
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/AddLocaleAction.java b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/AddLocaleAction.java
index 6ca41ea..8b72bc5 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/AddLocaleAction.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/AddLocaleAction.java
@@ -23,7 +23,7 @@
 /** Used to call "Add | Locale..." popup menu item on properties node.
  * @see Action
  * @see ActionNoBlock
- * @see org.netbeans.jellytools.nodes.PropertiesNode
+ * @see <a href="@org-netbeans-modules-jellytools-ide@/org/netbeans/jellytools/nodes/PropertiesNode.html">org.netbeans.jellytools.nodes.PropertiesNode</a>
  * @author <a href="mailto:vojtech.sigler@sun.com">Vojtech Sigler</a> */
 public class AddLocaleAction extends ActionNoBlock {
 
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/EditAction.java b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/EditAction.java
index 805c3b8..f095ded 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/EditAction.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/EditAction.java
@@ -23,9 +23,9 @@
 /** Used to call "Edit" popup menu item or
  * "org.openide.actions.EditAction".
  * @see Action
- * @see org.netbeans.jellytools.nodes.PropertiesNode
- * @see org.netbeans.jellytools.nodes.URLNode
- * @see org.netbeans.jellytools.nodes.FormNode
+ * @see <a href="@org-netbeans-modules-jellytools-ide@/org/netbeans/jellytools/nodes/PropertiesNode.html">org.netbeans.jellytools.nodes.PropertiesNode</a>
+ * @see <a href="@org-netbeans-modules-jellytools-ide@/org/netbeans/jellytools/nodes/URLNode.html">org.netbeans.jellytools.nodes.URLNode</a>
+ * @see <a href="@org-netbeans-modules-jellytools-java@/org/netbeans/jellytools/nodes/FormNode.html">org.netbeans.jellytools.nodes.FormNode</a>
  * @author <a href="mailto:adam.sotona@sun.com">Adam Sotona</a> */
 public class EditAction extends Action {
 
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/ExploreFromHereAction.java b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/ExploreFromHereAction.java
index 4cde319..cbf015b 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/actions/ExploreFromHereAction.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/actions/ExploreFromHereAction.java
@@ -23,7 +23,7 @@
 /** Used to call "Explore From Here" popup menu item,
  * "org.openide.actions.OpenLocalExplorerAction".
  * @see Action
- * @see org.netbeans.jellytools.nodes.FolderNode
+ * @see <a href="@org-netbeans-modules-jellytools-ide@/org/netbeans/jellytools/nodes/FolderNode.html">org.netbeans.jellytools.nodes.FolderNode</a>
  * @author <a href="mailto:adam.sotona@sun.com">Adam Sotona</a> */
 public class ExploreFromHereAction extends Action {
 
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/nodes/Node.java b/harness/jellytools.platform/src/org/netbeans/jellytools/nodes/Node.java
index 6ec3a12..3af7ea7 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/nodes/Node.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/nodes/Node.java
@@ -37,7 +37,7 @@
  * Ancestor class for all nodes.<p> Nodes should help to easier testing of
  * JTree's. The most frequent usage in IDE is in file views but nodes can be
  * used in any component which includes a JTree instance. Nodes are also used as
- * parameters for action's performing. <p> Example:<p>
+ * parameters for action's performing. <p> Example:
  * <pre>
  *     Node node = new Node(new SourcePackagesNode("My Project"), "org.netbeans.jellytools.nodes|Node.java");
  *     System.out.println(node.getText());
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ClasspathCustomEditorOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ClasspathCustomEditorOperator.java
index c9fe4bf..1724c2d 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ClasspathCustomEditorOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ClasspathCustomEditorOperator.java
@@ -39,7 +39,7 @@
 public class ClasspathCustomEditorOperator extends NbDialogOperator {
 
     /** Creates new ClasspathCustomEditorOperator
-     * @throws TimeoutExpiredException when NbDialog not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when NbDialog not found
      * @param title String title of custom editor */
     public ClasspathCustomEditorOperator(String title) {
         super(title);
@@ -60,7 +60,7 @@
 
 
     /** Tries to find Add Directory... JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btAddDirectory() {
@@ -73,7 +73,7 @@
     }
 
     /** Tries to find "Move Down" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btMoveDown() {
@@ -86,7 +86,7 @@
     }
 
     /** Tries to find null JList in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JListOperator
      */
     public JListOperator lstClasspath() {
@@ -97,7 +97,7 @@
     }
 
     /** Tries to find Add JAR/ZIP... JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btAddJARZIP() {
@@ -110,7 +110,7 @@
     }
 
     /** Tries to find "Remove" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btRemove() {
@@ -123,7 +123,7 @@
     }
 
     /** Tries to find "Move Up" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btMoveUp() {
@@ -136,7 +136,7 @@
     }
 
     /** clicks on Add Directory... JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      * @return FileCustomEditorOperator of directory selector */
     public FileCustomEditorOperator addDirectory() {
         btAddDirectory().pushNoBlock();
@@ -146,14 +146,14 @@
     }
 
     /** clicks on "Move Down" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void moveDown() {
         btMoveDown().push();
     }
 
     /** clicks on Add JAR/ZIP... JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      * @return FileCustomEditorOperator of JAR or ZIP file selector */
     public FileCustomEditorOperator addJARZIP() {
         btAddJARZIP().pushNoBlock();
@@ -222,14 +222,14 @@
     }
 
     /** clicks on "Remove" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void remove() {
         btRemove().push();
     }
 
     /** clicks on "Move Up" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void moveUp() {
         btMoveUp().push();
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/FontCustomEditorOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/FontCustomEditorOperator.java
index 30d0cea..fc7bd1b 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/FontCustomEditorOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/FontCustomEditorOperator.java
@@ -36,7 +36,7 @@
 public class FontCustomEditorOperator extends NbDialogOperator {
 
     /** Creates new FontCustomEditorOperator
-     * @throws TimeoutExpiredException when NbDialog not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when NbDialog not found
      * @param title String title of custom editor */
     public FontCustomEditorOperator(String title) {
         super(title);
@@ -65,7 +65,7 @@
 
 
     /** Tries to find null JList in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JListOperator
      */
     public JListOperator lstFontName() {
@@ -76,7 +76,7 @@
     }
 
     /** Tries to find null JList in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JListOperator
      */
     public JListOperator lstFontSize() {
@@ -87,7 +87,7 @@
     }
 
     /** Tries to find null JTextField in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextFieldOperator
      */
     public JTextFieldOperator txtFontName() {
@@ -98,7 +98,7 @@
     }
 
     /** Tries to find null JTextField in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextFieldOperator
      */
     public JTextFieldOperator txtFontSize() {
@@ -109,7 +109,7 @@
     }
 
     /** Tries to find null JTextField in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextFieldOperator
      */
     public JTextFieldOperator txtFontStyle() {
@@ -120,7 +120,7 @@
     }
 
     /** Tries to find null JList in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JListOperator
      */
     public JListOperator lstFontStyle() {
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ProcessDescriptorCustomEditorOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ProcessDescriptorCustomEditorOperator.java
index 2f5986e..e1ead20 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ProcessDescriptorCustomEditorOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/ProcessDescriptorCustomEditorOperator.java
@@ -40,7 +40,7 @@
 public class ProcessDescriptorCustomEditorOperator extends NbDialogOperator {
 
     /** Creates new ProcessDescriptorCustomEditorOperator
-     * @throws TimeoutExpiredException when NbDialog not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when NbDialog not found
      * @param title String title of custom editor */
     public ProcessDescriptorCustomEditorOperator(String title) {
         super(title);
@@ -58,7 +58,7 @@
     private JTextAreaOperator _txtArguments;
 
     /** Tries to find null JTextArea in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextAreaOperator
      */
     public JTextAreaOperator txtArgumentKey() {
@@ -69,7 +69,7 @@
     }
 
     /** Tries to find Browse... JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btSelectProcessExecutable() {
@@ -82,7 +82,7 @@
     }
 
     /** Tries to find null JTextField in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextFieldOperator
      */
     public JTextFieldOperator txtProcess() {
@@ -93,7 +93,7 @@
     }
 
     /** Tries to find null JTextArea in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextAreaOperator
      */
     public JTextAreaOperator txtArguments() {
@@ -110,7 +110,7 @@
     }
 
     /** clicks on ... JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      * @return FileCustomEditorOperator */
     public FileCustomEditorOperator selectProcessExecutable() {
         btSelectProcessExecutable().pushNoBlock();
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/StringArrayCustomEditorOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/StringArrayCustomEditorOperator.java
index 7cd3e0b..190df00 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/StringArrayCustomEditorOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/properties/editors/StringArrayCustomEditorOperator.java
@@ -34,7 +34,7 @@
 public class StringArrayCustomEditorOperator extends NbDialogOperator {
 
     /** Creates new StringArrayCustomEditorOperator
-     * @throws TimeoutExpiredException when NbDialog not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when NbDialog not found
      * @param title String title of custom editor */
     public StringArrayCustomEditorOperator(String title) {
         super(title);
@@ -59,7 +59,7 @@
     //******************************
 
     /** Tries to find "Edit" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btEdit() {
@@ -72,7 +72,7 @@
     }
 
     /** Tries to find "Down" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btDown() {
@@ -85,7 +85,7 @@
     }
 
     /** Tries to find "Up" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btUp() {
@@ -98,7 +98,7 @@
     }
 
     /** Tries to find "Add" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btAdd() {
@@ -111,7 +111,7 @@
     }
 
     /** Tries to find JList in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JListOperator
      */
     public JListOperator lstItemList() {
@@ -122,7 +122,7 @@
     }
 
     /** Tries to find "Remove" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btRemove() {
@@ -135,7 +135,7 @@
     }
 
     /** Tries to find null JTextField in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JTextFieldOperator
      */
     public JTextFieldOperator txtItemText() {
@@ -146,35 +146,35 @@
     }
 
     /** clicks on "Edit" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void edit() {
         btEdit().push();
     }
 
     /** clicks on "Down" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void down() {
         btDown().push();
     }
 
     /** clicks on "Up" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void up() {
         btUp().push();
     }
 
     /** clicks on "Add" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void add() {
         btAdd().push();
     }
 
     /** clicks on "Remove" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void remove() {
         btRemove().push();
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/ConnectionWidgetOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/ConnectionWidgetOperator.java
index 57974f7..d31cb08 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/ConnectionWidgetOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/ConnectionWidgetOperator.java
@@ -165,7 +165,7 @@
     }
 
     /** Returns list of control points.
-     * @return List<Point> of control points
+     * @return {@code List<Point>} of control points
      */
     @SuppressWarnings("unchecked")
     public List<Point> getControlPoints() {
diff --git a/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/LabelWidgetOperator.java b/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/LabelWidgetOperator.java
index 24cdd33..1caba21 100644
--- a/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/LabelWidgetOperator.java
+++ b/harness/jellytools.platform/src/org/netbeans/jellytools/widgets/LabelWidgetOperator.java
@@ -60,7 +60,6 @@
     /** Waits for LabelWidget with specified label under given parent.
      * @param parentWidgetOper parent WidgetOperator
      * @param label label of widget
-     * @param index index of widget to be found
      */
     public LabelWidgetOperator(WidgetOperator parentWidgetOper, String label) {
         this(parentWidgetOper, label, 0);
diff --git a/ide/api.debugger/apichanges.xml b/ide/api.debugger/apichanges.xml
index 5dc80e9..5d5725f 100644
--- a/ide/api.debugger/apichanges.xml
+++ b/ide/api.debugger/apichanges.xml
@@ -298,7 +298,7 @@
              <p>
              In order to be able to register debugger services on System FileSystem,
              which brings more flexibility and better performance (see also
-             <a href="http://www.netbeans.org/issues/show_bug.cgi?id=153093#desc7"/>),
+             <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=153093#desc7"/>),
              we add non-recursive content of <code>org.openide.util.Lookups.forPath()</code>
              into debugger lookup.
              Since debugger needs retrieve context-aware services from the lookup,
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/ActionsManager.java b/ide/api.debugger/src/org/netbeans/api/debugger/ActionsManager.java
index cbf40f4..d5b0cd3b 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/ActionsManager.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/ActionsManager.java
@@ -164,7 +164,7 @@
     /**
      * Post action on this DebuggerEngine.
      * This method does not block till the action is done,
-     * if {@link #canPostAsynchronously} returns true.
+     * if <code>#canPostAsynchronously}</code> returns true.
      * Otherwise it behaves like {@link #doAction}.
      * The returned task, or
      * {@link ActionsManagerListener} can be used to
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/Breakpoint.java b/ide/api.debugger/src/org/netbeans/api/debugger/Breakpoint.java
index 8306272..ec931a6 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/Breakpoint.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/Breakpoint.java
@@ -135,7 +135,7 @@
     
     /**
      * Get the style of hit count filtering.
-     * @return the style of hit count filtering, or <cpde>null</code> when no count filter is set.
+     * @return the style of hit count filtering, or <code>null</code> when no count filter is set.
      */
     public final synchronized HIT_COUNT_FILTERING_STYLE getHitCountFilteringStyle() {
         return hitCountFilteringStyle;
@@ -285,7 +285,7 @@
      * <p>
      * Not all breakpoint implementations honor dependent breakpoints.
      * Use {@link #canHaveDependentBreakpoints()} to determine if the operation is supported.
-     * @param breakpointsToEnable The set of breakpoints.
+     * @param breakpointsToDisable The set of breakpoints.
      * @throws UnsupportedOperationException if the breakpoint does not support
      * dependent breakpoints - see {@link #canHaveDependentBreakpoints()}.
      * @since 1.35
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerEngine.java b/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerEngine.java
index 3d805c2..12c9abc 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerEngine.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerEngine.java
@@ -30,9 +30,10 @@
  * It provides root of threads hierarchy (call stacks, locals)
  * and manages debugger actions.
  *
- * <p><br><table border="1" cellpadding="3" cellspacing="0" width="100%">
- * <tbody><tr bgcolor="#ccccff">
- * <td colspan="2"><font size="+2"><b>Description </b></font></td>
+ * <table>
+ * <caption>Description of DebuggerEngine</caption>
+ * <tbody><tr>
+ * <td colspan="2" style="background-color:#4D7A97"><font size="+2"><b>Description </b></font></td>
  * </tr><tr><td align="left" valign="top" width="1%"><font size="+1">
  * <b>Functionality</b></font></td><td>
  *
@@ -52,8 +53,8 @@
  * <br>
  * <b>Support for aditional services:</b>
  *    DebuggerEngine is final class. That is why the standard method how to 
- *    extend its functionality is using lookup methods ({@link #lookup} and 
- *    {@link #lookupFirst}).
+ *    extend its functionality is using lookup methods ({@link #lookup(String,Class)} and 
+ *    {@link #lookupFirst(String,Class)}).
  *    There are two ways how to register some service provider for some
  *    type of DebuggerEngine:
  *    <ul>
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManager.java b/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManager.java
index d0e78c9..0fa20cc 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManager.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManager.java
@@ -48,13 +48,14 @@
  * {@link org.netbeans.api.debugger.Watch}es.
  *  
  *
- * <p><br><table border="1" cellpadding="3" cellspacing="0" width="100%">
- * <tbody><tr bgcolor="#ccccff">
- * <td colspan="2"><font size="+2"><b>Description </b></font></td>
+ * <table>
+ * <caption>Description of DebuggerManager</caption>
+ * <tbody><tr>
+ * <td colspan="2" style="background-color:#4D7A97"><font size="+2"><b>Description </b></font></td>
  * </tr><tr><td align="left" valign="top" width="1%"><font size="+1">
  * <b>Functionality</b></font></td><td> 
  *
- * <b>Start & finish debugging:</b>
+ * <b>Start &amp; finish debugging:</b>
  *    DebuggerManager manages a process of starting a new debugging (
  *    {@link #startDebugging}). It cooperates with all installed
  *    {@link org.netbeans.spi.debugger.DebuggerEngineProvider}s to create a new 
@@ -89,7 +90,7 @@
  * <br><br>
  * <b>Watches management:</b>
  *    DebuggerManager keeps list of all shared watches ({@link #getWatches}).
- *    Watch can be created & added ({@link #createWatch}).
+ *    Watch can be created &amp; added ({@link #createWatch}).
  *
  * <br><br>
  * <b>Support for listening:</b>
@@ -227,7 +228,7 @@
     /**
      * Join two lookups together.
      * The result will merge the lookups.
-     * The result of its {@link #lookup} method will additionally implement {@link Customizer}.
+     * The result of its {@link #lookup(String,Class)} method will additionally implement {@link Customizer}.
      * @param cp1 first lookup
      * @param cp2 second lookup
      * @return a merger of the two
@@ -624,7 +625,7 @@
      *    a variable name).
      * @return the new watch
      * @throws ArrayIndexOutOfBoundsException if the index is out of range
-     *         <code>(index < 0 || index > getWatches().length)</code>
+     *         <code>(index &lt; 0 || index &gt; getWatches().length)</code>
      * @since 1.22
      */
     public Watch createWatch (int index, String expr) {
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManagerAdapter.java b/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManagerAdapter.java
index 2883aa8..866357f 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManagerAdapter.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/DebuggerManagerAdapter.java
@@ -57,7 +57,6 @@
     /**
      * Called when set of watches is initialized.
      *
-     * @return initial set of watches
      */
     public void initWatches () {
     }
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/Session.java b/ide/api.debugger/src/org/netbeans/api/debugger/Session.java
index b43eaef..d4d4425 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/Session.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/Session.java
@@ -31,9 +31,10 @@
  * be simple bean with properties like process ID, session name, etc.
  * All other functionality is delegated to current debugger engine.
  *
- * <p><br><table border="1" cellpadding="3" cellspacing="0" width="100%">
- * <tbody><tr bgcolor="#ccccff">
- * <td colspan="2"><font size="+2"><b>Description </b></font></td>
+ * <table>
+ * <caption>Description of Session</caption>
+ * <tbody><tr>
+ * <td colspan="2" style="background-color:#4D7A97"><font size="+2"><b>Description </b></font></td>
  * </tr><tr><td align="left" valign="top" width="1%"><font size="+1">
  * <b>Functionality</b></font></td><td>
  *
@@ -62,8 +63,8 @@
  * <br><br>
  * <b>Support for additional services:</b>
  *    Session is final class. The standard method how to 
- *    extend its functionality is using lookup methods ({@link #lookup} and 
- *    {@link #lookupFirst}).
+ *    extend its functionality is using lookup methods ({@link #lookup(String,Class)} and 
+ *    {@link #lookupFirst(String,Class)}).
  *    There are two ways how to register some service provider for some
  *    type of Session:
  *    <ul>
diff --git a/ide/api.debugger/src/org/netbeans/api/debugger/SessionBridge.java b/ide/api.debugger/src/org/netbeans/api/debugger/SessionBridge.java
index 16133f4..879538a 100644
--- a/ide/api.debugger/src/org/netbeans/api/debugger/SessionBridge.java
+++ b/ide/api.debugger/src/org/netbeans/api/debugger/SessionBridge.java
@@ -37,7 +37,7 @@
  * the debugging session for a debug action. A registered implementation of
  * {@link SessionChanger} can decide to change the session in order to perform
  * the given action.
- * <p/>
+ * <p>
  * In the current implementation, step into action of JPDA debugger is suggested
  * for a session change only. The support can be extended according to the future
  * requirements.
@@ -93,7 +93,7 @@
      * @param properties Properties describing the current state of the current session before the given action.
      *                   The actual properties are specific for the particular session type.
      * @return <code>true</code> when the session is changed and another session
-     *         decided to perform the given action.<br/>
+     *         decided to perform the given action.<br>
      *         <code>false</code> when no other session would like to perform this action.
      */
     public boolean suggestChange(Session origin, String action, Map<Object, Object> properties) {
@@ -186,7 +186,7 @@
          * @param properties Session-specific properties describing the state
          *        right before the given action. These are used by a new session
          *        to complete the given action.
-         * @return A new session, or <code>null<code> when this handler decides
+         * @return A new session, or <code>null</code> when this handler decides
          *         not to change the debug session for this action.
          */
         Session changeSuggested(Session origin, String action, Map<Object, Object> properties);
diff --git a/ide/api.debugger/src/org/netbeans/spi/debugger/ContextAwareService.java b/ide/api.debugger/src/org/netbeans/spi/debugger/ContextAwareService.java
index 692b0c9..647fa18 100644
--- a/ide/api.debugger/src/org/netbeans/spi/debugger/ContextAwareService.java
+++ b/ide/api.debugger/src/org/netbeans/spi/debugger/ContextAwareService.java
@@ -34,7 +34,7 @@
  *       &lt;/file&gt;
  *   &lt;/folder&gt;</pre>
  *
- * <br/>
+ * <br>
  *
  * @author Martin Entlicher
  * @since 1.16
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/Issue.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/Issue.java
index 233faf8..59afd65 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/Issue.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/Issue.java
@@ -189,7 +189,7 @@
     /**
      * Determines whether this issue is finished/closed.
      * 
-     * @return <code>true<code> in case this Issue is finished, otherwise <code>false</code>
+     * @return <code>true</code> in case this Issue is finished, otherwise <code>false</code>
      * @since 1.85
      */
     public boolean isFinished() {
@@ -230,7 +230,7 @@
     /**
      * Determines whether it is possible to attach files to this Issue.
      * 
-     * @return <code>true<code> in case it is possible to attach files to 
+     * @return <code>true</code> in case it is possible to attach files to 
      * this Issue, otherwise <code>false</code>
      * @since 1.85
      */
@@ -267,7 +267,7 @@
      * <p>
      * 
      * @param comment the comment
-     * @param close <code>true<code> in case this issue should be closed.
+     * @param close <code>true</code> in case this issue should be closed.
      * @see org.netbeans.modules.bugtracking.spi.IssueProvider#addComment(java.lang.Object, java.lang.String, boolean) 
      * @since 1.85
      */
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/IssueQuickSearch.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/IssueQuickSearch.java
index 4a68ded..b61365e 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/IssueQuickSearch.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/IssueQuickSearch.java
@@ -36,7 +36,6 @@
  *   <li>a button to create a new repository
  *   <li>a field to type some text into - to find Issues either by id or summary.
  * </ul>
- * </p>
  * 
  * @author Tomas Stupka
  * @since 1.85
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryManager.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryManager.java
index a3eda2f..b07ec5c 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryManager.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryManager.java
@@ -125,7 +125,7 @@
      * 
      * @param connectorId
      * @param repositoryId
-     * @return a Repository with the given connector- and repository id or <code>null<code>.
+     * @return a Repository with the given connector- and repository id or <code>null</code>.
      * @since 1.85
      */
     public Repository getRepository(String connectorId, String repositoryId) {
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryQuery.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryQuery.java
index 50fdfd3..d0cd3e7 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryQuery.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/api/RepositoryQuery.java
@@ -36,7 +36,7 @@
  * <li> The IDE keeps track in what context bugtracking related operations were done 
  * - e.g. when closing an issue during a VCS commit.</li>
  * <li> Other systems might provide information about bugtracking repositories - e.g. Maven</li>
- * </p>
+ * </ul>
  * 
  * @author Tomas Stupka
  * @since 1.85
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingConnector.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingConnector.java
index c12f3cc..2179caf 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingConnector.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingConnector.java
@@ -58,9 +58,9 @@
      * 
      * <p>
      * The to be returned {@link Repository} instance can be obtained via 
-     * <br/>
+     * <br>
      * {@link BugtrackingSupport#createRepository(java.lang.Object, org.netbeans.modules.bugtracking.spi.IssueStatusProvider, org.netbeans.modules.bugtracking.spi.IssueScheduleProvider, org.netbeans.modules.bugtracking.spi.IssuePriorityProvider, org.netbeans.modules.bugtracking.spi.IssueFinder) }
-     * <br/>
+     * <br>
      * in which scope the implementation particular repository representation is 
      * coupled with provider implementations giving access to the plugin internal data. 
      * </p>
@@ -84,9 +84,9 @@
      * 
      * <p>
      * The to be returned {@link Repository} instance can be obtained via 
-     * <br/>
+     * <br>
      * {@link BugtrackingSupport#createRepository(java.lang.Object, org.netbeans.modules.bugtracking.spi.IssueStatusProvider, org.netbeans.modules.bugtracking.spi.IssueScheduleProvider, org.netbeans.modules.bugtracking.spi.IssuePriorityProvider, org.netbeans.modules.bugtracking.spi.IssueFinder) }
-     * <br/>
+     * <br>
      * in which scope the implementation particular repository representation is 
      * coupled with provider implementations giving access to the plugin internal data. 
      * </p>
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingSupport.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingSupport.java
index b096fc0..d7bbb9e 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingSupport.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingSupport.java
@@ -46,11 +46,11 @@
     /**
      * Creates a new BugtrackingSupport preconfigured with mandatory provider implementations.
      * 
-     * @param repositoryProvider a {@link RepositoryProvider} to access the implementation specific repository.<br/> 
+     * @param repositoryProvider a {@link RepositoryProvider} to access the implementation specific repository.<br> 
      *                           Is mandatory and cannot be null.
-     * @param queryProvider a {@link QueryProvider} to access queries from the given repository.<br/>
+     * @param queryProvider a {@link QueryProvider} to access queries from the given repository.<br>
      *                      Is mandatory and cannot be null.
-     * @param issueProvider an {@link IssueProvider} to access issues from the given repository.<br/>
+     * @param issueProvider an {@link IssueProvider} to access issues from the given repository.<br>
      *                      Is mandatory and cannot be null.
      * @since 1.85
      */
@@ -65,15 +65,15 @@
      * 
      * @param r a implementation specific repository instance
      * @param issueStatusProvider an {@link IssueStatusProvider} to provide status information 
-     *                            of an implementation specific issue.<br/> 
+     *                            of an implementation specific issue.<br> 
      *                            Might be null.
      * @param issueSchedulingProvider an {@link IssueScheduleProvider} to provide scheduling information 
-     *                                of an implementation specific issue.<br/> 
+     *                                of an implementation specific issue.<br> 
      *                                Might be null.
      * @param issuePriorityProvider an {@link IssuePriorityProvider} to provide priority information 
-     *                              of an implementation specific issue.<br/> 
+     *                              of an implementation specific issue.<br> 
      *                              Might be null.
-     * @param issueFinder an {@link IssueFinder} to find issue references in text..<br/> 
+     * @param issueFinder an {@link IssueFinder} to find issue references in text..<br> 
      *                    Might be null.
      * 
      * @return a {@link Repository} instance
@@ -184,7 +184,7 @@
 
     /**
      * Priority icons used by default in the Tasks Dashboard sorted from the highest priority. 
-     * <br/>
+     * <br>
      * Use them in case you want your bugtracking plugin implementation to use 
      * the same icons as are used by default in the Tasks Dashboard, or provide a 
      * {@link IssuePriorityProvider} implementation via {@link #createRepository(java.lang.Object, org.netbeans.modules.bugtracking.spi.IssueStatusProvider, org.netbeans.modules.bugtracking.spi.IssueScheduleProvider, org.netbeans.modules.bugtracking.spi.IssuePriorityProvider, org.netbeans.modules.bugtracking.spi.IssueFinder) }
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueStatusProvider.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueStatusProvider.java
index 80b84ca..a4a82f4 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueStatusProvider.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueStatusProvider.java
@@ -44,7 +44,7 @@
  * </p>
  * 
  * <p>
- * <b>Incoming changes:</b><br/>
+ * <b>Incoming changes:</b><br>
  * Represented by the status values INCOMING_NEW or INCOMING_MODIFIED. In case 
  * the implementation keeps track of changes the user haven't seen yet 
  * (e.g. by opening the Issue UI) then it is also expected to provide the 
@@ -52,7 +52,7 @@
  * </p>
  * 
  * <p>
- * <b>Outgoing changes:</b><br/>
+ * <b>Outgoing changes:</b><br>
  * Represented by the status values OUTGOING_NEW or OUTGOING_MODIFIED. Typically each
  * particular issue editor UI is expected to provide a way to change an issue 
  * and to submit those changes. In case the implementation keeps track of changes 
@@ -64,10 +64,11 @@
  * <p>
  * Even though the status value is entirely given by the particular implementation, 
  * the precedence of Status values is expected to be the following:
- * <table border="1" cellpadding="3" cellspacing="0">
- * <tr bgcolor="#ccccff">
- * <td><b>Issue state</b></font></td>
- * <td><b>Expected Status</b></font></td>
+ * <table>
+ * <caption>precedence of Status</caption>
+ * <tr>
+ * <th style="background-color:#ccccff"><b>Issue state</b></th>
+ * <th style="background-color:#ccccff"><b>Expected Status</b></th>
  * </tr>
  *  <tr>
  *      <td>no changes</td>
@@ -153,18 +154,17 @@
 
     /**
      * Sets the information if the user has seen the incoming changes or 
-     * wishes to mark them as seen (so that they aren't annotated anymore).<br/>
+     * wishes to mark them as seen (so that they aren't annotated anymore).<br>
      * Called e.g. by the 'Mark as Seen/Unseen' action in the Tasks Dashboard or when an Issue was opened 
      * by the user.
      * 
      * <p>
      * The expected result of setting seen to <b><code>true</code></b>:
-     * </p>
-     * <p>
-     * <table border="1" cellpadding="3" cellspacing="0">
-     * <tr bgcolor="#ccccff">
-     * <td><b>Status before</b></font></td>
-     * <td><b>Status after </b></font></td>
+     * <table>
+     * <caption>expected result</caption>
+     * <tr>
+     * <th style="background-color:#ccccff"><b>Status before</b></th>
+     * <th style="background-color:#ccccff"><b>Status after </b></th>
      * </tr>
      *  <tr>
      *      <td>SEEN</td>
@@ -184,7 +184,6 @@
      *  </tr>
      * 
      * </table>
-     * </p>
      * 
      * <p>
      * It is up the particular implementation if and for how long the information 
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryController.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryController.java
index cab265d..3133a6a 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryController.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryController.java
@@ -86,7 +86,7 @@
      * 
      * @param mode
      * @return <code>true</code> if the given mode is provided by the particular 
-     * implementation, otherwise false</code>
+     * implementation, otherwise <code>false</code>
      * @since 1.85
      */
     public boolean providesMode(QueryMode mode);
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryProvider.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryProvider.java
index b5f5369..67897cb 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryProvider.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/QueryProvider.java
@@ -107,8 +107,7 @@
      * Refreshes the given query. 
      * 
      * <p>
-     * <b>Note</p> that this call is made periodically by the infrastructure. 
-     * <p>
+     * <b>Note</b> that this call is made periodically by the infrastructure.
      * 
      * @param q the particular query instance
      * @since 1.85
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryProvider.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryProvider.java
index ff4ba36..18ac6d6 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryProvider.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryProvider.java
@@ -170,7 +170,6 @@
      * <p>
      * Note that in case this method returns <code>true</code> {@link IssueProvider#attachFile(java.lang.Object, java.io.File, java.lang.String, boolean)}
      * has to be implemented as well.
-     * <p/>
      * 
      * @param r an implementation specific repository
      * @return <code>true</code> in case it is possible to attach files, otherwise <code>false</code>
diff --git a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryQueryImplementation.java b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryQueryImplementation.java
index 12a0285..3d963d2 100644
--- a/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryQueryImplementation.java
+++ b/ide/bugtracking/src/org/netbeans/modules/bugtracking/spi/RepositoryQueryImplementation.java
@@ -25,7 +25,6 @@
  * a bugtracking repository.
  * <p>
  * Note that this interface is not meant to be implemented by bugtracking plugins.
- * <p/>
  * 
  * @author Tomas Stupka
  * @since 1.85
diff --git a/ide/code.analysis/nbproject/project.xml b/ide/code.analysis/nbproject/project.xml
index e04418d..5518558 100644
--- a/ide/code.analysis/nbproject/project.xml
+++ b/ide/code.analysis/nbproject/project.xml
@@ -61,11 +61,11 @@
                     </run-dependency>
                 </dependency>
                 <dependency>
-                    <code-name-base>org.netbeans.modules.autoupdate.ui</code-name-base>
+                    <code-name-base>org.netbeans.modules.autoupdate.services</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>1.35</specification-version>
+                        <specification-version>1.76</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/ide/code.analysis/src/org/netbeans/modules/analysis/Utils.java b/ide/code.analysis/src/org/netbeans/modules/analysis/Utils.java
index 596b634..2d3b9d3 100644
--- a/ide/code.analysis/src/org/netbeans/modules/analysis/Utils.java
+++ b/ide/code.analysis/src/org/netbeans/modules/analysis/Utils.java
@@ -21,8 +21,8 @@
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
+import org.netbeans.api.autoupdate.PluginInstaller;
 import org.netbeans.modules.analysis.spi.Analyzer.MissingPlugin;
-import org.netbeans.modules.autoupdate.ui.api.PluginManager;
 
 /**
  *
@@ -33,8 +33,9 @@
     public static void installMissingPlugins(Collection<? extends MissingPlugin> inPlugins) {
         Set<MissingPlugin> plugins = new HashSet<MissingPlugin>(inPlugins);
 
+        // TODO: Shouldn't be this loop reduced to a single call to install multiple modules at once ?
         for (MissingPlugin missing : plugins) {
-            PluginManager.installSingle(SPIAccessor.ACCESSOR.getCNB(missing), SPIAccessor.ACCESSOR.getDisplayName(missing));
+            PluginInstaller.getDefault().install(SPIAccessor.ACCESSOR.getCNB(missing), SPIAccessor.ACCESSOR.getDisplayName(missing), null);
         }
     }
 }
diff --git a/ide/core.ide/src/org/netbeans/api/core/ide/ServicesTabNodeRegistration.java b/ide/core.ide/src/org/netbeans/api/core/ide/ServicesTabNodeRegistration.java
index cd5b5fc..c007aed 100644
--- a/ide/core.ide/src/org/netbeans/api/core/ide/ServicesTabNodeRegistration.java
+++ b/ide/core.ide/src/org/netbeans/api/core/ide/ServicesTabNodeRegistration.java
@@ -30,7 +30,7 @@
  * static method that returns {@link Node}. Its presence means that
  * the node shall appear in the <em>Services</em> tab.
  * @since org.netbeans.core.ide/1 1.15
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 @Retention(RetentionPolicy.SOURCE)
 @Target({ ElementType.METHOD, ElementType.TYPE })
diff --git a/ide/csl.api/nbproject/project.properties b/ide/csl.api/nbproject/project.properties
index 217459e..b25098a 100644
--- a/ide/csl.api/nbproject/project.properties
+++ b/ide/csl.api/nbproject/project.properties
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-spec.version.base=2.77.0
+spec.version.base=2.78.0
 is.autoload=true
 javac.source=1.8
 
diff --git a/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java b/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
index 2c97bab..6f5ab18 100644
--- a/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
+++ b/ide/csl.api/test/unit/src/org/netbeans/modules/csl/api/test/CslTestBase.java
@@ -3062,8 +3062,12 @@
     }
 
     public void checkCompletionDocumentation(final String file, final String caretLine, final boolean includeModifiers, final String itemPrefix) throws Exception {
+        checkCompletionDocumentation(file, caretLine, includeModifiers, itemPrefix, QueryType.COMPLETION);
+    }
+
+    public void checkCompletionDocumentation(final String file, final String caretLine, final boolean includeModifiers, final String itemPrefix, QueryType queryType) throws Exception {
         // TODO call TestCompilationInfo.setCaretOffset!
-        final QueryType type = QueryType.COMPLETION;
+        final QueryType type = queryType;
         final boolean caseSensitive = true;
 
         Source testSource = getTestSource(getTestFile(file));
diff --git a/ide/db.dataview/nbproject/project.properties b/ide/db.dataview/nbproject/project.properties
index cb75622..b25e67e 100644
--- a/ide/db.dataview/nbproject/project.properties
+++ b/ide/db.dataview/nbproject/project.properties
@@ -26,7 +26,7 @@
         ${basedir}/external/ooxml-schemas-1.4.jar:\
         ${basedir}/external/xmlbeans-3.1.0.jar:\
         ${basedir}/external/commons-collections4-4.4.jar:\
-        ${nb_all}/ide/libs.commons_compress/external/commons-compress-1.21.jar
+        ${nb_all}/ide/libs.commons_compress/external/commons-compress-1.23.0.jar
 
 test.config.stableBTD.includes=**/*Test.class
 test.config.stableBTD.excludes=\
diff --git a/ide/db/src/org/netbeans/api/db/explorer/DatabaseConnection.java b/ide/db/src/org/netbeans/api/db/explorer/DatabaseConnection.java
index 55f5262..0732ceb 100644
--- a/ide/db/src/org/netbeans/api/db/explorer/DatabaseConnection.java
+++ b/ide/db/src/org/netbeans/api/db/explorer/DatabaseConnection.java
@@ -319,7 +319,7 @@
      * Returns the {@link java.sql.Connection} instance which encapsulates 
      * the physical connection to the database if this database connection
      * is connected. Note that "connected" here means "connected using the
-     * Database Explorer". Unless <code>test</code is set to <code>true</code>,
+     * Database Explorer". Unless <code>test</code> is set to <code>true</code>,
      * there is no check if {@link java.sql.Connection#close}
      * has been called on the returned connection. However,
      * clients should not call <code>Connection.close()</code> on the returned
diff --git a/ide/db/src/org/netbeans/api/db/explorer/node/BaseNode.java b/ide/db/src/org/netbeans/api/db/explorer/node/BaseNode.java
index 8c2c398..01ba3a3 100644
--- a/ide/db/src/org/netbeans/api/db/explorer/node/BaseNode.java
+++ b/ide/db/src/org/netbeans/api/db/explorer/node/BaseNode.java
@@ -189,10 +189,6 @@
     /**
      * Set up the node
      * 
-     * @param dataLookup the data lookup
-     * @param layerEntry the name of the layer entry folder
-     * @param factory the associated child node factory, or null if this node
-     * doesn't provide child nodes.
      */
     protected void setup() {
         // put the node registry and this node into the lookup
diff --git a/ide/db/src/org/netbeans/api/db/explorer/node/ChildNodeFactory.java b/ide/db/src/org/netbeans/api/db/explorer/node/ChildNodeFactory.java
index 6e9d86d..932ee6f 100644
--- a/ide/db/src/org/netbeans/api/db/explorer/node/ChildNodeFactory.java
+++ b/ide/db/src/org/netbeans/api/db/explorer/node/ChildNodeFactory.java
@@ -41,7 +41,7 @@
     /**
      * Constructor. 
      * 
-     * @param dataLookup the associated data lookup
+     * @param lookup the associated data lookup
      */
     public ChildNodeFactory(Lookup lookup) {
         dataLookup = lookup;
diff --git a/ide/diff/src/org/netbeans/api/diff/PatchUtils.java b/ide/diff/src/org/netbeans/api/diff/PatchUtils.java
index 251655f..94814c2 100644
--- a/ide/diff/src/org/netbeans/api/diff/PatchUtils.java
+++ b/ide/diff/src/org/netbeans/api/diff/PatchUtils.java
@@ -44,7 +44,7 @@
      * 
      * @param patch the patch file
      * @param context the file or folder to be updated with the patch
-     * @throws PatchException
+     * @throws org.netbeans.modules.diff.builtin.PatchException
      * @throws IOException - the patch is invalid or cannot be applied
      * @since 1.19
      */
@@ -60,7 +60,7 @@
      *  <li>normal</li>
      *  <li>unified</li>
      * </ul>
-     * @param file patch file
+     * @param patch patch file
      * @return true if the given input stream is a patch otherwise false
      * @throws IOException
      * @since 1.19
diff --git a/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BraceContext.java b/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BraceContext.java
index c3fca3f..ed56d2d 100644
--- a/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BraceContext.java
+++ b/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BraceContext.java
@@ -25,19 +25,19 @@
  * by a semantically connected text, such as `if' statement or `while' statement in a do-while
  * loop in Java. Such text may be displayed as a context for the brace highlight. The marked text
  * should include the brace sign itself.
- * <p/>
+ * <p>
  * It may be necessary to provide a completely unrelated context, such is in the example
  * of if-else statement. The 'else' does not provide enough information itself as it is 
  * just a negation of earlier condition. Such related piece of text can be reported as 'related' 
- * BraceContext instance. Note that <i>related</b> instances may be chained - see the example below.
- * <p/>
+ * BraceContext instance. Note that <i>related</i> instances may be chained - see the example below.
+ * <p>
  * The infrastructure uses the provided information to present the context to the user. If 
  * a 'related' positions are present the infrastructure will attempt to present the source
  * on the 'context' and 'related' positions in the source text order (e.g. displays portion of the document);
  * contents between 'context' and 'related' positions may be suppressed.
- * <p/>
+ * <p>
  * An example of context and related areas for Java (PHP) if-elseif-else, with the origin t
- * <code><pre>
+ * <pre>{@code
  *  //  vvvvvvvvvvvvvvvvv -- related
  *      if (condition1) {
  *  //  vvvvvvvvvvvvvvvvvvvvvvvvvvv -- related
@@ -48,7 +48,7 @@
  *      ...
  *      }
  * //   ^ -- origin/caret location
- * </pre></code>
+ * }</pre>
  * @author sdedic
  */
 public final class BraceContext {
diff --git a/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BracesMatcher.java b/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BracesMatcher.java
index 247ac41..2968366 100644
--- a/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BracesMatcher.java
+++ b/ide/editor.bracesmatching/src/org/netbeans/spi/editor/bracesmatching/BracesMatcher.java
@@ -126,7 +126,6 @@
      * <p>It is essential for all implementations to respond when thread running
      * this method is interrupted and abort the task and return immediately. This can
      * be done simply by checking the thread's status like in the code below.
-     * <p>
      * 
      * <pre>
      * if (MatcherContext.isTaskCanceled()) {
@@ -158,7 +157,7 @@
          * of the origin will be passed in, but the implementation should be prepared to
          * handle (or ignore) each of the starting offsets reported by {@link #findOrigin()} or 
          * {@link #findMatches()}.
-         * <p/>
+         * <p>
          * Note: the document is <b>not read locked</b> by the caller. If the passed position does
          * not exist in the document, or seems obsolete, the SPI should return {@code null}.
          * 
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplate.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplate.java
index 1e920fb..3647ebd 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplate.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplate.java
@@ -28,7 +28,7 @@
  * Code template is represented by a parametrized text
  * that, after pre-processing, can be pasted into a given
  * text component.
- * <br/>
+ * <br>
  * Code template instances are either persistent (can be retrieved by
  * {@link CodeTemplateManager#getCodeTemplates()})
  * or temporary code templates that can be created
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplateManager.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplateManager.java
index 309ddd1..6c48c82 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplateManager.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/api/CodeTemplateManager.java
@@ -57,7 +57,7 @@
 
     /**
      * Get unmodifiable collection of the code templates for this manager.
-     * <br/>
+     * <br>
      * This method will block until the code templates will be loaded.
      *
      * @return non-null unmodifiable collection of the code templates.
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateFilter.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateFilter.java
index 9ec76ad..aef6fd7 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateFilter.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateFilter.java
@@ -44,7 +44,7 @@
     
     /**
      * Factory for producing of the code template filters.
-     * <br/>
+     * <br>
      * It should be registered in the MimeLookup for a given mime-type.
      */
     @MimeLocation(subfolderName="CodeTemplateFilterFactories")
@@ -79,7 +79,7 @@
     /**
      * Factory for producing of the code template filters that filter templates
      * based on their contexts.
-     * <br/>
+     * <br>
      * It should be registered in the MimeLookup for a given mime-type.
      * 
      * @since 1.34
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateInsertRequest.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateInsertRequest.java
index db75e4f..d47367f 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateInsertRequest.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateInsertRequest.java
@@ -31,7 +31,9 @@
  * to gather the data necessary to insert
  * the particular code template into the document (such as the template's parameters).
  *
- * <h3>State</h3>
+ * <p>
+ * <strong>State</strong>
+ * </p>
  * The insert request can be in three states:
  * <ul>
  *   <li>It is not inserted into the document yet.
@@ -44,7 +46,9 @@
  *     work to do. Code templates processor(s) servicing the request will be released.
  * </ul>
  *
- * <h3>Parameters</h3>
+ * <p>
+ * <strong>Parameters</strong>
+ * </p>
  * The code template's text is first parsed to find the parameters.
  * Each first occurrence of a parameter with particular name define
  * a master parameter. All the other occurrences of a parameter with the same name
@@ -132,7 +136,7 @@
      *  and the inserted default values are being modified by the user
      *  which can result into
      *  {@link CodeTemplateProcessor#parameterValueChanged(CodeTemplateParameter, boolean)}.
-     *  <p/>
+     *  <p>
      *  Returns false if the code template was not yet inserted into the document
      *  i.e. the {@link CodeTemplateProcessor#updateDefaultValues()}
      *  is currently being called on the registered processors.
@@ -158,10 +162,10 @@
     
     /**
      * Get the present parametrized text handled by this request.
-     * <br/>
+     * <br>
      * By default the code template's parametrized text obtained
      * by {@link CodeTemplate#getParametrizedText()} is used.
-     * <br/>
+     * <br>
      * The parametrized text can be modified by {@link #setParametrizedText(String)}.
      */
     public String getParametrizedText() {
@@ -170,11 +174,11 @@
     
     /**
      * Set the parametrized text to a new value.
-     * <br/>
+     * <br>
      * This may be necessary if some parameters are just artificial
      * and should be expanded by a particular code template processor
      * before the regular processing.
-     * <br/>
+     * <br>
      * Once this method is called the new parametrized text will be parsed
      * and a fresh new list of parameters will be created.
      *
@@ -187,10 +191,10 @@
     /**
      * Get the text where all the parameters are replaced
      * by their present values.
-     * <br/>
+     * <br>
      * This is the text to be physically inserted into the document
      * once the template processors possibly update the parameter's values.
-     * <br/>
+     * <br>
      * After the text gets physically inserted into the document this method
      * continues to return the "living" text of the document with the inserted template.
      */
@@ -200,10 +204,10 @@
 
     /**
      * Return offset of the inserted template in the document's text.
-     * <br/>
+     * <br>
      * The offset is physically represented as a swing position
      * so it will reflect possible subsequent document mutations.
-     * <br/>
+     * <br>
      * Before the template gets inserted into the document this method
      * returns zero.
      */
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateParameter.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateParameter.java
index 846a584..1f58e5d 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateParameter.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateParameter.java
@@ -29,7 +29,7 @@
  * A first occurrence of the parameter in the parametrized text of the code template
  * define a master parameter. All other occurrences of the parameter
  * with the same name will become slave parameters.
- * <br/>
+ * <br>
  * The value of the master parameter
  * will be used for the slaves as well automatically and document modifications
  * to master parameter's value will be propagated to slaves as well.
@@ -42,10 +42,10 @@
  * ${param hint ... }
  * </pre>
  * The hints give additional specification of what the parameter's value should be.
- * <br/>
+ * <br>
  * The slave parameters inherit their value from their master so it has no sense
  * to define any hints for slave parameters.
- * <br/>
+ * <br>
  * The hints without explicit <code>=value</code> are assigned with string value "true".
  * 
  * @author Miloslav Metelka
@@ -75,11 +75,11 @@
     /**
      * Name of the hint that defines whether the given parameter is editable
      * by the user or not.
-     * <br/>
+     * <br>
      * If the parameter is not editable the user cannot jump to it by <i>TAB</i>
      * key during the post-insert editing. The value however can be changed
      * by the code template processor(s).
-     * <br/>
+     * <br>
      * Example of non-editable parameter:
      * <pre>
      * ${param editable=false}
@@ -99,8 +99,7 @@
      * // paramC comes first, then paramB, then paramA
      * ${paramA} ${paramB ordering=2} ${paramC ordering=1}
      * </pre>
-     * </p>
-     * https://netbeans.org/bugzilla/show_bug.cgi?id=181703
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=181703">#181703</a>
      * @since 1.43.0
      */
     public static final String ORDERING_HINT_NAME = "ordering"; // NOI18N
@@ -122,9 +121,9 @@
      * Get the present value of this parameter.
      * 
      * @return non-null text value of this parameter.
-     *  <br/>
+     *  <br>
      *  The default value of the parameter is set to the name of the parameter.
-     *  <br/>
+     *  <br>
      *  If the parameter has hint of name
      *  {@link #DEFAULT_VALUE_HINT_NAME} then the default value
      *  is taken from the hint.
@@ -141,13 +140,13 @@
     
     /**
      * Set a new value for this parameter.
-     * <br/>
+     * <br>
      * The value can only be set to the master parameters
      * because slave parameters will inherit values from their masters.
-     * <br/>
+     * <br>
      * If the code template was not yet inserted into the text the value
      * will be remembered and used as a default value during insertion.
-     * <br/>
+     * <br>
      * If the code template was already inserted and it's still actively
      * being changed then the value is propagated directly to the document's text.
      * 
@@ -183,7 +182,7 @@
      * 
      * @return &gt;=0 starting offset of this parameter in the text being
      *  inserted into the document.
-     *  <br/>
+     *  <br>
      *  After the code template gets inserted into the document
      *  the value continues to be updated if the user changes the value
      *  by typing until the code template gets released which can be
@@ -195,7 +194,7 @@
     
     /**
      * Get starting offset of this parameter in the parametrized text.
-     * <br/>
+     * <br>
      * The parametrized text can be obtained
      * by {@link CodeTemplateInsertRequest#getParametrizedText()}.
      *
@@ -208,7 +207,7 @@
     
     /**
      * Get the ending offset of this parameter in the parametrized text.
-     * <br/>
+     * <br>
      * The parametrized text can be obtained
      * by {@link CodeTemplateInsertRequest#getParametrizedText()}.
      *
@@ -222,7 +221,7 @@
 
     /**
      * Get map of the [String,String] hints in the parameter.
-     * <br/>
+     * <br>
      * For example the hints map for <code>${param hint1 hint2="defaultValue"}</code>
      * will contain ["hint1","true"] and ["hint2","defaultValue"].
      */
@@ -244,7 +243,7 @@
      * Get unmodifiable collection of the slave parameters.
      *
      * @return non-null collection of the slave parameters for this parameter.
-     *  <br/>
+     *  <br>
      *  The collection will be empty if this is a slave parameter
      *  or a master with no slaves.
      */
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessor.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessor.java
index 131de6d..206268e 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessor.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessor.java
@@ -34,10 +34,10 @@
     /**
      * Update the values of the parameters in the parsed code template
      * before the code template gets physically inserted into the document.
-     * <br/>
+     * <br>
      * The processor may call {@link CodeTemplateInsertRequest#getMasterParameters()}
      * to find the master parameters.
-     * <br/>
+     * <br>
      * On each parameter {@link CodeTemplateParameter#setValue(String)}
      * can be called. The value will be propagated to all slave parameters
      * automatically.
@@ -47,12 +47,12 @@
     /**
      * Notification that a master parameter's value has been modified
      * by the user and the processor may need to react to it.
-     * <br/>
+     * <br>
      * This notification is only done after the code template was physically
      * inserted into the document i.e. {@link CodeTemplateInsertRequest#isInserted()}
      * returns true.
      * 
-     * <br/>
+     * <br>
      * Typically the processor either does nothing or it may change other
      * parameter(s)' values. The change may occur in the same thread
      * or it may post the parameter's new value recomputation and changing
@@ -69,10 +69,10 @@
      * @param masterParameter master parameter that was changed.
      * @param typingChange allows to react to user's typing immediately
      *  or only react once the active parameter gets changed e.g. by <i>TAB</i>.
-     *  <br/>
+     *  <br>
      *  <code>true</code> is passed if the parameter value was modified
      *  by user's typing. Some processors may want such immediate reaction.
-     *  <br/>
+     *  <br>
      *  Others will only react when this parameter
      *  is <code>false</code> which happens when
      *  at least one typing change occurred in the current active parameter
@@ -84,7 +84,7 @@
     /**
      * Notify the processor that the insert request which it services
      * was already completed and there is no more work to do.
-     * <br/>
+     * <br>
      * The processor can free possible resources related to the insert
      * request processing.
      *
diff --git a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessorFactory.java b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessorFactory.java
index 3a45760..a8b0237 100644
--- a/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessorFactory.java
+++ b/ide/editor.codetemplates/src/org/netbeans/lib/editor/codetemplates/spi/CodeTemplateProcessorFactory.java
@@ -23,7 +23,7 @@
 
 /**
  * Factory constructs code template processor for a given insert request.
- * <br/>
+ * <br>
  * The factory instances are looked up
  * by {@link org.netbeans.api.editor.mimelookup.MimeLookup}
  * so they should be registered in an xml-layer in
diff --git a/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionItem.java b/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionItem.java
index 04b4d19..d4f9908 100644
--- a/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionItem.java
+++ b/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionItem.java
@@ -44,7 +44,7 @@
     /**
      * Gets invoked when user presses <code>VK_ENTER</code> key
      * or when she double-clicks on this item with the mouse cursor.
-     * <br/>
+     * <br>
      * This method gets invoked from AWT thread.
      *
      * @param component non-null text component for which the completion was invoked.
@@ -62,7 +62,7 @@
     /**
      * Process the key pressed when this completion item was selected
      * in the completion popup window.
-     * <br/>
+     * <br>
      * This method gets invoked from AWT thread.
      *
      * @param evt non-null key event of the pressed key. It should be consumed
@@ -120,7 +120,7 @@
      * <br>
      * The implementation can invoke the {@link #defaultAction(JTextComponent)}
      * if necessary.
-     * <br/>
+     * <br>
      * This method gets invoked from AWT thread.
      *
      * @param component non-null text component for which the completion was invoked.
diff --git a/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionTask.java b/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionTask.java
index a7cc405..9fc7a6b 100644
--- a/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionTask.java
+++ b/ide/editor.completion/src/org/netbeans/spi/editor/completion/CompletionTask.java
@@ -75,7 +75,7 @@
      * 
      * @param resultSet non-null result set to which the results
      *  of the refreshing must be added.
-     *  <br/>
+     *  <br>
      *  Null result set may be passed in case the <code>query()</code>
      *  was not invoked yet and user has typed a character. In this case
      *  the provider may hide the completion
diff --git a/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/AsyncCompletionQuery.java b/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/AsyncCompletionQuery.java
index af21f7a..42fab0b 100644
--- a/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/AsyncCompletionQuery.java
+++ b/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/AsyncCompletionQuery.java
@@ -43,10 +43,10 @@
 
     /**
      * Called in response to <code>CompletionTask.refresh(null)</code>.
-     * <br/>
+     * <br>
      * The method gets invoked once the the user types a character
      * but the <code>CompletionTask.query()</code> was not yet invoked.
-     * <br/>
+     * <br>
      * The method may want to inspect the typed character before the caret
      * position and decide whether the completion should be hidden
      * if the typed character is inappropriate e.g. ";" for java completion.
diff --git a/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/CompletionUtilities.java b/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/CompletionUtilities.java
index 3d5cc35..89a5e72 100644
--- a/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/CompletionUtilities.java
+++ b/ide/editor.completion/src/org/netbeans/spi/editor/completion/support/CompletionUtilities.java
@@ -79,7 +79,7 @@
 
     /**
      * Get preferred width of the item by knowing its left and right html texts.
-     * <br/>
+     * <br>
      * It is supposed that the item will have an icon 16x16 and an appropriate
      * space is reserved for it.
      *
@@ -117,21 +117,21 @@
      * 
      * @param leftHtmlText html text that will be displayed on the left side
      *  of the item's rendering area next to the icon.
-     *  <br/>
+     *  <br>
      *  It may be null which indicates that no left text will be displayed.
-     *  <br/>
+     *  <br>
      *  If there's not enough horizontal space in the rendering area
      *  the text will be shrinked and "..." will be displayed at the end.
      *
      * @param rightHtmlText html text that will be aligned to the right edge
      *  of the item's rendering area.
-     *  <br/>
+     *  <br>
      *  It may be null which means that no right text will be displayed.
-     *  <br/>
+     *  <br>
      *  The right text is always attempted to be fully displayed unlike
      *  the left text that may be shrinked if there's not enough rendering space
      *  in the horizontal direction.
-     *  <br/>
+     *  <br>
      *  If there's not enough space even for the right text it will be shrinked
      *  and "..." will be displayed at the end of the rendered string.
      * @param g non-null graphics through which the rendering happens.
@@ -186,7 +186,7 @@
 
     /**
      * Builder for simple {@link CompletionItem} instances.
-     * <br/>
+     * <br>
      * Example usage:
      * <pre>
      * CompletionUtilities.newCompletionItemBuilder(insertText)
diff --git a/ide/editor.settings.storage/apichanges.xml b/ide/editor.settings.storage/apichanges.xml
index 80d2aa1..b8dd3ca 100644
--- a/ide/editor.settings.storage/apichanges.xml
+++ b/ide/editor.settings.storage/apichanges.xml
@@ -228,7 +228,7 @@
             <description>
             <p>
                 The phase 1 of the editor settings enhancements, please see
-                <a href="http://www.netbeans.org/issues/show_bug.cgi?id=90403">issue 90403</a>
+                <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=90403">issue 90403</a>
                 for details. Briefly, the changes involve introducing a special
                 folder for each setting type, profiles are always stored in their
                 own folder, modules are allowed to register multiple settings files,
diff --git a/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/EditorSettings.java b/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/EditorSettings.java
index 10bf53e..ee285e5 100644
--- a/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/EditorSettings.java
+++ b/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/EditorSettings.java
@@ -30,7 +30,7 @@
 
 /**
  * This singleton class contains access methods for editor settings like
- * font & colors profiles and keymaps.
+ * font &amp; colors profiles and keymaps.
  *
  * @author Jan Jancura
  */
@@ -103,9 +103,9 @@
     public static final String PROP_MIME_TYPES = MimeTypesTracker.PROP_MIME_TYPES;
     
     /**
-     * Returns set of font & colors profiles.
+     * Returns set of font &amp; colors profiles.
      *
-     * @return set of font & colors profiles
+     * @return set of font &amp; colors profiles
      */
     public abstract Set<String> getFontColorProfiles ();
     
@@ -118,25 +118,25 @@
     public abstract boolean isCustomFontColorProfile (String profile);
     
     /**
-     * Returns name of current font & colors profile.
+     * Returns name of current font &amp; colors profile.
      *
-     * @return name of current font & colors profile
+     * @return name of current font &amp; colors profile
      */
     public abstract String getCurrentFontColorProfile ();
     
     /**
-     * Sets current font & colors profile.
+     * Sets current font &amp; colors profile.
      *
      * @param profile a profile name
      */
     public abstract void setCurrentFontColorProfile (String profile);
     
     /**
-     * Returns font & color defaults for given profile or null, if the profile
+     * Returns font &amp; color defaults for given profile or null, if the profile
      * is unknown .
      *
      * @param profile a profile name
-     * @return font & color defaults for given profile or null
+     * @return font &amp; color defaults for given profile or null
      * 
      * @deprecated Use getFontColorSettings(new String[0]).getAllFontColors(profile) instead.
      */
@@ -146,11 +146,11 @@
     );
     
     /**
-     * Returns default values for font & color defaults for given profile 
+     * Returns default values for font &amp; color defaults for given profile 
      * or null, if the profile is unknown.
      *
      * @param profile a profile name
-     * @return font & color defaults for given profile or null
+     * @return font &amp; color defaults for given profile or null
      * 
      * @deprecated Use getFontColorSettings(new String[0]).getAllFontColorsDefaults(profile) instead.
      */
@@ -160,10 +160,10 @@
     );
     
     /**
-     * Sets font & color defaults for given profile.
+     * Sets font &amp; color defaults for given profile.
      *
      * @param profile a profile name
-     * @param fontColors font & color defaults to be used
+     * @param fontColors font &amp; color defaults to be used
      * 
      * @deprecated Use getFontColorSettings(new String[0]).setAllFontColors(profile, fontColors) instead.
      */
@@ -267,7 +267,7 @@
     /**
      * Returns set of keymap profiles.
      *
-     * @return set of font & colors profiles
+     * @return set of font &amp; colors profiles
      */
     public abstract Set<String> getKeyMapProfiles ();
     
diff --git a/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/FontColorSettingsFactory.java b/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/FontColorSettingsFactory.java
index 54500e2..267f0fc 100644
--- a/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/FontColorSettingsFactory.java
+++ b/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/api/FontColorSettingsFactory.java
@@ -23,7 +23,7 @@
 import javax.swing.text.AttributeSet;
 
 /**
- * Getters and setters for font & color editor profiles. Instances of this 
+ * Getters and setters for font &amp; color editor profiles. Instances of this 
  * class should be registered in <code>MimeLookup</code> for particular mime types.
  *
  * @author Jan Jancura
@@ -41,12 +41,12 @@
     public abstract Collection<AttributeSet> getAllFontColors (String profile);
     
     /**
-     * Gets default values for all font & colors for given profile, or null
+     * Gets default values for all font &amp; colors for given profile, or null
      * if profile does not exist or if it does not have any defaults. 
      * 
      * @param profile the name of profile
      *
-     * @return default values for all font & colors
+     * @return default values for all font &amp; colors
      */
     public abstract Collection<AttributeSet> getAllFontColorDefaults 
         (String profile);
diff --git a/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/spi/support/StorageSupport.java b/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/spi/support/StorageSupport.java
index 4a87f25..df971e1 100644
--- a/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/spi/support/StorageSupport.java
+++ b/ide/editor.settings.storage/src/org/netbeans/modules/editor/settings/storage/spi/support/StorageSupport.java
@@ -48,7 +48,7 @@
     /**
      * Converts a list of <code>KeyStroke</code>s to its textual representation. There
      * are two available formats for the textual representation:
-     * 
+     * <ul>
      * <li><b>Human readable</b> - this format encodes a <code>KeyStroke</code> to
      *   a string that looks like for example 'Ctrl+A' or 'Alt+Shift+M'.
      * <li><b>Emacs style</b> - this format encodes a <code>KeyStroke</code> to
@@ -56,14 +56,14 @@
      *   It uses methods from <code>org.openide.util.Utilities</code>, which take
      *   care of Mac OS specifics and use 'D' and 'O' wildcards for encoding 'Ctrl'
      *   and 'Alt' keys.
-     * 
+     * </ul>
      * @param keys The <code>KeyStrokes</code> to convert.
      * @param emacsStyle If <code>true</code> the returned string will be in so called
      *   Emacs style, ortherwise it will be in human readable format.
      * 
      * @return The textual representation of <code>KeyStroke</code>s passed in.
      * @since 1.16
-     * @deprecated Use {@link KeyStrokeUtils#getKeyStrokesAsText} or {@link Utilities#keyToString(javax.swing.KeyStroke[], java.lang.String, boolean)}
+     * @deprecated Use {@link KeyStrokeUtils#getKeyStrokesAsText} or {@link Utilities#keyToString(javax.swing.KeyStroke, boolean)}
      */
     public static String keyStrokesToString(Collection<? extends KeyStroke> keys, boolean emacsStyle) {
         if (!emacsStyle) {
@@ -84,7 +84,7 @@
 
     /**
      * Converts a textual representation of key strokes to an array of <code>KeyStroke</code>
-     * objects. Please see {@link #keyStrokesToString(Collection<KeyStroke>, boolean)}
+     * objects. Please see {@link #keyStrokesToString(Collection, boolean)}
      * ror details about the available formats.
      * 
      * @param key The textual representation of keystorkes to convert. Its format
diff --git a/ide/editor/src/org/netbeans/modules/editor/EditorWarmUpTask.java b/ide/editor/src/org/netbeans/modules/editor/EditorWarmUpTask.java
index fc8f3de..8aa8b73 100644
--- a/ide/editor/src/org/netbeans/modules/editor/EditorWarmUpTask.java
+++ b/ide/editor/src/org/netbeans/modules/editor/EditorWarmUpTask.java
@@ -28,7 +28,7 @@
  * pre-initialize some suitable parts of the module to improve first time usage
  * experience - which might suffer from long response time due to class loading
  * and various initialization.
- * See {@link org.netbeans.core.AfterStartWarmUp} for details about how the task is run.
+ * See <a href="https://github.com/apache/netbeans/blob/master/platform/core.startup/src/org/netbeans/core/startup/WarmUpSupport.java">WarmUpSupport</a> for details about how the task is run.
  *
  */
 
diff --git a/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypeProcessor.java b/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypeProcessor.java
index eafe442..a4ae54d 100644
--- a/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypeProcessor.java
+++ b/ide/editor/src/org/netbeans/modules/editor/options/AnnotationTypeProcessor.java
@@ -108,7 +108,7 @@
 
     /** Create an instance.
      * @return the instance of type {@link #instanceClass}
-     * @exception IOException if an I/O error occured
+     * @exception java.io.IOException if an I/O error occured
      * @exception ClassNotFoundException if a class was not found
      */
     public Object instanceCreate() throws java.io.IOException, ClassNotFoundException {
@@ -122,8 +122,6 @@
      * class without actually creating it.
      *
      * @return the representation class of the instance
-     * @exception IOException if an I/O error occurred
-     * @exception ClassNotFoundException if a class was not found
      */
     public Class instanceClass() {
         return AnnotationType.class;
diff --git a/ide/jellytools.ide/src/org/netbeans/jellytools/FilesTabOperator.java b/ide/jellytools.ide/src/org/netbeans/jellytools/FilesTabOperator.java
index a06ace2..9cbb25b 100644
--- a/ide/jellytools.ide/src/org/netbeans/jellytools/FilesTabOperator.java
+++ b/ide/jellytools.ide/src/org/netbeans/jellytools/FilesTabOperator.java
@@ -29,7 +29,7 @@
  * Functionality related to Projects tree is delegated to JTreeOperator (method
  * tree()) and nodes (method getProjectNode()).<p>
  *
- * Example:<p>
+ * Example:
  * <pre>
  *      FilesTabOperator fto = new FilesTabOperator();
  *      // or when Files pane is not already opened
diff --git a/ide/jellytools.ide/src/org/netbeans/jellytools/ProjectsTabOperator.java b/ide/jellytools.ide/src/org/netbeans/jellytools/ProjectsTabOperator.java
index a9377d3..e023bfc 100644
--- a/ide/jellytools.ide/src/org/netbeans/jellytools/ProjectsTabOperator.java
+++ b/ide/jellytools.ide/src/org/netbeans/jellytools/ProjectsTabOperator.java
@@ -32,7 +32,7 @@
  * Functionality related to Projects tree is delegated to JTreeOperator (method
  * tree()) and nodes (method getRootNode()).<p>
  *
- * Example:<p>
+ * Example:
  * <pre>
  *      ProjectsTabOperator pto = new ProjectsTabOperator();
  *      // or when Projects pane is not already opened
diff --git a/ide/jellytools.ide/src/org/netbeans/jellytools/RuntimeTabOperator.java b/ide/jellytools.ide/src/org/netbeans/jellytools/RuntimeTabOperator.java
index 7d2eab2..cfe95d9 100644
--- a/ide/jellytools.ide/src/org/netbeans/jellytools/RuntimeTabOperator.java
+++ b/ide/jellytools.ide/src/org/netbeans/jellytools/RuntimeTabOperator.java
@@ -28,7 +28,7 @@
 /** Operator handling Services TopComponent.<p>
  * Functionality related to Services tree is delegated to JTreeOperator (method
  * tree()) and nodes (method getRootNode()).<p>
- * Example:<p>
+ * Example:
  * <pre>
  *      RuntimeTabOperator rto = RuntimeTabOperator.invoke();
  *      // or when Runtime pane is already opened
diff --git a/ide/jellytools.ide/src/org/netbeans/jellytools/modules/debugger/actions/DebugProjectAction.java b/ide/jellytools.ide/src/org/netbeans/jellytools/modules/debugger/actions/DebugProjectAction.java
index 4cc112f..de0290a 100644
--- a/ide/jellytools.ide/src/org/netbeans/jellytools/modules/debugger/actions/DebugProjectAction.java
+++ b/ide/jellytools.ide/src/org/netbeans/jellytools/modules/debugger/actions/DebugProjectAction.java
@@ -25,7 +25,7 @@
  * Used to call "Debug" popup menu item on project's root node.
  *
  * @see Action
- * @see org.netbeans.jellytools.nodes.JavaProjectRootNode
+ * @see <a href="@org-netbeans-modules-jellytools-java@/org/netbeans/jellytools/nodes/JavaProjectRootNode.html">org.netbeans.jellytools.nodes.JavaProjectRootNode</a>
  * @author Vojtech Sigler
  */
 public class DebugProjectAction extends Action {
diff --git a/ide/jumpto/src/org/netbeans/spi/jumpto/symbol/SymbolProvider.java b/ide/jumpto/src/org/netbeans/spi/jumpto/symbol/SymbolProvider.java
index 6f7dfda..c73ea30 100644
--- a/ide/jumpto/src/org/netbeans/spi/jumpto/symbol/SymbolProvider.java
+++ b/ide/jumpto/src/org/netbeans/spi/jumpto/symbol/SymbolProvider.java
@@ -63,7 +63,7 @@
      * up calling {@link #cancel} on the same symbol provider during the operation, in which
      * case the method can return incomplete results. If there is a "current project",
      * the Go To Symbol infrastructure will perform the search in two passes; first it
-     * will call {@link #getSymbolNames} with the current project, which should be a reasonably
+     * will call {@link SymbolDescriptor#getSymbolName()} with the current project, which should be a reasonably
      * fast search, and display those symbols first. It will then call the method again
      * with a null project, which should return all symbols.
      * <p>
@@ -242,7 +242,7 @@
         /**
           * Adds list of result descriptors.
           *
-          * @param  symbolDescriptor  symbol descriptor to be added to result
+          * @param  symbolDescriptors  symbol descriptor to be added to result
           */
         @SuppressWarnings("unchecked")
         public void addResult(List<? extends SymbolDescriptor> symbolDescriptors) {
diff --git a/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeDescriptor.java b/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeDescriptor.java
index 740dc3f..061b291 100644
--- a/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeDescriptor.java
+++ b/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeDescriptor.java
@@ -113,7 +113,7 @@
      * This will only be called when the dialog is opening the type, so
      * does not have to be as fast as the other descriptor attributes.
      * 
-     * @todo This method is intended to replace the open() call below.
+     * XXX This method is intended to replace the open() call below.
      *
      * @return The document offset of the type declaration in the declaration file
      */
@@ -121,7 +121,7 @@
      
     /**
      * Open the type declaration in the editor. 
-     * @todo Should we nuke this method and only have type declarations return
+     * XXX Should we nuke this method and only have type declarations return
      *   their offsets? I looked at the Java implementation and it's leveraging 
      *   some utility methods to open the type declaration; I have similar methods
      *   in Ruby. It might be more convenient
diff --git a/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeProvider.java b/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeProvider.java
index d513717..29e652b 100644
--- a/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeProvider.java
+++ b/ide/jumpto/src/org/netbeans/spi/jumpto/type/TypeProvider.java
@@ -32,7 +32,7 @@
  *
  * The Type Providers are registered in Lookup.
  *
- * @todo Should we return a Collection rather than a List?
+ * XXX Should we return a Collection rather than a List?
  *
  * @author Tor Norbye
  */
@@ -63,7 +63,7 @@
      * up calling {@link #cancel} on the same type provider during the operation, in which
      * case the method can return incomplete results. If there is a "current project",
      * the Go To Type infrastructure will perform the search in two passes; first it
-     * will call {@link #getTypeNames} with the current project, which should be a reasonably
+     * will call {@link TypeDescriptor#getTypeName()} with the current project, which should be a reasonably
      * fast search, and display those types first. It will then call the method again
      * with a null project, which should return all types.
      * <p>
@@ -226,7 +226,7 @@
         /**
           * Adds list of result descriptors.
           *
-          * @param  typeDescriptor  type descriptor to be added to result
+          * @param  typeDescriptors  type descriptor to be added to result
           */
         public void addResult(@NonNull final List<? extends TypeDescriptor> typeDescriptors) {
             for (TypeDescriptor typeDescriptor : typeDescriptors) {
diff --git a/ide/libs.commons_compress/external/binaries-list b/ide/libs.commons_compress/external/binaries-list
index 47ecf32..312658f 100644
--- a/ide/libs.commons_compress/external/binaries-list
+++ b/ide/libs.commons_compress/external/binaries-list
@@ -14,4 +14,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-4EC95B60D4E86B5C95A0E919CB172A0AF98011EF org.apache.commons:commons-compress:1.21
+4AF2060EA9B0C8B74F1854C6CAFE4D43CFC161FC org.apache.commons:commons-compress:1.23.0
diff --git a/ide/libs.commons_compress/external/commons-compress-1.21-license.txt b/ide/libs.commons_compress/external/commons-compress-1.23.0-license.txt
similarity index 99%
rename from ide/libs.commons_compress/external/commons-compress-1.21-license.txt
rename to ide/libs.commons_compress/external/commons-compress-1.23.0-license.txt
index 5429e1f..55d972a 100644
--- a/ide/libs.commons_compress/external/commons-compress-1.21-license.txt
+++ b/ide/libs.commons_compress/external/commons-compress-1.23.0-license.txt
@@ -1,5 +1,5 @@
 Name: Commons Compress
-Version: 1.21
+Version: 1.23.0
 OSR: 19203
 Description: The Apache Commons Compress library defines an API for working with ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4, Brotli, Zstandard, DEFLATE64 and Z files.
 Origin: https://commons.apache.org/proper/commons-compress/index.html
diff --git a/ide/libs.commons_compress/external/commons-compress-1.21-notice.txt b/ide/libs.commons_compress/external/commons-compress-1.23.0-notice.txt
similarity index 100%
rename from ide/libs.commons_compress/external/commons-compress-1.21-notice.txt
rename to ide/libs.commons_compress/external/commons-compress-1.23.0-notice.txt
diff --git a/ide/libs.commons_compress/nbproject/project.properties b/ide/libs.commons_compress/nbproject/project.properties
index 14d35d0..81f9b37 100644
--- a/ide/libs.commons_compress/nbproject/project.properties
+++ b/ide/libs.commons_compress/nbproject/project.properties
@@ -18,5 +18,5 @@
 is.autoload=true
 javac.compilerargs=-Xlint -Xlint:-serial
 javac.source=1.8
-release.external/commons-compress-1.21.jar=modules/ext/commons-compress-1.21.jar
+release.external/commons-compress-1.23.0.jar=modules/ext/commons-compress-1.23.0.jar
 spec.version.base=0.26.0
diff --git a/ide/libs.commons_compress/nbproject/project.xml b/ide/libs.commons_compress/nbproject/project.xml
index 2c0edd4..3dec083 100644
--- a/ide/libs.commons_compress/nbproject/project.xml
+++ b/ide/libs.commons_compress/nbproject/project.xml
@@ -36,8 +36,8 @@
                 <package>org.apache.commons.compress.utils</package>
             </friend-packages>
             <class-path-extension>
-                <runtime-relative-path>ext/commons-compress-1.21.jar</runtime-relative-path>
-                <binary-origin>external/commons-compress-1.21.jar</binary-origin>
+                <runtime-relative-path>ext/commons-compress-1.23.0.jar</runtime-relative-path>
+                <binary-origin>external/commons-compress-1.23.0.jar</binary-origin>
             </class-path-extension>
         </data>
     </configuration>
diff --git a/ide/libs.commons_compress/src/org/netbeans/libs/commons_compress/mf-layer.xml b/ide/libs.commons_compress/src/org/netbeans/libs/commons_compress/mf-layer.xml
index 9c67fa3..9be466f 100644
--- a/ide/libs.commons_compress/src/org/netbeans/libs/commons_compress/mf-layer.xml
+++ b/ide/libs.commons_compress/src/org/netbeans/libs/commons_compress/mf-layer.xml
@@ -27,7 +27,7 @@
             <file name="org-netbeans-lib-commons_compress-antlibrary.instance">
                 <attr name="instanceCreate" methodvalue="org.apache.tools.ant.module.spi.AutomaticExtraClasspath.url"/>
                 <attr name="instanceOf" stringvalue="org.apache.tools.ant.module.spi.AutomaticExtraClasspathProvider"/>
-                <attr name="url" urlvalue="nbinst://org.netbeans.libs.commons_compress/modules/ext/commons-compress-1.21.jar"/>
+                <attr name="url" urlvalue="nbinst://org.netbeans.libs.commons_compress/modules/ext/commons-compress-1.23.0.jar"/>
             </file>
         </folder>
     </folder>
diff --git a/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/Symbol.java b/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/Symbol.java
index cf18960..56aba3e 100644
--- a/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/Symbol.java
+++ b/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/Symbol.java
@@ -36,7 +36,7 @@
     }
 
     /**
-     * Get the symbol name. Never <code>null<code>.
+     * Get the symbol name. Never <code>null</code>.
      *
      * @since 0.2
      */
diff --git a/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/debug/NIDebugger.java b/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/debug/NIDebugger.java
index 21d3511..f4a212f 100644
--- a/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/debug/NIDebugger.java
+++ b/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/api/debug/NIDebugger.java
@@ -152,7 +152,7 @@
      * @param startedEngine the corresponding DebuggerEngine is passed to this consumer
      * @return future that completes on the execution finish
      * @since 0.4
-     * @deprecated Use {@link #start(StartDebugParameters, Consumer) and set {@link StartDebugParameters.Builder#processID(long)}.
+     * @deprecated Use {@link #start(StartDebugParameters, Consumer)} and set {@link StartDebugParameters.Builder#processID(Long)}.
      */
     @Deprecated
     public CompletableFuture<Void> attach(String executablePath, long processId, String debugger, Consumer<DebuggerEngine> startedEngine) {
diff --git a/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/spi/debug/NIDebuggerProvider.java b/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/spi/debug/NIDebuggerProvider.java
index 0f3d509..4fd0427 100644
--- a/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/spi/debug/NIDebuggerProvider.java
+++ b/ide/nativeimage.api/src/org/netbeans/modules/nativeimage/spi/debug/NIDebuggerProvider.java
@@ -127,7 +127,7 @@
      * @param startedEngine the corresponding DebuggerEngine is passed to this consumer
      * @return future that completes on the execution finish
      * @since 0.4
-     * @deprecated Use {@link #start(StartDebugParameters, Consumer)} and set {@link StartDebugParameters.Builder#processID(long)}.
+     * @deprecated Use {@link #start(StartDebugParameters, Consumer)} and set {@link StartDebugParameters.Builder#processID(Long)}.
      */
     @Deprecated
     default CompletableFuture<Void> attach(String executablePath, long processId, String debugger, Consumer<DebuggerEngine> startedEngine) {
diff --git a/ide/o.openidex.util/src/org/openidex/search/SearchGroup.java b/ide/o.openidex.util/src/org/openidex/search/SearchGroup.java
index 98373d7..fa16d63 100644
--- a/ide/o.openidex.util/src/org/openidex/search/SearchGroup.java
+++ b/ide/o.openidex.util/src/org/openidex/search/SearchGroup.java
@@ -274,7 +274,7 @@
      * to all search types) is computed. Then a search group is created
      * for each of the <code>Class</code>s.
      *
-     * @param  search types to create search groups for
+     * @param items search types to create search groups for
      * @return  created search groups
      * @see  SearchType#getSearchTypeClasses()
      */
diff --git a/ide/o.openidex.util/src/org/openidex/search/SearchHistory.java b/ide/o.openidex.util/src/org/openidex/search/SearchHistory.java
index 9a300fe..bb51464 100644
--- a/ide/o.openidex.util/src/org/openidex/search/SearchHistory.java
+++ b/ide/o.openidex.util/src/org/openidex/search/SearchHistory.java
@@ -29,7 +29,7 @@
 
 /**
  * Shareable search history. Known implementations are explorer search
- * dialog and editor find&replace dialog.
+ * dialog and editor find&amp;replace dialog.
  *
  * Typical use case:
  * Editor registers a listener to listen on lastSelected SearchPattern. If user
diff --git a/ide/parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java b/ide/parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java
index 2b2fdac..7ade6f7 100644
--- a/ide/parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java
+++ b/ide/parsing.api/src/org/netbeans/modules/parsing/api/ParserManager.java
@@ -304,7 +304,7 @@
     
     /**
      * Runs given task in parser thread.
-     * @param mimetype      specifying the parser
+     * @param mimeType      specifying the parser
      * @param userTask      a user task
      * @throws ParseException encapsulating the user exception
      */
@@ -325,7 +325,7 @@
      * scan is running the method behaves exactly like the {#link ParserManager#parse},
      * it performs the given task synchronously (in caller thread). If there is an another {@link UserTask}
      * running this method waits until it's completed.
-     * @param mimetype A mimetype specifying the parser.
+     * @param mimeType A mimetype specifying the parser.
      * @param userTask A task started when parsing is done.
      * @return {@link Future} which can be used to find out the state of the task {@link Future#isDone} or {@link Future#isCancelled}.
      * The caller may cancel the task using {@link Future#cancel} or wait until the task is performed {@link Future#get}.
@@ -388,7 +388,7 @@
     }
 
     /**
-     * Determines if the MIME type can be parsed. Rejects unknown MIME types (must be amongst {@link #getAllMimeTypes}.
+     * Determines if the MIME type can be parsed. Rejects unknown MIME types (must be amongst <a href="https://github.com/apache/netbeans/tree/master/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/Util.java">getAllMimeTypes</a>.
      * Then accepts only text/* MIME type and specific hardcoded application/ MIME types.
      * 
      * @param mimeType the MIME type to check
diff --git a/ide/parsing.api/src/org/netbeans/modules/parsing/api/Source.java b/ide/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
index f886f9e..8afd727 100644
--- a/ide/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
+++ b/ide/parsing.api/src/org/netbeans/modules/parsing/api/Source.java
@@ -124,7 +124,7 @@
      * Gets a <code>Source</code> instance for a file. The <code>FileObject</code>
      * passed to this method has to be a valid data file. There is no <code>Source</code>
      * representation for a folder.
-     * <p/>
+     * <p>
      * This form allows to specify Lookup that provides access to context-dependent
      * services for the parsing system and the user tasks called from parsing API.
      * 
@@ -183,7 +183,7 @@
     }
     
     /**
-     * Gets a <code>Source</cide> instance for a <code>Document</code>. For details, please 
+     * Gets a <code>Source</code> instance for a <code>Document</code>. For details, please 
      * see {@link #create(javax.swing.text.Document)}; this form allows to specify
      * a Lookup that provides access to user or context-dependent services.
      * 
@@ -972,7 +972,7 @@
      * Returns a Lookup providing a context for the source.
      * In the presence of multiple scopes or users in the system, this Lookup may
      * provide access to necessary context-dependent services or scope-dependent data.
-     * <p/>
+     * <p>
      * A Source may be created with a Lookup, or it will use the default Lookup as a context
      * @return Lookup.
      * @since 9.2
diff --git a/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Parser.java b/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Parser.java
index 8648f23..509cb46 100644
--- a/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Parser.java
+++ b/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Parser.java
@@ -83,7 +83,7 @@
     
     /**
      * Called by the infrastructure to stop the parser operation.
-     * @param reason of the cancel, see {@link Parser#CancelReason}
+     * @param reason of the cancel, see {@link Parser.CancelReason}
      * @param event an additional info if the reason is SOURCE_MODIFICATION_EVENT, otherwise null
      * @since 
      */
@@ -121,7 +121,7 @@
         
         /**
          * Creates a {@link Result} for given snapshot
-         * @param snapshot
+         * @param _snapshot
          */
         protected Result (
             final Snapshot      _snapshot
diff --git a/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Scheduler.java b/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Scheduler.java
index 9c43144..9c00915 100644
--- a/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Scheduler.java
+++ b/ide/parsing.api/src/org/netbeans/modules/parsing/spi/Scheduler.java
@@ -119,7 +119,7 @@
      * Reschedule all tasks registered for <code>this</code> Scheduler (see
      * {@link ParserResultTask#getSchedulerClass()}, and sets new {@link Source}s for them.
      * 
-     * @param sources       A collection of {@link Source}s.
+     * @param source       A {@link Source}.
      */
     //tzezula: really unclear usages of sources field (synchronization, live cycle, may it be called twice with different set of sources?).
     //tzezula: should set CHANGE_EXPECTED flag on the sources.
diff --git a/ide/parsing.api/src/org/netbeans/modules/parsing/spi/support/CancelSupport.java b/ide/parsing.api/src/org/netbeans/modules/parsing/spi/support/CancelSupport.java
index 1a1b898..cc76873 100644
--- a/ide/parsing.api/src/org/netbeans/modules/parsing/spi/support/CancelSupport.java
+++ b/ide/parsing.api/src/org/netbeans/modules/parsing/spi/support/CancelSupport.java
@@ -43,7 +43,6 @@
  * }
  * }
  * </pre>
- * </p>
  * @since 1.74
  * @author Tomas Zezula
  */
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/api/indexing/IndexingManager.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/api/indexing/IndexingManager.java
index 491cf22..b48004e 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/api/indexing/IndexingManager.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/api/indexing/IndexingManager.java
@@ -77,7 +77,7 @@
      * job will take.
      *
      * @param root The common parent folder of the files that should be reindexed.
-     * @param filesOrFolders The files to reindex. Can be <code>null</code> or an empty
+     * @param files The files to reindex. Can be <code>null</code> or an empty
      *   collection in which case <b>all</b> files under the <code>root</code> will
      *   be reindexed.
      */
@@ -102,7 +102,7 @@
      * job will take.
      *
      * @param root The common parent folder of the files that should be reindexed.
-     * @param filesOrFolders The files to reindex. Can be <code>null</code> or an empty
+     * @param files The files to reindex. Can be <code>null</code> or an empty
      *   collection in which case <b>all</b> files under the <code>root</code> will
      *   be reindexed.
      * @param fullRescan If <code>true</code> no timestamps check will be done
@@ -138,7 +138,7 @@
      * should be preferred.
      *
      * @param root The common parent folder of the files that should be reindexed.
-     * @param filesOrFolders The files to reindex. Can be <code>null</code> or an empty
+     * @param files The files to reindex. Can be <code>null</code> or an empty
      *   collection in which case <b>all</b> files under the <code>root</code> will
      *   be reindexed.
      * @param fullRescan If <code>true</code> no timestamps check will be done
@@ -165,7 +165,7 @@
      * job will take.
      *
      * @param root The common parent folder of the files that should be reindexed.
-     * @param filesOrFolders The files to reindex. Can be <code>null</code> or an empty
+     * @param files The files to reindex. Can be <code>null</code> or an empty
      *   collection in which case <b>all</b> files under the <code>root</code> will
      *   be reindexed.
      */
@@ -183,7 +183,7 @@
      * job will take.
      *
      * @param root The common parent folder of the files that should be reindexed.
-     * @param filesOrFolders The files to reindex. Can be <code>null</code> or an empty
+     * @param files The files to reindex. Can be <code>null</code> or an empty
      *   collection in which case <b>all</b> files under the <code>root</code> will
      *   be reindexed.
      * @param fullRescan If <code>true</code> no timestamps check will be done
@@ -244,8 +244,7 @@
      *   indexers will be refreshed (ie. all types of indexers will used,
      *   not just <code>CustomIndexers</code>).
      *
-     * @since 1.8
-     * @since 
+     * @since 1.8 
      */
     public void refreshAllIndices(String indexerName) {
         if (indexerName != null) {
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/ConstrainedBinaryIndexer.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/ConstrainedBinaryIndexer.java
index 09446d2..4e8fc0c 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/ConstrainedBinaryIndexer.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/ConstrainedBinaryIndexer.java
@@ -32,7 +32,7 @@
  * An binary indexer with declared constraints on the binary.
  * The subclasses of this indexer are registered by {@link ConstrainedBinaryIndexer.Registration}.
  * @author Tomas Zezula
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 1.48
  */
 public abstract class ConstrainedBinaryIndexer {
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/CustomIndexerFactory.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/CustomIndexerFactory.java
index f93b6a8..532f55c 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/CustomIndexerFactory.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/CustomIndexerFactory.java
@@ -34,7 +34,7 @@
 public abstract class CustomIndexerFactory extends SourceIndexerFactory {
     
     /**
-     * Creates  new {@link Indexer}.
+     * Creates  new {@link CustomIndexer}.
      * @return an indexer
      */
     public abstract CustomIndexer createIndexer ();
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/EmbeddingIndexerFactory.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/EmbeddingIndexerFactory.java
index a6460d0..97166d1 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/EmbeddingIndexerFactory.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/EmbeddingIndexerFactory.java
@@ -35,8 +35,8 @@
 public abstract class EmbeddingIndexerFactory extends SourceIndexerFactory {
    
     /**
-     * Creates  new {@link Indexer}.
-     * @param indexing for which the indexer should be created
+     * Creates  new {@link EmbeddingIndexer}.
+     * @param indexable for which the indexer should be created
      * @param snapshot for which the indexer should be created
      * @return an indexer
      */
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/IndexabilityQueryImplementation.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/IndexabilityQueryImplementation.java
index 2ac7058..6e4c91f 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/IndexabilityQueryImplementation.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/IndexabilityQueryImplementation.java
@@ -34,7 +34,7 @@
  * {@link org.openide.filesystems} with respect to threading semantics.
  * </p>
  *
- * @see org.netbeans.api.queries.IndexabilityQuery
+ * @see org.netbeans.modules.parsing.impl.indexing.IndexabilityQuery
  * @since org.netbeans.modules.parsing.indexing 9.24.0
  */
 public interface IndexabilityQueryImplementation {
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/PathRecognizer.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/PathRecognizer.java
index 137fce2..c8d3af1 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/PathRecognizer.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/PathRecognizer.java
@@ -30,21 +30,21 @@
 
     /**
      * Returns names under which the source paths are registered in
-     * the {@link GlobalPathRegistry}
+     * the <a href="@org-netbeans-api-java-classpath@/org/netbeans/api/java/classpath/GlobalPathRegistry.html">GlobalPathRegistry</a>.
      * @return set of source path names
      */
     public abstract Set<String> getSourcePathIds ();
 
     /**
      * Returns names under which the library paths are registered in
-     * the {@link GlobalPathRegistry}.
+     * the <a href="@org-netbeans-api-java-classpath@/org/netbeans/api/java/classpath/GlobalPathRegistry.html">GlobalPathRegistry</a>.
      * @return set of library path names
      */
     public abstract Set<String> getLibraryPathIds ();
 
     /**
      * Returns names under which the binary library paths are registered in
-     * the {@link GlobalPathRegistry}.
+     * the <a href="@org-netbeans-api-java-classpath@/org/netbeans/api/java/classpath/GlobalPathRegistry.html">GlobalPathRegistry</a>.
      * @return set of binary library path names
      */
     public abstract Set<String> getBinaryLibraryPathIds ();
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/SourceIndexerFactory.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/SourceIndexerFactory.java
index ea1f7bf..7f7052d 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/SourceIndexerFactory.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/SourceIndexerFactory.java
@@ -75,7 +75,7 @@
     /**
      * Called by indexing infrastructure to allow indexer to clean indexes for deleted files.
      * @param deleted the collection of deleted {@link Indexable}s
-     * @param contents an indexing context
+     * @param context an indexing context
      * <div class="nonnormative">
      *  <p>If the {@link IndexingSupport} is used to implement the {@link SourceIndexerFactory}
      * the implementation of this method should delegate to {@link IndexingSupport#isValid()}</p>
diff --git a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/support/IndexingSupport.java b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/support/IndexingSupport.java
index f98db09..b39b915 100644
--- a/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/support/IndexingSupport.java
+++ b/ide/parsing.indexing/src/org/netbeans/modules/parsing/spi/indexing/support/IndexingSupport.java
@@ -101,7 +101,7 @@
 
     /**
      * Creates a new {@link IndexDocument}. This method does exactly the same as
-     * {@link #createDocument(org.netbeans.modules.parsing.spi.indexing.Indexable), but you can
+     * {@link #createDocument(org.netbeans.modules.parsing.spi.indexing.Indexable)}, but you can
      * use <code>FileObject</code>s directly. The <code>FileObject</code> passed in
      * as a parameter has to be in the folders hierarchy under the root, which
      * this <code>IndexingSupport</code> instance was created for.
diff --git a/ide/project.ant.ui/src/org/netbeans/api/project/ant/FileChooser.java b/ide/project.ant.ui/src/org/netbeans/api/project/ant/FileChooser.java
index e9794ca..42f1715 100644
--- a/ide/project.ant.ui/src/org/netbeans/api/project/ant/FileChooser.java
+++ b/ide/project.ant.ui/src/org/netbeans/api/project/ant/FileChooser.java
@@ -143,7 +143,7 @@
     
     /**
      * For "Use Variable Path" option this method returns list of paths which 
-     * start with a variable from {@link PropertyUtils.getGlobalProperties()}. eg.
+     * start with a variable from {@link org.netbeans.spi.project.support.ant.PropertyUtils#getGlobalProperties()}. eg.
      * "${var.MAVEN}/path/file.jar". For all other options selected this method 
      * returns null.
      * 
diff --git a/ide/project.ant.ui/src/org/netbeans/spi/project/support/ant/ui/StoreGroup.java b/ide/project.ant.ui/src/org/netbeans/spi/project/support/ant/ui/StoreGroup.java
index 770d482..b597122 100644
--- a/ide/project.ant.ui/src/org/netbeans/spi/project/support/ant/ui/StoreGroup.java
+++ b/ide/project.ant.ui/src/org/netbeans/spi/project/support/ant/ui/StoreGroup.java
@@ -54,7 +54,7 @@
  *       <ol>
  *          <li>Get the EditableProperties you want to store the model in e.g. private or project 
  *              properties</li>
- *          <li>Call the store method on given <CODE>SourceGroup<CODE> with the {@link EditableProperties} as parameter</li>
+ *          <li>Call the store method on given <CODE>SourceGroup</CODE> with the {@link EditableProperties} as parameter</li>
  *          <li>Manually store models which need some special handling.</li>
  *       </ol>
  *
diff --git a/ide/project.ant/src/org/netbeans/api/project/ant/AntArtifact.java b/ide/project.ant/src/org/netbeans/api/project/ant/AntArtifact.java
index 808e06e..e4232b3 100644
--- a/ide/project.ant/src/org/netbeans/api/project/ant/AntArtifact.java
+++ b/ide/project.ant/src/org/netbeans/api/project/ant/AntArtifact.java
@@ -45,7 +45,7 @@
  * For example, if a build script is known to generate a JAR of a certain name
  * as a result of running a certain target, this object will name that JAR
  * and point to the script and target responsible for creating it. You can use
- * this information to add an <samp>&lt;ant&gt;</samp> task to another project
+ * this information to add an <em>&lt;ant&gt;</em> task to another project
  * which will generate that JAR as a dependency before using it.
  * @see org.netbeans.spi.project.support.ant.SimpleAntArtifact
  * @author Jesse Glick
@@ -91,21 +91,21 @@
     
     /**
      * Get a location for the Ant script that is able to produce this artifact.
-     * The name <samp>build.xml</samp> is conventional.
+     * The name <em>build.xml</em> is conventional.
      * @return the location of an Ant project file (might not currently exist)
      */
     public abstract File getScriptLocation();
     
     /**
      * Get the name of the Ant target that is able to produce this artifact.
-     * E.g. <samp>jar</samp> would be conventional for JAR artifacts.
+     * E.g. <em>jar</em> would be conventional for JAR artifacts.
      * @return an Ant target name
      */
     public abstract String getTargetName();
     
     /**
      * Get the name of an Ant target that will delete this artifact.
-     * Typically this should be <samp>clean</samp>.
+     * Typically this should be <em>clean</em>.
      * The target may delete other build products as well.
      * @return an Ant target name
      */
@@ -126,7 +126,7 @@
     private static final Set<String> warnedClasses = Collections.synchronizedSet(new HashSet<String>());
     /**
      * Get the locations of the build artifacts relative to the Ant script.
-     * For example, <samp>dist/mylib.jar</samp>. The method is not defined 
+     * For example, <em>dist/mylib.jar</em>. The method is not defined 
      * as abstract only for backward compatibility reasons. <strong>It must be
      * overridden.</strong> The order is important and should stay the same
      * unless the artifact was changed.
diff --git a/ide/project.ant/src/org/netbeans/spi/project/ant/AntBuildExtenderImplementation.java b/ide/project.ant/src/org/netbeans/spi/project/ant/AntBuildExtenderImplementation.java
index 6afe30b..3150476 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/ant/AntBuildExtenderImplementation.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/ant/AntBuildExtenderImplementation.java
@@ -27,9 +27,9 @@
  * A typical setup in the project type includes:
  * <ul>
  * <li>Provide an instance of {@link org.netbeans.api.project.ant.AntBuildExtender} in project's lookup for use by 3rd
- * party modules.</<li>
+ * party modules.</li>
  * <li>Use the new {@link org.netbeans.spi.project.support.ant.GeneratedFilesHelper#GeneratedFilesHelper(AntProjectHelper,AntBuildExtender)} constructor to
- *  create the helper for generating build related files.</<li>
+ *  create the helper for generating build related files.</li>
  * </ul>
  * @author mkleint
  * @since org.netbeans.modules.project.ant 1.16
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectRegistration.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectRegistration.java
index eaade8e..784e599 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectRegistration.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectRegistration.java
@@ -58,7 +58,7 @@
      * the project's specific configuration data in <code>nbproject/project.xml</code>
      * (inside <code>&lt;configuration&gt;</code>).
      * 
-     * @return a simple name; <samp>data</samp> is recommended but not required
+     * @return a simple name; <em>data</em> is recommended but not required
      */
     String sharedName() default "data";
 
@@ -67,8 +67,8 @@
      * the project's specific configuration data in <code>nbproject/project.xml</code>
      * (inside <code>&lt;configuration&gt;</code>).
      * 
-     * @return an XML namespace, e.g. <samp>http://www.netbeans.org/ns/j2se-project</samp>
-     *         or <samp>http://www.netbeans.org/ns/j2se-project-private</samp>
+     * @return an XML namespace, e.g. <em>http://www.netbeans.org/ns/j2se-project</em>
+     *         or <em>http://www.netbeans.org/ns/j2se-project-private</em>
      */
     String sharedNamespace();
 
@@ -77,7 +77,7 @@
      * the project's specific configuration data in <code>nbproject/private/private.xml</code>
      * (inside <code>&lt;project-private&gt;</code>).
      * 
-     * @return a simple name; <samp>data</samp> is recommended but not required
+     * @return a simple name; <em>data</em> is recommended but not required
      */
     String privateName() default "data";
 
@@ -86,8 +86,8 @@
      * the project's specific configuration data in <code>nbproject/private/private.xml</code>
      * (inside <code>&lt;project-private&gt;</code>).
      * 
-     * @return an XML namespace, e.g. <samp>http://www.netbeans.org/ns/j2se-project</samp>
-     *         or <samp>http://www.netbeans.org/ns/j2se-project-private</samp>
+     * @return an XML namespace, e.g. <em>http://www.netbeans.org/ns/j2se-project</em>
+     *         or <em>http://www.netbeans.org/ns/j2se-project-private</em>
      */
     String privateNamespace();
 }
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectType.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectType.java
index 6e2018b..74c262a 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectType.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntBasedProjectType.java
@@ -58,7 +58,7 @@
      * It is forbidden for the result of this method to change from call to call.
      * @param shared if true, refers to <code>project.xml</code>, else refers to
      *               <code>private.xml</code>
-     * @return a simple name; <samp>data</samp> is recommended but not required
+     * @return a simple name; <em>data</em> is recommended but not required
      */
     String getPrimaryConfigurationDataElementName(boolean shared);
     
@@ -70,8 +70,8 @@
      * It is forbidden for the result of this method to change from call to call.
      * @param shared if true, refers to <code>project.xml</code>, else refers to
      *               <code>private.xml</code>
-     * @return an XML namespace, e.g. <samp>http://www.netbeans.org/ns/j2se-project</samp>
-     *         or <samp>http://www.netbeans.org/ns/j2se-project-private</samp>
+     * @return an XML namespace, e.g. <em>http://www.netbeans.org/ns/j2se-project</em>
+     *         or <em>http://www.netbeans.org/ns/j2se-project-private</em>
      */
     String getPrimaryConfigurationDataElementNamespace(boolean shared);
 
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntProjectHelper.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntProjectHelper.java
index 41a4e15..785012c 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntProjectHelper.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/AntProjectHelper.java
@@ -1052,7 +1052,7 @@
      * A file is considered out of date if there is no file represented by the
      * matching target pattern (which has the same format), or the target file is older
      * than the source file, or the source file is modified as per
-     * {@link org.openide.loaders.DataObject#isModified}.
+     * <a href="@org-openide-loaders@/org/openide/loaders/DataObject.html#isModified--" >DataObject#isModified()</a>.
      * An attempt is made to fire changes from the status object whenever the result
      * should change from one call to the next.
      * <p>
@@ -1064,12 +1064,12 @@
      * A typical set of source and target patterns would be:
      * </p>
      * <ol>
-     * <li><samp>${src.dir}/*.java</samp>
-     * <li><samp>${test.src.dir}/*.java</samp>
+     * <li><em>${src.dir}/*.java</em>
+     * <li><em>${test.src.dir}/*.java</em>
      * </ol>
      * <ol>
-     * <li><samp>${build.classes.dir}/*.class</samp>
-     * <li><samp>${test.build.classes.dir}/*.class</samp>
+     * <li><em>${build.classes.dir}/*.class</em>
+     * <li><em>${test.build.classes.dir}/*.class</em>
      * </ol>
      * </div>
      * @param eval a property evaluator to interpret the patterns with
@@ -1089,12 +1089,12 @@
      * is in a fixed location under a standard Ant-based project.
      * @param type the type of artifact, e.g. <a href="@org-netbeans-modules-java-project@/org/netbeans/api/java/project/JavaProjectConstants.html#ARTIFACT_TYPE_JAR"><code>JavaProjectConstants.ARTIFACT_TYPE_JAR</code></a>
      * @param locationProperty an Ant property name giving the project-relative
-     *                         location of the artifact, e.g. <samp>dist.jar</samp>
+     *                         location of the artifact, e.g. <em>dist.jar</em>
      * @param eval a way to evaluate the location property (e.g. {@link #getStandardPropertyEvaluator})
      * @param targetName the name of an Ant target which will build the artifact,
-     *                   e.g. <samp>jar</samp>
+     *                   e.g. <em>jar</em>
      * @param cleanTargetName the name of an Ant target which will delete the artifact
-     *                        (and maybe other build products), e.g. <samp>clean</samp>
+     *                        (and maybe other build products), e.g. <em>clean</em>
      * @return an artifact
      */
     public AntArtifact createSimpleAntArtifact(String type, String locationProperty, PropertyEvaluator eval, String targetName, String cleanTargetName) {
@@ -1106,14 +1106,14 @@
      * is in a fixed location under a standard Ant-based project.
      * @param type the type of artifact, e.g. <a href="@org-netbeans-modules-java-project@/org/netbeans/api/java/project/JavaProjectConstants.html#ARTIFACT_TYPE_JAR"><code>JavaProjectConstants.ARTIFACT_TYPE_JAR</code></a>
      * @param locationProperty an Ant property name giving the project-relative
-     *                         location of the artifact, e.g. <samp>dist.jar</samp>
+     *                         location of the artifact, e.g. <em>dist.jar</em>
      * @param eval a way to evaluate the location property (e.g. {@link #getStandardPropertyEvaluator})
      * @param targetName the name of an Ant target which will build the artifact,
-     *                   e.g. <samp>jar</samp>
+     *                   e.g. <em>jar</em>
      * @param cleanTargetName the name of an Ant target which will delete the artifact
-     *                        (and maybe other build products), e.g. <samp>clean</samp>
+     *                        (and maybe other build products), e.g. <em>clean</em>
      * @param buildScriptProperty an Ant property name giving the project-relative
-     *      location and name of the build.xml or null if default one (<samp>build.xml</samp>) 
+     *      location and name of the build.xml or null if default one (<em>build.xml</em>) 
      *      should be used; default value is also used if property is given but its value is null
      * @return an artifact
      * @since org.netbeans.modules.project.ant/1 1.25
@@ -1172,10 +1172,10 @@
      * A quick rule of thumb is that the include list should contain any
      * source directories which <em>might</em> reside outside the project directory;
      * and the exclude list should contain any directories which you would want
-     * to add to a <samp>.cvsignore</samp> file if using CVS (for example).
+     * to add to a <em>.cvsignore</em> file if using CVS (for example).
      * </p>
      * <p>
-     * Note that in this case <samp>${src.dir}</samp> and <samp>${test.src.dir}</samp>
+     * Note that in this case <em>${src.dir}</em> and <em>${test.src.dir}</em>
      * may be relative paths inside the project directory; relative paths pointing
      * outside of the project directory; or absolute paths (generally outside of the
      * project directory). If they refer to locations inside the project directory,
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/EditableProperties.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/EditableProperties.java
index 1ea3742..ae21943 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/EditableProperties.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/EditableProperties.java
@@ -29,7 +29,7 @@
 /**
  * Similar to {@link java.util.Properties} but designed to retain additional
  * information needed for safe hand-editing.
- * Useful for various <samp>*.properties</samp> in a project:
+ * Useful for various <em>*.properties</em> in a project:
  * <ol>
  * <li>Can associate comments with particular entries.
  * <li>Order of entries preserved during modifications whenever possible.
@@ -142,7 +142,7 @@
      * Same behavior as {@link #setProperty(String,String)} with the difference that each item
      * will be stored on its own line of text. {@link #getProperty} will simply concatenate
      * all the items into one string, so generally separators
-     * (such as <samp>:</samp> for path-like properties) must be included in
+     * (such as <em>:</em> for path-like properties) must be included in
      * the items (for example, at the end of all but the last item).
      * @param key a property name; cannot be null nor empty
      * @param value the desired value; cannot be null; can be empty array
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/PathMatcher.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/PathMatcher.java
index f257582..d102584 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/PathMatcher.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/PathMatcher.java
@@ -43,41 +43,41 @@
  * The format is based on Ant patterns. Some details:
  * </p>
  * <ul>
- * <li>A file path to be matched must be a <samp>/</samp>-separated
+ * <li>A file path to be matched must be a <em>/</em>-separated
  * relative path from an unspecified base directory. A path representing
- * a folder must end in <samp>/</samp>, except for the path representing
+ * a folder must end in <em>/</em>, except for the path representing
  * the root folder, which is the empty string. Thus, the full path to a file
  * is always the simple concatenation of the path to its containing folder,
  * and the file's basename.
  * <li>An include or exclude list, if not null, is a list of nonempty patterns separated
  * by spaces and/or commas. It may be an empty list; this is equivalent to null in the
  * case of excludes, but in the case of includes means that nothing matches.
- * <li>A pattern may use either <samp>/</samp> or <samp>\</samp> as a path separator
+ * <li>A pattern may use either <em>/</em> or <em>\</em> as a path separator
  * interchangeably.
  * <li>Most characters in a pattern match literally, and match a complete file path.
- * A folder path ends in <samp>/</samp>, so the pattern <samp>foo</samp> will <em>not</em>
- * match a folder named <samp>foo</samp>.
- * <li><samp>*</samp> in a pattern matches zero or more characters within a path component
- * (i.e. not including <samp>/</samp>).
- * <li><samp>**</samp> matches zero or more complete path components. It must be preceded
+ * A folder path ends in <em>/</em>, so the pattern <em>foo</em> will <em>not</em>
+ * match a folder named <em>foo</em>.
+ * <li><em>*</em> in a pattern matches zero or more characters within a path component
+ * (i.e. not including <em>/</em>).
+ * <li><em>**</em> matches zero or more complete path components. It must be preceded
  * by a slash (or be at the beginning of the pattern) and be followed by a slash (or be at
  * the end of the pattern).
- * <li><samp>foo/</samp> is treated the same as <samp>foo/**</samp> and matches the whole
- * tree rooted at the folder <samp>foo</samp>.
- * <li><samp>/**<!---->/</samp> can match just a single <samp>/</samp>. <samp>**<!---->/</samp>
- * and <samp>/**</samp> can match the empty string at path boundaries.
+ * <li><em>foo/</em> is treated the same as <em>foo/**</em> and matches the whole
+ * tree rooted at the folder <em>foo</em>.
+ * <li><em>/**<!---->/</em> can match just a single <em>/</em>. <em>**<!---->/</em>
+ * and <em>/**</em> can match the empty string at path boundaries.
  * </ul>
  * <p>
  * Some example patterns:
  * </p>
  * <dl>
- * <dt><samp>foo/bar/</samp>
- * <dd>The folder <samp>foo/bar</samp> and anything inside it.
- * <dt><samp>foo/bar/baz</samp>
- * <dd>The file <samp>foo/bar/baz</samp>.
- * <dt><samp>**<!---->/foo/</samp>
- * <dd>Any folder named <samp>foo</samp> and anything inside it.
- * <dt><samp>**<!---->/*.java</samp>
+ * <dt><em>foo/bar/</em>
+ * <dd>The folder <em>foo/bar</em> and anything inside it.
+ * <dt><em>foo/bar/baz</em>
+ * <dd>The file <em>foo/bar/baz</em>.
+ * <dt><em>**<!---->/foo/</em>
+ * <dd>Any folder named <em>foo</em> and anything inside it.
+ * <dt><em>**<!---->/*.java</em>
  * <dd>Any Java source file (even in the default package).
  * </dl>
  * @since org.netbeans.modules.project.ant/1 1.15
@@ -184,8 +184,8 @@
      * Find folders which match although their parent folders do not; or folders
      * which do not match but which contain files which do.
      * <ul>
-     * <li>Wildcard-free folder include paths, such as <samp>foo/bar/</samp> (or the
-     * equivalent <samp>foo/bar/**</samp>), are returned directly if they are not excluded.
+     * <li>Wildcard-free folder include paths, such as <em>foo/bar/</em> (or the
+     * equivalent <em>foo/bar/**</em>), are returned directly if they are not excluded.
      * <li>Wildcard-using paths trigger a scan of the provided root directory.
      * Any actual files or folders found beneath that root which {@link #matches match}
      * are noted, and their minimal paths are returned.
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyEvaluator.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyEvaluator.java
index ee241cc..b5bc8a9 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyEvaluator.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyEvaluator.java
@@ -46,9 +46,9 @@
     
     /**
      * Evaluate a block of text possibly containing property references.
-     * The syntax is the same as for Ant: <samp>${foo}</samp> means the value
-     * of the property <samp>foo</samp>; <samp>$$</samp> is an escape for
-     * <samp>$</samp>; references to undefined properties are left unsubstituted.
+     * The syntax is the same as for Ant: <em>${foo}</em> means the value
+     * of the property <em>foo</em>; <em>$$</em> is an escape for
+     * <em>$</em>; references to undefined properties are left unsubstituted.
      * @param text some text possibly containing one or more property references
      * @return its value, or null if some problem (such a circular definition) made
      *         it impossible to retrieve the values of some properties
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyUtils.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyUtils.java
index 20842e8..608f30e 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyUtils.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/PropertyUtils.java
@@ -389,7 +389,7 @@
      * @param basedir a directory to resolve relative to (need not exist on disk)
      * @param file a file or directory to find a relative path for
      * @return a relativized path (slash-separated), or null if it is not possible (e.g. different DOS drives);
-     *         just <samp>.</samp> in case the paths are the same
+     *         just <em>.</em> in case the paths are the same
      * @throws IllegalArgumentException if the basedir is known to be a file and not a directory
      */
     public static @CheckForNull String relativizeFile(File basedir, File file) {
@@ -458,7 +458,7 @@
     /**
      * Split an Ant-style path specification into components.
      * Tokenizes on <code>:</code> and <code>;</code>, paying
-     * attention to DOS-style components such as <samp>C:\FOO</samp>.
+     * attention to DOS-style components such as <em>C:\FOO</em>.
      * Also removes any empty components.
      * @param path an Ant-style path (elements arbitrary) using DOS or Unix separators
      * @return a tokenization of that path into components
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/ReferenceHelper.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/ReferenceHelper.java
index 256afc2..af682e8 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/ReferenceHelper.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/ReferenceHelper.java
@@ -397,15 +397,15 @@
      * Adds a project property if necessary to refer to its location of the foreign
      * project - a shared property if the foreign project
      * is {@link CollocationQuery collocated} with this one, else a private property.
-     * This property is named <samp>project.<i>foreignProjectName</i></samp>.
-     * Example: <samp>project.mylib=../mylib</samp>
+     * This property is named <em>project.<i>foreignProjectName</i></em>.
+     * Example: <em>project.mylib=../mylib</em>
      * <p>
      * Adds a project property to refer to the artifact's location.
-     * This property is named <samp>reference.<i>foreignProjectName</i>.<i>targetName</i></samp>
-     * and will use <samp>${project.<i>foreignProjectName</i>}</samp> and be a shared
+     * This property is named <em>reference.<i>foreignProjectName</i>.<i>targetName</i></em>
+     * and will use <em>${project.<i>foreignProjectName</i>}</em> and be a shared
      * property - unless the artifact location is an absolute URI, in which case the property
      * will also be private.
-     * Example: <samp>reference.mylib.jar=${project.mylib}/dist/mylib.jar</samp>
+     * Example: <em>reference.mylib.jar=${project.mylib}/dist/mylib.jar</em>
      * <p>
      * Also records the artifact type, (relative) script path, and build and
      * clean target names.
@@ -941,7 +941,7 @@
      * the behavior is identical to {@link #createForeignFileReference(AntArtifact)}.
      * <p>
      * Acquires write access.
-     * @param path a file path to refer to (need not currently exist)
+     * @param filepath a file path to refer to (need not currently exist)
      * @param expectedArtifactType the required {@link AntArtifact#getType}
      * @return a string which can refer to that file somehow
      *
diff --git a/ide/project.ant/src/org/netbeans/spi/project/support/ant/SourcesHelper.java b/ide/project.ant/src/org/netbeans/spi/project/support/ant/SourcesHelper.java
index 00a2abd..b3bad8c 100644
--- a/ide/project.ant/src/org/netbeans/spi/project/support/ant/SourcesHelper.java
+++ b/ide/project.ant/src/org/netbeans/spi/project/support/ant/SourcesHelper.java
@@ -366,7 +366,6 @@
      * .add()  // adding as principal root, continuing configuration
      * .type("java").add(); // adding as typed root
      * </pre>
-     * </p>
      * @since org.netbeans.modules.project.ant/1 1.33
      */
     public final class SourceRootConfig {
@@ -399,7 +398,7 @@
          * Value is evaluated and then treated as a comma- or space-separated pattern list,
          * as detailed in the Javadoc for {@link PathMatcher}.
          * (As a special convenience, a value consisting solely of an Ant property reference
-         * which cannot be evaluated, e.g. <samp>${undefined}</samp>, is ignored.)
+         * which cannot be evaluated, e.g. <em>${undefined}</em>, is ignored.)
          * {@link SourceGroup#contains} will then reflect the includes and excludes for files, but note that the
          * semantics of that method requires that a folder be "contained" in case any folder or file
          * beneath it is contained, and in particular the root folder is always contained.
@@ -527,7 +526,7 @@
      * if the common location is internal.
      * </p>
      * <p>
-     * Source location need not to exist physically, when {@link #hint(String) hint} is specified
+     * Source location need not to exist physically, when {@link SourceRootConfig#hint(String) hint} is specified
      * and {@link SourceGroupModifier} created by this helper is added to project
      * lookup, source root can be created on demand.
      * </p>
@@ -540,7 +539,6 @@
      * @param location a project-relative or absolute path giving the location
      *                 of a source tree; may contain Ant property substitutions
      * @return source root configuration, that may be added to <code>SourcesHelper</code>
-     * @see SourceRootConfig#location(String) for details about location parameter
      */
     public SourceRootConfig sourceRoot(String location) {
         return new SourceRootConfig(location);
diff --git a/ide/project.libraries.ui/src/org/netbeans/api/project/libraries/LibraryChooser.java b/ide/project.libraries.ui/src/org/netbeans/api/project/libraries/LibraryChooser.java
index 0892d1f..b19e223 100644
--- a/ide/project.libraries.ui/src/org/netbeans/api/project/libraries/LibraryChooser.java
+++ b/ide/project.libraries.ui/src/org/netbeans/api/project/libraries/LibraryChooser.java
@@ -57,8 +57,8 @@
     }
 
     /**
-     * Filter for use by {@link LibraryChooser#createPanel()} or 
-     * {@link LibraryChooser#showDialog()}.
+     * Filter for use by {@link #createPanel(LibraryManager, org.netbeans.api.project.libraries.LibraryChooser.Filter)} or 
+     * {@link #showDialog(LibraryManager, org.netbeans.api.project.libraries.LibraryChooser.Filter, org.netbeans.api.project.libraries.LibraryChooser.LibraryImportHandler) }.
      */
     public interface Filter {
 
diff --git a/ide/project.libraries/src/org/netbeans/spi/project/libraries/ArealLibraryProvider.java b/ide/project.libraries/src/org/netbeans/spi/project/libraries/ArealLibraryProvider.java
index 8e4423a..537812e 100644
--- a/ide/project.libraries/src/org/netbeans/spi/project/libraries/ArealLibraryProvider.java
+++ b/ide/project.libraries/src/org/netbeans/spi/project/libraries/ArealLibraryProvider.java
@@ -29,8 +29,8 @@
 /**
  * Library provider which can define libraries in particular areas.
  * There is no explicit method to save a library; setters on {@link LibraryImplementation} should do this.
- * @param A the type of storage area used by this provider
- * @param L the type of library created by this provider
+ * @param <A> the type of storage area used by this provider
+ * @param <L> the type of library created by this provider
  * @since org.netbeans.modules.project.libraries/1 1.15
  */
 public interface ArealLibraryProvider<A extends LibraryStorageArea, L extends LibraryImplementation2> {
diff --git a/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryFactory.java b/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryFactory.java
index 998c334..6ce8365 100644
--- a/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryFactory.java
+++ b/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryFactory.java
@@ -39,7 +39,7 @@
     /**
      * Creates Library for LibraryImplementation
      * @param libraryImplementation the library SPI object
-     * @return Library API instance, for which the {@link Library#getManager} will be {@link LibraryManager#getDefault}
+     * @return Library API instance, for which the {@link Library#getManager()} will be {@link org.netbeans.api.project.libraries.LibraryManager#getDefault()}
      */
     public static Library createLibrary (LibraryImplementation libraryImplementation) {
         assert libraryImplementation != null;
diff --git a/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryProvider.java b/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryProvider.java
index 2077ab1..43dd96b 100644
--- a/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryProvider.java
+++ b/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryProvider.java
@@ -26,7 +26,7 @@
  * Library storage is a source of libraries used by LibraryManager.
  * LibraryManager allows existence of multiple LibraryProviders registered in
  * the default lookup.
- * @param L the type of implementation which will be produced by this provider
+ * @param <L> the type of implementation which will be produced by this provider
  */
 public interface LibraryProvider<L extends LibraryImplementation> {
 
diff --git a/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryTypeProvider.java b/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryTypeProvider.java
index b473e6e..bde9450 100644
--- a/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryTypeProvider.java
+++ b/ide/project.libraries/src/org/netbeans/spi/project/libraries/LibraryTypeProvider.java
@@ -53,8 +53,8 @@
 
     /**
      * Creates a new empty library implementation.
-     * Generally will use {@link LibrariesSupport#createLibraryImplementation}.
-     * This method is <strong>not</strong> used by {@link LibraryManager#createLibrary} except in the case of {@link LibraryManager#getDefault}.
+     * Generally will use {@link org.netbeans.spi.project.libraries.support.LibrariesSupport#createLibraryImplementation}.
+     * This method is <strong>not</strong> used by {@link org.netbeans.api.project.libraries.LibraryManager#createLibrary} except in the case of {@link org.netbeans.api.project.libraries.LibraryManager#getDefault}.
      * @return the created library model, never null
      */
     public LibraryImplementation createLibrary ();
@@ -65,7 +65,7 @@
      * If the LibraryTypeProvider implementation requires clean of
      * additional settings (e.g. remove properties in the build.properties)
      * it should be done in this method.
-     * This method is <strong>not</strong> used by {@link LibraryManager#createLibrary} except in the case of {@link LibraryManager#getDefault}.
+     * This method is <strong>not</strong> used by {@link org.netbeans.api.project.libraries.LibraryManager#createLibrary} except in the case of {@link org.netbeans.api.project.libraries.LibraryManager#getDefault}.
      * @param libraryImpl
      */
     public void libraryDeleted (LibraryImplementation libraryImpl);
@@ -77,7 +77,7 @@
      * If the LibraryTypeProvider implementation requires initialization of
      * additional settings (e.g. adding properties into the build.properties)
      * it should be done in this method.
-     * This method is <strong>not</strong> used by {@link LibraryManager#createLibrary} except in the case of {@link LibraryManager#getDefault}.
+     * This method is <strong>not</strong> used by {@link org.netbeans.api.project.libraries.LibraryManager#createLibrary} except in the case of {@link org.netbeans.api.project.libraries.LibraryManager#getDefault}.
      */
     public void libraryCreated (LibraryImplementation libraryImpl);
 
diff --git a/ide/project.libraries/src/org/netbeans/spi/project/libraries/WritableLibraryProvider.java b/ide/project.libraries/src/org/netbeans/spi/project/libraries/WritableLibraryProvider.java
index 0f9a188..7f89606 100644
--- a/ide/project.libraries/src/org/netbeans/spi/project/libraries/WritableLibraryProvider.java
+++ b/ide/project.libraries/src/org/netbeans/spi/project/libraries/WritableLibraryProvider.java
@@ -24,7 +24,7 @@
 
 /**
  * LibraryProvider supporting modifications.
- * @param L the {@link LibraryImplementation} type
+ * @param <L> the {@link LibraryImplementation} type
  * @author Tomas Zezula
  * @since 1.48
  */
diff --git a/ide/project.libraries/src/org/netbeans/spi/project/libraries/support/LibrariesSupport.java b/ide/project.libraries/src/org/netbeans/spi/project/libraries/support/LibrariesSupport.java
index b393d2b..6ad912e 100644
--- a/ide/project.libraries/src/org/netbeans/spi/project/libraries/support/LibrariesSupport.java
+++ b/ide/project.libraries/src/org/netbeans/spi/project/libraries/support/LibrariesSupport.java
@@ -68,8 +68,8 @@
 
     /**
      * Policy for handling content items which cannot be converted into the desired format.
-     * @see #convertURIsToURLs(java.util.List)
-     * @see #convertURLsToURIs(java.util.List)
+     * @see #convertURIsToURLs(java.util.List,ConversionMode)
+     * @see #convertURLsToURIs(java.util.List,ConversionMode)
      * @since 1.48
      */
     public enum ConversionMode {
@@ -82,7 +82,7 @@
          */
         WARN,
         /**
-         * {@link #toString(ClassPath.PathConversionMode)} will fail with an {@link IllegalArgumentException}.
+         * <code>toString(ClassPath.PathConversionMode)</code> will fail with an {@link IllegalArgumentException}.
          * Useful for unit tests.
          */
         FAIL
diff --git a/ide/projectapi/src/org/netbeans/api/project/FileOwnerQuery.java b/ide/projectapi/src/org/netbeans/api/project/FileOwnerQuery.java
index be21e0f..629d081 100644
--- a/ide/projectapi/src/org/netbeans/api/project/FileOwnerQuery.java
+++ b/ide/projectapi/src/org/netbeans/api/project/FileOwnerQuery.java
@@ -44,7 +44,7 @@
  * other implementations can be registered to lookup as well.
  * <p>
  * Warning: This class and it's methods may not be used within DataObject recognition in DataLoaders.
- * eg. in {@link org.openide.loaders.MultiFileLoader#findPrimaryFile}
+ * eg. in <a href="@org-openide-loaders@/org/openide/loaders/MultiFileLoader.html#findPrimaryFile-org-openide.fileystesm.FileObject-">MultiFileLoader</a>
  *  
  * @author Jesse Glick
  */
diff --git a/ide/projectapi/src/org/netbeans/api/project/ProjectActionContext.java b/ide/projectapi/src/org/netbeans/api/project/ProjectActionContext.java
index ba3fef8..2d142e9 100644
--- a/ide/projectapi/src/org/netbeans/api/project/ProjectActionContext.java
+++ b/ide/projectapi/src/org/netbeans/api/project/ProjectActionContext.java
@@ -220,7 +220,7 @@
 
         /**
          * Binds to a specific {@link ProjectConfiguration}, which must resolve to an instance of
-         * {@link MavenConfiguration}.
+         * @see <a href="@org-netbeans-modules-maven@/org/netbeans/modules/maven/api/MavenConfiguration.html">MavenConfiguration</a>.
          * @param configuration
          * @return builder instance
          */
diff --git a/ide/projectapi/src/org/netbeans/api/project/SourceGroupModifier.java b/ide/projectapi/src/org/netbeans/api/project/SourceGroupModifier.java
index 0ef2c76..50d9763 100644
--- a/ide/projectapi/src/org/netbeans/api/project/SourceGroupModifier.java
+++ b/ide/projectapi/src/org/netbeans/api/project/SourceGroupModifier.java
@@ -59,13 +59,13 @@
      * Creates a source group associated to an existing one. In a project with multiple locations for sources or tests some of those locations
      * can be more appropriate (or completely unrelated) to already existing specific sources. This variant of {@link #createSourceGroup(org.netbeans.api.project.Project, java.lang.String, java.lang.String)}
      * allows to select appropriate locations, if the newly created {@code SourceGroup} should work in association with some existing one.
-     * <p/>
+     * <p>
      * The source group will be created on location most similar to the provided {@code original} group. If {@code projectParts} are specified, the most matching
      * location will be selected.
-     * <p/>
+     * <p>
      * This feature is prototypically used in J2SE modular projects, where multiple locations exists for tests and sources, yet they are related by their owning module. Other
      * project types may also partition project sources into logical groups, similar to modules.
-     * <p/>
+     * <p>
      * Some (java) examples:
      * <ul>
      * <li>to create a source folder in project module, use <code>relativeTo(modulesGroup, "moduleName").createSourceGroup(..)</code>
diff --git a/ide/projectapi/src/org/netbeans/spi/project/ActionProvider.java b/ide/projectapi/src/org/netbeans/spi/project/ActionProvider.java
index 8c143f8..65098b8 100644
--- a/ide/projectapi/src/org/netbeans/spi/project/ActionProvider.java
+++ b/ide/projectapi/src/org/netbeans/spi/project/ActionProvider.java
@@ -35,7 +35,7 @@
  * requested a specific configuration, and use it to process the requested action, if found.
  * @see org.netbeans.api.project.Project#getLookup
  * @see <a href="@org-apache-tools-ant-module@/org/apache/tools/ant/module/api/support/ActionUtils.html"><code>ActionUtils</code></a>
- * @see <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/ProjectSensitiveActions.html#projectCommandAction(java.lang.String,%20java.lang.String,%20javax.swing.Icon)"><code>ProjectSensitiveActions.projectCommandAction(...)</code></a>
+ * @see <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/ProjectSensitiveActions.html#projectCommandAction-java.lang.String-java.lang.String-javax.swing.Icon-"><code>ProjectSensitiveActions.projectCommandAction(...)</code></a>
  * @see SingleMethod
  * @author Jesse Glick
  */
@@ -175,7 +175,7 @@
      * to get e.g. the selected source file to build by itself, etc.
      * @param command a predefined command name (must be among {@link #getSupportedActions})
      * @param context any action context, e.g. for a node selection
-     *                (as in {@link ContextAwareAction})
+     *                (as in {@link org.openide.util.ContextAwareAction})
      * @throws IllegalArgumentException if the requested command is not supported
      * @see ActionProgress
      */
@@ -188,7 +188,7 @@
      * to get e.g. the selected source file to build by itself, etc.
      * @param command a predefined command name (must be among {@link #getSupportedActions})
      * @param context any action context, e.g. for a node selection
-     *                (as in {@link ContextAwareAction})
+     *                (as in {@link org.openide.util.ContextAwareAction})
      * @throws IllegalArgumentException if the requested command is not supported
      */
     boolean isActionEnabled(String command, Lookup context) throws IllegalArgumentException;
diff --git a/ide/projectapi/src/org/netbeans/spi/project/LookupMerger.java b/ide/projectapi/src/org/netbeans/spi/project/LookupMerger.java
index 05efc2d..ff22b5e 100644
--- a/ide/projectapi/src/org/netbeans/spi/project/LookupMerger.java
+++ b/ide/projectapi/src/org/netbeans/spi/project/LookupMerger.java
@@ -36,7 +36,7 @@
  * The 3rd party {@link org.netbeans.spi.project.LookupProvider} implementors provide instances of mergeableClass.
  * {@link org.netbeans.spi.project.support.LookupProviderSupport#createCompositeLookup} handles the hiding of individual mergeable instances 
  * and exposing the merged instance created by the <code>LookupMerger</code>.
- * @param T the type of object being merged (see {@link org.netbeans.api.project.Project#getLookup} for examples)
+ * @param <T> the type of object being merged (see {@link org.netbeans.api.project.Project#getLookup} for examples)
  * @author mkleint
  * @since org.netbeans.modules.projectapi 1.12
  */
diff --git a/ide/projectapi/src/org/netbeans/spi/project/ProjectConfigurationProvider.java b/ide/projectapi/src/org/netbeans/spi/project/ProjectConfigurationProvider.java
index 816d8c8..b820a58 100644
--- a/ide/projectapi/src/org/netbeans/spi/project/ProjectConfigurationProvider.java
+++ b/ide/projectapi/src/org/netbeans/spi/project/ProjectConfigurationProvider.java
@@ -28,7 +28,7 @@
  * Provider of configurations for a project.
  * Should be registered in a project's {@link org.netbeans.api.project.Project#getLookup lookup}.
  * Besides the implementor, only the project UI infrastructure is expected to use this class.
- * @param C the type of configuration created by this provider
+ * @param <C> the type of configuration created by this provider
  *
  * @author Adam Sotona, Jesse Glick
  * @since org.netbeans.modules.projectapi/1 1.11
diff --git a/ide/projectapi/src/org/netbeans/spi/project/SourceGroupRelativeModifierImplementation.java b/ide/projectapi/src/org/netbeans/spi/project/SourceGroupRelativeModifierImplementation.java
index 3cbbbca..7a3f464 100644
--- a/ide/projectapi/src/org/netbeans/spi/project/SourceGroupRelativeModifierImplementation.java
+++ b/ide/projectapi/src/org/netbeans/spi/project/SourceGroupRelativeModifierImplementation.java
@@ -24,18 +24,18 @@
  * Intermediate level for more structured projects, where the simple
  * type-based information are not sufficient to create an appropriate folder
  * structure. 
- * <p/>
+ * <p>
  * Prototypically used in J2SE Modular projects, where tests or sources belong
  * to different modules, and it is critical to create the folder in the "correct"
  * one.
- * <p/>
+ * <p>
  * The project can be partitioned to several (hiearchical) parts. SourceGroups for
  * certain types/hints can be created in some of those parts (see {@link SourceGroupModifierImplementation#canCreateSourceGroup}.
  * For example, java modular projects contains modules, a module may contain several places where sources are expected - these
  * form the part hierarchy. When the original SourceGroup is specific enough, the hierarchy argument may be
  * missing or can be even ignored by the modifier implementation - provided that the newly created folders have the correct
  * relationship to the original source group.
- * <p/>
+ * <p>
  * Similar structure may be used in other types of projects. {@code projectParts} are abstract uninterpreted identifiers, so 
  * the implementation / project may choose any semantics suitable for the project type.
  * @author sdedic
diff --git a/ide/projectui/src/org/netbeans/modules/project/ui/api/ProjectTemplates.java b/ide/projectui/src/org/netbeans/modules/project/ui/api/ProjectTemplates.java
index e3988db..4aec298 100644
--- a/ide/projectui/src/org/netbeans/modules/project/ui/api/ProjectTemplates.java
+++ b/ide/projectui/src/org/netbeans/modules/project/ui/api/ProjectTemplates.java
@@ -29,7 +29,7 @@
 
     /**
      * {@link String}-valued action property for a project category (subfolder code name) to select.
-     * @deprecated use {@link CommonProjectActions.PRESELECT_CATEGORY} instead
+     * @deprecated use {@link CommonProjectActions#PRESELECT_CATEGORY} instead
      */
     @Deprecated
     public static final String PRESELECT_CATEGORY = CommonProjectActions.PRESELECT_CATEGORY;
diff --git a/ide/projectui/src/org/netbeans/modules/project/ui/api/UnloadedProjectInformation.java b/ide/projectui/src/org/netbeans/modules/project/ui/api/UnloadedProjectInformation.java
index 9468173..428549f 100644
--- a/ide/projectui/src/org/netbeans/modules/project/ui/api/UnloadedProjectInformation.java
+++ b/ide/projectui/src/org/netbeans/modules/project/ui/api/UnloadedProjectInformation.java
@@ -68,7 +68,7 @@
     
     /**
      * Gets URL of the project folder location
-     * Use {@link ProjectManager#findProject} to get the project
+     * Use {@link org.netbeans.api.project.ProjectManager#findProject} to get the project
      * @return url of the project folder
      */
     public URL getURL() {
diff --git a/ide/projectuiapi.base/src/org/netbeans/api/project/ui/OpenProjects.java b/ide/projectuiapi.base/src/org/netbeans/api/project/ui/OpenProjects.java
index c3403de..5acbbbb 100644
--- a/ide/projectuiapi.base/src/org/netbeans/api/project/ui/OpenProjects.java
+++ b/ide/projectuiapi.base/src/org/netbeans/api/project/ui/OpenProjects.java
@@ -46,8 +46,8 @@
  * For many cases, however, this API is not the correct approach, so use it as
  * a last resort. Consider <a href="@org-netbeans-api-java-classpath@/org/netbeans/api/java/classpath/GlobalPathRegistry.html"><code>GlobalPathRegistry</code></a>,
  * {@link org.netbeans.spi.project.ui.ProjectOpenedHook},
- * and {@link org.netbeans.spi.project.ui.support.ProjectSensitiveActions}
- * (or {@link org.netbeans.spi.project.ui.support.MainProjectSensitiveActions})
+ * and <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/ProjectSensitiveActions.html">ProjectSensitiveActions</a>
+ * (or <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/MainProjectSensitiveActions.html">MainProjectSensitiveActions</a>)
  * first. Only certain operations should actually be aware of which projects
  * are "open"; by default, all project functionality should be available whether
  * it is open or not.
@@ -108,7 +108,7 @@
      * and opened on background. As soon as and no sooner before 
      * all opened projects are opened, the
      * return value of this method changes and appropriate property change
-     * event with <q>PROPERTY_OPEN_PROJECTS</q> is delivered.
+     * event with {@link #PROPERTY_OPEN_PROJECTS} is delivered.
      * </span>
      * 
      * @return list of projects currently opened in the IDE's GUI; order not specified
@@ -122,7 +122,7 @@
      * opening of a project may take long time, and as there can be multiple
      * projects open at once, it may be necessary to be notified that the process
      * of open project list modification started or that it has
-     * finished. This method provides a <q>future</q> that can do that.
+     * finished. This method provides a <em>future</em> that can do that.
      * To find out that the list of open projects is currently modified use:
      * <pre>
      * assert openProjects().isDone() == false;
@@ -134,7 +134,7 @@
      * </pre>
      * This result is different that a plain call to {@link #getOpenProjects} as
      * that methods returns the current state, whatever it is. While the call through
-     * the <q>future</q> awaits for current modifications to finish. As such wait
+     * the <em>future</em> awaits for current modifications to finish. As such wait
      * can take a long time one can also wait for just a limited amount of time.
      * However this waiting methods should very likely only be used from dedicated threads,
      * where the wait does not block other essencial operations (read: do not
@@ -158,7 +158,7 @@
      * {@link org.openide.WizardDescriptor.InstantiatingIterator#instantiate}
      * should return the project directory.
      * This should also not be used to provide a GUI to open subprojects;
-     * {@link CommonProjectActions#openSubprojectsAction} should be used instead.
+     * <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/CommonProjectActions.html#openSubprojectsAction--">CommonProjectActions#openSubprojectsAction</a> should be used instead.
      * </p>
      * @param projects to be opened. If some of the projects are already opened
      * these projects are ignored. If the list contain duplicates, the duplicated
@@ -184,7 +184,7 @@
      * {@link org.openide.WizardDescriptor.InstantiatingIterator#instantiate}
      * should return the project directory.
      * This should also not be used to provide a GUI to open subprojects;
-     * {@link CommonProjectActions#openSubprojectsAction} should be used instead.
+     * <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/CommonProjectActions.html#openSubprojectsAction--">CommonProjectActions#openSubprojectsAction</a> should be used instead.
      * </p>
      * @param projects to be opened. If some of the projects are already opened
      * these projects are ignored. If the list contain duplicates, the duplicated
@@ -235,7 +235,7 @@
      *
      * <div class="nonnormative">
      * <p><strong>Warning:</strong> the set of usecases that require invoking this method is
-     * limited. {@link org.netbeans.spi.project.ui.support.MainProjectSensitiveActions} should
+     * limited. <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/MainProjectSensitiveActions.html">MainProjectSensitiveActions</a> should
      * be used in favour of this method if possible. In particular, this method should <em>not</em>
      * be used to let the user choose if an action should be run on the main vs. the currently selected project.</p>
      * <p>As a rule of thumb, any code outside of the project system infrastructure which behaves differently
diff --git a/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/PrivilegedTemplates.java b/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/PrivilegedTemplates.java
index eaf40ad..603d137 100644
--- a/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/PrivilegedTemplates.java
+++ b/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/PrivilegedTemplates.java
@@ -31,15 +31,15 @@
  * 
  * <p>
  * For more information about registering templates see overview of
- * {@link org.netbeans.spi.project.ui.templates.support} package.
- * @see org.netbeans.spi.project.ui.support.CommonProjectActions
+ * <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/templates/support/package-summary.html">org.netbeans.spi.project.ui.templates.support</a> package.
+ * @see <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/support/CommonProjectActions.html">CommonProjectActions</a>
  * @author Petr Hrebejk
  */
 public interface PrivilegedTemplates {
     
     /**
      * Lists privileged templates.
-     * @return full paths to privileged templates, e.g. <samp>Templates/Other/XmlFile.xml</samp>
+     * @return full paths to privileged templates, e.g. <code>Templates/Other/XmlFile.xml</code>
      * @see <code>org.netbeans.api.templates.TemplateRegistration#folder</code>
      * @see <code>org.netbeans.api.templates.TemplateRegistration#content</code>
      * @see <code>org.netbeans.api.templates.TemplateRegistration#id</code>
diff --git a/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java b/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java
index 8a19999..aa87f55 100644
--- a/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java
+++ b/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java
@@ -51,7 +51,7 @@
         path = "Projects/org-netbeans-modules-myproject/Actions")
 })
  * </pre>
- * </p>
+ * 
  * </div>
  *
  * @see org.netbeans.spi.project.ui.support.ProjectProblemsProviderSupport
@@ -279,7 +279,7 @@
         }
 
         /**
-         * {@inheritdoc}
+         * {@inheritDoc}
          */
         @Override
         public int hashCode() {
@@ -291,7 +291,7 @@
         }
 
         /**
-         * {@inheritdoc}
+         * {@inheritDoc}
          */
         @Override
         public String toString() {
diff --git a/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/support/ProjectConvertors.java b/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/support/ProjectConvertors.java
index fc315f1..f081e30 100644
--- a/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/support/ProjectConvertors.java
+++ b/ide/projectuiapi.base/src/org/netbeans/spi/project/ui/support/ProjectConvertors.java
@@ -107,7 +107,7 @@
      * The returned {@link Lookup} implements {@link Closeable}, calling {@link Closeable#close}
      * on it removes all the instances.
      * <p class="nonnormative">
-     * Typical usage would be to pass the {@link Lookup} to {@link ProjectConvertor.Result#Result}
+     * Typical usage would be to pass the {@link Lookup} to {@link ProjectConvertor.Result#Result(org.openide.util.Lookup, java.util.concurrent.Callable, java.lang.String, javax.swing.Icon) }
      * and call {@link Closeable#close} on it in the convertor's project factory before the real
      * project is created.
      * </p>
diff --git a/ide/projectuiapi/apichanges.xml b/ide/projectuiapi/apichanges.xml
index 7d9158a..4e2a65f 100644
--- a/ide/projectuiapi/apichanges.xml
+++ b/ide/projectuiapi/apichanges.xml
@@ -93,7 +93,7 @@
             <description>
                 <p>
                     <a href="@TOP@/org/netbeans/api/project/ui/ProjectProblems.html">ProjectProblems API</a> now delegates to 
-                    <a href="@TOP@/org/netbeans/spi/project/ui/ProjectProblemsImplementation .html">ProjectProblemsImplementation</a> 
+                    <a href="@TOP@/org/netbeans/spi/project/ui/ProjectProblemsImplementation.html">ProjectProblemsImplementation</a>
                     registered in default Lookup.
                 </p>
             </description>
diff --git a/ide/projectuiapi/src/org/netbeans/spi/project/ui/LogicalViewProvider.java b/ide/projectuiapi/src/org/netbeans/spi/project/ui/LogicalViewProvider.java
index e060862..8c6f19e 100644
--- a/ide/projectuiapi/src/org/netbeans/spi/project/ui/LogicalViewProvider.java
+++ b/ide/projectuiapi/src/org/netbeans/spi/project/ui/LogicalViewProvider.java
@@ -38,8 +38,7 @@
      * this call should always create a fresh node with no parent.
      * The node's lookup should contain the project object.
      * <p>
-     * The node need not bother implementing {@linkplain org.openide.filesystems.FileSystem.Status badging}
-     * for the root node; any files {@linkplain org.netbeans.api.project.Sources contained} in the project will
+     * For the root node; any files {@linkplain org.netbeans.api.project.Sources contained} in the project will
      * be considered as badging sources automatically. Other subnodes representing
      * various collections of files may still need explicit badging logic.
      * <em>As of <code>org.netbeans.modules.projectuiapi/1 1.31</code></em>
diff --git a/ide/projectuiapi/src/org/netbeans/spi/project/ui/PathFinder.java b/ide/projectuiapi/src/org/netbeans/spi/project/ui/PathFinder.java
index 27d064c..93eb1b9 100644
--- a/ide/projectuiapi/src/org/netbeans/spi/project/ui/PathFinder.java
+++ b/ide/projectuiapi/src/org/netbeans/spi/project/ui/PathFinder.java
@@ -54,7 +54,7 @@
     *     assert Collections.singleton(target).equals(new HashSet(res));
     * }
     * </pre>
-    * @param root a root node. E.g. a node from {@link #createLogicalView} or some wapper
+    * @param root a root node. E.g. a node from {@link LogicalViewProvider#createLogicalView} or some wapper
     *        (FilterNode) around the node. The provider of the functionality is
     *        responsible for finding the appropriate node in the wrapper's children.
     * @param target a target cookie, such as a {@link org.openide.loaders.DataObject}
diff --git a/ide/projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsImplementation.java b/ide/projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsImplementation.java
index 585edc8..1d497d4 100644
--- a/ide/projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsImplementation.java
+++ b/ide/projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsImplementation.java
@@ -23,7 +23,7 @@
 import org.netbeans.api.project.Project;
 
 /**
- * Interface that plugs in the actual implementation of UI for {@link ProjectProblems} API.
+ * Interface that plugs in the actual implementation of UI for {@link org.netbeans.api.project.ui.ProjectProblems} API.
  * 
  * @author Tomas Zezula, Svatopluk Dedic
  */
diff --git a/ide/projectuiapi/src/org/netbeans/spi/project/ui/support/NodeList.java b/ide/projectuiapi/src/org/netbeans/spi/project/ui/support/NodeList.java
index b395338..4faaf82 100644
--- a/ide/projectuiapi/src/org/netbeans/spi/project/ui/support/NodeList.java
+++ b/ide/projectuiapi/src/org/netbeans/spi/project/ui/support/NodeList.java
@@ -25,7 +25,7 @@
 
 /**
  * Represents a series of nodes which can be spliced into a children list.
- * @param K the type of key you would like to use to represent nodes
+ * @param <K> the type of key you would like to use to represent nodes
  * @author mkleint
  * @since org.netbeans.modules.projectuiapi/1 1.18
  * @see NodeFactory
diff --git a/ide/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java b/ide/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java
index f296ff26..0080404 100644
--- a/ide/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java
+++ b/ide/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java
@@ -281,7 +281,7 @@
          * By default, the file extension is fixed to be the same as that of the template:
          * whatever is entered for the filename is taken to be a base name only.
          * In this mode, the GUI makes it possible to use an alternate extension: it
-         * simply checks for a file name containing a period (<samp>.</samp>) and
+         * simply checks for a file name containing a period (<em>.</em>) and
          * suppresses the automatic appending of the template's extension,
          * taking the entered filename as complete.
          * @return this builder
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/CopyRefactoring.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/CopyRefactoring.java
index 13a7f8d..cbd1e2f 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/CopyRefactoring.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/CopyRefactoring.java
@@ -42,7 +42,8 @@
     /**
      * Creates a new instance of CopyRefactoring.
      * Copy Refactoring implementations currently understand the following types:
-     * <table border="1">
+     * <table>
+     *   <caption>CopyRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>{@link org.openide.filesystems.FileObject}(s)</td><td>Does file copy</td></tr>
      *   <tr><td>Java Refactoring</td><td><ul>
@@ -59,7 +60,8 @@
     /**
      * Target for copying.
      * Copy Refactoring implementations currently understand the following types:
-     * <table border="1">
+     * <table>
+     *   <caption>CopyRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>{@link java.net.URL}</td>
      *        <td>Creates directory corresponding to specified URL (if it does not exist) and copies all FileObjects into this folder.</td></tr>
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/MoveRefactoring.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/MoveRefactoring.java
index e29e9b8..014ae47 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/MoveRefactoring.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/MoveRefactoring.java
@@ -41,12 +41,13 @@
     /**
      * Public constructor takes Lookup containing objects to refactor as parameter.
      * Move Refactoring implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     *   <caption>MoveRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>{@link org.openide.filesystems.FileObject}(s)</td><td>Does file(s) move</td></tr>
      *   <tr><td>Java Refactoring</td><td>{@link org.openide.filesystems.FileObject}(s) with content type text/x-java</td><td>Does refactoring inside .java files</td></tr>
-     *   <tr><td></td><td>{@link org.netbeans.api.java.source.TreePathHandle}(s)</td><td>Does refactoring of members in .java files</td></tr>
-     *   <tr><td></td><td>{@link org.netbeans.api.java.source.TreePathHandle} of class</td><td>Does refactoring of class in .java files</td></tr>
+     *   <tr><td></td><td><a href="@org-netbeans-modules-java-source-base@/org/netbeans/api/java/source/TreePathHandle.html">org.netbeans.api.java.source.TreePathHandle</a>(s)</td><td>Does refactoring of members in .java files</td></tr>
+     *   <tr><td></td><td><a href="@org-netbeans-modules-java-source-base@/org/netbeans/api/java/source/TreePathHandle.html">org.netbeans.api.java.source.TreePathHandle</a> of class</td><td>Does refactoring of class in .java files</td></tr>
      * </table>
      * @param objectsToMove store your objects into Lookup
      */
@@ -57,13 +58,14 @@
     /**
      * Target for moving.
      * Move Refactoring implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     * <caption>MoveRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>{@link java.net.URL}</td>
      *        <td>Creates directory corresponding to specified {@link java.net.URL} if does not 
      *            exist and moves all FileObjects into this folder.</td></tr>
      *   <tr><td>Java Refactoring</td><td>{@link java.net.URL}</td><td>Does move refactoring inside .java files</td></tr>
-     *   <tr><td></td><td>{@link org.netbeans.api.java.source.TreePathHandle}</td><td>Does refactoring of members in .java files</td></tr>
+     *   <tr><td></td><td><a href="@org-netbeans-modules-java-source-base@/org/netbeans/api/java/source/TreePathHandle.html">org.netbeans.api.java.source.TreePathHandle</a></td><td>Does refactoring of members in .java files</td></tr>
      * </table>
      * @param target
      */
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RefactoringElement.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RefactoringElement.java
index 390fa96..57e95be 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RefactoringElement.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RefactoringElement.java
@@ -121,7 +121,7 @@
     
     /**
      * Shows this element in refactoring preview are
-     * @see org.netbeans.modules.refactoring.api.ui.UI#setComponentForRefactoringPreview
+     * @see org.netbeans.modules.refactoring.spi.ui.UI#setComponentForRefactoringPreview
      */
     public void showPreview() {
         impl.showPreview();
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RenameRefactoring.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RenameRefactoring.java
index 7a8a51e..504bdb4 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RenameRefactoring.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/RenameRefactoring.java
@@ -38,15 +38,16 @@
     /**
      * Creates a new instance of RenameRefactoring.
      * Rename Refactoring implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     * <caption>RenameRefactoring type supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>FileObject</td><td>Does file rename</td></tr>
      *   <tr><td>Java Refactoring</td><td><ul>
      *                                    <li>{@link org.openide.filesystems.FileObject}(s) with content type text/x-java (class rename)
      *                                    <li>{@link org.openide.filesystems.FileObject} (folder) folder rename 
-     *                                    <li>{@link org.netbeans.api.java.source.TreePathHandle} (class, field, method rename)
-     *                                    <li>{@link org.netbeans.api.fileinfo.NonRecursiveFolder} package rename</td>
-     *                                    </ul>
+     *                                    <li><a href="@org-netbeans-modules-java-source-base@/org/netbeans/api/java/source/TreePathHandle.html">org.netbeans.api.java.source.TreePathHandle</a> (class, field, method rename)
+     *                                    <li>{@link org.netbeans.api.fileinfo.NonRecursiveFolder} package rename
+     *                                    </ul></td>
      *                              <td>Does refactoring inside .java files. 
      *                               In case of FolderRename it also does corresponding file moves</td></tr>
      * </table>
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SafeDeleteRefactoring.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SafeDeleteRefactoring.java
index cab0f60..a3bb70e 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SafeDeleteRefactoring.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SafeDeleteRefactoring.java
@@ -38,11 +38,12 @@
      * elements as parameter.
      * 
      * Safe Delete Refactoring implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     *   <caption>SafeDeleteRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>FileObject</td><td>Does file delete</td></tr>
      *   <tr><td>Java Refactoring</td><td><ul><li>{@link org.openide.filesystems.FileObject}(s) with content type text/x-java (safly delete class)
-     *                                <li>{@link org.netbeans.api.java.source.TreePathHandle} (class, field, method)</td>
+     *                                <li><a href="@org-netbeans-modules-java-source-base@/org/netbeans/api/java/source/TreePathHandle.html">org.netbeans.api.java.source.TreePathHandle</a> (class, field, method)</ul></td>
      *                              <td>Check for usages and does refactoring inside .java files.</td></tr>
      * </table>
      * @param namedElements The elements to be safely deleted
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SingleCopyRefactoring.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SingleCopyRefactoring.java
index e10e5a4..50b29d6 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SingleCopyRefactoring.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/SingleCopyRefactoring.java
@@ -41,7 +41,8 @@
     /**
      * Creates a new instance of SingleCopyRefactoring.
      * Single Copy Refactoring implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     *   <caption>SingleCopyRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>{@link org.openide.filesystems.FileObject}</td><td>Does file copy</td></tr>
      *   <tr><td>Java Refactoring</td><td><ul>
@@ -58,7 +59,8 @@
     /**
      * Target for copying.
      * Single Copy Refactoring implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     *   <caption>SingleCopyRefactoring types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Refactoring API (Default impl.)</td><td>{@link java.net.URL}</td>
      *        <td>Creates directory corresponding to specified URL (if does not 
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/WhereUsedQuery.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/WhereUsedQuery.java
index 0b88725..491f89b 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/WhereUsedQuery.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/api/WhereUsedQuery.java
@@ -36,12 +36,12 @@
  */
 public final class WhereUsedQuery extends AbstractRefactoring {
     /**
-     * key for {@link #getBooleanValue()}
+     * key for {@link #getBooleanValue(Object)}
      * is search in comments requested?
      */
     public static final String SEARCH_IN_COMMENTS = "SEARCH_IN_COMMENTS"; // NOI18N
     /**
-     * key for {@link #getBooleanValue()}
+     * key for {@link #getBooleanValue(Object)}
      * is find references requested?
      */
     public static final String FIND_REFERENCES = "FIND_REFERENCES"; // NOI18N
@@ -49,11 +49,12 @@
     /**
      * Creates a new instance of WhereUsedQuery.
      * WhereUsedQuery implementations currently understand following types:
-     * <table border="1">
+     * <table>
+     * <caption>WhereUsedQuery types supported</caption>
      *   <tr><th>Module</th><th>Types the Module Understands</th><th>Implementation</th></tr>
      *   <tr><td>Java Refactoring</td><td><ul>
      *                                    <li>{@link org.openide.filesystems.FileObject} with content type text/x-java (class references)
-     *                                    <li>{@link org.netbeans.api.java.source.TreePathHandle} (class, field, method references)
+     *                                    <li><a href="@org-netbeans-modules-java-source-base@/org/netbeans/api/java/source/TreePathHandle.html">org.netbeans.api.java.source.TreePathHandle</a> (class, field, method references)
      *                                    </ul>
      *                              <td>Finds references</td></tr>
      * </table>
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/BackupFacility.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/BackupFacility.java
index 8d07998..9518670 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/BackupFacility.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/BackupFacility.java
@@ -128,11 +128,11 @@
     /**
      * Handle class representing handle to file(s), which were backuped
      * by
-     * {@link  org.netbeans.modules.refactoring.spi.BackupFacility#backup()}
+     * {@link  org.netbeans.modules.refactoring.spi.BackupFacility#backup(FileObject...)}
      */
     public interface Handle {
         /**
-         * restore file(s), which was stored by  {@link  org.netbeans.modules.refactoring.spi.BackupFacility#backup()}
+         * restore file(s), which was stored by  {@link  org.netbeans.modules.refactoring.spi.BackupFacility#backup(FileObject...)}
          * @throws java.io.IOException if restore failed.
          */
         void restore() throws IOException;
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/FiltersManager.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/FiltersManager.java
index 0526b21..eb3b719 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/FiltersManager.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/FiltersManager.java
@@ -24,7 +24,7 @@
 /**
  * Handles creation and manipulation with boolean state filters.
  *
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @see FiltersDescription
  * @since 1.29
  */
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementImplementation.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementImplementation.java
index c114f69..aceb251 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementImplementation.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementImplementation.java
@@ -134,7 +134,7 @@
     
     /**
      * Shows this element in refactoring preview are
-     * @see org.netbeans.modules.refactoring.api.ui.UI#setComponentForRefactoringPreview
+     * @see org.netbeans.modules.refactoring.spi.ui.UI#setComponentForRefactoringPreview
      */
     void showPreview();
     
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementsBag.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementsBag.java
index dbe3a23..9500e1c 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementsBag.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/RefactoringElementsBag.java
@@ -161,7 +161,7 @@
     
     /**
      * fileChanges are performed after all element changes
-     * @param changes changes to be performed
+     * @param refactoring changes to be performed
      * @see Transaction
      * @see BackupFacility
      */
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ExpandableTreeElement.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ExpandableTreeElement.java
index 701f491..a0faf30 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ExpandableTreeElement.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ExpandableTreeElement.java
@@ -27,7 +27,7 @@
  * it will be called from outside of AWT.
  * 
  * @author Jan Lahoda
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @see TreeElement
  * @since 1.30
  */
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/FiltersDescription.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/FiltersDescription.java
index 37da3f6..d3b140f 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/FiltersDescription.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/FiltersDescription.java
@@ -25,7 +25,7 @@
 import org.netbeans.modules.refactoring.api.impl.SPIUIAccessor;
 
 /**
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @since 1.29
  */
 public final class FiltersDescription {
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopePanel.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopePanel.java
index 854c995..dd6f696 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopePanel.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopePanel.java
@@ -50,7 +50,7 @@
  * button (a JButton with ellipses) will be displayed when any of the registered
  * scopes is customizable.
  *
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @since 1.30
  */
 public final class ScopePanel extends javax.swing.JPanel {
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeProvider.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeProvider.java
index 8082baa..df4bd47 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeProvider.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeProvider.java
@@ -35,11 +35,10 @@
  * ScopeProvider is used to add a scope to the {@link ScopePanel}.
  *
  * @see ScopePanel
- * @see ScopeDescription
  * @see ScopeReference
  *
  * @author Jan Lahoda
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  *
  * @since 1.30
  */
@@ -72,7 +71,6 @@
      *
      * @see ScopeProvider#initialize(org.openide.util.Lookup,
      * java.util.concurrent.atomic.AtomicBoolean)
-     * @see ScopeDescription
      * @return an icon for the Scope, or null if the default should be used.
      */
     @CheckForNull
@@ -110,11 +108,10 @@
      * scopes which can be customized by the user.
      *
      * @see ScopePanel
-     * @see ScopeDescription
      * @see ScopeReference
      *
      * @author Jan Lahoda
-     * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+     * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
      *
      * @since 1.30
      */
@@ -146,7 +143,7 @@
      * no arguments.
      * 
      * @author Jan Lahoda
-     * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+     * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
      * @since 1.30
      */
     @Target({ElementType.TYPE})
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReference.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReference.java
index 19579ec..a9e7d2c 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReference.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReference.java
@@ -26,7 +26,7 @@
 /**
  * A reference to a Scope Description to be used by a {@link ScopePanel}
  *
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @since 1.30
  */
 @Target({ElementType.TYPE})
@@ -35,14 +35,13 @@
 
     /**
      * Into which location one wants to place the reference? Translates to
-     * {@link FileUtil#getConfigFile(java.lang.String)}.
+     * {@link org.openide.filesystems.FileUtil#getConfigFile(java.lang.String)}.
      */
     String path();
 
     /**
-     * Identification of the scope this reference shall point to. Usually this
-     * is specified as {@link ScopeDescription} peer annotation, but in case one
-     * was to create references to scopes defined by someone else, one can
+     * Identification of the scope this reference shall point to. 
+     * In case one was to create references to scopes defined by someone else, one can
      * specify the id() here.
      */
     String id() default "";
diff --git a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReferences.java b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReferences.java
index 4fde868..d5642bf 100644
--- a/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReferences.java
+++ b/ide/refactoring.api/src/org/netbeans/modules/refactoring/spi/ui/ScopeReferences.java
@@ -26,7 +26,7 @@
 /**
  * Allows registration of multiple {@link ScopeReference}s for a single type.
  *
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  */
 @Target({ElementType.TYPE})
 @Retention(RetentionPolicy.SOURCE)
diff --git a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/AttachType.java b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/AttachType.java
index e758e47..58cb721 100644
--- a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/AttachType.java
+++ b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/AttachType.java
@@ -67,7 +67,7 @@
     public abstract JComponent getCustomizer ();
 
     /**
-     * Return the implementation of {@link Controller} interface.<br/>
+     * Return the implementation of {@link Controller} interface.<br>
      * It's not desired to implement the {@link Controller} interface
      * by JComponent returned from {@link #getCustomizer()} method, because
      * of the clash of {@link Controller#isValid()} method with
diff --git a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/BreakpointType.java b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/BreakpointType.java
index 818692e..9a7fdad 100644
--- a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/BreakpointType.java
+++ b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/BreakpointType.java
@@ -74,7 +74,7 @@
     public abstract JComponent getCustomizer ();
 
     /**
-     * Return the implementation of {@link Controller} interface.<br/>
+     * Return the implementation of {@link Controller} interface.<br>
      * It's not desired to implement the {@link Controller} interface
      * by JComponent returned from {@link #getCustomizer()} method, because
      * of the clash of {@link Controller#isValid()} method with
diff --git a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/DebuggingView.java b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/DebuggingView.java
index 1c53aad..8891710 100644
--- a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/DebuggingView.java
+++ b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/DebuggingView.java
@@ -267,7 +267,7 @@
          * By marking the implementation class with this annotation,
          * you automatically register that implementation for use by the debugging view.
          * The class must be public and have a public constructor which takes
-         * no arguments or takes {@link ContextProvider} as an argument.
+         * no arguments or takes {@link org.netbeans.spi.debugger.ContextProvider} as an argument.
          *
          * @author Martin Entlicher
          */
diff --git a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EditorContextDispatcher.java b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EditorContextDispatcher.java
index 897eb84..acd996b 100644
--- a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EditorContextDispatcher.java
+++ b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EditorContextDispatcher.java
@@ -79,7 +79,9 @@
  * <p>The EditorContextDispatcher provides convenient access to currently selected
  * elements and recently selected elements in the GUI.
  * 
- * <H2>Typical usage:</H2>
+ * <p>
+ * <strong>Typical usage:</strong>
+ * </p>
  * Attach a listener based on file MIME type. The usage of WeakListeners is
  * preferred, unless the listener can be removed explicitely.
  * <pre>
diff --git a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EngineComponentsProvider.java b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EngineComponentsProvider.java
index 159fd01..2193506 100644
--- a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EngineComponentsProvider.java
+++ b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/EngineComponentsProvider.java
@@ -132,7 +132,7 @@
         /**
          * Create a component information about a {@link TopComponent},
          * which is opened by default.
-         * @param tcName The ID of the {@link TopComponent}
+         * @param tcId The ID of the {@link TopComponent}
          * @return A component information.
          */
         public static ComponentInfo create(String tcId) {
@@ -141,7 +141,7 @@
         
         /**
          * Create a component information about a {@link TopComponent}.
-         * @param tcName The ID of the {@link TopComponent}
+         * @param tcId The ID of the {@link TopComponent}
          * @param opened <code>true</code> if the component should be opened,
          *               <code>false</code> otherwise.
          * @return A component information.
@@ -152,7 +152,7 @@
         
         /**
          * Create a component information about a {@link TopComponent}.
-         * @param tcName The ID of the {@link TopComponent}
+         * @param tcId The ID of the {@link TopComponent}
          * @param opened <code>true</code> if the component should be opened,
          *               <code>false</code> otherwise.
          * @param minimized <code>true</code> if the component should be opened in a minimized state,
diff --git a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/MethodChooser.java b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/MethodChooser.java
index f19c7ef..32f8f99 100644
--- a/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/MethodChooser.java
+++ b/ide/spi.debugger.ui/src/org/netbeans/spi/debugger/ui/MethodChooser.java
@@ -82,7 +82,7 @@
  *
  * <p>Method chooser does not use any special highlighting for the background of the
  * area where the selection takes place. If it is required it can be done by attaching
- * instances of {@link Annotation} to the proper source file's lines. These annotation should
+ * instances of {@link org.openide.text.Annotation} to the proper source file's lines. These annotation should
  * be added before calling {@link #showUI} and removed after calling {@link #releaseUI}.
  *
  * <p>To display the method chooser's ui correctly, it is required to register
diff --git a/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/ErrorDescriptionFactory.java b/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/ErrorDescriptionFactory.java
index 5ebc501..1d1cf8b 100644
--- a/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/ErrorDescriptionFactory.java
+++ b/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/ErrorDescriptionFactory.java
@@ -321,8 +321,9 @@
      * @param description the text of the error/warning
      * @param details optional "more details" describing the error/warning
      * @param fixes a collection of {@link Fix}es that should be shown for the error/warning
-     * @param file for which the {@link ErrorDescription} should be created
-     * @param errorBounds start and end position of the error/warning
+     * @param doc for which the {@link ErrorDescription} should be created
+     * @param start start position of the error/warning
+     * @param end end position of the error/warning
      * @return a newly created {@link ErrorDescription} based on the given parameters
      * @since 1.39
      */
diff --git a/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/PositionRefresher.java b/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/PositionRefresher.java
index e4541e7..f7e3266 100644
--- a/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/PositionRefresher.java
+++ b/ide/spi.editor.hints/src/org/netbeans/spi/editor/hints/PositionRefresher.java
@@ -36,7 +36,7 @@
 public interface PositionRefresher {
 
     /**
-     * @param position current caret position inside document
+     * @param context current caret position inside document
      * @param doc current document
      * @return map of layer name to {@link ErrorDescription}s for current line
      */
diff --git a/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorLookupPanelsPolicy.java b/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorLookupPanelsPolicy.java
index 2cdcab2..e38aa4f 100644
--- a/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorLookupPanelsPolicy.java
+++ b/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorLookupPanelsPolicy.java
@@ -20,22 +20,22 @@
 package org.netbeans.spi.navigator;
 
 /** Interface for SPI clients who want to affect searching mechanism for
- * available NavigatorPanel implementations.<p></p>
+ * available NavigatorPanel implementations.<p>
  * 
  * Navigator infrastructure searches for instance of this interface in
  * <a href="@org-openide-util@/org/openide/util/Utilities.html#actionsGlobalContext()">Utilities.actionsGlobalContext()</a>
  * lookup and then applies found policy on set of available 
  * <a href="@TOP@/org/netbeans/spi/navigator/NavigatorPanel.html">NavigatorPanel</a>
- * implementations.<p></p>
+ * implementations.<p>
  * 
  * Note that multiple instances of this interface are not supported in
  * Utilities.actionsGlobalContext() lookup, one instance is chosen randomly
- * in this case.<p></p>
+ * in this case.<p>
  * 
  * Common Usage: 
  *  <ul>
  *      <li>Implement this interface, return kind of policy that suits you from
- *          <code>getPanelsPolicy()</code></li> method.
+ *          <code>getPanelsPolicy()</code> method.</li>
  *      <li>Put implementation instance into your TopComponent's subclass lookup,
  *          see <a href="@org-openide-windows@/org/openide/windows/TopComponent.html#getLookup()">TopComponent.getLookup()</a>
  *          for details.</li>
@@ -53,7 +53,7 @@
     /** Shows only NavigatorPanel implementations available through
      * <a href="@TOP@/org/netbeans/spi/navigator/NavigatorLookupHint.html">NavigatorLookupHint</a>
      * in Navigator window, hides NavigatorPanels
-     * available from DataObject of active Node.<br></br>
+     * available from DataObject of active Node.<br>
      * 
      * Use when you want to remove NavigatorPanels of active Node from Navigator
      * window. 
diff --git a/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorPanel.java b/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorPanel.java
index 01b5fea..082faee 100644
--- a/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorPanel.java
+++ b/ide/spi.navigator/src/org/netbeans/spi/navigator/NavigatorPanel.java
@@ -86,18 +86,18 @@
     
     
     /** Returns Lookup that will be integrated into Lookup of Navigator UI
-     * TopComponent. Allows clients to achieve several things:<p></p>
+     * TopComponent. Allows clients to achieve several things:<p>
      * 
-     * 1) Specify activated Node of Navigator UI TopComponent when this panel is active.<br></br>
+     * 1) Specify activated Node of Navigator UI TopComponent when this panel is active.<br>
      * If returned lookup contains Nodes, they will act as activated nodes of 
-     * Navigator UI TopComponent (navigator window).<br></br>
+     * Navigator UI TopComponent (navigator window).<br>
      * 
      * Method may return null, signalizing that default mechanism should be enabled.
      * Default mechanism chooses first Node from Utilities.actionsGlobalContext()
      * (current system-wide activated Node) as activated Node for Navigator's TopComponent.
-     * <p></p>
+     * <p>
      * 
-     * 2) Enable support for Toolbar or main menu global actions in NavigatorPanel.<br></br>
+     * 2) Enable support for Toolbar or main menu global actions in NavigatorPanel.<br>
      * ActionMap contained in this Lookup will be part of Utilities.actionsGlobalContext()
      * when Navigator UI TopComponent (navigator window) is active in the system. 
      *   
diff --git a/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistration.java b/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistration.java
index c47e9ea..8103403 100644
--- a/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistration.java
+++ b/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistration.java
@@ -36,7 +36,7 @@
     body = "<br>",
     name = "New Line",
     tooltip = "<br>")}</li>
- * <li><b>at class level</b> on class implementing {@link ActiveEditorDrop}.<br><br>
+ * <li><b>at class level</b> on class implementing {@link org.openide.text.ActiveEditorDrop}.<br><br>
  * {@code @PaletteItemRegistration(
     paletteid = "HTMLPalette",
     category = "HTML",
@@ -50,7 +50,7 @@
  * </li>
  * </ul>
  * 
- * @author Eric Barboni <skygo@netbeans.org>
+ * @author Eric Barboni &lt;skygo@netbeans.org&gt;
  * @since 1.40
  */
 @Retention(RetentionPolicy.SOURCE)
diff --git a/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistrations.java b/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistrations.java
index ecc9f82..0131a83 100644
--- a/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistrations.java
+++ b/ide/spi.palette/src/org/netbeans/spi/palette/PaletteItemRegistrations.java
@@ -27,7 +27,7 @@
  * May be uses to allow multiple
  * {@link PaletteItemRegistration PaletteItemRegistration} at one place.
  *
- * @author Eric Barboni <skygo@netbeans.org>
+ * @author Eric Barboni &lt;skygo@netbeans.org&gt;
  *
  * @since 1.40
  */
diff --git a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/DnDNodeModelFilter.java b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/DnDNodeModelFilter.java
index ba89d93..6b7f752 100644
--- a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/DnDNodeModelFilter.java
+++ b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/DnDNodeModelFilter.java
@@ -67,7 +67,7 @@
      * on provided transferable when drop is done.
      *
      * @param original The original DnDNodeModel to filter
-     * @param node The node where to drop
+     * @param object The node where to drop
      * @param t the transferable to drop
      * @param action the Drag and Drop action from {@link java.awt.dnd.DnDConstants}
      * @param index index between children the drop occured at or -1 if not specified
diff --git a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModel.java b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModel.java
index 71e8967..f1717b0 100644
--- a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModel.java
+++ b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModel.java
@@ -113,7 +113,7 @@
 
     /**
      * Returns icon resource with extension for given node.
-     * This is the preferred way of icon specification over {@link org.netbeans.spi.viewmodel.NodeModel.getIconBase}
+     * This is the preferred way of icon specification over {@link org.netbeans.spi.viewmodel.NodeModel#getIconBase}
      *
      * @param node The node object
      * @return The base resouce name with extension (no initial slash)
diff --git a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModelFilter.java b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModelFilter.java
index 59ffb81..cc1b765 100644
--- a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModelFilter.java
+++ b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/ExtendedNodeModelFilter.java
@@ -112,7 +112,7 @@
 
     /**
      * Returns icon resource with extension for given node.
-     * This is the preferred way of icon specification over {@link org.netbeans.spi.viewmodel.NodeModel.getIconBase}
+     * This is the preferred way of icon specification over {@link org.netbeans.spi.viewmodel.NodeModel#getIconBase}
      *
      * @param node The node object
      * @return The base resouce name with extension (no initial slash)
diff --git a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/Models.java b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/Models.java
index e625892..89ea9fc 100644
--- a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/Models.java
+++ b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/Models.java
@@ -4525,7 +4525,6 @@
          *
          * @throws  UnknownTypeException if this NodeActionsProvider implementation 
          *          is not able to resolve actions for given node type
-         * @return  display name for given node
          */
         @Override
         public void performDefaultAction (Object node) throws UnknownTypeException {
diff --git a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/NodeActionsProvider.java b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/NodeActionsProvider.java
index f94fe55..5166445 100644
--- a/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/NodeActionsProvider.java
+++ b/ide/spi.viewmodel/src/org/netbeans/spi/viewmodel/NodeActionsProvider.java
@@ -36,7 +36,6 @@
      *
      * @throws  UnknownTypeException if this NodeActionsProvider implementation
      *          is not able to resolve actions for given node type
-     * @return  display name for given node
      */
     public abstract void performDefaultAction (Object node) 
     throws UnknownTypeException;
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VCSFileProxy.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VCSFileProxy.java
index 1fe5143..115441b 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VCSFileProxy.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VCSFileProxy.java
@@ -241,7 +241,7 @@
     
     /**
      * Determines whether this file is a directory or not.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return <code>true</code> if this file exists and is a directory, otherwise <code>false</code>
      * @see File#isDirectory() 
@@ -260,7 +260,7 @@
     
     /**
      * Determines whether this file is a normal file or not.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return <code>true</code> if this file is a normal file, otherwise <code>false</code>
      * @see File#isFile() 
@@ -279,7 +279,7 @@
     
     /**
      * Determines whether this file is writable or not.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return <code>true</code> if this file is writable, otherwise <code>false</code>
      * @see File#canWrite() 
@@ -294,7 +294,7 @@
     
     /**
      * Determines the last time this file was modified.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return A <code>long</code> value representing the time the file was
      *         last modified.
@@ -310,7 +310,7 @@
     
     /**
      * Returns this files parent or <code>null</code> if this file doesn't have a parent.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return this files parent 
      * @see File#getParentFile() 
@@ -346,7 +346,7 @@
     
     /**
      * Determines whether this file exists or not.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return <code>true</code> if this files exists, otherwise <code>false</code>
      * @see File#exists() 
@@ -361,7 +361,7 @@
     
     /**
      * Returns an array of files located in a directory given by this file.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return an array of files located in a directory given by this file or 
      * <code>null</code> if this file isn't a directory or an error occurs.
@@ -387,7 +387,7 @@
     /**
      * Returns the corresponding java.io.File in case this instance was created 
      * based either on java.io.File or a {@link FileObject} based on java.io.File.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return the corresponding java.io.File instance or <Code>null</code> if none
      * is available.
@@ -403,7 +403,7 @@
     
     /**
      * Returns the corresponding FileObject.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return the corresponding FileObject or <code>null</code> if none available
      */
@@ -417,7 +417,7 @@
 
     /**
      * Normalize a file path to a clean form.
-     * <b>This method might block for a longer time and shouldn't be called in EDT.
+     * <b>This method might block for a longer time and shouldn't be called in EDT.</b>
      * 
      * @return a VCSFileProxy with a normalized file path
      * @see FileUtil#normalizePath(java.lang.String) 
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VersioningSupport.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VersioningSupport.java
index 0206aba..20baa70 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VersioningSupport.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/api/VersioningSupport.java
@@ -106,8 +106,8 @@
      * <p>Versioning systems <strong>must NOT</strong> scan a folder if this method returns true and should consider it as unversioned.</p>
      *
      * @param folder a folder to query
-     * @link http://www.netbeans.org/bugzilla/show_bug.cgi?id=105161
-     * @link http://www.netbeans.org/bugzilla/show_bug.cgi?id=195284
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=105161">#105161</a>
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=195284">#195284</a>
      * @return true if the given folder is excluded from version control, false otherwise
      */
     public static boolean isExcluded (VCSFileProxy folder) {
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSContext.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSContext.java
index cc4a0fa..265660a 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSContext.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSContext.java
@@ -237,7 +237,7 @@
      * returns both of them and getRootFiles returns only the folder /var. 
      * This method is suitable for versioning systems that DO manage folders, such as Clearcase. 
      * 
-     * @return Set<VCSFileProxy> set of Files this context represents
+     * @return Set&lt;VCSFileProxy&gt; set of Files this context represents
      * @see #getRootFiles() 
      */ 
     public Set<VCSFileProxy> getFiles() {
@@ -251,7 +251,7 @@
      * returns both of them and getRootFiles returns only the folder /var. 
      * This method is suitable for versioning systems that do not manage folders, such as CVS. 
      * 
-     * @return Set<VCSFileProxy> set of Files this context represents
+     * @return Set&lt;VCSFileProxy&gt; set of Files this context represents
      * @see #getFiles() 
      */ 
     public Set<VCSFileProxy> getRootFiles() {
@@ -264,7 +264,7 @@
      * run on a project that contains a subproject should not touch any files in the subproject. Therefore the VCSContext for
      * the action would contain one root file (the project's root) and one exclusion (subproject root).
      * 
-     * @return Set<VCSFileProxy> set of files and folders that are not part of (are excluded from) this context. 
+     * @return Set&lt;VCSFileProxy&gt; set of files and folders that are not part of (are excluded from) this context. 
      * All their descendants are excluded too.
      */ 
     public Set<VCSFileProxy> getExclusions() {
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSHistoryProvider.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSHistoryProvider.java
index d855032..aeac6d4 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSHistoryProvider.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSHistoryProvider.java
@@ -63,24 +63,24 @@
      * in places with limited space, but should be descriptive enough to identify the 
      * particular user or revision - e.g in case of Mercurial it would be something like:
      * 
-     * <table border="0" cellpadding="1" cellspacing="1">
-     *   <tr align="left">
+     * <table>
+     *   <caption>example of output for Mercurial</caption>
+     *   <tr>
      *     <th bgcolor="#CCCCFF"></th>
      *     <th bgcolor="#CCCCFF">short</th>
      *     <th bgcolor="#CCCCFF">long</th>
      *   </tr>
-     *   <tr align="left">
+     *   <tr>
      *     <td>revision</td>
      *     <td>210767</td>
      *     <td>210767:2dd617e260fc</td>
      *   </tr>
-     *   <tr align="left">
+     *   <tr>
      *     <td>user</td>
      *     <td>john.doe@netbeans.org</td>
      *     <td>John Doe &lt;john.doe@netbeans.org&gt;</td>
      *   </tr>
      * </table>
-     * </p> 
      */
     public static final class HistoryEntry {
         private Date dateTime;
@@ -236,7 +236,7 @@
          * 
          * @throws IOException if it wasn't possible to set the message
          * 
-         * @throws IllegalStateException if no {@link #MessageEditProvider} was passed to this HistoryEntry instance
+         * @throws IllegalStateException if no {@link MessageEditProvider} was passed to this HistoryEntry instance
          */        
         public void setMessage(String message) throws IOException {
             if(!canEdit()) throw new IllegalStateException("This entry is read-only");
@@ -389,10 +389,10 @@
     
     /**
      * Implement and pass over to {@link HistoryEntry} in case 
-     * {@link HistoryEntry#getRevisionFile(java.io.File, java.io.File)}
+     * {@link HistoryEntry#getRevisionFile(VCSFileProxy, VCSFileProxy)}
      * is expected to work.
      * 
-     * @see HistoryEntry#getRevisionFile(java.io.File, java.io.File) 
+     * @see HistoryEntry#getRevisionFile(VCSFileProxy, VCSFileProxy) 
      */    
     public interface RevisionProvider {
         void getRevisionFile(VCSFileProxy originalFile, VCSFileProxy revisionFile);
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSInterceptor.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSInterceptor.java
index ee00dce..484fa07 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSInterceptor.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSInterceptor.java
@@ -237,7 +237,7 @@
      * Each series of beforeChange/afterChange events is preceded by at least one beforeEdit event.
      * 
      * @param file file that was just locked and is expected to change
-     * @throws IOEexceptin in case it wasn't possible to unlock the file.
+     * @throws IOException in case it wasn't possible to unlock the file.
      */
     public void beforeEdit(VCSFileProxy file) throws IOException {
     }
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSVisibilityQuery.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSVisibilityQuery.java
index 5738e21..af7ad5e 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSVisibilityQuery.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSVisibilityQuery.java
@@ -48,7 +48,7 @@
     /**
      * Notify a visibility change
      * 
-     * @param VCSFileProxy[] the files with a changed visibility
+     * @param file the files with a changed visibility
      * @since 1.10
      */
     protected final void fireVisibilityChanged(VCSFileProxy... file) {
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VersioningSystem.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VersioningSystem.java
index 90d62c3..67159da 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VersioningSystem.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/spi/VersioningSystem.java
@@ -41,7 +41,7 @@
  * - file system handler
  * - diff provider
  * 
- * Versioning system registration can be done via {@link VersioningSystem#Registration}. 
+ * Versioning system registration can be done via {@link VersioningSystem.Registration}. 
  *
  * @author Maros Sandor
  * @author Tomas Stupka
@@ -212,10 +212,10 @@
      * menu items and handle file visibility without having to activate the particular 
      * VCS System until an explicit user action or relevant file event occurs.
      * </p>
-     * See also {@link org.netbeans.modules.versioning.spi.VersioningSystem}.
+     * See also <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html">org.netbeans.modules.versioning.spi.VersioningSystem</a>.
      * 
      * @author Tomas Stupka
-     * @see org.netbeans.modules.versioning.spi.VersioningSystem
+     * @see <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html">org.netbeans.modules.versioning.spi.VersioningSystem</a>
      * @see org.openide.util.lookup.ServiceProvider
      */
     @Retention(RetentionPolicy.SOURCE)
@@ -230,10 +230,10 @@
          * Examples: CVS, Subversion, Mercurial, Teamware, SourceSafe, VSS, Clearcase, Local History.
          * </p>
          * <p>
-         * Corresponds with the property value {@link org.netbeans.modules.versioning.spi.VersioningSystem#PROP_DISPLAY_NAME} 
-         * when used together with {@link org.netbeans.modules.versioning.spi.VersioningSystem}.
+         * Corresponds with the property value <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html#PROP_DISPLAY_NAME">org.netbeans.modules.versioning.spi.VersioningSystem#PROP_DISPLAY_NAME</a>
+         * when used together with <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html">org.netbeans.modules.versioning.spi.VersioningSystem</a>.
          * </p>
-         * @see org.netbeans.modules.versioning.spi.VersioningSystem#PROP_DISPLAY_NAME
+         * @see <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html#PROP_DISPLAY_NAME">org.netbeans.modules.versioning.spi.VersioningSystem#PROP_DISPLAY_NAME</a>
          */
         public String displayName();
         
@@ -242,12 +242,11 @@
          * Short name of the versioning system, it will be used as menu label and it should define a mnemonic key.
          * </p>
          * <p>
-         * Examples: &CVS, &Subversion, &Mercurial, &Teamware, &SourceSafe, &VSS, &Clearcase, Local &History.
+         * Examples: &amp;CVS, &amp;Subversion, &amp;Mercurial, &amp;Teamware, &amp;SourceSafe, &amp;VSS, &amp;Clearcase, Local &amp;History.
          * </p>
          * <p>
-         * Corresponds with the property value {@link org.netbeans.modules.versioning.spi.VersioningSystem#PROP_MENU_LABEL}.
-         * <p>
-         * @see org.netbeans.modules.versioning.spi.VersioningSystem#PROP_MENU_LABEL
+         * Corresponds with the property value <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html#PROP_MENU_LABEL">org.netbeans.modules.versioning.spi.VersioningSystem#PROP_MENU_LABEL</a>.
+         * @see <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html#PROP_MENU_LABEL">org.netbeans.modules.versioning.spi.VersioningSystem#PROP_MENU_LABEL</a>
          */
         public String menuLabel();
         
@@ -268,8 +267,8 @@
          *  <li>{".svn", "_svn"}</li>
          *  <li>{".hg"}</li>
          *  <li>{".git"}</li>
-         * <ul>
-         * @see #getTopmostManagedAncestor(org.netbeans.modules.versioning.fileproxy.api.VCSFileProxy)) 
+         * </ul>
+         * @see #getTopmostManagedAncestor(VCSFileProxy)
          */
         public String[] metadataFolderNames();
         
@@ -284,7 +283,6 @@
          * </ul>
          * returning "Subversion" would make the VCS infrastructure to look for actions under the {@link ActionReference} 
          * paths <code>"Versioning/Subversion/Actions/Unversioned"</code> and <code>"Versioning/Subversion/Actions/Global"</code>.
-         * </p>
          * <p>
          * You can also make use of the {@link ActionRegistration#menuText} and {@link ActionRegistration#popupText} 
          * attributes, in case you need a different text in the Main Menu item and a projects popup menu item.
@@ -295,29 +293,28 @@
          * <p>
          * Register a <code>VersioningSystem</code> with the <code>actionCategory</code> "Subversion".
          * </p>
-         * <p>
-         * <code> <pre>
-         * <samp>@</samp>VersioningSystem.Registration(actionsCategory="<b>Subversion</b>")
+         * <pre><code>
+         * &#64;VersioningSystem.Registration(actionsCategory="<b>Subversion</b>")
          * public class SubversionVCS extends VersioningSystem {
          *    ...
          * }
-         * </code></pre></p>
+         * </code></pre>
          * 
          * <p>
          * Register the <code>ImportAction</code> under the <code>ActionReference</code> path 
          * <code>"Versioning/Subversion/Actions/Unversioned"</code> and set <br> 
-         * <code>ActionRegistration.popupText</code> to <code>"Import into &Subversion Repository..."</code> and<br> 
-         * <code>ActionRegistration.menuText</code> to <code>"I&mport into Repository..."</code>.
+         * <code>ActionRegistration.popupText</code> to <code>"Import into &amp;Subversion Repository..."</code> and<br> 
+         * <code>ActionRegistration.menuText</code> to <code>"I&amp;mport into Repository..."</code>.
          * <br></p>
          * 
-         * <p><code> <pre>
-         * <samp>@</samp>ActionID(id = "org.netbeans.modules.subversion.ui.project.ImportAction", category = "Subversion")
-         * <samp>@</samp>ActionRegistration(displayName = "Import into Repository...", popupText="Import into &Subversion Repository...", menuText="I&mport into Repository...")
-         * <samp>@</samp>ActionReferences({ <samp>@</samp>ActionReference(path="<b>Versioning/Subversion/Actions/Unversioned</b>", position=1) })
+         * <pre><code>
+         * &#64;ActionID(id = "org.netbeans.modules.subversion.ui.project.ImportAction", category = "Subversion")
+         * &#64;ActionRegistration(displayName = "Import into Repository...", popupText="Import into &amp;Subversion Repository...", menuText="I&amp;mport into Repository...")
+         * &#64;ActionReferences({&#64;ActionReference(path="<b>Versioning/Subversion/Actions/Unversioned</b>", position=1) })
          * public final class ImportAction implements ActionListener {
          *   ...
          * }
-         * </code></pre></p>
+         * </code></pre>
          * <p>
          * The Main Menu for an unversioned project then will be:<br>
          * <code>Main Menu > Team > Subversion > Import into <u>R</u>epository...</code>
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/Utils.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/Utils.java
index f09d8f1..4eb3ba5 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/Utils.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/Utils.java
@@ -124,7 +124,7 @@
     /**
      * Notifies about visibility changes according to {@link VisibilityQueryImplementation}
      * 
-     * @param File[] the files with a changed visibility
+     * @param files the files with a changed visibility
      */
     public static void fireVisibilityChanged(File... files) {
         VCSFileProxy[] proxies = new VCSFileProxy[files.length];
diff --git a/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/VCSSystemProvider.java b/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/VCSSystemProvider.java
index 8a4d38e..1e623526 100644
--- a/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/VCSSystemProvider.java
+++ b/ide/versioning.core/src/org/netbeans/modules/versioning/core/util/VCSSystemProvider.java
@@ -32,8 +32,7 @@
 /**
  * Warning: VCS internal use only. Not to be implemented by clients.
  * 
- * Provides implementations for {@link org.netbeans.modules.versioning.spi.VersioningSystem} 
- * and {@link org.netbeans.modules.versioning.fileproxy.spi.VersioningSystem}
+ * Provides implementations for <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html">org.netbeans.modules.versioning.spi.VersioningSystem</a>
  * 
  * @author Tomas Stupka
  */
@@ -59,8 +58,7 @@
     public abstract Collection<VersioningSystem> getVersioningSystems();
     
     /**
-     * Provides abstraction either over a {@link org.netbeans.modules.versioning.fileproxy.spi.VersioningSystem}
-     * or a {@link org.netbeans.modules.versioning.spi.VersioningSystem}
+     * Provides abstraction either over a <a href="@org-netbeans-modules-versioning@/org/netbeans/modules/versioning/spi/VersioningSystem.html">org.netbeans.modules.versioning.spi.VersioningSystem</a>
      * @param <S> 
      */
     public interface VersioningSystem<S> {
diff --git a/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSContext.java b/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSContext.java
index 7123012..f52f4dc 100644
--- a/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSContext.java
+++ b/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSContext.java
@@ -116,7 +116,7 @@
      * returns both of them and getRootFiles returns only the folder /var. 
      * This method is suitable for versioning systems that DO manage folders, such as Clearcase. 
      * 
-     * @return Set<File> set of Files this context represents
+     * @return Set&lt;File&gt; set of Files this context represents
      * @see #getRootFiles() 
      * @since 1.6
      */ 
@@ -134,7 +134,7 @@
      * returns both of them and getRootFiles returns only the folder /var. 
      * This method is suitable for versioning systems that do not manage folders, such as CVS. 
      * 
-     * @return Set<File> set of Files this context represents
+     * @return Set&lt;File&gt; set of Files this context represents
      * @see #getFiles() 
      */ 
     public Set<File> getRootFiles() {
@@ -150,7 +150,7 @@
      * run on a project that contains a subproject should not touch any files in the subproject. Therefore the VCSContext for
      * the action would contain one root file (the project's root) and one exclusion (subproject root).
      * 
-     * @return Set<File> set of files and folders that are not part of (are excluded from) this context. 
+     * @return Set&lt;File&gt; set of files and folders that are not part of (are excluded from) this context. 
      * All their descendands are excluded too.
      */ 
     public Set<File> getExclusions() {
diff --git a/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSHistoryProvider.java b/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSHistoryProvider.java
index acb16e2..96ee329 100644
--- a/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSHistoryProvider.java
+++ b/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSHistoryProvider.java
@@ -68,25 +68,25 @@
      * The <code>usernameShort</code> and <code>revisionShort</code> will be displayed 
      * in places with limited space, but should be descriptive enough to identify the 
      * particular user or revision - e.g in case of Mercurial it would be something like:
-     * 
-     * <table border="0" cellpadding="1" cellspacing="1">
-     *   <tr align="left">
+     * e border="0"
+     * <table>
+     *   <caption>example of output for Mercurial</caption>
+     *   <tr>
      *     <th bgcolor="#CCCCFF"></th>
      *     <th bgcolor="#CCCCFF">short</th>
      *     <th bgcolor="#CCCCFF">long</th>
      *   </tr>
-     *   <tr align="left">
+     *   <tr>
      *     <td>revision</td>
      *     <td>210767</td>
      *     <td>210767:2dd617e260fc</td>
      *   </tr>
-     *   <tr align="left">
+     *   <tr>
      *     <td>user</td>
      *     <td>john.doe@netbeans.org</td>
      *     <td>John Doe &lt;john.doe@netbeans.org&gt;</td>
      *   </tr>
      * </table>
-     * </p> 
      * 
      * @since 1.29
      */
@@ -253,7 +253,7 @@
          * 
          * @throws IOException if it wasn't possible to set the message
          * 
-         * @throws IllegalStateException if no {@link #MessageEditProvider} was passed to this HistoryEntry instance
+         * @throws IllegalStateException if no {@link MessageEditProvider} was passed to this HistoryEntry instance
          *
          * @since 1.29
          */
diff --git a/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSVisibilityQuery.java b/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSVisibilityQuery.java
index a0e6c9a..5871ba9 100644
--- a/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSVisibilityQuery.java
+++ b/ide/versioning/src/org/netbeans/modules/versioning/spi/VCSVisibilityQuery.java
@@ -48,7 +48,7 @@
     /**
      * Notify a visibility change
      * 
-     * @param File[] the files with a changed visibility
+     * @param files the files with a changed visibility
      * @since 1.37
      */
     protected final void fireVisibilityChanged(File... files) {
diff --git a/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSupport.java b/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSupport.java
index 8a358b1..0d51070 100644
--- a/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSupport.java
+++ b/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSupport.java
@@ -113,8 +113,8 @@
      * <p>Versioning systems <strong>must NOT</strong> scan a folder if this method returns true and should consider it as unversioned.</p>
      *
      * @param folder a folder to query
-     * @link http://www.netbeans.org/bugzilla/show_bug.cgi?id=105161
-     * @link http://www.netbeans.org/bugzilla/show_bug.cgi?id=195284
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=105161">#105161</a>
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=195284">#195284</a>
      * @since 1.25
      * @return true if the given folder is excluded from version control, false otherwise
      */
diff --git a/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSystem.java b/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSystem.java
index 768fbc8..865376a 100644
--- a/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSystem.java
+++ b/ide/versioning/src/org/netbeans/modules/versioning/spi/VersioningSystem.java
@@ -45,7 +45,7 @@
  * Versioning system registration can be done in one of the following ways:
  * <ul>
  *  <li>via {@link org.openide.util.lookup.ServiceProvider}.</li>  
- *  <li>via {@link org.netbeans.modules.versioning.spi.VersioningSystem#Registration}. (recommended) </li> 
+ *  <li>via {@link org.netbeans.modules.versioning.spi.VersioningSystem.Registration}. (recommended) </li> 
  * </ul>
  *
  * @author Maros Sandor
@@ -62,7 +62,7 @@
 
     /**
      * Short name of the versioning system, it will be used as menu label and it should define a mnemonic key.
-     * Examples: &CVS, &Subversion, &Mercurial, &Teamware, &SourceSafe, &VSS, &Clearcase, Local &History.
+     * Examples: &amp;CVS, &amp;Subversion, &amp;Mercurial, &amp;Teamware, &amp;SourceSafe, &amp;VSS, &amp;Clearcase, Local &amp;History.
      * @see #getProperty(String) 
      * @see #putProperty(String, Object)  
      */
@@ -324,11 +324,11 @@
          * Short name of the versioning system, it will be used as menu label and it should define a mnemonic key.
          * </p>
          * <p>
-         * Examples: &CVS, &Subversion, &Mercurial, &Teamware, &SourceSafe, &VSS, &Clearcase, Local &History.
+         * Examples: &amp;CVS, &amp;Subversion, &amp;Mercurial, &amp;Teamware, &amp;SourceSafe, &amp;VSS, &amp;Clearcase, Local &amp;History.
          * </p>
          * <p>
          * Corresponds with the property value {@link org.netbeans.modules.versioning.spi.VersioningSystem#PROP_MENU_LABEL}.
-         * <p>
+         *
          * @see org.netbeans.modules.versioning.spi.VersioningSystem#PROP_MENU_LABEL
          */
         public String menuLabel();
@@ -350,7 +350,7 @@
          *  <li>{".svn", "_svn"}</li>
          *  <li>{".hg"}</li>
          *  <li>{".git"}</li>
-         * <ul>
+         * </ul>
          * @see #getTopmostManagedAncestor(java.io.File) 
          */
         public String[] metadataFolderNames();
@@ -366,7 +366,6 @@
          * </ul>
          * returning "Subversion" would make the VCS infrastructure to look for actions under the {@link ActionReference} 
          * paths <code>"Versioning/Subversion/Actions/Unversioned"</code> and <code>"Versioning/Subversion/Actions/Global"</code>.
-         * </p>
          * <p>
          * You can also make use of the {@link ActionRegistration#menuText} and {@link ActionRegistration#popupText} 
          * attributes, in case you need a different text in the Main Menu item and a projects popup menu item.
@@ -377,29 +376,29 @@
          * <p>
          * Register a <code>VersioningSystem</code> with the <code>actionCategory</code> "Subversion".
          * </p>
-         * <p>
-         * <code> <pre>
-         * <samp>@</samp>VersioningSystem.Registration(actionsCategory="<b>Subversion</b>")
+         * 
+         * <pre><code>
+         * &#64;VersioningSystem.Registration(actionsCategory="<b>Subversion</b>")
          * public class SubversionVCS extends VersioningSystem {
          *    ...
          * }
-         * </code></pre></p>
+         * </code></pre>
          * 
          * <p>
          * Register the <code>ImportAction</code> under the <code>ActionReference</code> path 
          * <code>"Versioning/Subversion/Actions/Unversioned"</code> and set <br> 
-         * <code>ActionRegistration.popupText</code> to <code>"Import into &Subversion Repository..."</code> and<br> 
-         * <code>ActionRegistration.menuText</code> to <code>"I&mport into Repository..."</code>.
+         * <code>ActionRegistration.popupText</code> to <code>"Import into &amp;Subversion Repository..."</code> and<br> 
+         * <code>ActionRegistration.menuText</code> to <code>"I&amp;mport into Repository..."</code>.
          * <br></p>
          * 
-         * <p><code> <pre>
-         * <samp>@</samp>ActionID(id = "org.netbeans.modules.subversion.ui.project.ImportAction", category = "Subversion")
-         * <samp>@</samp>ActionRegistration(displayName = "Import into Repository...", popupText="Import into &Subversion Repository...", menuText="I&mport into Repository...")
-         * <samp>@</samp>ActionReferences({ <samp>@</samp>ActionReference(path="<b>Versioning/Subversion/Actions/Unversioned</b>", position=1) })
+         * <pre><code>
+         * &#64;ActionID(id = "org.netbeans.modules.subversion.ui.project.ImportAction", category = "Subversion")
+         * &#64;ActionRegistration(displayName = "Import into Repository...", popupText="Import into &amp;Subversion Repository...", menuText="I&amp;mport into Repository...")
+         * &#64;ActionReferences({&#64;ActionReference(path="<b>Versioning/Subversion/Actions/Unversioned</b>", position=1) })
          * public final class ImportAction implements ActionListener {
          *   ...
          * }
-         * </code></pre></p>
+         * </code></pre>
          * <p>
          * The Main Menu for an unversioned project then will be:<br>
          * <code>Main Menu > Team > Subversion > Import into <u>R</u>epository...</code>
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/XDMModel.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/XDMModel.java
index 2b42de6..012b5c0 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/XDMModel.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/XDMModel.java
@@ -607,7 +607,7 @@
     
     /**
      * This api deletes given node from a tree.
-     * @param node The node  to be deleted.
+     * @param n The node  to be deleted.
      * @return The parent node resulted by deletion of this node.
      */
     public synchronized List<Node> delete(Node n) {
@@ -621,8 +621,8 @@
     
     /**
      * This api changes index of the given node.
-     * @param nodes The nodes to be moved.
-     * @param indexes the new indexes of the nodes.
+     * @param n The nodes to be moved.
+     * @param index the new indexe of the node.
      * @return The parent node resulted by deletion of this node.
      */
     public synchronized List<Node> reorder(Node parent, Node n, final int index) {
@@ -650,8 +650,9 @@
     
     /**
      * This api changes indexes of the given node children.
-     * @param nodes The nodes to be moved.
-     * @param indexes the new indexes of the nodes.
+     * @param parent The parent node from which the nodes is to be reordered.
+     * @param permutation integer array with index represents current index and 
+     * value is final index after reordered
      * @return The parent node resulted by deletion of this node.
      */
     public synchronized List<Node> reorderChildren(Node parent, final int[] permutation) {
@@ -892,7 +893,7 @@
     /**
      * This returns the statuc of the model.
      * @return the status.
-     * @see #Status
+     * @see Status
      */
     public synchronized Status getStatus() {
         return status;
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/DiffFinder.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/DiffFinder.java
index 2869676..181bc41 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/DiffFinder.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/DiffFinder.java
@@ -41,7 +41,7 @@
 
 /**
  * This class is used by XDMTreeDiff (Both Sync and Undo/Redo) to find difference
- * between 2 XML and returns List<DiffEvent>
+ * between 2 XML and returns {@code List<DiffEvent>}
  *
  * @author Ayub Khan
  */
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/Difference.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/Difference.java
index c5c377f..658558a 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/Difference.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/Difference.java
@@ -51,7 +51,7 @@
     }
     
     /**
-     * @returns info on removed node.
+     * @return info on removed node.
      */
     public NodeInfo getOldNodeInfo() {
         return oldNodeInfo;
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/NodeInfo.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/NodeInfo.java
index 0dd2139..2acdf78 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/NodeInfo.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/diff/NodeInfo.java
@@ -58,7 +58,7 @@
     }
     
     /**
-     * @returns position of removed in the original parent or
+     * @return position of removed in the original parent or
      *          position of the added in the final parent.
      */
     public int getPosition() {
@@ -73,7 +73,7 @@
     }
     
     /**
-     * @returns document the node is captured in (a node in xdm tree can be in
+     * @return document the node is captured in (a node in xdm tree can be in
      * multiple document roots).
      */
     public Document getDocument() {
@@ -81,14 +81,14 @@
     }
     
     /**
-     * @returns original path from parent to root.
+     * @return original path from parent to root.
      */
     public List<Node> getOriginalAncestors() {
         return Collections.unmodifiableList(ancestors1);
     }
     
     /**
-     * @returns new path to root from parent of added or removed node.
+     * @return new path to root from parent of added or removed node.
      * Note that this path need to be updated
      */
     public List<Node> getNewAncestors() {
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Document.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Document.java
index aaca9dc..db8c3a0 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Document.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Document.java
@@ -463,7 +463,8 @@
      *   instantiate.
      * @return A new <code>Element</code> object with the following 
      *   attributes:
-     * <table border='1' cellpadding='3'>
+     * <table>
+     * <caption>Element object attributes</caption>
      * <tr>
      * <th>Attribute</th>
      * <th>Value</th>
@@ -549,7 +550,8 @@
      * @param qualifiedName The qualified name of the attribute to 
      *   instantiate.
      * @return A new <code>Attr</code> object with the following attributes:
-     * <table border='1' cellpadding='3'>
+     * <table>
+     * <caption>Attr object attributes</caption>
      * <tr>
      * <th>
      *   Attribute</th>
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Element.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Element.java
index 8b1cccb..26200b5 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Element.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Element.java
@@ -35,15 +35,15 @@
 
 /**
  * This class represents the XML Element.
- * An element is of the form <elmName[attributes]/> or <element[attributes]>[TextNode]</elmName>
+ * An element is of the form {@code <elmName[attributes]/>} or {@code <element[attributes]>[TextNode]</elmName>}
  * In terms of tokens attibute can have upto 12 tokens.
- * Start of start element token, <.
+ * Start of start element token, &lt;.
  * element namespace token, optional.
  * element namespace seperator, optional.
  * element name token.
  * whitespace token, optional.
  * end of start element token, > or />.
- * start of end element token, </.
+ * start of end element token, &lt;/.
  * element namespace token, optional.
  * element namespace seperator, optional.
  * element name token.
@@ -651,7 +651,7 @@
      * This api is provided for XDMModel purposes only.
      * @param newAttr The new attribute to be added.
      * @param index The index at which attribute to be added
-     * @throws IndexOutOfBoundsException if the index is out of range (index < 0 || index > size()).
+     * @throws IndexOutOfBoundsException if the index is out of range (index &lt; 0 || index &gt; size()).
      * @throws IllegalStateException if a newAttr has already been added to a tree.
      */
     public void addAttribute(Attribute newAttr, int index) {
@@ -666,7 +666,7 @@
      * This api is provided for XDMModel purposes only.
      * @param attr The new attribute to be moved.
      * @param index The index at which attribute to be moved
-     * @throws IndexOutOfBoundsException if the index is out of range (index < 0 || index > size()).
+     * @throws IndexOutOfBoundsException if the index is out of range (index &lt; 0 || index &gt; size()).
      * @throws IllegalStateException if a attr has not already been added to a tree.
      */
     public void reorderAttribute(Attribute attr, int index) {
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NamedNodeMapImpl.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NamedNodeMapImpl.java
index 6a4502a..9206af8 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NamedNodeMapImpl.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NamedNodeMapImpl.java
@@ -44,7 +44,7 @@
     
     /**
      * Creates new NamedNodeMapImpl
-     * @param peer a map to delegate to. It must not be modified after this contructor call!
+     * @param attributes a map to delegate to. It must not be modified after this contructor call!
      */
     public NamedNodeMapImpl(List<Attribute> attributes) {
         if (attributes == null) throw new NullPointerException();
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Node.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Node.java
index 3bdb86a..34ba03d 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Node.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Node.java
@@ -45,7 +45,7 @@
 	
 	/**
 	 * @return tree if node has already been added to the tree. 
-	 * @see #addedToTree()
+	 * @see #addedToTree(XDMModel)
 	 */
 	boolean isInTree();
 
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NodeImpl.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NodeImpl.java
index e741e22..dc56a39 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NodeImpl.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/NodeImpl.java
@@ -353,7 +353,7 @@
      * Adds the node newChild to the end of the list of children of this node.
      * Since the model is immutable checks if current node and node being added
      * are not already in tree.
-     * @param newChild - The node to add.
+     * @param node - The node to add.
      * @return The node added.
      */
     public Node appendChild(org.w3c.dom.Node node) {
@@ -372,8 +372,8 @@
      * Repalces the node oldNode with newNode.
      * Since the model is immutable checks if current node
      * and the node being put, are not already in tree.
-     * @param newChild - The new node to put in the child list.
-     * @param oldChild - The node being replaced in the list.
+     * @param newNode - The new node to put in the child list.
+     * @param oldNode - The node being replaced in the list.
      * @return The node replaced.
      */
     public Node replaceChild(org.w3c.dom.Node newNode, org.w3c.dom.Node oldNode) {
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Text.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Text.java
index ccffe6f..27e4216 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Text.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/nodes/Text.java
@@ -137,7 +137,7 @@
      * "ent" contains an <code>Element</code> node which cannot be removed.
      * @param content The content of the replacing <code>Text</code> node.
      * @return The <code>Text</code> node created with the specified content.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   NO_MODIFICATION_ALLOWED_ERR: Raised if one of the <code>Text</code> 
      *   nodes being replaced is readonly.
      * @since DOM Level 3
@@ -159,7 +159,7 @@
      * @param offset The 16-bit unit offset at which to split, starting from 
      *   <code>0</code>.
      * @return The new node, of the same type as this node.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater 
      *   than the number of 16-bit units in <code>data</code>.
      *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
@@ -190,7 +190,7 @@
      * not fit into a single <code>DOMString</code>. In such cases, the user 
      * may call <code>substringData</code> to retrieve the data in 
      * appropriately sized pieces.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
      */
     public void setData(String text) {
@@ -207,7 +207,7 @@
      * success, <code>data</code> provides access to the concatenation of 
      * <code>data</code> and the <code>DOMString</code> specified.
      * @param arg The <code>DOMString</code> to append.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      */
     public void appendData(String arg) {
@@ -226,7 +226,7 @@
      *    method invocation).
      * @param arg The <code>DOMString</code> with which the range must be 
      *   replaced.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
      *   negative or greater than the number of 16-bit units in 
      *   <code>data</code>, or if the specified <code>count</code> is 
@@ -241,7 +241,7 @@
      * Insert a string at the specified 16-bit unit offset.
      * @param offset The character offset at which to insert.
      * @param arg The <code>DOMString</code> to insert.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
      *   negative or greater than the number of 16-bit units in 
      *   <code>data</code>.
@@ -258,7 +258,7 @@
      * @return The specified substring. If the sum of <code>offset</code> and 
      *   <code>count</code> exceeds the <code>length</code>, then all 16-bit 
      *   units to the end of the data are returned.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
      *   negative or greater than the number of 16-bit units in 
      *   <code>data</code>, or if the specified <code>count</code> is 
@@ -279,7 +279,7 @@
      * not fit into a single <code>DOMString</code>. In such cases, the user 
      * may call <code>substringData</code> to retrieve the data in 
      * appropriately sized pieces.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   DOMSTRING_SIZE_ERR: Raised when it would return more characters than 
      *   fit in a <code>DOMString</code> variable on the implementation 
      *   platform.
@@ -301,7 +301,7 @@
      *   <code>offset</code> and <code>count</code> exceeds 
      *   <code>length</code> then all 16-bit units from <code>offset</code> 
      *   to the end of the data are deleted.
-     * @exception DOMException
+     * @exception org.w3c.dom.DOMException
      *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
      *   negative or greater than the number of 16-bit units in 
      *   <code>data</code>, or if the specified <code>count</code> is 
diff --git a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/visitor/XPathFinder.java b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/visitor/XPathFinder.java
index 6ab5da9..e90d8c9 100644
--- a/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/visitor/XPathFinder.java
+++ b/ide/xml.xdm/src/org/netbeans/modules/xml/xdm/visitor/XPathFinder.java
@@ -101,7 +101,7 @@
     /**
      * @return the nodes correspond to specified xpath.
      * @param root context in which to find the node.
-     * @param xpath location path for the attribute or element.
+     * @param xpathExpression location path for the attribute or element.
      */
     public List<Node> findNodes(Document root, String xpathExpression) {
         if (root == null || root.getDocumentElement() == null) {
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/CallStackFrame.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/CallStackFrame.java
index ab83435..202c95b 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/CallStackFrame.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/CallStackFrame.java
@@ -94,7 +94,7 @@
      *
      * @param struts a language name or null for default language
      * @return name of file this stack frame is stopped in
-     * @throws NoInformationException if information about source is not 
+     * @throws AbsentInformationException if information about source is not 
      *   included in class file
      */
     public abstract String getSourceName (String struts) 
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/ExceptionBreakpoint.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/ExceptionBreakpoint.java
index 2de94bc..d57b8b3 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/ExceptionBreakpoint.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/ExceptionBreakpoint.java
@@ -104,7 +104,7 @@
      *
      * @param exceptionClassName class name filter
      * @param catchType one of constants: {@link #TYPE_EXCEPTION_CAUGHT},
-     *   {@link #TYPE_EXCEPTION_UNCAUGHT, {@link #TYPE_EXCEPTION_CAUGHT_UNCAUGHT}.
+     *   {@link #TYPE_EXCEPTION_UNCAUGHT}, {@link #TYPE_EXCEPTION_CAUGHT_UNCAUGHT}.
      * @return a new breakpoint for given parameters
      */
     public static ExceptionBreakpoint create (
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/Field.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/Field.java
index 292c285..50abe05 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/Field.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/Field.java
@@ -72,7 +72,6 @@
     /**
      * Sets value of this field represented as text.
      *
-     * @return sets value of this field represented as text
      * @throws InvalidExpressionException if the expression is not correct
      */
     @Override
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDADebugger.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDADebugger.java
index d073f22..7450c31 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDADebugger.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDADebugger.java
@@ -153,15 +153,15 @@
      *
      * @param connector The listening connector
      * @param args The arguments
-     * @param services The additional services, which are added to the debugger session lookup.<br/>
-     * It is expected, that one element in the services array is a {@link Map} with following setup properties:<br/>
-     * <lu>
+     * @param services The additional services, which are added to the debugger session lookup.<br>
+     * It is expected, that one element in the services array is a {@link Map} with following setup properties:<br>
+     * <ul>
      * <li><code>name</code> with the value being the session name as String,</li>
      * <li><code>sourcepath</code> with the {@link ClassPath} value containing class path of sources used by debugger,</li>
      * <li><code>jdksources</code> with the {@link ClassPath} value containing class path of platform sources,</li>
      * <li><code>listeningCP</code> optional String representation of source class path which is in compile-on-save mode, which we listen on for artifacts changes,</li>
      * <li><code>baseDir</code> with the debugging project's base directory as {@link File}.</li>
-     * </lu>
+     * </ul>
      */
     public static JPDADebugger listen (
         ListeningConnector        connector,
@@ -201,7 +201,7 @@
      *
      * @param connector The listening connector
      * @param args The arguments
-     * @param services The additional services, which are added to the debugger session lookup.<br/>
+     * @param services The additional services, which are added to the debugger session lookup.<br>
      * See {@link #listen(com.sun.jdi.connect.ListeningConnector, java.util.Map, java.lang.Object[])} for a more detailed description of this argument.
      * @throws DebuggerStartException when {@link org.netbeans.api.debugger.DebuggerManager#startDebugging}
      * returns an empty array
@@ -223,7 +223,7 @@
      *
      * @param connector The listening connector
      * @param args The arguments
-     * @param services The additional services, which are added to the debugger session lookup.<br/>
+     * @param services The additional services, which are added to the debugger session lookup.<br>
      * See {@link #listen(com.sun.jdi.connect.ListeningConnector, java.util.Map, java.lang.Object[])} for a more detailed description of this argument.
      * @return A non-empty array of started engines (since 2.26)
      * @throws DebuggerStartException when {@link org.netbeans.api.debugger.DebuggerManager#startDebugging}
@@ -262,15 +262,15 @@
      *
      * @param hostName a name of computer to attach to
      * @param portNumber a port number
-     * @param services The additional services, which are added to the debugger session lookup.<br/>
-     * It is expected, that one element in the services array is a {@link Map} with following setup properties:<br/>
-     * <lu>
+     * @param services The additional services, which are added to the debugger session lookup.<br>
+     * It is expected, that one element in the services array is a {@link Map} with following setup properties:<br>
+     * <ul>
      * <li><code>name</code> with the value being the session name as String,</li>
      * <li><code>sourcepath</code> with the {@link ClassPath} value containing class path of sources used by debugger,</li>
      * <li><code>jdksources</code> with the {@link ClassPath} value containing class path of platform sources,</li>
      * <li><code>listeningCP</code> optional String representation of source class path which is in compile-on-save mode, which we listen on for artifacts changes,</li>
      * <li><code>baseDir</code> with the debugging project's base directory as {@link File}.</li>
-     * </lu>
+     * </ul>
      */
     public static JPDADebugger attach (
         String          hostName,
@@ -309,7 +309,7 @@
      * {@link org.netbeans.api.debugger.DebuggerManager#getDebuggerManager}.
      *
      * @param name a name of shared memory block
-     * @param services The additional services, which are added to the debugger session lookup.<br/>
+     * @param services The additional services, which are added to the debugger session lookup.<br>
      * See {@link #attach(java.lang.String, int, java.lang.Object[])} for a more detailed description of this argument.
      */
     public static JPDADebugger attach (
@@ -413,10 +413,10 @@
     public abstract void waitRunning () throws DebuggerStartException;
 
     /**
-     * Returns <code>true</code> if this debugger supports fix & continue 
+     * Returns <code>true</code> if this debugger supports fix &amp; continue 
      * (HotSwap).
      *
-     * @return <code>true</code> if this debugger supports fix & continue
+     * @return <code>true</code> if this debugger supports fix &amp; continue
      */
     public abstract boolean canFixClasses ();
 
@@ -439,7 +439,7 @@
     }
 
     /**
-     * Implements fix & continue (HotSwap). Map should contain class names
+     * Implements fix &amp; continue (HotSwap). Map should contain class names
      * as a keys, and byte[] arrays as a values.
      *
      * @param classes a map from class names to be fixed to byte[] 
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDAThread.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDAThread.java
index e5e7e49..cb2fa14 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDAThread.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/JPDAThread.java
@@ -109,7 +109,7 @@
     /**
      * Returns the operation that is being currently executed on this thread.
      * @return The current operation, or <CODE>null</CODE>.
-     * @see {@link CallStackFrame#getCurrentOperation}
+     * @see CallStackFrame#getCurrentOperation(String)
      */
     public abstract Operation getCurrentOperation();
     
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/LineBreakpoint.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/LineBreakpoint.java
index a2d9cab..78726be 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/LineBreakpoint.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/LineBreakpoint.java
@@ -397,7 +397,7 @@
     
     /**
      * Gets the binary class name that is used to submit the breakpoint.
-     * @return The binary class name, if previously set by {@link setPreferedClassName}
+     * @return The binary class name, if previously set by {@link #setPreferredClassName}
      * method, or <code>null</code> if the class name should be retrieved
      * automatically from the URL and line number.
      * @since 2.8
diff --git a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/MethodBreakpoint.java b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/MethodBreakpoint.java
index fe1d7ef..f0ac5ef 100644
--- a/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/MethodBreakpoint.java
+++ b/java/api.debugger.jpda/src/org/netbeans/api/debugger/jpda/MethodBreakpoint.java
@@ -41,11 +41,11 @@
  *
  * <br><br>
  * <b>How to use it:</b>
- * <pre style="background-color: rgb(255, 255, 153);">
+ * <pre style="background-color: rgb(255, 255, 153);"><code>
  *    DebuggerManager.addBreakpoint (MethodBreakpoint.create (
  *        "examples.texteditor.Ted*",
- *        "<init>
- *    ));</pre>
+ *        "&lt;init&gt;
+ *    ));</code></pre>
  * This breakpoint stops when some initializer of class Ted or innercalsses is
  * called.
  *
diff --git a/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SmartSteppingCallback.java b/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SmartSteppingCallback.java
index e905d02..655eb29 100644
--- a/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SmartSteppingCallback.java
+++ b/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SmartSteppingCallback.java
@@ -133,11 +133,11 @@
         /**
          * Express the necessity to perform a step at the given location.
          * @param stepSize the step size,
-         *  one of {@link #JPDAStep.STEP_LINE} or {@link #JPDAStep.STEP_MIN},
+         *  one of {@link JPDAStep#STEP_LINE} or {@link JPDAStep#STEP_MIN},
          *  or <code>0</code> for the default size.
          * @param stepDepth the step depth,
-         *  one of {@link #JPDAStep.STEP_INTO}, {@link #JPDAStep.STEP_OVER},
-         *  {@link #JPDAStep.STEP_OUT}, or <code>0</code> for the default depth.
+         *  one of {@link JPDAStep#STEP_INTO}, {@link JPDAStep#STEP_OVER},
+         *  {@link JPDAStep#STEP_OUT}, or <code>0</code> for the default depth.
          * @return the step information instance.
          * throws {@link IllegalArgumentException} when the size or depth is wrong.
          */
@@ -181,7 +181,7 @@
         
         /**
          * Get the step size.
-         * @return One of {@link #JPDAStep.STEP_LINE} or {@link #JPDAStep.STEP_MIN},
+         * @return One of {@link JPDAStep#STEP_LINE} or {@link JPDAStep#STEP_MIN},
          *  or <code>0</code> for the default size.
          */
         public int getStepSize() {
@@ -190,8 +190,8 @@
         
         /**
          * Get the step depth.
-         * @return One of {@link #JPDAStep.STEP_INTO}, {@link #JPDAStep.STEP_OVER},
-         *  {@link #JPDAStep.STEP_OUT}, or <code>0</code> for the default depth.
+         * @return One of {@link JPDAStep#STEP_INTO}, {@link JPDAStep#STEP_OVER},
+         *  {@link JPDAStep#STEP_OUT}, or <code>0</code> for the default depth.
          */
         public int getStepDepth() {
             return stepDepth;
diff --git a/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SourcePathProvider.java b/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SourcePathProvider.java
index c3b6525..ffb0543 100644
--- a/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SourcePathProvider.java
+++ b/java/api.debugger.jpda/src/org/netbeans/spi/debugger/jpda/SourcePathProvider.java
@@ -35,7 +35,7 @@
  * ("file:///C:/Sources/java/lang/Thread.java"). It allows to define
  * and modify source path.
  * All instances of this class should be registerred in
- * "Meta-inf/debugger/<DebuggerEngine ID>/org.netbeans.spi.debugger.jpda.EngineContextProvider"
+ * "Meta-inf/debugger/&lt;DebuggerEngine ID&gt;/org.netbeans.spi.debugger.jpda.EngineContextProvider"
  * files. There should be at least one instance installed.
  *
  * @author Maros Sandor, Jan Jancura
diff --git a/java/api.java/src/org/netbeans/api/java/queries/JavadocForBinaryQuery.java b/java/api.java/src/org/netbeans/api/java/queries/JavadocForBinaryQuery.java
index 4f83757..873ae8e 100644
--- a/java/api.java/src/org/netbeans/api/java/queries/JavadocForBinaryQuery.java
+++ b/java/api.java/src/org/netbeans/api/java/queries/JavadocForBinaryQuery.java
@@ -91,8 +91,8 @@
         /**
          * Get the Javadoc roots.
          * Each root should contain the main <code>index.html</code>, so that
-         * for a class <samp>pkg.Class</samp> the generated documentation would
-         * have a path <samp>pkg/Class.html</samp> relative to one of the roots.
+         * for a class <code>pkg.Class</code> the generated documentation would
+         * have a path <code>pkg/Class.html</code> relative to one of the roots.
          * @return array of roots of Javadoc documentation (may be empty but not null)
          */
         URL[] getRoots();
diff --git a/java/api.java/src/org/netbeans/api/java/queries/SourceLevelQuery.java b/java/api.java/src/org/netbeans/api/java/queries/SourceLevelQuery.java
index 3eff176..0ac63f6 100644
--- a/java/api.java/src/org/netbeans/api/java/queries/SourceLevelQuery.java
+++ b/java/api.java/src/org/netbeans/api/java/queries/SourceLevelQuery.java
@@ -128,7 +128,7 @@
      * <code>javac</code> compiler .
      * @param javaFile Java source file, Java package or source folder in question
      * @return a {@link Result} object encapsulating the source level of the Java file. Results created for source
-     * levels provided by the {@link SourceLevelQueryImplementation} do not support listening. Use {@link Result#supportsChanges()}
+     * levels provided by the {@link org.netbeans.spi.java.queries.SourceLevelQueryImplementation} do not support listening. Use {@link Result#supportsChanges()}
      * to check if the result supports listening.
      * @since 1.30
      */
@@ -378,7 +378,7 @@
          * Returns true if the result support updates and client may
          * listen on it. If false client should always ask again to
          * obtain current value. The results created for values returned
-         * by the {@link SourceLevelQueryImplementation} do not support
+         * by the {@link org.netbeans.spi.java.queries.SourceLevelQueryImplementation} do not support
          * listening.
          * @return true if the result supports changes and listening
          */
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation.java b/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation.java
index 7738e79..6c9f1bb 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation.java
@@ -35,8 +35,8 @@
  * this query, if it depends on the Java Project module and uses this style.
  * </p>
  * @see org.netbeans.api.java.queries.AccessibilityQuery
- * @see org.netbeans.api.queries.FileOwnerQuery
- * @see org.netbeans.api.project.Project#getLookup
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/FileOwnerQuery.html">FileOwnerQuery</a>
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup--">Project#getLookup</a>
  * @author Jesse Glick
  * @since org.netbeans.api.java/1 1.4
  */
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation2.java b/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation2.java
index 041add9..5c0d8d4 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation2.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/AccessibilityQueryImplementation2.java
@@ -37,8 +37,8 @@
  * this query, if it depends on the Java Project module and uses this style.
  * </p>
  * @see org.netbeans.api.java.queries.AccessibilityQuery
- * @see org.netbeans.api.queries.FileOwnerQuery
- * @see org.netbeans.api.project.Project#getLookup
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/FileOwnerQuery.html">FileOwnerQuery</a>
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup--">Project#getLookup</a>
  * @author Tomas Zezula
  * @since 1.64
  */
@@ -61,7 +61,7 @@
     interface Result {
         /**
          * Returns the accessibility.
-         * @return the {@link Accessibility}
+         * @return the {@link AccessibilityQuery.Accessibility}
          */
         @NonNull
         AccessibilityQuery.Accessibility getAccessibility();
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/JavadocForBinaryQueryImplementation.java b/java/api.java/src/org/netbeans/spi/java/queries/JavadocForBinaryQueryImplementation.java
index bfc13ac..cac60ed 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/JavadocForBinaryQueryImplementation.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/JavadocForBinaryQueryImplementation.java
@@ -33,7 +33,7 @@
  * this query, if it depends on the Java Project module and uses this style.
  * </p>
  * @see JavadocForBinaryQuery
- * @see org.netbeans.api.project.Project#getLookup
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup--">Project#getLookup</a>
  * @author David Konecny, Jesse Glick
  * @since org.netbeans.api.java/1 1.4
  */
@@ -45,7 +45,7 @@
      * <p>
      * Any absolute URL may be used but typically it will use the <code>file</code>
      * protocol for directory entries and <code>jar</code> protocol for JAR entries
-     * (e.g. <samp>jar:file:/tmp/foo.jar!/</samp>).
+     * (e.g. <code>jar:file:/tmp/foo.jar!/</code>).
      * </p>
      * <p>
      * {@link JavadocForBinaryQuery#findJavadoc} calls this method on instances registered
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/MultipleRootsUnitTestForSourceQueryImplementation.java b/java/api.java/src/org/netbeans/spi/java/queries/MultipleRootsUnitTestForSourceQueryImplementation.java
index 7a20131..f3393a6 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/MultipleRootsUnitTestForSourceQueryImplementation.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/MultipleRootsUnitTestForSourceQueryImplementation.java
@@ -39,7 +39,7 @@
  * is used for example for unit test generation and for searching test for
  * source. Usage of any other pattern will break this functionality.</p>
  *
- * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup"><code>Project.getLookup()</code></a>
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup--"><code>Project.getLookup()</code></a>
  * @see org.netbeans.api.java.queries.UnitTestForSourceQuery
  * @author Tomas Zezula
  * @since org.netbeans.api.java/1 1.7
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/SourceJavadocAttacherImplementation.java b/java/api.java/src/org/netbeans/spi/java/queries/SourceJavadocAttacherImplementation.java
index ad22ed5..16bc9a9 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/SourceJavadocAttacherImplementation.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/SourceJavadocAttacherImplementation.java
@@ -40,7 +40,7 @@
     /**
      * Attaches a source root provided by this SPI to given binary root.
      * @param root the binary root to attach sources to
-     * @param a listener notified about result when attaching is done
+     * @param listener a listener notified about result when attaching is done
      * @throws IOException in case of error
      */
     boolean attachSources(
@@ -50,7 +50,7 @@
     /**
      * Attaches a javadoc root provided by this SPI to given binary root.
      * @param root the binary root to attach javadoc to
-     * @param a listener notified about result when attaching is done
+     * @param listener a listener notified about result when attaching is done
      * @throws IOException in case of error
      */
     boolean attachJavadoc(
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/SourceLevelQueryImplementation2.java b/java/api.java/src/org/netbeans/spi/java/queries/SourceLevelQueryImplementation2.java
index 275f925..eec1e72 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/SourceLevelQueryImplementation2.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/SourceLevelQueryImplementation2.java
@@ -38,8 +38,8 @@
  * this query, if it depends on the Java Project module and uses this style.
  * </p>
  * @see org.netbeans.api.java.queries.SourceLevelQuery
- * @see org.netbeans.api.queries.FileOwnerQuery
- * @see org.netbeans.api.project.Project#getLookup
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/FileOwnerQuery.html">FileOwnerQuery</a>
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup--">Project#getLookup</a>
  * @see org.netbeans.api.java.classpath.ClassPath#BOOT
  * @author Tomas Zezula
  * @since 1.30
diff --git a/java/api.java/src/org/netbeans/spi/java/queries/UnitTestForSourceQueryImplementation.java b/java/api.java/src/org/netbeans/spi/java/queries/UnitTestForSourceQueryImplementation.java
index 61a8e3a..fa9d5df 100644
--- a/java/api.java/src/org/netbeans/spi/java/queries/UnitTestForSourceQueryImplementation.java
+++ b/java/api.java/src/org/netbeans/spi/java/queries/UnitTestForSourceQueryImplementation.java
@@ -39,7 +39,7 @@
  * is used for example for unit test generation and for searching test for
  * source. Usage of any other pattern will break this functionality.</p>
  *
- * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup"><code>Project.getLookup()</code></a>
+ * @see <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/Project.html#getLookup--"><code>Project.getLookup()</code></a>
  * @see org.netbeans.api.java.queries.UnitTestForSourceQuery
  * @deprecated Use {@link org.netbeans.spi.java.queries.MultipleRootsUnitTestForSourceQueryImplementation} instead.
  * @author David Konecny
diff --git a/java/api.maven/src/org/netbeans/api/maven/archetype/ArchetypeWizards.java b/java/api.maven/src/org/netbeans/api/maven/archetype/ArchetypeWizards.java
index ae698d6..5700fff 100644
--- a/java/api.maven/src/org/netbeans/api/maven/archetype/ArchetypeWizards.java
+++ b/java/api.maven/src/org/netbeans/api/maven/archetype/ArchetypeWizards.java
@@ -82,7 +82,7 @@
      * @return a wizard iterators
      * @since 1.0
      * @see TemplateRegistration
-     * @see #TEMPLATE_FOLDER
+     * @see <a href="@org-netbeans-modules-maven@/org/netbeans/modules/maven/api/archetype/ArchetypeWizards.html#TEMPLATE_FOLDER">#TEMPLATE_FOLDER</a>
      */
     public static WizardDescriptor.InstantiatingIterator<?> definedArchetype(String groupId, String artifactId, String version, @NullAllowed String repository, String title) {
         return org.netbeans.modules.maven.api.archetype.ArchetypeWizards.definedArchetype(groupId, artifactId, version, repository, title);
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/Roots.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/Roots.java
index 98eb06f..73e1152 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/Roots.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/Roots.java
@@ -115,7 +115,7 @@
      * @param displayNames the display names of the roots
      * @param supportIncludes when true the roots list supports includes/excludes
      * @param type of the roots, when null the roots are registered as principal roots only
-     * @param hint optional hint for {@link SourceGroupModifier}
+     * @param hint optional hint for {@link org.netbeans.api.project.SourceGroupModifier}
      * @return the Roots
      */
     public static Roots propertyBased(
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateHelper.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateHelper.java
index e2acbcb..e265b4d 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateHelper.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateHelper.java
@@ -32,7 +32,7 @@
 
 /**
  * Proxy for the {@link AntProjectHelper} which defers the update of the project metadata
- * to explicit user action. Caller has to provide implementation of {@link UpdateProject}
+ * to explicit user action. Caller has to provide implementation of {@link UpdateImplementation}
  * which takes care of updating project itself.
  * @author Tomas Zezula, Tomas Mysik
  * @see UpdateImplementation
@@ -106,8 +106,8 @@
      * In the case that the project is of current version or shared is <code>false</code> it delegates to
      * {@link AntProjectHelper#getPrimaryConfigurationData(boolean)}.
      * Otherwise it creates an in memory update of shared configuration data and returns it.
-     * @param shared if <code>true</code>, refers to <e>project.xml</e>, else refers to
-     *               <e>private.xml</e>.
+     * @param shared if <code>true</code>, refers to <code>project.xml</code>, else refers to
+     *               <code>private.xml</code>.
      * @return the configuration data that is available.
      */
     public Element getPrimaryConfigurationData(final boolean shared) {
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateImplementation.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateImplementation.java
index 45e0287..1a90272 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateImplementation.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/ant/UpdateImplementation.java
@@ -54,14 +54,14 @@
     /**
      * Creates probably an in memory update of shared configuration data and return it.
      * @return the configuration data that is available.
-     * @see {@link UpdateHelper#getPrimaryConfigurationData(boolean)}
+     * @see UpdateHelper#getPrimaryConfigurationData(boolean)
      */
     Element getUpdatedSharedConfigurationData();
 
     /**
      * Creates probably an in memory update of project properties.
      * @return a set of properties.
-     * @see {@link UpdateHelper#getProperties(String)}
+     * @see UpdateHelper#getProperties(String)
      */
     EditableProperties getUpdatedProjectProperties();
 }
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifier.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifier.java
index 0ba038a..89e25d5 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifier.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifier.java
@@ -182,7 +182,7 @@
         
         /**
          * Returns project XML element under which extra classpath related information
-         * is stored. See also {@link ClassPathSupport#Callback}
+         * is stored. See also {@link ClassPathSupport.Callback}
          * @return can return null if not applicable
          */
         String getElementName(String classpathProperty);
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifierSupport.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifierSupport.java
index bf2b505..2646ab7 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifierSupport.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathModifierSupport.java
@@ -113,7 +113,7 @@
      * @param cs the {@link ClassPathSupport}
      * @param eval the {@link PropertyEvaluator}
      * @param refHelper the {@link ReferenceHelper}
-     * @param cpUiSupportCallback the optional {@link ClassPathUiSupport.Callback} doing the {@link ClassPathSupport.Item} initialization.
+     * @param cpUiSupportCallback the optional {@link org.netbeans.modules.java.api.common.project.ui.ClassPathUiSupport.Callback} doing the {@link ClassPathSupport.Item} initialization.
      * @param classPathRoots the jar files or folders to be added (removed)
      * @param classPathProperty the classpath property into (from which) the artifacts should be added (removed).
      * @param projectXMLElementName optional project XML element name
@@ -296,7 +296,7 @@
      * @param cs the {@link ClassPathSupport}
      * @param eval the {@link PropertyEvaluator}
      * @param refHelper the {@link ReferenceHelper}
-     * @param cpUiSupportCallback the optional {@link ClassPathUiSupport.Callback} doing the {@link ClassPathSupport.Item} initialization.
+     * @param cpUiSupportCallback the optional {@link org.netbeans.modules.java.api.common.project.ui.ClassPathUiSupport.Callback} doing the {@link ClassPathSupport.Item} initialization.
      * @param artifacts the artifacts to be added
      * @param artifactElements the corresponding artifacts elements
      * @param classPathProperty the classpath property into (from which) the artifacts should be added (removed).
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathSupport.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathSupport.java
index 8445620..6a8e294 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathSupport.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/ClassPathSupport.java
@@ -616,7 +616,6 @@
         /**
          * only applicable to TYPE_JAR
          * 
-         * @return
          */
         public void setJavadocFilePath(String javadoc) {
             javadocFilePath = javadoc;
@@ -625,7 +624,6 @@
         /**
          * only applicable to TYPE_JAR
          * 
-         * @return
          */
         public void setSourceFilePath(String source) {
             sourceFilePath = source;
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/MultiModuleClassPathProvider.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/MultiModuleClassPathProvider.java
index 5c17781..84e632e 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/MultiModuleClassPathProvider.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/classpath/MultiModuleClassPathProvider.java
@@ -1278,7 +1278,7 @@
 
         /**
          * Sets javac processor {@link ClassPath} properties.
-         * @param processorClassPathProperties the names of properties containing the compiler processor path for sources, by default {@link ProjectProperties#JAVAC_PROCESSORPATH}
+         * @param processorClasspathProperties the names of properties containing the compiler processor path for sources, by default {@link ProjectProperties#JAVAC_PROCESSORPATH}
          * @return {@link Builder}
          */
         @NonNull
@@ -1290,7 +1290,7 @@
 
         /**
          * Sets javac processor {@link ClassPath} properties for test roots.
-         * @param processorClassPathProperties the names of properties containing the compiler processor path for sources, by default {@link ProjectProperties#JAVAC_PROCESSORPATH}
+         * @param processorClasspathProperties the names of properties containing the compiler processor path for sources, by default {@link ProjectProperties#JAVAC_PROCESSORPATH}
          * @return {@link Builder}
          */
         @NonNull
@@ -1301,8 +1301,8 @@
         }
 
         /**
-         * Sets a {@link JavaPlatform} type for boot {@link ClassPath} lookup.
-         * @param platformType the type of {@link JavaPlatform}, by default "j2se"
+         * Sets a {@link org.netbeans.api.java.platform.JavaPlatform} type for boot {@link ClassPath} lookup.
+         * @param platformType the type of {@link org.netbeans.api.java.platform.JavaPlatform}, by default "j2se"
          * @return {@link Builder}
          */
         @NonNull
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/BaseActionProvider.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/BaseActionProvider.java
index 59268ff..55e06ff 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/BaseActionProvider.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/BaseActionProvider.java
@@ -618,7 +618,7 @@
      */
     public static interface Callback3 extends Callback2 {
         /**
-         * Creates additional properties passed to the <i>ant</t>.
+         * Creates additional properties passed to the <i>ant</i>.
          * Called before an <i>ant</i> target is invoked. Note that call to
          * {@link #invokeAction(java.lang.String, org.openide.util.Lookup)} does
          * not necessarily means call to ant.
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ProjectHooks.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ProjectHooks.java
index f3ed198..1da4202 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ProjectHooks.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ProjectHooks.java
@@ -260,7 +260,7 @@
          * Sets the name of property referencing the project build script.
          * If not set the {@link ProjectProperties#BUILD_SCRIPT} is used.
          * @param propertyName the name of property holding the name of project's build script.
-         * @return the {@link ProjectOperationsBuilder}
+         * @return the {@link ProjectOperations.ProjectOperationsBuilder}
          */       
         @NonNull
         public ProjectOpenedHookBuilder setBuildScriptProperty(@NonNull final String propertyName) {
@@ -374,7 +374,7 @@
          * Sets the name of property referencing the project build script.
          * If not set the {@link ProjectProperties#BUILD_SCRIPT} is used.
          * @param propertyName the name of property holding the name of project's build script.
-         * @return the {@link ProjectOperationsBuilder}
+         * @return the {@link ProjectOperations.ProjectOperationsBuilder}
          */
         @NonNull
         public ProjectXmlSavedHookBuilder setBuildScriptProperty(@NonNull final String propertyName) {
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/PropertyEvaluatorProvider.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/PropertyEvaluatorProvider.java
index 80b3fa5..c70884c 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/PropertyEvaluatorProvider.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/PropertyEvaluatorProvider.java
@@ -23,7 +23,7 @@
 
 /**
  * An optional interface which implementation can be provided in
- * the project's {@link Lookup} to allow access to project's {@link PropertyEvaluator}.
+ * the project's {@link org.openide.util.Lookup} to allow access to project's {@link PropertyEvaluator}.
  * @author Tomas Zezula
  * @since 1.105
  */
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/LibrariesNode.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/LibrariesNode.java
index 823221a..ae53d90 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/LibrariesNode.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/LibrariesNode.java
@@ -207,7 +207,7 @@
     }
 
     /**
-     * Builder for {@Link LibrariesNode}.
+     * Builder for {@link LibrariesNode}.
      * @since 1.63
      */
     public static final class Builder {
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/wizards/FolderList.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/wizards/FolderList.java
index 9c51a75..8811492 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/wizards/FolderList.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/project/ui/wizards/FolderList.java
@@ -409,7 +409,6 @@
      * Returns a {@link FileFilter} accepting all files for which any
      * of its path elements starting from selectedFolder (exclusive) to the end is maching
      * ".*test.* case insensitive regular expression
-     * @param selectedFolder
      * @return the {@link FileFilter}
      */
     public static FileFilter testRootsFilter () {
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/MultiModuleGroupQuery.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/MultiModuleGroupQuery.java
index ba0257b..f9440a3 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/MultiModuleGroupQuery.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/MultiModuleGroupQuery.java
@@ -30,10 +30,10 @@
  * folders. In some cases, different presentation, or more precise information on
  * relationship between a SourceGroup and module is needed. Such information can be obtained
  * using {@code MultiModuleGroupQuery}.
- * <p/>
+ * <p>
  * The object can be obtained from project Lookup. If it is not present, the project does not support
  * java modules.
- * <p/>
+ * <p>
  * If the source level of the project is 8 or less, the {@code MultiModuleGroupQuery} may be present,
  * but will return {@code null} on all queries, as modules are not supported before JDK9.
  * @author sdedic
@@ -53,7 +53,7 @@
     
     /**
      * Determines which {@link SourceGroup}s are owned by a particular module.
-     * Returns {@link SourceGroups} contained within the module, empty array
+     * Returns {@link SourceGroup}s contained within the module, empty array
      * if module does not exist or does not contain any of the passed {@code SourceGroups}.
      * @param modName module name
      * @param groups groups, to filter.
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java
index f92eadc..43a6af3 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/queries/QuerySupport.java
@@ -264,7 +264,7 @@
     /**
      * Create a new query to find out specification source level of Java source files.
      * @param evaluator {@link PropertyEvaluator} used for obtaining needed properties.
-     * @return a {@link SourceLevelQueryImplementation} to find out specification source level of Java source files.
+     * @return a {@link org.netbeans.spi.java.queries.SourceLevelQueryImplementation} to find out specification source level of Java source files.
      * @deprecated Use {@link QuerySupport#createSourceLevelQuery(org.netbeans.spi.project.support.ant.PropertyEvaluator)}
      */
     @Deprecated
@@ -486,7 +486,7 @@
     }
     
     /**
-     * Shortcut version of {@link #createBinaryForSourceQueryImplementation(org.netbeans.modules.java.api.common.SourceRoots, org.netbeans.modules.java.api.common.SourceRoots, org.netbeans.spi.project.support.ant.AntProjectHelper, org.netbeans.spi.project.support.ant.PropertyEvaluator, java.lang.String, java.lang.String) }
+     * Shortcut version of {@link #createBinaryForSourceQueryImplementation(org.netbeans.modules.java.api.common.SourceRoots, org.netbeans.modules.java.api.common.SourceRoots, org.netbeans.spi.project.support.ant.AntProjectHelper, org.netbeans.spi.project.support.ant.PropertyEvaluator, java.lang.String[], java.lang.String[]) }
      * which assumes that build classes folder is stored in property <code>build.classes.dir</code> and
      * built test classes folder is stored in property <code>build.test.classes.dir</code>.
      *
@@ -494,8 +494,6 @@
      * @param test project test roots
      * @param helper AntProjectHelper
      * @param eval PropertyEvaluator
-     * @param sourceProps array of properties pointing to source folders
-     * @param testProps array of properties pointing to test folders
      * @return BinaryForSourceQueryImplementation
      * @since org.netbeans.modules.java.api.common/1 1.5
      */
@@ -547,12 +545,12 @@
      * @param helper project's AntProjectHelper
      * @param evaluator project's evaluator
      * @param annotationProcessingEnabledProperty property whose value says whether the annotation processing is enabled for the given project at all
-     *                                                    (will be returned from {@link Result#annotationProcessingEnabled()})
+     *                                                    (will be returned from {@link org.netbeans.api.java.queries.AnnotationProcessingQuery.Result#annotationProcessingEnabled()})
      * @param annotationProcessingEnabledInEditorProperty property whose value says whether the annotation processing should be enabled
-     *                                                    in the editor (will be returned from {@link Result#annotationProcessingEnabled())}
-     * @param runAllAnnotationProcessorsProperty when true, {@link Result#annotationProcessorsToRun()} will return null
-     * @param annotationProcessorsProperty should contain comma separated list of annotation processors to run (will be returned from  {@link Result#annotationProcessorsToRun()})
-     * @param sourceOutputProperty directory to which the annotation processors generate source files (will be returned from  {@link Result#sourceOutputProperty()})
+     *                                                    in the editor (will be returned from {@link org.netbeans.api.java.queries.AnnotationProcessingQuery.Result#annotationProcessingEnabled()})
+     * @param runAllAnnotationProcessorsProperty when true, {@link org.netbeans.api.java.queries.AnnotationProcessingQuery.Result#annotationProcessorsToRun()} will return null
+     * @param annotationProcessorsProperty should contain comma separated list of annotation processors to run (will be returned from  {@link org.netbeans.api.java.queries.AnnotationProcessingQuery.Result#annotationProcessorsToRun()})
+     * @param sourceOutputProperty directory to which the annotation processors generate source files (will be returned from  {@link org.netbeans.api.java.queries.AnnotationProcessingQuery.Result#sourceOutputDirectory()})
      * @param processorOptionsProperty options passed to the annotation processors (-Akey=value)
      * @return a {@link AnnotationProcessingQueryImplementation} to provide annotation processing configuration data for this project.
      * @since org.netbeans.modules.java.api.common/0 1.14
@@ -572,12 +570,12 @@
 
     /**
      * Returns {@link Sources} implementation designed for projects that supports adding
-     * or removing of the source roots. The returned instance also implements {@link SourceGroupModifierImplementation}
+     * or removing of the source roots. The returned instance also implements {@link org.netbeans.spi.project.SourceGroupModifierImplementation}
      * @param project the {@link Project} for which the {@link Sources} should be created
      * @param helper the {@link AntProjectHelper} of the project, used only to resolve files
      * @param evaluator the {@link PropertyEvaluator} to evaluate the properties
      * @param roots the array of {@link Roots} providing the roots of given type
-     * @return the {@link Sources} instance implementing also the {@link SourceGroupModifierImplementation} interface
+     * @return the {@link Sources} instance implementing also the {@link org.netbeans.spi.project.SourceGroupModifierImplementation} interface
      * @since 1.21
      */
     public static Sources createSources(@NonNull final Project project,
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/ui/PlatformUiSupport.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/ui/PlatformUiSupport.java
index e5524bd..77bf22c 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/ui/PlatformUiSupport.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/ui/PlatformUiSupport.java
@@ -90,7 +90,7 @@
      * The model listens on the {@link JavaPlatformManager} and update its
      * state according to the changes.
      * @param activePlatform the active project's platform, can be <code>null</code>.
-     * @param filter project specific filter to filter-out platforms that are not usable in given context
+     * @param filters project specific filter to filter-out platforms that are not usable in given context
      * @return {@link ComboBoxModel}.
      */
     public static ComboBoxModel createPlatformComboBoxModel(String activePlatform, Collection<? extends PlatformFilter> filters) {
@@ -129,7 +129,7 @@
     }
 
     /**
-     * Like {@link #storePlatform(EditableProperties, UpdateHelper, Object, Object)}, but platform name may be
+     * Like {@link #storePlatform(EditableProperties, UpdateHelper, String, Object, Object)}, but platform name may be
      * <code>null</code> (in such case the default platform is used).
      * @param props project's shared properties.
      * @param helper {@link UpdateHelper} that is capable to upgrade project metadata if needed.
@@ -163,8 +163,8 @@
      * @param props project's shared properties
      * @param helper {@link UpdateHelper} that is capable to upgrade project metadata if needed.
      * @param projectConfigurationNamespace project configuration namespace.
-     * @param platformKey the {@link PlatformKey} got from the platform model.
-     * @param sourceLevelKey {@link SourceLevelKey} representing source level; can be <code>null</code>.
+     * @param platformKey the {@code PlatformKey} got from the platform model.
+     * @param sourceLevelKey {@code SourceLevelKey} representing source level; can be <code>null</code>.
      */
     public static void storePlatform(
             @NonNull final EditableProperties props,
@@ -187,8 +187,8 @@
      * @param props project's shared properties
      * @param helper {@link UpdateHelper} that is capable to upgrade project metadata if needed.
      * @param projectConfigurationNamespace project configuration namespace.
-     * @param platformKey the {@link PlatformKey} got from the platform model.
-     * @param sourceLevelKey {@link SourceLevelKey} representing source level; can be <code>null</code>.
+     * @param platformKey the {@code PlatformKey} got from the platform model.
+     * @param sourceLevelKey {@code SourceLevelKey} representing source level; can be <code>null</code>.
      * @param updatePreferredPlatform if true the {@link PreferredProjectPlatform} will be updated
      * @since 1.37
      */
@@ -214,9 +214,9 @@
      * @param props project's shared properties
      * @param helper {@link UpdateHelper} that is capable to upgrade project metadata if needed.
      * @param projectConfigurationNamespace project configuration namespace.
-     * @param platformKey the {@link PlatformKey} got from the platform model.
-     * @param sourceLevelKey {@link SourceLevelKey} representing source level; can be <code>null</code>.
-     * @param profileKey {@link Profile} representing required profile; can be <code>null</code> for full JRE.
+     * @param platformKey the {@code PlatformKey} got from the platform model.
+     * @param sourceLevelKey {@code SourceLevelKey} representing source level; can be <code>null</code>.
+     * @param profileKey {@link org.netbeans.api.java.queries.SourceLevelQuery.Profile} representing required profile; can be <code>null</code> for full JRE.
      * @param updatePreferredPlatform if true the {@link PreferredProjectPlatform} will be updated
      * @since 1.45
      */
@@ -420,12 +420,12 @@
     }
 
     /**
-     * Return a {@link SourceLevelQuery.Profile} for an item obtained from the ComboBoxModel created by
+     * Return a {@link org.netbeans.api.java.queries.SourceLevelQuery.Profile} for an item obtained from the ComboBoxModel created by
      * the {@link PlatformUiSupport#createProfileComboBoxModel} method.
      * This method can return <code>null</code> if the profile is broken.
      * @param profileKey an item obtained from {@link ComboBoxModel} created by
      *                    {@link PlatformUiSupport#createProfileComboBoxModel}.
-     * @return {@link SourceLevelQuery.Profile} or <code>null</code> in case when profile is broken.
+     * @return {@link org.netbeans.api.java.queries.SourceLevelQuery.Profile} or <code>null</code> in case when profile is broken.
      * @throws IllegalArgumentException if the input parameter is not an object created by profile combobox model.
      * @since 1.57
      */
@@ -458,7 +458,7 @@
      * @param initialTargetLevel initial target level value, null if unknown.
      * @param minimalSpecificationVersion minimal JDK version to be displayed. It can be <code>null</code> if all the JDK versions
      *                          should be displayed (typically for Java SE project).
-     * @return {@link ComboBoxModel} of {@link SourceLevelKey}.
+     * @return {@link ComboBoxModel} of {@code SourceLevelKey}.
      * @see #createSourceLevelComboBoxModel(ComboBoxModel, String, String)
      */
     public static ComboBoxModel createSourceLevelComboBoxModel(ComboBoxModel platformComboBoxModel,
@@ -469,13 +469,13 @@
     }
 
     /**
-     * Exactly like {@link #createSourceLevelComboBoxModel(ComboBoxModel, String, String, JDK)}
+     * Exactly like {@link #createSourceLevelComboBoxModel(ComboBoxModel, String, String, SpecificationVersion)}
      * but without any minimal JDK version.
      * @param platformComboBoxModel the platform's model used for listenning.
      * @param initialSourceLevel initial source level value, null if unknown.
      * @param initialTargetLevel initial target level value, null if unknown.
-     * @return {@link ComboBoxModel} of {@link SourceLevelKey}.
-     * @see #createSourceLevelComboBoxModel(ComboBoxModel, String, String, JDK)
+     * @return {@link ComboBoxModel} of {@code SourceLevelKey}.
+     * @see #createSourceLevelComboBoxModel(ComboBoxModel, String, String, SpecificationVersion)
      */
     public static ComboBoxModel createSourceLevelComboBoxModel(ComboBoxModel platformComboBoxModel,
             String initialSourceLevel, String initialTargetLevel) {
@@ -1247,7 +1247,7 @@
     }
 
     /**
-     * Retturns a {@link JavaPlatform} for given {@link PlatformKey}
+     * Retturns a {@link JavaPlatform} for given {@code PlatformKey}
      * or null when the platformKey is either null or not bound to a platform.
      * @param platformKey
      * @return java platform
diff --git a/java/java.api.common/src/org/netbeans/modules/java/api/common/util/CommonProjectUtils.java b/java/java.api.common/src/org/netbeans/modules/java/api/common/util/CommonProjectUtils.java
index 5096963..79bfcdd 100644
--- a/java/java.api.common/src/org/netbeans/modules/java/api/common/util/CommonProjectUtils.java
+++ b/java/java.api.common/src/org/netbeans/modules/java/api/common/util/CommonProjectUtils.java
@@ -178,8 +178,8 @@
     /**
      * Creates a {@link LibraryImplementation3} that can subsequently be used with
      * both Ant and Maven based Java projects.
-     * @param classpath local library classpath for use by Ant
-     * @param src local library sources for use by Ant
+     * @param classPath local library classpath for use by Ant
+     * @param sources local library sources for use by Ant
      * @param javadoc local Javadoc path for use by Ant
      * @param mavendeps list of maven dependencies in the form of groupId:artifactId:version:type,
      *    for example org.eclipse.persistence:eclipselink:2.3.2:jar
diff --git a/java/java.hints.test/src/org/netbeans/modules/java/hints/test/api/HintTest.java b/java/java.hints.test/src/org/netbeans/modules/java/hints/test/api/HintTest.java
index ccb9f39..d671eec 100644
--- a/java/java.hints.test/src/org/netbeans/modules/java/hints/test/api/HintTest.java
+++ b/java/java.hints.test/src/org/netbeans/modules/java/hints/test/api/HintTest.java
@@ -987,7 +987,7 @@
         }
         /**Verifies that the current warning provides the given fixes.
          *
-         * @param fixes the {@link Fix#getText() } of the expected fixes
+         * @param expectedFixes the {@link Fix#getText() } of the expected fixes
          * @return itself
          * @throws AssertionError if the expected fixes do not match the provided fixes
          * @since 1.1
@@ -1009,7 +1009,7 @@
 
         /**Verifies that the current warning provides the given fixes.
          *
-         * @param fixes the {@link Fix#getText() } of the expected fixes
+         * @param bannedFixes the {@link Fix#getText() } of the expected fixes
          * @return itself
          * @throws AssertionError if the expected fixes do not match the provided fixes
          * @since 1.18
@@ -1187,7 +1187,6 @@
          * This method will compare the content of the file exactly with the provided
          * code.
          *
-         * @param fileName the name of the file that should be verified
          * @param code expected content of the resulting file.
          * @return the wrapper itself
          * @throws AssertionError if the result is not compilable
diff --git a/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProvider.java b/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProvider.java
index 5e8d38a..b0cb122 100644
--- a/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProvider.java
+++ b/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProvider.java
@@ -44,7 +44,7 @@
     /**
      * Provides identifier of category whose panel should be extended by this component provider
      * 
-     * @returns identifier of the category to be extended
+     * @return identifier of the category to be extended
      */
     ExtensibleCategory getCategory();
     
@@ -54,7 +54,7 @@
      * 
      * @param proj project to create the customizer component for
      * @param listener listener to be notified when properties should be updated
-     * @returns extension panel to be added to the specified category
+     * @return extension panel to be added to the specified category
      */
     JComponent createComponent(Project proj, ConfigChangeListener listener);
     
diff --git a/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SEProjectBuilder.java b/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SEProjectBuilder.java
index 9e8b446..2a70963 100644
--- a/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SEProjectBuilder.java
+++ b/java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SEProjectBuilder.java
@@ -366,7 +366,6 @@
     /**
      * Sets default module system properties if they are not set.
      * @param ep the {@link EditableProperties} to write the properties into.
-     * @param boolean isModular true if the project is JDK 9 modular project
      * @since 1.85
      */
     public static void createDefaultModuleProperties(
diff --git a/java/java.lsp.server/nbcode/nbproject/platform.properties b/java/java.lsp.server/nbcode/nbproject/platform.properties
index dabb95c..b289bcf 100644
--- a/java/java.lsp.server/nbcode/nbproject/platform.properties
+++ b/java/java.lsp.server/nbcode/nbproject/platform.properties
@@ -88,6 +88,7 @@
     org.netbeans.modules.apisupport.harness,\
     org.netbeans.modules.applemenu,\
     org.netbeans.modules.autoupdate.pluginimporter,\
+    org.netbeans.modules.autoupdate.ui,\
     org.netbeans.modules.beans,\
     org.netbeans.modules.bugtracking,\
     org.netbeans.modules.bugtracking.bridge,\
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
index 5ed7cbf..8cafced 100644
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/explorer/TreeViewProvider.java
@@ -476,9 +476,7 @@
 
     public final CompletionStage<Node[]> getChildren(Node nodeOrNull) {
         Node node = getNodeOrRoot(nodeOrNull);
-        return CompletableFuture.supplyAsync(() -> {
-            return node.getChildren().getNodes(true);
-        }, INITIALIZE);
+        return CompletableFuture.completedFuture(node.getChildren().getNodes());
     }
 
     public final CompletionStage<Node> getParent(Node node) {
diff --git a/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java b/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
index 033b959..30397fc 100644
--- a/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
+++ b/java/java.lsp.server/test/unit/src/org/netbeans/modules/java/lsp/server/explorer/ProjectViewTest.java
@@ -428,6 +428,8 @@
     }
     
     private TreeItem findChild(TreeItem parent, String childLabel) throws Exception {
+        TreeNodeRegistry reg = serverLookup.lookup(TreeNodeRegistry.class);
+        reg.findNode(parent.id).getChildren().getNodes(true);
         for (TreeItem candidate : getChildren(parent)) {
             if (childLabel.equals(candidate.label)) {
                 return candidate;
@@ -576,6 +578,8 @@
         
         TreeItem found = findChild(testRoot, "gradle");
         assertNotNull("Test package exists", found);
+        TreeNodeRegistry reg = serverLookup.lookup(TreeNodeRegistry.class);
+        reg.findNode(found.id).getChildren().getNodes(true);
         int[] childIds = server.getTreeViewService().getChildren(new NodeOperationParams(found.id)).get();
         assertEquals("Test package node is not empty", 1, childIds.length);
         
diff --git a/java/java.lsp.server/vscode/package.json b/java/java.lsp.server/vscode/package.json
index ceaa921..76d1199 100644
--- a/java/java.lsp.server/vscode/package.json
+++ b/java/java.lsp.server/vscode/package.json
@@ -1013,6 +1013,10 @@
 				"codeicon": "open-preview"
 			},
 			{
+				"uriExpression": "nbres:/org/openide/nodes/wait.gif",
+				"codeicon": "watch"
+			},
+			{
 				"uriExpression": "nbres:/org/netbeans/modules/cloud/oracle/resources/yellow_dot.svg",
 				"codeicon": "circle-large-outline",
 				"color": "charts.yellow"
diff --git a/java/java.platform.ui/src/org/netbeans/spi/java/platform/CustomPlatformInstall.java b/java/java.platform.ui/src/org/netbeans/spi/java/platform/CustomPlatformInstall.java
index ae4aecd..09730ab 100644
--- a/java/java.platform.ui/src/org/netbeans/spi/java/platform/CustomPlatformInstall.java
+++ b/java/java.platform.ui/src/org/netbeans/spi/java/platform/CustomPlatformInstall.java
@@ -24,7 +24,7 @@
 
 /**
  * Defines an API for registering custom Java platform installer. The installer
- * is responsible for instantiation of {@link JavaPlatform} through the provided
+ * is responsible for instantiation of {@link org.netbeans.api.java.platform.JavaPlatform} through the provided
  * TemplateWizard.Iterator. If your installer selects the platform on the local disk you
  * probably don't want to use this class, the {@link PlatformInstall} class
  * creates an platform chooser for you. You want to use this class if the
@@ -38,7 +38,7 @@
 public abstract class CustomPlatformInstall extends GeneralPlatformInstall {
     
     /**
-     * Returns the {@link WizardDescriptor#InstantiatingIterator} used to install
+     * Returns the {@link WizardDescriptor.InstantiatingIterator} used to install
      * the platform. The platform definition file returned by the instantiate method
      * should be created in the Services/Platforms/org-netbeans-api-java-Platform
      * folder on the system filesystem.
diff --git a/java/java.project.ui/src/org/netbeans/api/java/project/runner/JavaRunner.java b/java/java.project.ui/src/org/netbeans/api/java/project/runner/JavaRunner.java
index a83d09d..1f92f1d 100644
--- a/java/java.project.ui/src/org/netbeans/api/java/project/runner/JavaRunner.java
+++ b/java/java.project.ui/src/org/netbeans/api/java/project/runner/JavaRunner.java
@@ -36,12 +36,13 @@
 /**
  * <p>Class that allows to execute given file(s). API clients can check whether given
  * command is support, by calling
- * {@link #isSupported(String)} and execute the command by calling
+ * {@link #isSupported(String, Map)} and execute the command by calling
  * {@link #execute(String, Map)}. Please consult documentation of particular
  * commands for the list of supported properties.</p>
  *
  * The following "standard" properties are supported by most commands (unless stated otherwise):
  * <table>
+ * <caption>properties list</caption>
  * <tr><td>{@link #PROP_EXECUTE_FILE}      </td> <td>file to be executed (optional)</td> <td>{@link String} (absolute path) or {@link FileObject}</td></tr>
  * <tr><td>{@link #PROP_WORK_DIR}          </td> <td> working directory, project directory of execute.file will be used if missing </td> <td> {@link String} or {@link FileObject} or {@link java.io.File}</td></tr>
  * <tr><td>{@link #PROP_CLASSNAME}         </td> <td> class to execute, will be autodetected from execute.file if missing </td> <td> {@link String}</td></tr>
@@ -190,7 +191,7 @@
     public static final String PROP_WORK_DIR = "work.dir";
 
     /** JVM arguments to be used for the execution. Should be an {@link Iterable} of {@link String}s.
-     * <p>Arguments may also be contributed by {@link org.netbeans.api.extexecution.startup.StartupExtender}s;
+     * <p>Arguments may also be contributed by <a href="@org-netbeans-modules-extexecution@/org/netbeans/api/extexecution/startup/StartupExtender.html" >StartupExtender</a>s;
      * the {@link JavaPlatform} (see {@link #PROP_PLATFORM}) will be in the context,
      * as will a {@link Project} if available from {@link #PROP_EXECUTE_FILE} or {@link #PROP_WORK_DIR}.
      * @since 1.22
@@ -259,7 +260,7 @@
      * Check whether the given command is supported.
      *
      * @param command command name
-     * @param toRun either the file that would be executed, or the project folder
+     * @param properties properties
      * @return true if and only if the given command is supported for given file/folder
      *
      * @since 1.22
@@ -282,8 +283,7 @@
      * of the given command for supported properties.
      *
      * @param command command to execute
-     * @param props properties
-     * @param toRun file to run
+     * @param properties properties
      * @throws java.io.IOException if execution fails
      * @throws java.lang.UnsupportedOperationException if the given command is not supported
      *
diff --git a/java/java.project.ui/src/org/netbeans/spi/java/project/runner/JavaRunnerImplementation.java b/java/java.project.ui/src/org/netbeans/spi/java/project/runner/JavaRunnerImplementation.java
index 323514d..20b6e9b 100644
--- a/java/java.project.ui/src/org/netbeans/spi/java/project/runner/JavaRunnerImplementation.java
+++ b/java/java.project.ui/src/org/netbeans/spi/java/project/runner/JavaRunnerImplementation.java
@@ -40,7 +40,7 @@
      * Implementation of {@link JavaRunner#isSupported(java.lang.String, java.util.Map)}.
      * 
      * @param command command name
-     * @param toRun either the file that would be executed, or the project folder
+     * @param properties properties
      * @return true if and only if the given command is supported for given file/folder
      *
      * @since 1.22
@@ -51,8 +51,7 @@
      * Implementation of {@link JavaRunner#execute(java.lang.String, java.util.Map)}.
      *
      * @param command command to execute
-     * @param props properties
-     * @param toRun file to run
+     * @param properties properties
      * @throws java.io.IOException if execution fails
      *
      * @since 1.22
diff --git a/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/BrokenReferencesSupport.java b/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/BrokenReferencesSupport.java
index 16302bf..85b1494 100644
--- a/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/BrokenReferencesSupport.java
+++ b/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/BrokenReferencesSupport.java
@@ -390,7 +390,7 @@
     }
         
     /**
-     * Service which may be {@linkplain ServiceProvider registered} to download remote libraries or otherwise define them.
+     * Service which may be {@linkplain org.openide.util.lookup.ServiceProvider registered} to download remote libraries or otherwise define them.
      * @since org.netbeans.modules.java.project/1 1.35
      */
     public interface LibraryDefiner {
diff --git a/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/IncludeExcludeVisualizer.java b/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/IncludeExcludeVisualizer.java
index f70b630..b143af6 100644
--- a/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/IncludeExcludeVisualizer.java
+++ b/java/java.project.ui/src/org/netbeans/spi/java/project/support/ui/IncludeExcludeVisualizer.java
@@ -61,7 +61,7 @@
     /**
      * Create a new visualizer.
      * Initially has no roots and includes anything (equivalent to
-     * an include pattern of <samp>**</samp> and an empty exclude pattern).
+     * an include pattern of <code>**</code> and an empty exclude pattern).
      */
     public IncludeExcludeVisualizer() {}
 
diff --git a/java/java.project/src/org/netbeans/spi/java/project/classpath/ProjectModulesModifier.java b/java/java.project/src/org/netbeans/spi/java/project/classpath/ProjectModulesModifier.java
index d41a208..34cfa69 100644
--- a/java/java.project/src/org/netbeans/spi/java/project/classpath/ProjectModulesModifier.java
+++ b/java/java.project/src/org/netbeans/spi/java/project/classpath/ProjectModulesModifier.java
@@ -32,10 +32,10 @@
  * it is not sufficient just to add artifacts on classpath - modular projects cannot access unnamed module,
  * so the project would not see such classes/resources during compilation. Even if added to the module path,
  * a directive needs to be added so that compiler and runtime honour the dependency.
- * <p/>
+ * <p>
  * This SPI allows the project implementation for modular project to diverge additions to a more suitable classpath,
  * and to update the module information.
- * <p/>
+ * <p>
  * Project-specific implementation should be placed in <b>project lookup</b>. If not present, default implementation
  * will handle the requests, so that artifacts, libraries and projects will land on {@link JavaClassPathConstants#MODULE_COMPILE_PATH}
  * or {@link JavaClassPathConstants#MODULE_EXECUTE_PATH} respectively. The default implementation does nothing for projects (sources), which do
@@ -52,7 +52,7 @@
      * diverge the request to some other classpath type.
      * If the project is not modular, or modular project can use artifacts from the original classpath
      * type, the value of {@code null} should be returned. If {@code null} is returned,
-     * the {@link #addRequiredModules} or {@link #removeRequiredModuels} should not be called.
+     * the {@link #addRequiredModules} or {@link #removeRequiredModules} should not be called.
      * 
      * @param classPathType original classpath type
      * @param projectArtifact source, directory which will determine the proper {@code module-info.java}
diff --git a/java/java.project/src/org/netbeans/spi/java/project/support/JavadocAndSourceRootDetection.java b/java/java.project/src/org/netbeans/spi/java/project/support/JavadocAndSourceRootDetection.java
index cdd1e85..abe0c9f 100644
--- a/java/java.project/src/org/netbeans/spi/java/project/support/JavadocAndSourceRootDetection.java
+++ b/java/java.project/src/org/netbeans/spi/java/project/support/JavadocAndSourceRootDetection.java
@@ -65,7 +65,7 @@
     /**
      * Finds Javadoc root inside of given folder.
      *
-     * @param fo base folder to start search in; routine will traverse 5 folders
+     * @param baseFolder base folder to start search in; routine will traverse 5 folders
      *  deep before giving up; cannot be null; must be folder
      * @return found Javadoc root or null if none found
      */
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ClassIndex.java b/java/java.source.base/src/org/netbeans/api/java/source/ClassIndex.java
index 8b8cb47..8496723 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ClassIndex.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ClassIndex.java
@@ -329,8 +329,8 @@
     /**
      * Returns a set of {@link ElementHandle}s containing reference(s) to given type element.
      * @param element the {@link ElementHandle} of a {@link TypeElement} for which usages should be found
-     * @param searchKind type of reference, {@see SearchKind}
-     * @param scope to search in {@see SearchScope}
+     * @param searchKind type of reference, {@link SearchKind}
+     * @param scope to search in {@link SearchScope}
      * @return set of {@link ElementHandle}s containing the reference(s)
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -355,8 +355,8 @@
     /**
      * Returns a set of {@link ElementHandle}s containing reference(s) to given package element.
      * @param element the {@link ElementHandle} of a {@link PackageElement} for which usages should be found
-     * @param searchKind type of reference, {@see SearchKind}
-     * @param scope to search in {@see SearchScope}
+     * @param searchKind type of reference, {@link SearchKind}
+     * @param scope to search in {@link SearchScope}
      * @return set of {@link ElementHandle}s containing the reference(s)
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -382,8 +382,8 @@
     /**
      * Returns a set of source files containing reference(s) to given type element.
      * @param element the {@link ElementHandle} of a {@link TypeElement} for which usages should be found
-     * @param searchKind type of reference, {@see SearchKind}
-     * @param scope to search in {@see SearchScope}
+     * @param searchKind type of reference, {@link SearchKind}
+     * @param scope to search in {@link SearchScope}
      * @return set of {@link FileObject}s containing the reference(s)
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -408,9 +408,9 @@
     /**
      * Returns a set of source or binary files containing reference(s) to given type element.
      * @param element the {@link ElementHandle} of a {@link TypeElement} for which usages should be found
-     * @param searchKind type of reference, {@see SearchKind}
-     * @param scope to search in {@see SearchScope}
-     * @param resourceType to return resource in, {@see ResourceType}. The {@link ResourceType#BINARY}
+     * @param searchKind type of reference, {@link SearchKind}
+     * @param scope to search in {@link SearchScope}
+     * @param resourceType to return resource in, {@link ResourceType}. The {@link ResourceType#BINARY}
      * produces no result for source roots. For binary roots it does not do SourceForBinaryQuery translation and
      * returns class files. The {@link ResourceType#SOURCE} for binary roots does SourceForBinaryQuery translation
      * and returns corresponding java files or no result when there is no SourceForBinaryQuery configured for given binary root.
@@ -454,8 +454,8 @@
     /**
      * Returns a set of source files containing reference(s) to given package element.
      * @param element the {@link ElementHandle} of a {@link PackageElement} for which usages should be found
-     * @param searchKind type of reference, {@see SearchKind}
-     * @param scope to search in {@see SearchScope}
+     * @param searchKind type of reference, {@link SearchKind}
+     * @param scope to search in {@link SearchScope}
      * @return set of {@link FileObject}s containing the reference(s)
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -518,8 +518,8 @@
      * Returns {@link ElementHandle}s for all declared types in given classpath corresponding to the name.
      * @param name case sensitive prefix, case insensitive prefix, exact simple name,
      * camel case or regular expression depending on the kind parameter.
-     * @param kind of the name {@see NameKind}
-     * @param scope to search in {@see SearchScope}
+     * @param kind of the name {@link NameKind}
+     * @param scope to search in {@link SearchScope}
      * @return set of all matched declared types
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -535,8 +535,8 @@
      * Returns {@link ElementHandle}s for all declared modules in given classpath corresponding to the name.
      * @param name case sensitive prefix, case insensitive prefix, exact simple name,
      * camel case or regular expression depending on the kind parameter.
-     * @param kind of the name {@see NameKind}
-     * @param scope to search in {@see SearchScope}
+     * @param kind of the name {@link NameKind}
+     * @param scope to search in {@link SearchScope}
      * @return set of all matched modules
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -592,8 +592,8 @@
      * Returns descriptions of symbols found on the given classpath and matching the additional criteria.
      * @param name case sensitive prefix, case insensitive prefix, exact simple name,
      * camel case or regular expression depending on the kind parameter.
-     * @param kind of the name {@see NameKind}
-     * @param scope to search in {@see SearchScope}
+     * @param kind of the name {@link NameKind}
+     * @param scope to search in {@link SearchScope}
      * @return iterable of {@link Symbols} describing found symbols matching the specified criteria.
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
@@ -675,7 +675,7 @@
      * @param prefix of the package name
      * @param directOnly if true treats the packages as folders and returns only
      * the nearest component of the package.
-     * @param scope to search in {@see SearchScope}
+     * @param scope to search in {@link SearchScope}
      * @return set of all matched package names
      * It may return null when the caller is a CancellableTask&lt;CompilationInfo&gt; and is cancelled
      * inside call of this method.
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ClassIndexListener.java b/java/java.source.base/src/org/netbeans/api/java/source/ClassIndexListener.java
index 44340a6..0cf0673 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ClassIndexListener.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ClassIndexListener.java
@@ -24,7 +24,7 @@
 /**
  * Listener for changes in {@link ClassIndex}.
 * <P>
-* When attached to a {ClassIndex} it listens for addition,
+* When attached to a {@link ClassIndex} it listens for addition,
 * removal and modification of declared types.
 * <P>
 *
@@ -55,7 +55,7 @@
     
     /**
      * Called when new roots are added
-     * into the {@link ClassPath} for which the {@link ClassIndex}
+     * into the {@link org.netbeans.api.java.classpath.ClassPath} for which the {@link ClassIndex}
      * was created.
      * @param event specifying the added roots
      */
@@ -63,7 +63,7 @@
     
     /**
      * Called when root are removed
-     * from the {@link ClassPath} for which the {@link ClassIndex}
+     * from the {@link org.netbeans.api.java.classpath.ClassPath} for which the {@link ClassIndex}
      * was created.
      * @param event specifying the removed roots
      */
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ClasspathInfo.java b/java/java.source.base/src/org/netbeans/api/java/source/ClasspathInfo.java
index d73d5e3..eb21ff6 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ClasspathInfo.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ClasspathInfo.java
@@ -260,8 +260,8 @@
      * <div class="nonnormative">
      * <p>
      * It uses the {@link Document#StreamDescriptionProperty} to obtain the
-     * {@link DataObject} for the {@link Document} and creates a {@link ClasspathInfo}
-     * for the primary file of the {@link DataObject}
+     * <a href="@org-openide-loaders@/org/openide/loaders/DataObject.html">DataObject</a> for the {@link Document} and creates a {@link ClasspathInfo}
+     * for the primary file of the <a href="@org-openide-loaders@/org/openide/loaders/DataObject.html">DataObject</a>
      * </p>
      * </div>
      * @param doc a document for which the {@link ClasspathInfo} should be created
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/CodeStyle.java b/java/java.source.base/src/org/netbeans/api/java/source/CodeStyle.java
index 816819c..ef44b11 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/CodeStyle.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/CodeStyle.java
@@ -258,7 +258,7 @@
      * Determines whether the dependencies between members must be used when sorting.
      * It returns true only if some sorting option is available (default: off) and the dependency
      * inspection is enabled (default: true).
-     * <p/>
+     * <p>
      * Changing member order without looking for dependencies may result in incorrect code. A field
      * must be declared textually first, and only then it can be referenced by simple name from field
      * initializers and class/instance initializers - see defect #249199.
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/CodeStyleUtils.java b/java/java.source.base/src/org/netbeans/api/java/source/CodeStyleUtils.java
index 58e8839..d3a66b0 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/CodeStyleUtils.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/CodeStyleUtils.java
@@ -25,7 +25,7 @@
 
 /**
  *
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @since 0.123
  */
 public final class CodeStyleUtils {
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/Comment.java b/java/java.source.base/src/org/netbeans/api/java/source/Comment.java
index b21b51f..d1f4230 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/Comment.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/Comment.java
@@ -87,7 +87,6 @@
     /**
      * Define a comment, using specified style.
      * @param style the style of comment
-     * @param indent indentation of comment
      * @param text textual content of comment. With or without proper escaping
      * @return new comment
      */
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/CompilationController.java b/java/java.source.base/src/org/netbeans/api/java/source/CompilationController.java
index bbf33b1..9920222 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/CompilationController.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/CompilationController.java
@@ -51,7 +51,7 @@
 
     /**
      * Returns an instance of the {@link CompilationController} for
-     * given {@link Parser.Result} if it is a result
+     * given {@link org.netbeans.modules.parsing.spi.Parser.Result} if it is a result
      * of a java parser.
      * @param result for which the {@link CompilationController} should be
      * returned.
@@ -74,10 +74,12 @@
     /** Moves the state to required phase. If given state was already reached 
      * the state is not changed. The method will throw exception if a state is 
      * illegal required. Acceptable parameters for thid method are <BR>
-     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase.PARSED}
-     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase.ELEMENTS_RESOLVED}
-     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase.RESOLVED}
-     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase.UP_TO_DATE}   
+     * <UL>
+     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase#PARSED}
+     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase#ELEMENTS_RESOLVED}
+     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase#RESOLVED}
+     * <LI>{@link org.netbeans.api.java.source.JavaSource.Phase#UP_TO_DATE}   
+     * </UL>
      * @param phase The required phase
      * @return the reached state
      * @throws IllegalArgumentException in case that given state can not be 
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/CompilationInfo.java b/java/java.source.base/src/org/netbeans/api/java/source/CompilationInfo.java
index 2d58807..961f3bf 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/CompilationInfo.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/CompilationInfo.java
@@ -98,7 +98,7 @@
 
     /**
      * Returns an instance of the {@link CompilationInfo} for
-     * given {@link Parser.Result} if it is a result
+     * given {@link org.netbeans.modules.parsing.spi.Parser.Result} if it is a result
      * of a java parser.
      * @param result for which the {@link CompilationInfo} should be
      * returned.
@@ -206,9 +206,9 @@
     
     /**
      * Returns all top level elements defined in file for which the {@link CompilationInfo}
-     * was created. The {@link CompilationInfo} has to be in phase {@link JavaSource#Phase#ELEMENTS_RESOLVED}.
+     * was created. The {@link CompilationInfo} has to be in phase {@link JavaSource.Phase#ELEMENTS_RESOLVED}.
      * @return list of top level elements, it may return null when this {@link CompilationInfo} is not
-     * in phase {@link JavaSource#Phase#ELEMENTS_RESOLVED} or higher.
+     * in phase {@link JavaSource.Phase#ELEMENTS_RESOLVED} or higher.
      * @throws IllegalStateException is thrown when the {@link JavaSource} was created with no files
      * @since 0.14
      */
@@ -363,8 +363,8 @@
             
     /**
      * Returns {@link Document} of this {@link CompilationInfoImpl}
-     * @return Document or null when the {@link DataObject} doesn't
-     * exist or has no {@link EditorCookie}.
+     * @return Document or null when the <a href="@org-openide-loaders@/org/openide/loaders/DataObject.html">DataObject</a> doesn't
+     * exist or has no <a href="@org-openide-text@/org/openide/cookies/EditorCookie.html">EditorCookie</a>.
      * @throws java.io.IOException
      */
     public @CheckForNull Document getDocument() throws IOException { //XXX cleanup: IOException is no longer required? Used by PositionEstimator, DiffFacility
@@ -431,7 +431,7 @@
         return impl.getCachedValue(key);
     }
 
-    /**Put a value into a cache under the given key. The {@link #clearPolicy} parameter specifies the latest time the
+    /**Put a value into a cache under the given key. The {@code clearPolicy} parameter specifies the latest time the
      * references to the key and value should be cleared. The infrastructure is free to clear the references at any earlier time.
      * The clients should not depend on this cache for correctness, only to improve performance.
      *
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java b/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java
index fbab7ee..9bd36e8 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java
@@ -47,7 +47,7 @@
 /**
  * Represents a handle for {@link TreePath} which can be kept and later resolved
  * by another javac. The Javac {@link Element}s are valid only in the single
- * {@link javax.tools.CompilationTask} or single run of the
+ * {@link javax.tools.JavaCompiler.CompilationTask} or single run of the
  * {@link org.netbeans.api.java.source.CancellableTask}. If the client needs to
  * keep a reference to the {@link TreePath} and use it in the other
  * CancellableTask he has to serialize it into the {@link TreePathHandle}.
@@ -55,7 +55,7 @@
  * <p>
  * Typical usage of TreePathHandle enclElIsCorrespondingEl:
  * </p>
- * <pre>
+ * <pre>{@code
  * final TreePathHandle[] tpHandle = new TreePathHandle[1];
  * javaSource.runCompileControlTask(new CancellableTask<CompilationController>() {
  *     public void run(CompilationController compilationController) {
@@ -73,7 +73,7 @@
  *         ....
  *    }
  * },priority);
- * </pre>
+ * }</pre>
  * </div>
  *
  *
@@ -97,10 +97,10 @@
      * Resolves an {@link DocTreePath} from the {@link DocTreePathHandle}.
      *
      * @param compilationInfo representing the
-     * {@link javax.tools.CompilationTask}
+     * {@link javax.tools.JavaCompiler.CompilationTask}
      * @return resolved subclass of {@link DocTreePath} or null if the doctree does
      * not exist on the classpath/sourcepath of
-     * {@link javax.tools.CompilationTask}.
+     * {@link javax.tools.JavaCompiler.CompilationTask}.
      * @throws IllegalArgumentException when this {@link DocTreePathHandle} is not
      * created for a source represented by the compilationInfo.
      */
@@ -140,10 +140,10 @@
     }
 
     /**
-     * Returns the {@link DocTree.Kind} of this DocTreePathHandle, it returns the kind
-     * of the {@link DocTree} from which the handle was created.
+     * Returns the {@link com.sun.source.doctree.DocTree.Kind} of this DocTreePathHandle, it returns the kind
+     * of the {@link com.sun.source.doctree.DocTree} from which the handle was created.
      *
-     * @return {@link Tree.Kind}
+     * @return {@link com.sun.source.doctree.DocTree.Kind}
      */
     public DocTree.Kind getKind() {
         return this.delegate.getKind();
@@ -247,10 +247,10 @@
          * Resolves an {@link TreePath} from the {@link TreePathHandle}.
          *
          * @param javac representing the
-         * {@link javax.tools.CompilationTask}
+         * {@link javax.tools.JavaCompiler.CompilationTask}
          * @return resolved subclass of {@link Element} or null if the element
          * does not exist on the classpath/sourcepath of
-         * {@link javax.tools.CompilationTask}.
+         * {@link javax.tools.JavaCompiler.CompilationTask}.
          * @throws IllegalArgumentException when this {@link TreePathHandle} is
          * not created for a source represented by the compilationInfo.
          */
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ElementHandle.java b/java/java.source.base/src/org/netbeans/api/java/source/ElementHandle.java
index 4aa850c..1a31fb4 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ElementHandle.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ElementHandle.java
@@ -53,7 +53,7 @@
 /**
  * Represents a handle for {@link Element} which can be kept and later resolved
  * by another javac. The javac {@link Element}s are valid only in a single
- * {@link javax.tools.CompilationTask} or a single run of a
+ * {@link javax.tools.JavaCompiler.CompilationTask} or a single run of a
  * {@link CancellableTask}. A client needing to
  * keep a reference to an {@link Element} and use it in another {@link CancellableTask}
  * must serialize it into an {@link ElementHandle}.
@@ -106,10 +106,10 @@
     
     /**
      * Resolves an {@link Element} from the {@link ElementHandle}.
-     * @param compilationInfo representing the {@link javax.tools.CompilationTask}
+     * @param compilationInfo representing the {@link javax.tools.JavaCompiler.CompilationTask}
      * in which the {@link Element} should be resolved.
      * @return resolved subclass of {@link Element} or null if the elment does not exist on
-     * the classpath/sourcepath of {@link javax.tools.CompilationTask}.
+     * the classpath/sourcepath of {@link javax.tools.JavaCompiler.CompilationTask}.
      */
     @SuppressWarnings ("unchecked")     // NOI18N
     public @CheckForNull T resolve (@NonNull final CompilationInfo compilationInfo) {
@@ -331,7 +331,7 @@
      * {@link ElementHandle}. When the {@link ElementHandle} doesn't represent
      * a {@link TypeElement} it throws a {@link IllegalStateException}
      * @return the qualified name
-     * @throws an {@link IllegalStateException} when this {@link ElementHandle} 
+     * @throws IllegalStateException when this {@link ElementHandle} 
      * isn't created for the {@link TypeElement}.
      */
     public @NonNull String getBinaryName () throws IllegalStateException {
@@ -352,7 +352,7 @@
      * {@link ElementHandle}. When the {@link ElementHandle} doesn't represent
      * a {@link TypeElement} it throws a {@link IllegalStateException}
      * @return the qualified name
-     * @throws an {@link IllegalStateException} when this {@link ElementHandle} 
+     * @throws IllegalStateException when this {@link ElementHandle} 
      * isn't creatred for the {@link TypeElement}.
      */
     public @NonNull String getQualifiedName () throws IllegalStateException {
@@ -557,7 +557,7 @@
     }
     
     
-    /**@inheritDoc*/
+    /**{@inheritDoc}*/
     @Override
     public int hashCode () {
         int hashCode = 0;
@@ -569,7 +569,7 @@
         return hashCode;
     }
     
-    /**@inheritDoc*/
+    /**{@inheritDoc}*/
     @Override
     public boolean equals (Object other) {
         if (other instanceof ElementHandle) {
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ElementUtilities.java b/java/java.source.base/src/org/netbeans/api/java/source/ElementUtilities.java
index bc70661..52cb14b 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ElementUtilities.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ElementUtilities.java
@@ -289,11 +289,11 @@
      * will <b>also</b> map to the outer class' scope. The caller can then determine, based on {@link Element#getEnclosingElement()} and
      * the mapped Scope whether the symbol is directly declared, or inherited. Non-member symbols (variables, parameters, try resources, ...) 
      * map to Scope of their defining Method.
-     * <p/>
+     * <p>
      * If an Element from outer Scope is hidden by a similar Element
      * in inner scope, only the Element visible to the passed Scope is returned. For example, if both the starting (inner) class and its outer class
      * define method m(), only InnerClass.m() will be returned.
-     * <p/>
+     * <p>
      * Note that {@link Scope#getEnclosingMethod()} returns non-null even for class scopes of local or anonymous classes; check both {@link Scope#getEnclosingClass()}
      * and {@link Scope#getEnclosingMethod()} and their relationship to get the appropriate Element associated with the Scope.
      * 
@@ -677,7 +677,7 @@
     /**
      * Finds all unimplemented methods in the given type and supertypes, but possibly include
      * also interface default methods.
-     * <p/>
+     * <p>
      * If the platform configured for the type is older than JDK8, the method is equivalent
      * to {@link #findUnimplementedMethods(javax.lang.model.element.TypeElement)}. If `includeDefaults'
      * is {@code true}, returns also default methods as if the methods were required to be
@@ -819,7 +819,7 @@
      *         See method format for more details on parameter types.</dd>
      * </dl>
      * 
-     * @param elementDescription the description of the element that should be checked for existence
+     * @param description the description of the element that should be checked for existence
      * @return the found element, or null if not available
      * @since 0.115
      */
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/GeneratorUtilities.java b/java/java.source.base/src/org/netbeans/api/java/source/GeneratorUtilities.java
index b230e37..9ad8712 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/GeneratorUtilities.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/GeneratorUtilities.java
@@ -186,7 +186,7 @@
 
     /**
      * Inserts a member to a class. Using the rules specified in the {@link CodeStyle}
-     * it finds the proper place for the member and calls {@link TreeMaker.insertClassMember}
+     * it finds the proper place for the member and calls {@link TreeMaker#insertClassMember}
      *
      * @param clazz the class to insert the member to
      * @param member the member to add
@@ -316,7 +316,7 @@
 
     /**
      * Inserts members to a class. Using the rules specified in the {@link CodeStyle}
-     * it finds the proper place for each of the members and calls {@link TreeMaker.insertClassMember}
+     * it finds the proper place for each of the members and calls {@link TreeMaker#insertClassMember}
      *
      * @param clazz the class to insert the members to
      * @param members the members to insert
@@ -377,7 +377,7 @@
     
     /**
      * Inserts a member to a class. Using the rules specified in the {@link CodeStyle}
-     * it finds the proper place for the member and calls {@link TreeMaker.insertClassMember}
+     * it finds the proper place for the member and calls {@link TreeMaker#insertClassMember}
      *
      * @param clazz the class to insert the member to
      * @param member the member to add
@@ -495,7 +495,7 @@
      * if 'collectNames' is set, it collects field names from the class definition. If
      * 'insertedName' is not null, it also collects references to that name in 
      * 'revDependencies'.
-     * <p/>
+     * <p>
      * For the secondPass, set 'collectNames' to false: the visitor will collect
      * dependencies of the scanned node into 'dependencies'. After 2 passes,
      * the revDependencies and dependencies can be used to determine partial order
@@ -664,7 +664,7 @@
     
     /**
      * Inserts members to a class. Using the rules specified in the {@link CodeStyle}
-     * it finds the proper place for each of the members and calls {@link TreeMaker.insertClassMember}
+     * it finds the proper place for each of the members and calls {@link TreeMaker#insertClassMember}
      *
      * @param clazz the class to insert the members to
      * @param members the members to insert
@@ -751,7 +751,7 @@
         return createMethod(method, clazz, false);
     }
 
-    /**Create a new method tree for the given method element. The method will be created as if it were member of {@link asMemberOf} type
+    /**Create a new method tree for the given method element. The method will be created as if it were member of {@code asMemberOf} type
      * (see also {@link Types#asMemberOf(javax.lang.model.type.DeclaredType,javax.lang.model.element.Element)}).
      * The new method will have an empty body.
      *
@@ -1517,7 +1517,8 @@
      * converted from a single value into an array.
      *
      * The typical trees passed as {@code attributeValuesToAdd} are:
-     * <table border="1">
+     * <table>
+     * <caption>Typical tree</caption>
      *     <tr>
      *         <th>attribute type</th>
      *         <th>expected tree type</th>
@@ -1570,7 +1571,8 @@
      * {@link CompilationUnitTree} from {@code package-info.java}.
      *
      * The typical trees passed as {@code attributeValuesToAdd} are:
-     * <table border="1">
+     * <table>
+     * <caption>Typical tree</caption>
      *     <tr>
      *         <th>attribute type</th>
      *         <th>expected tree type</th>
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/JavaSource.java b/java/java.source.base/src/org/netbeans/api/java/source/JavaSource.java
index 43b3b32..2adfab8 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/JavaSource.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/JavaSource.java
@@ -325,7 +325,7 @@
     }
 
     /**
-     * Returns a {@link JavaSource} instance associated to the given {@link javax.swing.Document},
+     * Returns a {@link JavaSource} instance associated to the given {@link Document},
      * it returns null if the {@link Document} is not
      * associated with data type providing the {@link JavaSource}.
      * @param doc {@link Document} for which the {@link JavaSource} should be found/created.
@@ -410,7 +410,7 @@
      * this task does not finish.<BR>
      * @see org.netbeans.api.java.source.CancellableTask for information about implementation requirements
      * @param task The task which.
-     * @param shared if true the java compiler may be reused by other {@link org.netbeans.api.java.source.CancellableTasks},
+     * @param shared if true the java compiler may be reused by other {@link org.netbeans.api.java.source.CancellableTask}s,
      * the value false may have negative impact on the IDE performance.
      * <div class="nonnormative">
      * <p>
@@ -595,11 +595,11 @@
      * the given task and returns, the task is performed when the background scan completes by
      * the thread doing the background scan.
      * @param task to be performed
-     * @param shared if true the java compiler may be reused by other {@link org.netbeans.api.java.source.CancellableTasks},
+     * @param shared if true the java compiler may be reused by other {@link org.netbeans.api.java.source.CancellableTask}s,
      * the value false may have negative impact on the IDE performance.
      * @return {@link Future} which can be used to find out the sate of the task {@link Future#isDone} or {@link Future#isCancelled}.
      * The caller may cancel the task using {@link Future#cancel} or wait until the task is performed {@link Future#get}.
-     * @throws IOException encapsulating the exception thrown by {@link CancellableTasks#run}
+     * @throws IOException encapsulating the exception thrown by {@link CancellableTask#run}
      * @since 0.12
      */
     public @NonNull Future<Void> runWhenScanFinished (final @NonNull Task<CompilationController> task, final boolean shared) throws IOException {
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/JavaSourceTaskFactory.java b/java/java.source.base/src/org/netbeans/api/java/source/JavaSourceTaskFactory.java
index 4904293..75141df 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/JavaSourceTaskFactory.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/JavaSourceTaskFactory.java
@@ -43,9 +43,9 @@
  *
  * This factory should be registered in the global lookup using {@link org.openide.util.lookup.ServiceProvider}.
  * 
- * @see EditorAwareJavaSourceTaskFactory
- * @see CaretAwareJavaSourceTaskFactory
- * @see LookupBasedJavaSourceTaskFactory
+ * @see <a href="@org-netbeans-modules-java-source@/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.html">EditorAwareJavaSourceTaskFactory</a>
+ * @see <a href="@org-netbeans-modules-java-source@/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.html">CaretAwareJavaSourceTaskFactory</a>
+ * @see <a href="@org-netbeans-modules-java-source@/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.html">LookupBasedJavaSourceTaskFactory</a>
  *
  * @author Jan Lahoda
  */
@@ -97,7 +97,7 @@
     }
 
     /**Create task for a given file. This task will be registered into the {@link JavaSource}
-     * parsing harness with a given {@link #getPriority priority} and {@link #getPhase phase}.
+     * parsing harness with a given {@link Priority priority} and {@link Phase phase}.
      *
      * Please note that this method should run as quickly as possible.
      *
@@ -112,14 +112,14 @@
      * of this factory.
      *
      * If this list changes, a change event should be fired to all registered
-     * {@link ChangeListener}s.
+     * {@link javax.swing.event.ChangeListener}s.
      *
      * @return list of {@link FileObject} on which tasks from this factory should be
      * registered.
      * @see #createTask
-     * @see #addChangeListener
-     * @see EditorAwareJavaSourceTaskFactory
-     * @see CaretAwareJavaSourceTaskFactory
+     * {@code addChangeListener}
+     * @see <a href="@org-netbeans-modules-java-source@/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.html">EditorAwareJavaSourceTaskFactory</a>
+     * @see <a href="@org-netbeans-modules-java-source@/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.html">CaretAwareJavaSourceTaskFactory</a>
      */
     protected abstract @NonNull Collection<FileObject> getFileObjects();
 
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ModificationResult.java b/java/java.source.base/src/org/netbeans/api/java/source/ModificationResult.java
index beda9b8..99ee64b 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ModificationResult.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ModificationResult.java
@@ -440,7 +440,7 @@
      * Returned string represents preview of resulting source. No difference
      * really is applied. Respects {@code isExcluded()} flag of difference.
      * 
-     * @param   there can be more resulting source, user has to specify
+     * @param fileObject there can be more resulting source, user has to specify
      *          which wants to preview.
      * @return  if changes are applied source looks like return string
      * @throws  IllegalArgumentException if the provided {@link FileObject} is not
@@ -556,7 +556,7 @@
          * Gets flag if it is possible to write to guarded sections.
          * @return {@code true} in case the difference may be written even into
          *          guarded sections.
-         * @see #guards(boolean)
+         * @see #setCommitToGuards(boolean)
          * @since 0.33
          */
         public boolean isCommitToGuards() {
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/ScanUtils.java b/java/java.source.base/src/org/netbeans/api/java/source/ScanUtils.java
index 253d0b6..da815f1 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/ScanUtils.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/ScanUtils.java
@@ -43,7 +43,7 @@
  * There are two variants of {@link JavaSource#runUserActionTask}, which support <b>abort and restart</b> of the user task,
  * if the task indicates incomplete data and the scanning is in progress. The restart is done in a hope that, after scanning
  * completes, the missing types or elements will appear.
- * <p/>
+ * <p>
  * The user task may use other provided wrapper methods to:
  * <ul>
  * <li>{@link #checkElement} to assert element's presence and validity
@@ -51,9 +51,9 @@
  * </ul>
  * Note that even though the user task run when all the parsing/scanning is over, there's no guarantee that data obtained from
  * the parser structures will be complete and valid - the source code may be really broken, dependency could be missing etc.
- * <p/>
+ * <p>
  * An example pattern how to use this class is:
- * <code><pre>
+ * <pre>{@code
  * final TreePath tp = ... ; // obtain a tree path
  * ScanUtils.waitUserActionTask(new Task&lt;{@link CompilationController}>() {
  *      public void run(CompilationController ctrl) {
@@ -67,7 +67,7 @@
  *          }
  *      }
  * };
- * </pre></code>
+ * }</pre>
  *
  * @author Svata Dedic
  * @since 0.95
@@ -79,7 +79,7 @@
      * Runs the user task through {@link JavaSource#runUserActionTask}, and returns Future completion handle for it. 
      * The executed Task may indicate that it does not have enough data when scan is in progress, through e.g. {@link #checkElement}.
      * If so, processing of the Task will abort, and will be restarted when the scan finishes.
-     * <p/>
+     * <p>
      * For more details, see description of {@link #postUserTask(org.netbeans.modules.parsing.api.Source, org.netbeans.modules.parsing.api.UserTask) }.
      *
      * @param src JavaSource to process
@@ -108,12 +108,12 @@
      * Runs the user task, and returns Future completion handle for it. 
      * The executed Task may indicate that it does not have enough data when scan is in progress, through e.g. {@link #checkElement}.
      * If so, processing of the Task will abort, and will be restarted when the scan finishes.
-     * <p/>
+     * <p>
      * The task <b>may run asynchronously</b>, pay attention to synchronization of task's output
      * data. The first attempt to run the task MAY execute synchronously. Do not call the method from
      * Swing EDT, if the task typically takes non-trivial time to complete (see {@link JavaSource#runUserActionTask}
      * for discussion).
-     * <p/>
+     * <p>
      * As {@code postUserTask} may decide to defer the task execution, {@code postUserTask} cannot reliably report exceptions thrown
      * from the parsing infrastructure. The Task itself is responsible for handling exceptions and propagating them
      * to the caller, the {@code post} method will just log the exception.
@@ -143,10 +143,10 @@
      * The executed Task may indicate that it does not have enough data when scan is in progress, through e.g. {@link #checkElement}.
      * If so, processing of the Task will abort, and will be restarted when the scan finishes. The {@code waitUserActionTask} method
      * will wait until the rescheduled task completes.
-     * <p/>
+     * <p>
      * Unlike {@link #postUserActionTask}, this method propagates exceptiosn from the Task to the caller, even if the Task
      * is postponed and waited for.
-     * <p/>
+     * <p>
      * Calling this method from Swing ED thread is prohibited.
      *
      * @param src java source to process
@@ -198,17 +198,17 @@
      * The executed Task may indicate that it does not have enough data when scan is in progress, through e.g. {@link #checkElement}.
      * If so, processing of the Task will abort, and will be restarted when the scan finishes. The {@code waitUserTask} method
      * will wait until the rescheduled task completes.
-     * <p/>
+     * <p>
      * Unlike {@link #postUserTask}, this method propagates exceptiosn from the Task to the caller, even if the Task
      * is postponed and waited for.
-     * <p/>
+     * <p>
      * Calling this method from Swing ED thread is prohibited.
      *
      * @param src java source to process
-     * @param uat task to execute
+     * @param task task to execute
      * 
      * @throws ParseException in the case of a failure in the user task, or scheduling failure (propagated from {@link JavaSource#runUserActionTask},
-     * {@link ParserManager#parseWhenScanFinished(java.util.Collection, org.netbeans.modules.parsing.api.UserTask) 
+     * {@link ParserManager#parseWhenScanFinished(java.util.Collection, org.netbeans.modules.parsing.api.UserTask) }
      *
      * @see ParserManager#parse(java.util.Collection, org.netbeans.modules.parsing.api.UserTask) 
      * @see ParserManager#parseWhenScanFinished(java.util.Collection, org.netbeans.modules.parsing.api.UserTask) 
@@ -259,25 +259,25 @@
 
     /**
      * Checks that the Element is valid, is not erroneous. If the Element is {@code null} or erroneous and
-     * scanning is running, the method throws a {@link RetryWhenScanFinished} exception to
+     * scanning is running, the method throws a {@link ScanUtils.RetryWhenScanFinished} exception to
      * indicate that the action should be retried. The method should be only used in code, which
      * is directly or indirectly executed by {@link #waitUserActionTask}, otherwise {@link IllegalStateException}
      * will be thrown.
-     * <p/>
+     * <p>
      * If scan is not running, the method always returns the value of 'e' parameter.
-     * <p/>
+     * <p>
      * An example usage is as follows:
      * <code>
      * TreePath tp = ...;
      * Element e = checkElement(cu.getTrees().getElement(tp));
      * </code>
-     * <p/>
+     * <p>
      * <b>Note:</b> the method may be only called from within {@link #waitUserActionTask}, it aborts
      * the current processing under assumption the user task will be restarted. It is illegal to call the
      * method if not running as user task - IllegalStateException will be thrown.
      *
      * @param e the Element to check
-     * @param s the source of the Element
+     * @param info the source of the Element
      * @return the original Element, to support 'fluent' pattern
      *
      * @throws IllegalStateException if not called from within user task
@@ -305,8 +305,8 @@
     /**
      * Aborts the user task and calls it again when parsing finishes, if a typename is not available.
      *
-     * @param el the Element which causes the trouble
-     * @param s source of the Element
+     * @param ci the Element which causes the trouble
+     * @param handle of the Element
      * @throws IllegalStateException if not called from within {@link #waitUserActionTask} and the like
      *
      */
@@ -512,7 +512,7 @@
      * retried when parsing is finished. The exception derives from the {@link Error}
      * class to bypass ill-written code, which caught {@link RuntimeException} or
      * even {@link Exception}.
-     * <p/>
+     * <p>
      * The exception is interpreted by the Java Source infrastructure and is not
      * meant to be ever thrown or caught by regular application code. It's deliberately
      * package-private so users are not tempted to throw or catch it.
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/SourceUtils.java b/java/java.source.base/src/org/netbeans/api/java/source/SourceUtils.java
index b2e713f..e58a6a2 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/SourceUtils.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/SourceUtils.java
@@ -484,7 +484,7 @@
      * @return the defining {@link FileObject} or null if it cannot be
      * found
      *
-     * @deprecated use {@link getFile(ElementHandle, ClasspathInfo)}
+     * @deprecated use {@link #getFile(ElementHandle, ClasspathInfo)}
      */
     @Deprecated
     public static FileObject getFile (Element element, final ClasspathInfo cpInfo) {
@@ -1290,7 +1290,7 @@
     /**
      * Returns names of all modules within given scope.
      * @param info the CompilationInfo used to resolve modules
-     * @param scope to search in {@see SearchScope}
+     * @param scope to search in {@link ClassIndex.SearchScope}
      * @return set of module names
      * @since 2.23
      */
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java b/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
index c467a59..e45ae80 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
@@ -92,7 +92,7 @@
  * You can obtain appropriate instance of this class by getting it from working
  * copy:
  *
- * <pre>
+ * <pre>{@code
  * CancellableTask task = new CancellableTask<WorkingCopy>() {
  *
  *        public void run(WorkingCopy workingCopy) throws Exception {
@@ -101,9 +101,9 @@
  *        }
  *        ...
  *    }; 
- * </pre>
+ * }</pre>
  *
- * @see <a href="http://wiki.netbeans.org/wiki/view/JavaHT_Modification">How do I do modification to a source file?</a> 
+ * @see <a href="https://netbeans.apache.org/wiki/JavaHT_Modification">How do I do modification to a source file?</a>
  *
  * @author Tom Ball
  * @author Pavel Flaska
@@ -1134,7 +1134,7 @@
     /**
      * Creates a new TryTree.
      *
-     * @param resource     the resources of the try clause. The elements of the list
+     * @param resources     the resources of the try clause. The elements of the list
      *                     should either be {@link VariableTree}s or {@link ExpressionTree}s.
      * @param tryBlock     the statement block in the try clause.
      * @param catches      the list of catch clauses, or an empty list.
@@ -1257,8 +1257,6 @@
      * @param name name of the binding variable
      * @param type the type of the pattern
      * @return the newly created BindingPatternTree
-     * @throws NoSuchMethodException if the used javac does not support
-     *                               BindingPatternTree.
      */
     @Deprecated
     public Tree BindingPattern(CharSequence name,
@@ -1268,7 +1266,7 @@
     
       /**
      * Creates a new Tree for a given VariableTree
-     * @specication : 15.20.2
+     * specication : 15.20.2
      * @param vt the VariableTree of the pattern
      * @see com.sun.source.tree.BindingPatternTree
      * @return the newly created BindingPatternTree
@@ -1569,7 +1567,7 @@
      * </pre>
      *
      * You can get it e.g. with this code:
-     * <pre>
+     * <pre>{@code
      *   TreeMaker make = workingCopy.getTreeMaker();
      *   ClassTree node = ...;
      *   // create method modifiers
@@ -1596,7 +1594,7 @@
      *   );
      *   // rewrite the original class node with the new one containing newMethod
      *   workingCopy.rewrite(node, <b>make.addClassMember(node, newMethod)</b>);
-     * </pre>
+     * }</pre>
      *
      * @param   clazz    class tree containing members list.
      * @param   member   element to be appended to members list.
@@ -3305,7 +3303,7 @@
      * Marks a tree as a replacement of some old one. The hint may cause surrounding whitespace to be 
      * carried over to the new tree and comments to be attached to the same (similar) positions
      * as in the old tree. 
-     * <p/>
+     * <p>
      * If 'defaultOnly' is true, the hint is only added if no previous hint exists. You generally want
      * to force the hint, in code manipulation operations. Bulk tree transformers should preserve existing
      * hints - the {@link TreeUtilities#translate} preserves existing relationships.
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/TreePathHandle.java b/java/java.source.base/src/org/netbeans/api/java/source/TreePathHandle.java
index bd7b3e3..286427f 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/TreePathHandle.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/TreePathHandle.java
@@ -61,7 +61,7 @@
 /**                                                                                                                                                                                                                            
  * Represents a handle for {@link TreePath} which can be kept and later resolved                                                                                                                                               
  * by another javac. The Javac {@link Element}s are valid only in the single                                                                                                                                                   
- * {@link javax.tools.CompilationTask} or single run of the                                                                                                                                                                    
+ * {@link javax.tools.JavaCompiler.CompilationTask} or single run of the                                                                                                                                                                    
  * {@link org.netbeans.api.java.source.CancellableTask}. If the client needs to                                                                                                                                                
  * keep a reference to the {@link TreePath} and use it in the other CancellableTask                                                                                                                                            
  * he has to serialize it into the {@link TreePathHandle}.                                                                                                                                                                     
@@ -69,7 +69,7 @@
  * <p>                                                                                                                                                                                                                         
  * Typical usage of TreePathHandle enclElIsCorrespondingEl:                                                                                                                                                                    
  * </p>                                                                                                                                                                                                                        
- * <pre>                                                                                                                                                                                                                       
+ * <pre>{@code                                                                                                                                                                                                       
  * final TreePathHandle[] tpHandle = new TreePathHandle[1];                                                                                                                                                                    
  * javaSource.runCompileControlTask(new CancellableTask<CompilationController>() {                                                                                                                                             
  *     public void run(CompilationController compilationController) {                                                                                                                                                          
@@ -79,7 +79,7 @@
  *         treePathHandle[0] = TreePathHandle.create (element, compilationController);                                                                                                                                         
  *    }                                                                                                                                                                                                                        
  * },priority);                                                                                                                                                                                                                
- *                                                                                                                                                                                                                             
+ *                                                                                                                                                                                        
  * otherJavaSource.runCompileControlTask(new CancellableTask<CompilationController>() {                                                                                                                                        
  *     public void run(CompilationController compilationController) {                                                                                                                                                          
  *         parameter.toPhase(Phase.RESOLVED);                                                                                                                                                                                  
@@ -87,7 +87,7 @@
  *         ....                                                                                                                                                                                                                
  *    }                                                                                                                                                                                                                        
  * },priority);                                                                                                                                                                                                                
- * </pre>                                                                                                                                                                                                                      
+ * }</pre>                                                                                                                                                                                                                      
  * </div>                                                                                                                                                                                                                      
  *                                                                                                                                                                                                                             
  *                                                                                                                                                                                                                             
@@ -117,9 +117,9 @@
                                                                                                                                                                                                                                
     /**                                                                                                                                                                                                                        
      * Resolves an {@link TreePath} from the {@link TreePathHandle}.                                                                                                                                                           
-     * @param compilationInfo representing the {@link javax.tools.CompilationTask}                                                                                                                                             
+     * @param compilationInfo representing the {@link javax.tools.JavaCompiler.CompilationTask}                                                                                                                                             
      * @return resolved subclass of {@link Element} or null if the element does not exist on                                                                                                                                    
-     * the classpath/sourcepath of {@link javax.tools.CompilationTask}.
+     * the classpath/sourcepath of {@link javax.tools.JavaCompiler.CompilationTask}.
      * @throws IllegalArgumentException when this {@link TreePathHandle} is not created for a source
      * represented by the compilationInfo.
      */                                                                                                                                                                                                                        
@@ -151,9 +151,9 @@
                                                                                                                                                                                                                                
     /**                                                                                                                                                                                                                        
      * Resolves an {@link Element} from the {@link TreePathHandle}.                                                                                                                                                            
-     * @param compilationInfo representing the {@link javax.tools.CompilationTask}                                                                                                                                             
+     * @param info representing the {@link javax.tools.JavaCompiler.CompilationTask}                                                                                                                                             
      * @return resolved subclass of {@link Element} or null if the element does not exist on                                                                                                                                    
-     * the classpath/sourcepath of {@link javax.tools.CompilationTask}.                                                                                                                                                        
+     * the classpath/sourcepath of {@link javax.tools.JavaCompiler.CompilationTask}.                                                                                                                                                        
      */                                                                                                                                                                                                                        
     public Element resolveElement(final CompilationInfo info) {
         Parameters.notNull("info", info);
@@ -166,7 +166,7 @@
     }
     
     /**
-     * returns {@link ElemntHandle} corresponding to this {@link TreePathHandle}
+     * returns {@link ElementHandle} corresponding to this {@link TreePathHandle}
      * @return {@link ElementHandle} or null if this {@link TreePathHandle} does
      * not represent any {@link Element}
      * @since 0.93
@@ -177,11 +177,11 @@
     }
                                                                                                                                                                                                                                
     /**                                                                                                                                                                                                                        
-     * Returns the {@link Tree.Kind} of this TreePathHandle,                                                                                                                                                                   
-     * it returns the kind of the {@link Tree} from which the handle                                                                                                                                           
+     * Returns the {@link com.sun.source.tree.Tree.Kind} of this TreePathHandle,                                                                                                                                                                   
+     * it returns the kind of the {@link com.sun.source.tree.Tree} from which the handle                                                                                                                                           
      * was created.                                                                                                                                                                                                            
      *                                                                                                                                                                                                                         
-     * @return {@link Tree.Kind}                                                                                                                                                                                               
+     * @return {@link com.sun.source.tree.Tree.Kind}                                                                                                                                                                                               
      */                                                                                                                                                                                                                        
     public Tree.Kind getKind() {
         return this.delegate.getKind();
@@ -190,7 +190,7 @@
     /**                                                                                                                                                                                                                        
      * Factory method for creating {@link TreePathHandle}.                                                                                                                                                                     
      *                                                                                                                                                                                                                         
-     * @param treePath for which the {@link TrePathHandle} should be created.                                                                                                                                                  
+     * @param treePath for which the {@link TreePathHandle} should be created.                                                                                                                                                  
      * @param info 
      * @return a new {@link TreePathHandle}                                                                                                                                                                                    
      * @throws java.lang.IllegalArgumentException if arguments are not supported
@@ -254,7 +254,7 @@
     /**                                                                                                                                                                                                                        
      * Factory method for creating {@link TreePathHandle}.                                                                                                                                                                     
      *                                                                                                                                                                                                                         
-     * @param element for which the {@link TrePathHandle} should be created.                                                                                                                                                  
+     * @param element for which the {@link TreePathHandle} should be created.                                                                                                                                                  
      * @param info 
      * @return a new {@link TreePathHandle}                                                                                                                                                                                    
      * @throws java.lang.IllegalArgumentException if arguments are not supported
@@ -421,9 +421,9 @@
 
         /**                                                                                                                                                                                                                        
          * Resolves an {@link TreePath} from the {@link TreePathHandle}.                                                                                                                                                           
-         * @param compilationInfo representing the {@link javax.tools.CompilationTask}                                                                                                                                             
+         * @param compilationInfo representing the {@link javax.tools.JavaCompiler.CompilationTask}                                                                                                                                             
          * @return resolved subclass of {@link Element} or null if the element does not exist on                                                                                                                                    
-         * the classpath/sourcepath of {@link javax.tools.CompilationTask}.
+         * the classpath/sourcepath of {@link javax.tools.JavaCompiler.CompilationTask}.
          * @throws IllegalArgumentException when this {@link TreePathHandle} is not created for a source
          * represented by the compilationInfo.
          */
@@ -510,9 +510,9 @@
 
         /**                                                                                                                                                                                                                        
          * Resolves an {@link Element} from the {@link TreePathHandle}.                                                                                                                                                            
-         * @param compilationInfo representing the {@link javax.tools.CompilationTask}                                                                                                                                             
+         * @param compilationInfo representing the {@link javax.tools.JavaCompiler.CompilationTask}                                                                                                                                             
          * @return resolved subclass of {@link Element} or null if the element does not exist on                                                                                                                                    
-         * the classpath/sourcepath of {@link javax.tools.CompilationTask}.                                                                                                                                                        
+         * the classpath/sourcepath of {@link javax.tools.JavaCompiler.CompilationTask}.                                                                                                                                                        
          */
         public Element resolveElement(final CompilationInfo info) {
             if (correspondingEl != null) {
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/TreeUtilities.java b/java/java.source.base/src/org/netbeans/api/java/source/TreeUtilities.java
index d0eecdb..d1c917c 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/TreeUtilities.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/TreeUtilities.java
@@ -1044,7 +1044,7 @@
 
     /**Find span of the {@link ClassTree}'s body in the source.
      * Returns starting and ending offset of the body in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param clazz class which body should be searched for
@@ -1082,7 +1082,7 @@
     
     /**Find span of the {@link ClassTree#getSimpleName()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param clazz class which name should be searched for
@@ -1095,7 +1095,7 @@
     
     /**Find span of the {@link MethodTree#getName()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param method method which name should be searched for
@@ -1128,7 +1128,7 @@
     
     /**Find span of the {@link VariableTree#getName()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param var variable which name should be searched for
@@ -1141,7 +1141,7 @@
     
     /**Find span of the {@link LabeledStatementTree#getLabel()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param lst labeled statement which name should be searched for
@@ -1154,7 +1154,7 @@
     
     /**Find span of the {@link TypeParameterTree#getName()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param tpt type parameter which name should be searched for
@@ -1167,7 +1167,7 @@
     
     /**Find span of the {@link LabeledStatementTree#getLabel()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param brk labeled statement which name should be searched for
@@ -1180,7 +1180,7 @@
     
     /**Find span of the {@link LabeledStatementTree#getLabel()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param cont labeled statement which name should be searched for
@@ -1193,7 +1193,7 @@
     
     /**Find span of the {@link MethodTree#getParameters()} parameter list in the source.
      * Returns the position of the opening and closing parentheses of the parameter list
-     * in the source code that was parsed (ie. {@link CompilationInfo.getText()}, which
+     * in the source code that was parsed (ie. {@link CompilationInfo#getText()}, which
      * may differ from the positions in the source document if it has been already altered.
      * 
      * @param method method which parameter list should be searched for
@@ -1237,7 +1237,7 @@
     
     /**Find span of the {@link MemberSelectTree#getIdentifier()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param mst member select which identifier should be searched for
@@ -1250,7 +1250,7 @@
     
     /**Find span of the {@link MemberReferenceTree#getName()} identifier in the source.
      * Returns starting and ending offset of the name in the source code that was parsed
-     * (ie. {@link CompilationInfo.getText()}, which may differ from the positions in the source
+     * (ie. {@link CompilationInfo#getText()}, which may differ from the positions in the source
      * document if it has been already altered.
      * 
      * @param mst member reference for which the identifier should be searched for
@@ -1263,7 +1263,7 @@
     
     /**Find span of the name in the DocTree's reference tree (see {@link #getReferenceName(com.sun.source.util.DocTreePath)}
      * identifier in the source. Returns starting and ending offset of the name in
-     * the source code that was parsed (ie. {@link CompilationInfo.getText()}, which
+     * the source code that was parsed (ie. {@link CompilationInfo#getText()}, which
      * may differ from the positions in the source document if it has been already
      * altered.
      * 
@@ -1469,23 +1469,23 @@
         }
     }
 
-    /**Decode escapes defined in: http://wikis.sun.com/display/mlvm/ProjectCoinProposal, 3.1-3.9.
+    /**Decode escapes defined in: https://openjdk.org/projects/coin, 3.1-3.9.
      * Must be a full token text, including possible #".
      *
      * @param text to decode
      * @return decoded escapes from the identifier
-     * @see http://wikis.sun.com/display/mlvm/ProjectCoinProposal
+     * @see <a href="https://openjdk.org/projects/coin">ProjectCoinProposal</a>
      * @since 0.56
      */
     public @NonNull CharSequence decodeIdentifier(@NonNull CharSequence text) {
         return decodeIdentifierInternal(text);
     }
 
-    /**Encode identifier using escapes defined in: http://wikis.sun.com/display/mlvm/ProjectCoinProposal, 3.1-3.9.
+    /**Encode identifier using escapes defined in: https://openjdk.org/projects/coin, 3.1-3.9.
      *
-     * @param text to encode
+     * @param ident to encode
      * @return encoded identifier, including #" if necessary
-     * @see http://wikis.sun.com/display/mlvm/ProjectCoinProposal
+     * @see <a href="https://openjdk.org/projects/coin">ProjectCoinProposal</a>
      * @since 0.56
      */
     public @NonNull CharSequence encodeIdentifier(@NonNull CharSequence ident) {
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/TypeMirrorHandle.java b/java/java.source.base/src/org/netbeans/api/java/source/TypeMirrorHandle.java
index b917c01..95c82ac 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/TypeMirrorHandle.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/TypeMirrorHandle.java
@@ -61,7 +61,7 @@
 /**
  * Represents a handle for {@link TypeMirror} which can be kept and later resolved
  * by another javac. The Javac {@link TypeMirror}s are valid only in the single
- * {@link javax.tools.CompilationTask} or single run of the
+ * {@link javax.tools.JavaCompiler.CompilationTask} or single run of the
  * {@link org.netbeans.api.java.source.CancellableTask}. If the client needs to
  * keep a reference to the {@link TypeMirror} and use it in the other CancellableTask
  * he has to serialize it into the {@link TypeMirrorHandle}.
@@ -69,7 +69,7 @@
  * <p>
  ** Typical usage of TypeMirrorHandle is:
  * </p>
- * <pre>
+ * <pre>{@code
  * final TypeMirrorHandle[] typeMirrorHandle = new TypeMirrorHandle[1];
  * javaSource.runCompileControlTask(new CancellableTask<CompilationController>() {
  *     public void run(CompilationController compilationController) {
@@ -87,10 +87,10 @@
  *         ....
  *    }
  * },priority);
- * </pre>
+ * }</pre>
  * </div>
  * Currently, not all the {@link TypeMirror} {@link TypeKind kinds} are supported by handle.
- * The unsupported {@link TykeKind kinds} are: {@link TypeKind#EXECUTABLE}, {@link TypeKind#OTHER},
+ * The unsupported {@link TypeKind kinds} are: {@link TypeKind#EXECUTABLE}, {@link TypeKind#OTHER},
  * and {@link TypeKind#PACKAGE}.
  *
  * @author Jan Lahoda, Dusan Balek
@@ -109,9 +109,9 @@
     
     /**
      * Factory method for creating {@link TypeMirrorHandle}.
-     * @param {@link TypeMirror} for which the {@link TypeMirrorHandle} should be created.
+     * @param tm for which the {@link TypeMirrorHandle} should be created.
      * Not all the {@link TypeMirror} {@link TypeKind kinds} are currently supported.
-     * The unsupported {@link TykeKind kinds} are: {@link TypeKind#EXECUTABLE}, {@link TypeKind#OTHER},
+     * The unsupported {@link TypeKind kinds} are: {@link TypeKind#EXECUTABLE}, {@link TypeKind#OTHER},
      * and {@link TypeKind#PACKAGE}.
      * @return a new {@link TypeMirrorHandle}
      * @throws IllegalArgumentException if the {@link TypeMirror} is of an unsupported
@@ -222,10 +222,10 @@
     
     /**
      * Resolves an {@link TypeMirror} from the {@link TypeMirrorHandle}.
-     * @param {@link CompilationInfo} representing the {@link javax.tools.CompilationTask}
+     * @param info representing the {@link javax.tools.JavaCompiler.CompilationTask}
      * in which the {@link TypeMirror} should be resolved.
      * @return resolved subclass of {@link TypeMirror} or null if the type cannot be
-     * resolved in this {@link javax.tools.CompilationTask}.
+     * resolved in this {@link javax.tools.JavaCompiler.CompilationTask}.
      */
     public T resolve(@NonNull CompilationInfo info) {
         return resolve(info, new HashMap<TypeMirrorHandle, PlaceholderType>());
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/TypeUtilities.java b/java/java.source.base/src/org/netbeans/api/java/source/TypeUtilities.java
index 0c8071e..0041fec 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/TypeUtilities.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/TypeUtilities.java
@@ -150,7 +150,7 @@
      * Returns a TypeMirror which can be represented in a source as a type declarator. The returned TypeMirror,
      * if not erroneous, can be used as type of a variable or a method's return type. The method will attempt to
      * infer proper wildcards or bounds.
-     * <p/>
+     * <p>
      * If the type could be represented in source, the method returns a type of {@link TypeKind#ERROR}.
      * 
      * @param type the type to be polished
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/WorkingCopy.java b/java/java.source.base/src/org/netbeans/api/java/source/WorkingCopy.java
index 0511a35..4b190fe 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/WorkingCopy.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/WorkingCopy.java
@@ -166,7 +166,7 @@
 
     /**
      * Returns an instance of the {@link WorkingCopy} for
-     * given {@link Parser.Result} if it is a result
+     * given {@link org.netbeans.modules.parsing.spi.Parser.Result} if it is a result
      * of a java parser.
      * @param result for which the {@link WorkingCopy} should be
      * returned.
@@ -310,7 +310,7 @@
      * <p>
      * <code>tree</code> and <code>newTree</code> cannot be <code>null</code>.
      * If <code>oldTree</code> is null, <code>newTree</code> must be of kind
-     * {@link DocTree.Kind#DOC_COMMENT DOC_COMMENT}.
+     * {@link com.sun.source.doctree.DocTree.Kind#DOC_COMMENT DOC_COMMENT}.
      * 
      * @param tree     the tree to which the doctrees belong.
      * @param oldTree  tree to be replaced, use tree already represented in
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreePathScanner.java b/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreePathScanner.java
index 9be8c7e..2e90bc0 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreePathScanner.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreePathScanner.java
@@ -60,7 +60,7 @@
         internalCanceled.set(true);
     }
 
-    /** @inheritDoc
+    /** {@inheritDoc}
      */
     public R scan(Tree tree, P p) {
         if (isCanceled())
@@ -69,7 +69,7 @@
         return super.scan(tree, p);
     }
 
-    /** @inheritDoc
+    /** {@inheritDoc}
      */
     public R scan(Iterable<? extends Tree> trees, P p) {
         if (isCanceled())
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreeScanner.java b/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreeScanner.java
index 6693e63..38dec0c 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreeScanner.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/support/CancellableTreeScanner.java
@@ -60,7 +60,7 @@
         internalCanceled.set(true);
     }
 
-    /** @inheritDoc
+    /** {@inheritDoc}
      */
     public R scan(Tree tree, P p) {
         if (isCanceled())
@@ -69,7 +69,7 @@
         return super.scan(tree, p);
     }
 
-    /** @inheritDoc
+    /** {@inheritDoc}
      */
     public R scan(Iterable<? extends Tree> trees, P p) {
         if (isCanceled())
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/support/ProfileSupport.java b/java/java.source.base/src/org/netbeans/api/java/source/support/ProfileSupport.java
index 38e4371..c83c144 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/support/ProfileSupport.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/support/ProfileSupport.java
@@ -206,7 +206,7 @@
      */
     public interface ViolationCollectorFactory {
         /**
-         * Creates a new {@lni ViolationCollector} for given root.
+         * Creates a new {@link ViolationCollector} for given root.
          * @param root the root to be validated
          * @return a new {@link ViolationCollector}
          */
diff --git a/java/java.source.base/src/org/netbeans/modules/java/source/JavadocHelper.java b/java/java.source.base/src/org/netbeans/modules/java/source/JavadocHelper.java
index 287a55e..13aa3cf 100644
--- a/java/java.source.base/src/org/netbeans/modules/java/source/JavadocHelper.java
+++ b/java/java.source.base/src/org/netbeans/modules/java/source/JavadocHelper.java
@@ -70,7 +70,6 @@
 import javax.swing.text.html.HTML;
 import javax.swing.text.html.HTMLEditorKit;
 import javax.swing.text.html.parser.ParserDelegator;
-import org.netbeans.api.*;
 import org.netbeans.api.annotations.common.CheckForNull;
 import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.api.annotations.common.NullAllowed;
diff --git a/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java b/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
index e10e905..dcc3999 100644
--- a/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
+++ b/java/java.source.base/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorker.java
@@ -914,7 +914,6 @@
 
             @Override
             public Void visitBindingPattern(BindingPatternTree node, Void p) {
-                errorFound |= !hasMatchException;
                 return super.visitBindingPattern(node, p);
             }
 
diff --git a/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java b/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
index 276fa04..40ca64d 100644
--- a/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
+++ b/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/indexing/VanillaCompileWorkerTest.java
@@ -2245,6 +2245,58 @@
         assertEquals(expected, file2Fixed);
     }
 
+    public void testTypeTest() throws Exception {
+        setSourceLevel("17");
+
+        Map<String, String> file2Fixed = new HashMap<>();
+        VanillaCompileWorker.fixedListener = (file, cut) -> {
+            try {
+                FileObject source = URLMapper.findFileObject(file.toUri().toURL());
+                file2Fixed.put(FileUtil.getRelativePath(getRoot(), source), cut.toString());
+            } catch (MalformedURLException ex) {
+                throw new IllegalStateException(ex);
+            }
+        };
+        ParsingOutput result = runIndexing(Arrays.asList(compileTuple("test/Test.java",
+                                                                      "package test;\n" +
+                                                                      "public class Test {\n" +
+                                                                      "    public void test1(Object o) {\n" +
+                                                                      "        if (o instanceof String s) {\n" +
+                                                                      "            System.err.println();\n" +
+                                                                      "        }\n" +
+                                                                      "    }\n" +
+                                                                      "}\n")),
+                                           Arrays.asList());
+
+        assertFalse(result.lowMemory);
+        assertTrue(result.success);
+
+        Set<String> createdFiles = new HashSet<String>();
+
+        for (File created : result.createdFiles) {
+            createdFiles.add(getWorkDir().toURI().relativize(created.toURI()).getPath());
+        }
+
+        assertEquals(new HashSet<String>(Arrays.asList("cache/s1/java/15/classes/test/Test.sig")),
+                     createdFiles);
+        Map<String, String> expected = Collections.singletonMap("test/Test.java",
+                "package test;\n" +
+                "\n" +
+                "public class Test {\n" +
+                "    \n" +
+                "    public Test() {\n" +
+                "        super();\n" +
+                "    }\n" +
+                "    \n" +
+                "    public void test1(Object o) {\n" +
+                "        if (o instanceof String s) {\n" +
+                "            System.err.println();\n" +
+                "        }\n" +
+                "    }\n" +
+                "}");
+        assertEquals(expected, file2Fixed);
+    }
+
     public static void noop() {}
 
     @Override
diff --git a/java/java.source/nbproject/project.xml b/java/java.source/nbproject/project.xml
index 2ebf64b..ec8f8dd 100644
--- a/java/java.source/nbproject/project.xml
+++ b/java/java.source/nbproject/project.xml
@@ -112,11 +112,11 @@
                     </run-dependency>
                 </dependency>
                 <dependency>
-                    <code-name-base>org.netbeans.modules.autoupdate.ui</code-name-base>
+                    <code-name-base>org.netbeans.modules.autoupdate.services</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>1.46</specification-version>
+                        <specification-version>1.76</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/java/java.source/src/org/netbeans/api/java/source/UiUtils.java b/java/java.source/src/org/netbeans/api/java/source/UiUtils.java
index 0f966d0..c0b603d 100644
--- a/java/java.source/src/org/netbeans/api/java/source/UiUtils.java
+++ b/java/java.source/src/org/netbeans/api/java/source/UiUtils.java
@@ -68,8 +68,8 @@
     
     /** Gets correct icon for given ElementKind.
      * @param modifiers Can be null for empty modifiers collection
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementIcons#getElementIcon(javax.lang.model.element.ElementKind, java.util.Collection)}
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementIcons.html#getElementIcon-javax.lang.model.element.ElementKind-java.util.Collection-">ElementIcons#getElementIcon(javax.lang.model.element.ElementKind, java.util.Collection)</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static Icon getElementIcon( ElementKind elementKind, Collection<Modifier> modifiers ) {
@@ -78,8 +78,8 @@
 
     /**
      *
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementIcons#getElementIcon(javax.lang.model.element.ElementKind, java.util.Collection)}
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementIcons.html#getElementIcon-javax.lang.model.element.ElementKind-java.util.Collection-">ElementIcons#getElementIcon(javax.lang.model.element.ElementKind, java.util.Collection)</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static Icon getDeclarationIcon(Element element) {
@@ -94,8 +94,8 @@
      * @param el    declaration to open
      * @return true if and only if the declaration was correctly opened,
      *                false otherwise
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementOpen#open(org.netbeans.api.java.source.ClasspathInfo, org.netbeans.api.java.source.ElementHandle) }
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementOpen.html#open-org.netbeans.api.java.source.ClasspathInfo-javax.lang.model.element.Element-">org.netbeans.api.java.source.ui.ElementOpen#open(org.netbeans.api.java.source.ClasspathInfo, org.netbeans.api.java.source.ElementHandle</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static boolean open(final ClasspathInfo cpInfo, final Element el) {
@@ -110,8 +110,8 @@
 
     /**
      *
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementOpen#open(org.openide.filesystems.FileObject, org.netbeans.api.java.source.ElementHandle) }
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementOpen.html#open-org.openide.filesystems.FileObject-org.netbeans.api.java.source.ElementHandle-">org.netbeans.api.java.source.ui.ElementOpen#open(org.openide.filesystems.FileObject, org.netbeans.api.java.source.ElementHandle)</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static boolean open(final FileObject toSearch, final ElementHandle<? extends Element> toOpen) {
@@ -147,8 +147,8 @@
 
     /**
      *
-     * @deprecated Use constants from {@link org.netbeans.api.java.source.ui.ElementHeaders}
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use constants from <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementHeaders.html">org.netbeans.api.java.source.ui.ElementHeaders</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static final class PrintPart {
@@ -167,8 +167,8 @@
     /**
      * example of formatString:
      * "method " + PrintPart.NAME + PrintPart.PARAMETERS + " has return type " + PrintPart.TYPE
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementHeaders#getHeader(com.sun.source.util.TreePath, org.netbeans.api.java.source.CompilationInfo, java.lang.String) }
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementHeaders.html#getHeader-com.sun.source.util.TreePath-org.netbeans.api.java.source.CompilationInfo-java.lang.String-">org.netbeans.api.java.source.ui.ElementHeaders#getHeader(com.sun.source.util.TreePath, org.netbeans.api.java.source.CompilationInfo, java.lang.String)</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static String getHeader(TreePath treePath, CompilationInfo info, String formatString) {
@@ -183,8 +183,8 @@
     /**
      * example of formatString:
      * "method " + PrintPart.NAME + PrintPart.PARAMETERS + " has return type " + PrintPart.TYPE
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementHeaders#getHeader(javax.lang.model.element.Element, org.netbeans.api.java.source.CompilationInfo, java.lang.String) }
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementHeaders.html#getHeader-javax.lang.model.element.Element-org.netbeans.api.java.source.CompilationInfo-java.lang.String-">org.netbeans.api.java.source.ui.ElementHeaders#getHeader(javax.lang.model.element.Element, org.netbeans.api.java.source.CompilationInfo, java.lang.String)</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static String getHeader(Element element, CompilationInfo info, String formatString) {
@@ -240,8 +240,8 @@
     }
     
     /** Computes distance between strings
-     * @deprecated Use {@link org.netbeans.api.java.source.ui.ElementHeaders#getDistance(java.lang.String, java.lang.String) }
-     *             of the org.netbeans.modules.java.sourceui module
+     * @deprecated Use <a href="@org-netbeans-modules-java-sourceui@/org/netbeans/api/java/source/ui/ElementHeaders.html#getDistance-java.lang.String-java.lang.String-">org.netbeans.api.java.source.ui.ElementHeaders#getDistance(java.lang.String, java.lang.String)</a>
+     *             of the <a href="@org-netbeans-modules-java-sourceui@">org.netbeans.modules.java.sourceui module</a>
      */
     @Deprecated
     public static int getDistance(String s, String t) {
diff --git a/java/java.source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java b/java/java.source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java
index e0b3d42..5a443f8 100644
--- a/java/java.source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java
+++ b/java/java.source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java
@@ -41,7 +41,7 @@
 import org.openide.util.Parameters;
 import org.openide.util.RequestProcessor;
 
-/**A {@link JavaSourceTaskFactorySupport} that registers tasks to all files that are
+/**A {@link JavaSourceTaskFactory} that registers tasks to all files that are
  * opened in the editor and are visible. This factory also listens on the caret on
  * opened and visible JTextComponents and reschedules the tasks as necessary.
  *
@@ -106,7 +106,7 @@
         this.supportedMimeTypes = supportedMimeTypes.length > 0 ? supportedMimeTypes.clone() : null;
     }
     
-    /**@inheritDoc*/
+    /**{@inheritDoc}*/
     public List<FileObject> getFileObjects() {
         List<FileObject> files = OpenedEditors.filterSupportedMIMETypes(OpenedEditors.getDefault().getVisibleEditorsFiles(), supportedMimeTypes);
 
diff --git a/java/java.source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java b/java/java.source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java
index 33ab74e..617149b 100644
--- a/java/java.source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java
+++ b/java/java.source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java
@@ -31,7 +31,7 @@
 import org.openide.filesystems.FileObject;
 import org.openide.util.Parameters;
 
-/**A {@link JavaSourceTaskFactorySupport} that registers tasks to all files that are
+/**A {@link JavaSourceTaskFactory} that registers tasks to all files that are
  * opened in the editor and are visible.
  *
  * @author Jan Lahoda
@@ -86,7 +86,7 @@
         this.supportedMimeTypes = supportedMimeTypes.length > 0 ? supportedMimeTypes.clone() : null;
     }
     
-    /**@inheritDoc*/
+    /**[@inheritDoc}*/
     public List<FileObject> getFileObjects() {
         List<FileObject> files = OpenedEditors.filterSupportedMIMETypes(OpenedEditors.getDefault().getVisibleEditorsFiles(), supportedMimeTypes);
 
diff --git a/java/java.source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java b/java/java.source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java
index 0abfeba..6a8a75e 100644
--- a/java/java.source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java
+++ b/java/java.source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java
@@ -38,7 +38,7 @@
 import org.openide.util.LookupListener;
 import org.openide.util.Parameters;
 
-/**A {@link JavaSourceTaskFactorySupport} that registers tasks to all files that are
+/**A {@link JavaSourceTaskFactory} that registers tasks to all files that are
  * found in the given {@link Lookup}.
  *
  * This factory searches for {@link FileObject}, {@link DataObject} and {@link Node}
@@ -154,7 +154,7 @@
         }
     }
     
-    /**@inheritDoc*/
+    /**{@inheritDoc}*/
     public synchronized List<FileObject> getFileObjects() {
         return currentFiles;
     }
diff --git a/java/java.source/src/org/netbeans/api/java/source/support/SelectionAwareJavaSourceTaskFactory.java b/java/java.source/src/org/netbeans/api/java/source/support/SelectionAwareJavaSourceTaskFactory.java
index b618e09..37b89b7 100644
--- a/java/java.source/src/org/netbeans/api/java/source/support/SelectionAwareJavaSourceTaskFactory.java
+++ b/java/java.source/src/org/netbeans/api/java/source/support/SelectionAwareJavaSourceTaskFactory.java
@@ -45,7 +45,7 @@
 import org.openide.util.Parameters;
 import org.openide.util.RequestProcessor;
 
-/**A {@link JavaSourceTaskFactorySupport} that registers tasks to all files that are
+/**A {@link JavaSourceTaskFactory} that registers tasks to all files that are
  * opened in the editor and are visible. This factory also listens on the selection in
  * opened and visible JTextComponents and reschedules the tasks as necessary.
  *
@@ -111,7 +111,7 @@
         this.supportedMimeTypes = supportedMimeTypes.length > 0 ? supportedMimeTypes.clone() : null;
     }
     
-    /**@inheritDoc*/
+    /**{@inheritDoc}*/
     public List<FileObject> getFileObjects() {
         List<FileObject> files = OpenedEditors.filterSupportedMIMETypes(OpenedEditors.getDefault().getVisibleEditorsFiles(), supportedMimeTypes);
 
diff --git a/java/java.source/src/org/netbeans/modules/java/source/JBrowseModule.java b/java/java.source/src/org/netbeans/modules/java/source/JBrowseModule.java
index 2772793..3885613 100644
--- a/java/java.source/src/org/netbeans/modules/java/source/JBrowseModule.java
+++ b/java/java.source/src/org/netbeans/modules/java/source/JBrowseModule.java
@@ -19,19 +19,18 @@
 
 package org.netbeans.modules.java.source;
 
-import java.awt.Dialog;
 import java.awt.GraphicsEnvironment;
 import java.awt.HeadlessException;
 import java.util.logging.Level;
 import java.util.prefs.Preferences;
 import org.netbeans.api.annotations.common.StaticResource;
-import org.netbeans.modules.autoupdate.ui.api.PluginManager;
+import org.netbeans.api.autoupdate.PluginInstaller;
 import org.netbeans.modules.java.source.usages.ClassIndexManager;
 import org.openide.DialogDescriptor;
 import org.openide.DialogDisplayer;
+import org.openide.NotifyDescriptor;
 import org.openide.modules.ModuleInstall;
 import org.openide.util.Exceptions;
-import org.openide.util.HelpCtx;
 import org.openide.util.NbBundle;
 import org.openide.util.NbPreferences;
 import org.openide.windows.WindowManager;
@@ -80,15 +79,12 @@
                 if (!NoJavacHelper.hasWorkingJavac() && !prefs.getBoolean(KEY_WARNING_SHOWN, false)) {
                     String install = Bundle.BN_Install();
                     try {
-                        Dialog[] d = new Dialog[1];
-                        DialogDescriptor dd = new DialogDescriptor(Bundle.DESC_FeaturesLimited(), Bundle.TITLE_FeaturesLimited(), true, new Object[] {install, DialogDescriptor.CANCEL_OPTION}, install, DialogDescriptor.DEFAULT_ALIGN, HelpCtx.DEFAULT_HELP, evt -> {
-                            if (install.equals(evt.getActionCommand())) {
-                                PluginManager.installSingle("org.netbeans.libs.nbjavacapi", Bundle.DN_nbjavac());
-                            }
-                            d[0].setVisible(false);
-                        });
-                        d[0] = DialogDisplayer.getDefault().createDialog(dd);
-                        d[0].setVisible(true);
+                        NotifyDescriptor msg = new NotifyDescriptor(Bundle.DESC_FeaturesLimited(), Bundle.TITLE_FeaturesLimited(), 
+                            NotifyDescriptor.DEFAULT_OPTION, NotifyDescriptor.WARNING_MESSAGE, new Object[] {install, DialogDescriptor.CANCEL_OPTION}, install);
+                        Object r = DialogDisplayer.getDefault().notify(msg);
+                        if (r == install) {
+                            PluginInstaller.getDefault().install("org.netbeans.libs.nbjavacapi", null, null, Bundle.DN_nbjavac()); // NOI18N
+                        }
                     } catch (HeadlessException ex) {
                         Exceptions.printStackTrace(Exceptions.attachSeverity(ex, Level.FINE));
                     }
diff --git a/java/java.sourceui/src/org/netbeans/api/java/source/ui/ElementHeaders.java b/java/java.sourceui/src/org/netbeans/api/java/source/ui/ElementHeaders.java
index 6a83426..495aa83 100644
--- a/java/java.sourceui/src/org/netbeans/api/java/source/ui/ElementHeaders.java
+++ b/java/java.sourceui/src/org/netbeans/api/java/source/ui/ElementHeaders.java
@@ -252,7 +252,7 @@
      * Converts Javac {@link ElementKind} to a suitable LSP structure kind. Note
      * that not all kinds are supported - such ElementKinds are converted to
      *
-     * @param kind
+     * @param el
      * @return LSP kind suitable for DocumentSymbol - like structures.
      */
     public static StructureElement.Kind javaKind2Structure(Element el) {
diff --git a/java/java.sourceui/src/org/netbeans/api/java/source/ui/ScanDialog.java b/java/java.sourceui/src/org/netbeans/api/java/source/ui/ScanDialog.java
index 9046c19..42806c3 100644
--- a/java/java.sourceui/src/org/netbeans/api/java/source/ui/ScanDialog.java
+++ b/java/java.sourceui/src/org/netbeans/api/java/source/ui/ScanDialog.java
@@ -54,7 +54,7 @@
      * If classpath scanning is not in progress, runnable's run() is called. <br>
      * If classpath scanning is in progress, modal cancellable notification dialog with specified
      * tile is opened.
-     * </ul>
+     * <p>
      * As soon as classpath scanning finishes, this dialog is closed and runnable's run() is called.
      * This method must be called in AWT EventQueue. Runnable is performed in AWT thread.
      *
diff --git a/java/jellytools.java/src/org/netbeans/jellytools/ClasspathStepOperator.java b/java/jellytools.java/src/org/netbeans/jellytools/ClasspathStepOperator.java
index 08fd83d..936a0fc 100644
--- a/java/jellytools.java/src/org/netbeans/jellytools/ClasspathStepOperator.java
+++ b/java/jellytools.java/src/org/netbeans/jellytools/ClasspathStepOperator.java
@@ -33,8 +33,6 @@
  * Handle "Classpath" panel of the New Project wizard
  * for J2SE Ant Project.<br>
  * Usage:
- * <pre>
- * </pre>
  * 
  * @author tb115823
  */
diff --git a/java/jellytools.java/src/org/netbeans/jellytools/modules/form/properties/editors/FormCustomEditorOperator.java b/java/jellytools.java/src/org/netbeans/jellytools/modules/form/properties/editors/FormCustomEditorOperator.java
index 40bdbbb..c7670bd 100644
--- a/java/jellytools.java/src/org/netbeans/jellytools/modules/form/properties/editors/FormCustomEditorOperator.java
+++ b/java/jellytools.java/src/org/netbeans/jellytools/modules/form/properties/editors/FormCustomEditorOperator.java
@@ -35,7 +35,7 @@
  * Contains Default, OK and Cancel buttons,
  * combobox enabling to change editor (DimensionEditor/Value from existing component).
  * <p>
- * Example:<p>
+ * Example:
  * <pre>
  *  ...
  *  property.openEditor();
@@ -50,7 +50,7 @@
 public class FormCustomEditorOperator extends NbDialogOperator {
 
     /** Search for FormCustomEditor with defined title
-     * @throws TimeoutExpiredException when NbDialog not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when NbDialog not found
      * @param title title of FormCustomEditor (mostly property name) */
     public FormCustomEditorOperator(String title) {
         super(title);
@@ -60,7 +60,7 @@
     private JComboBoxOperator _cboMode;
 
     /** Tries to find "Default" JButton in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JButtonOperator
      */
     public JButtonOperator btDefault() {
@@ -73,7 +73,7 @@
     }
 
     /** Tries to find JComboBox in this dialog.
-     * @throws TimeoutExpiredException when component not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when component not found
      * @return JComboBoxOperator */
     public JComboBoxOperator cboMode() {
         if (_cboMode==null) {
@@ -83,7 +83,7 @@
     }
 
     /** clicks on "Default" JButton
-     * @throws TimeoutExpiredException when JButton not found
+     * @throws org.netbeans.jemmy.TimeoutExpiredException when JButton not found
      */
     public void setDefault() {
         btDefault().push();
diff --git a/java/junit/nbproject/project.xml b/java/junit/nbproject/project.xml
index bdc5a26..6312220 100644
--- a/java/junit/nbproject/project.xml
+++ b/java/junit/nbproject/project.xml
@@ -77,14 +77,6 @@
                     </run-dependency>
                 </dependency>
                 <dependency>
-                    <code-name-base>org.netbeans.modules.autoupdate.ui</code-name-base>
-                    <build-prerequisite/>
-                    <compile-dependency/>
-                    <run-dependency>
-                        <specification-version>1.35</specification-version>
-                    </run-dependency>
-                </dependency>
-                <dependency>
                     <code-name-base>org.netbeans.modules.extexecution</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
diff --git a/java/junit/src/org/netbeans/modules/junit/api/JUnitTestUtil.java b/java/junit/src/org/netbeans/modules/junit/api/JUnitTestUtil.java
index f7aefa1..f869fd9 100644
--- a/java/junit/src/org/netbeans/modules/junit/api/JUnitTestUtil.java
+++ b/java/junit/src/org/netbeans/modules/junit/api/JUnitTestUtil.java
@@ -314,7 +314,6 @@
      * Finds a main class.
      *
      * @param  compInfo  defines scope in which the class is to be found
-     * @param  className  name of the class to be found
      * @return  the found class; or <code>null</code> if the class was not
      *          found (e.g. because of a broken source file)
      */
@@ -356,7 +355,7 @@
      * withing the specified folder (non-recursive).
      *
      * @param  packageFolder  folder to search
-     * @param  classPath  classpath to be used for the search
+     * @param  cpInfo  classpath to be used for the search
      * @return  list of full names of all primary Java classes
      *          within the specified package
      */
diff --git a/java/junit/src/org/netbeans/modules/junit/api/JUnitUtils.java b/java/junit/src/org/netbeans/modules/junit/api/JUnitUtils.java
index f39869e..1af717e 100644
--- a/java/junit/src/org/netbeans/modules/junit/api/JUnitUtils.java
+++ b/java/junit/src/org/netbeans/modules/junit/api/JUnitUtils.java
@@ -492,16 +492,16 @@
      * a folder plus additional information such as display name) or simply
      * a <code>FileObject</code> representing a folder.
      * If parameter <code>includeSourceGroups</code> is <code>false</code>,
-     * only <code>SourceGroup<code>s are returned (target folders without
+     * only <code>SourceGroup</code>s are returned (target folders without
      * corresponding <code>SourceGroup</code>s are ignored).
      *
-     * @param  src  source group to find test targets for
+     * @param  sourceGroup  source group to find test targets for
      * @param  sourceGroupsOnly  skip target folders without matching
      *                           <code>SourceGroup</code>
      * @return  array which may contain <code>FileObject</code>s
      *          or <code>SourceGroup</code>s (or both);
      *          it may be empty but not <code>null</code>
-     * @see  TestUtil#getFileObject2SourceGroupMap
+     * @see  org.netbeans.modules.java.testrunner.CommonTestUtil#getFileObject2SourceGroupMap
      */
     public Object[] getTestTargets(SourceGroup sourceGroup,
                                    final boolean sourceGroupsOnly) {
@@ -548,7 +548,7 @@
      * Returns an array of source folders corresponding to the given test
      * folder - may contain <code>null</code>s.
      *
-     * @param  srcFolder  <code>FileObject</code> representing source code root,
+     * @param  testFolder  <code>FileObject</code> representing source code root,
      *                    for which source root folders should be found
      * @return  array of <code>FileObject</code>s representing source root
      *          folders, possibly with superfluous <code>null</code> elements
diff --git a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
index 8363a31..f0e2989 100644
--- a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
+++ b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
@@ -653,7 +653,7 @@
     //spawn the indexing into a separate thread..
     private boolean spawnIndexLoadedRepo(final RepositoryInfo repo) {
 
-        if (!RepositoryPreferences.isIndexDownloadEnabled() && repo.isRemoteDownloadable()) {
+        if (!RepositoryPreferences.isIndexDownloadEnabledEffective() && repo.isRemoteDownloadable()) {
             LOGGER.log(Level.FINE, "Skipping remote index request for {0}", repo);
             return false;
         }
@@ -678,7 +678,7 @@
     @Override
     public void indexRepo(final RepositoryInfo repo) {
         
-        if (!RepositoryPreferences.isIndexDownloadEnabled() && repo.isRemoteDownloadable()) {
+        if (!RepositoryPreferences.isIndexDownloadEnabledEffective() && repo.isRemoteDownloadable()) {
             LOGGER.log(Level.FINE, "Skipping remote index request for {0}", repo);
             return;
         }
diff --git a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
index 0887822..7c1b79a 100644
--- a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
+++ b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/api/RepositoryPreferences.java
@@ -390,6 +390,17 @@
         return getPreferences().getBoolean(PROP_DOWNLOAD_INDEX, getDefaultDownloadIndexEnabled());
     }
 
+    /**
+     * Downloading the remote index should only happen if indexing in general
+     * and downloading in particular are enabled.
+     *
+     * @since 2.60
+     * @return true if indexing and downloading are both enabled.
+     */
+    public static boolean isIndexDownloadEnabledEffective() {
+        return isIndexRepositories() && isIndexDownloadEnabled();
+    }
+
     @NbBundle.Messages({
         "# true or false:",
         "DEFAULT_DOWNLOAD_INDEX=true"
diff --git a/java/maven/nbproject/project.xml b/java/maven/nbproject/project.xml
index abbc01d..ad4f9c2 100644
--- a/java/maven/nbproject/project.xml
+++ b/java/maven/nbproject/project.xml
@@ -109,11 +109,11 @@
                     </run-dependency>
                 </dependency>
                 <dependency>
-                    <code-name-base>org.netbeans.modules.autoupdate.ui</code-name-base>
+                    <code-name-base>org.netbeans.modules.autoupdate.services</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
                     <run-dependency>
-                        <specification-version>1.35</specification-version>
+                        <specification-version>1.76</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/java/maven/src/org/netbeans/modules/maven/ProjectOpenedHookImpl.java b/java/maven/src/org/netbeans/modules/maven/ProjectOpenedHookImpl.java
index 8fae98a..14f716d 100644
--- a/java/maven/src/org/netbeans/modules/maven/ProjectOpenedHookImpl.java
+++ b/java/maven/src/org/netbeans/modules/maven/ProjectOpenedHookImpl.java
@@ -203,7 +203,7 @@
                                 LOGGER.log(Level.FINER, "Index once a Week :{0}", ri.getId());//NOI18N
                                 run = true;
                             }
-                            if (run && ri.isRemoteDownloadable() && RepositoryPreferences.isIndexDownloadEnabled()) {
+                            if (run && ri.isRemoteDownloadable()) {
                                 RepositoryIndexer.indexRepo(ri);
                             }
                         }
diff --git a/java/maven/src/org/netbeans/modules/maven/api/FileUtilities.java b/java/maven/src/org/netbeans/modules/maven/api/FileUtilities.java
index 745e0b0..aa893d5 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/FileUtilities.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/FileUtilities.java
@@ -193,7 +193,7 @@
      * @param basedir a directory to resolve relative to (need not exist on disk)
      * @param file a file or directory to find a relative path for
      * @return a relativized path (slash-separated), or null if it is not possible (e.g. different DOS drives);
-     *         just <samp>.</samp> in case the paths are the same
+     *         just <code>.</code> in case the paths are the same
      * @throws IllegalArgumentException if the basedir is known to be a file and not a directory
      *
      * copied from project.ant's PropertyUtils
diff --git a/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java b/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
index a0cf995..2f6b824 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
@@ -247,7 +247,6 @@
      *
      * @param mdl
      * @param url of the repository
-     * @param add true == add to model, will not add if the repo is in project but not in model (eg. central repo)
      * @return null if repository with given url exists, otherwise a returned newly created item.
      */
     public static Repository addModelRepository(MavenProject project, POMModel mdl, String url) {
@@ -307,7 +306,7 @@
     
     /**
      * Sets the Java source level of a project.
-     * Use {@link PluginPropertyUtils#getPluginProperty(Project,String,String,String,String)} first
+     * Use {@link PluginPropertyUtils#getPluginProperty(org.netbeans.api.project.Project,String,String,String,String,String)} first
      * ({@link Constants#GROUP_APACHE_PLUGINS}, {@link Constants#PLUGIN_COMPILER}, {@link Constants#SOURCE_PARAM}, {@code "compile"})
      * to make sure that the current level is actually not what you want.
      * 
diff --git a/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java b/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java
index 9c08bad..67277a5 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/NbMavenProject.java
@@ -443,7 +443,7 @@
     }
 
     /**
-     * @deprecated Use {@link #downloadDependencyAndJavadocSource(boolean) with {@code true}.
+     * @deprecated Use {@link #downloadDependencyAndJavadocSource(boolean)} with {@code true}.
      */
     @Deprecated
     public void downloadDependencyAndJavadocSource() {
diff --git a/java/maven/src/org/netbeans/modules/maven/api/archetype/ArchetypeWizards.java b/java/maven/src/org/netbeans/modules/maven/api/archetype/ArchetypeWizards.java
index 9317f1c..39b25af 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/archetype/ArchetypeWizards.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/archetype/ArchetypeWizards.java
@@ -112,7 +112,7 @@
         return definedArchetype(groupId, artifactId, version, repository, title, null);
     }
     /** 
-     * @sinced 2.138
+     * @since 2.138
      */
     public static WizardDescriptor.InstantiatingIterator<?> definedArchetype(
         String groupId, String artifactId, String version, @NullAllowed String repository, String title,
diff --git a/java/maven/src/org/netbeans/modules/maven/api/execute/RunUtils.java b/java/maven/src/org/netbeans/modules/maven/api/execute/RunUtils.java
index a8d8131..5cd11e0 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/execute/RunUtils.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/execute/RunUtils.java
@@ -173,7 +173,7 @@
     
     /**
      *
-     * @param project
+     * @param prj
      * @return true if compile on save is allowed for running the application.
      */
     @Deprecated
@@ -212,7 +212,7 @@
 
     /**
      *
-     * @param project
+     * @param prj
      * @return true if compile on save is allowed for running tests.
      */
     @Deprecated
diff --git a/java/maven/src/org/netbeans/modules/maven/api/output/OutputProcessor.java b/java/maven/src/org/netbeans/modules/maven/api/output/OutputProcessor.java
index c078791..8d3d809 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/output/OutputProcessor.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/output/OutputProcessor.java
@@ -32,7 +32,7 @@
     /**
      * specify the segments that this processor is interested in.
      * there are 2 kinds of sequences project-execute and mojo-execute.
-     *The format for the registration is as follows: <type>#<goal>
+     * The format for the registration is as follows: {@code <type>#<goal>}
      * Eg mojo-execute#compile:compile
      */
     String[] getRegisteredOutputSequences();
diff --git a/java/maven/src/org/netbeans/modules/maven/execute/ActionToGoalUtils.java b/java/maven/src/org/netbeans/modules/maven/execute/ActionToGoalUtils.java
index d89f896..9e784d8 100644
--- a/java/maven/src/org/netbeans/modules/maven/execute/ActionToGoalUtils.java
+++ b/java/maven/src/org/netbeans/modules/maven/execute/ActionToGoalUtils.java
@@ -337,7 +337,7 @@
 
     /**
      * read the action mappings from the fileobject attribute "customActionMappings"
-     * @parameter fo should be the project's root directory fileobject
+     * @param fo should be the project's root directory fileobject
      *
      */
     public static ActionToGoalMapping readMappingsFromFileAttributes(FileObject fo) {
@@ -361,7 +361,7 @@
 
     /**
      * writes the action mappings to the fileobject attribute "customActionMappings"
-     * @parameter fo should be the project's root directory fileobject
+     * @param fo should be the project's root directory fileobject
      *
      */
     public static void writeMappingsToFileAttributes(FileObject fo, ActionToGoalMapping mapp) {
diff --git a/java/maven/src/org/netbeans/modules/maven/execute/MavenProxySupport.java b/java/maven/src/org/netbeans/modules/maven/execute/MavenProxySupport.java
index 695cd0d..14d77c2 100644
--- a/java/maven/src/org/netbeans/modules/maven/execute/MavenProxySupport.java
+++ b/java/maven/src/org/netbeans/modules/maven/execute/MavenProxySupport.java
@@ -96,7 +96,7 @@
  * The {@link ProxyResult#configure(org.netbeans.modules.maven.execute.BeanRunConfig)} should be run before each maven online invocation to potentially replace the global settings file with a customized one,
  * that specifies the correct proxy.
  * <p>
- * When creating customized settings.xml files, the files are named like <code>settings-[hashcode of the oroginal]-[sanitized proxy host].xml. If the settings.xml file does not exist at all, "new" is used
+ * When creating customized settings.xml files, the files are named like <code>settings-[hashcode of the oroginal]-[sanitized proxy host].xml</code>. If the settings.xml file does not exist at all, "new" is used
  * instead of the hashcode. Proxy host sanitization just replaces weird characters by "_".
  * 
  * @author sdedic
diff --git a/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionProfile.java b/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionProfile.java
index 1cc8a8d..6f13782 100644
--- a/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionProfile.java
+++ b/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionProfile.java
@@ -20,7 +20,7 @@
 
 /**
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 public class NetbeansActionProfile {
     /**
diff --git a/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionReader.java b/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionReader.java
index 331328d..7a22533 100644
--- a/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionReader.java
+++ b/java/maven/src/org/netbeans/modules/maven/execute/model/NetbeansActionReader.java
@@ -33,7 +33,7 @@
 
 /**
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 public abstract class NetbeansActionReader {
     protected abstract String getRawMappingsAsString();
diff --git a/java/maven/src/org/netbeans/modules/maven/options/SettingsPanel.java b/java/maven/src/org/netbeans/modules/maven/options/SettingsPanel.java
index 5877c3b..0a34f3f 100644
--- a/java/maven/src/org/netbeans/modules/maven/options/SettingsPanel.java
+++ b/java/maven/src/org/netbeans/modules/maven/options/SettingsPanel.java
@@ -993,21 +993,10 @@
         updateCheckboxes();
     }//GEN-LAST:event_cbEnableIndexingActionPerformed
 
-    // short term UI memory, to select index download again when indexing
-    // was toggled off and on by the user
-    private boolean indexDownloadWasEnabled = false;
-
     private void updateCheckboxes() {
-        if (!cbEnableIndexing.isSelected()) {
-            indexDownloadWasEnabled = cbEnableIndexDownload.isSelected();
-            cbEnableIndexDownload.setSelected(false);
-        } else if (indexDownloadWasEnabled) {
-            cbEnableIndexDownload.setSelected(true);
-        }
         cbEnableIndexDownload.setEnabled(cbEnableIndexing.isSelected());
     }
 
-
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton btnDirectory;
     private javax.swing.JButton btnGoals;
diff --git a/java/maven/src/org/netbeans/modules/maven/problems/MissingModulesProblemProvider.java b/java/maven/src/org/netbeans/modules/maven/problems/MissingModulesProblemProvider.java
index 68db96d..51761ee 100644
--- a/java/maven/src/org/netbeans/modules/maven/problems/MissingModulesProblemProvider.java
+++ b/java/maven/src/org/netbeans/modules/maven/problems/MissingModulesProblemProvider.java
@@ -34,8 +34,8 @@
 import javax.swing.SwingUtilities;
 import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.api.annotations.common.NullAllowed;
+import org.netbeans.api.autoupdate.PluginInstaller;
 import org.netbeans.api.project.Project;
-import org.netbeans.modules.autoupdate.ui.api.PluginManager;
 import org.netbeans.modules.maven.api.NbMavenProject;
 import static org.netbeans.modules.maven.problems.Bundle.*;
 import org.netbeans.spi.project.ProjectServiceProvider;
@@ -230,7 +230,7 @@
                         SwingUtilities.invokeAndWait(new Runnable() {
                             @Override
                             public void run() {
-                                Object retval = PluginManager.install(Collections.singleton(codenamebase));
+                                Object retval = PluginInstaller.getDefault().install(codenamebase);
                                 res[0] = retval == null ? Result.create(Status.RESOLVED) : Result.create(Status.UNRESOLVED);
                             }
                         });
diff --git a/java/maven/src/org/netbeans/modules/maven/spi/actions/AbstractMavenActionsProvider.java b/java/maven/src/org/netbeans/modules/maven/spi/actions/AbstractMavenActionsProvider.java
index 2b341d0..790476a 100644
--- a/java/maven/src/org/netbeans/modules/maven/spi/actions/AbstractMavenActionsProvider.java
+++ b/java/maven/src/org/netbeans/modules/maven/spi/actions/AbstractMavenActionsProvider.java
@@ -303,7 +303,7 @@
     }
 
     /**
-     * takes the input stream and a map, and for each occurence of ${<mapKey>}, replaces it with map entry value..
+     * takes the input stream and a map, and for each occurence of {@code ${<mapKey>} }, replaces it with map entry value..
      * @param replaceMap
      * @param in
      * @return 
@@ -337,22 +337,22 @@
      * {@code resourceURL} parameter identifies a {@code nbactions.xml}-format resource which
      * can add/define actions in the default configuration. It can also <b>contribute</b>
      * configurations (profiles) using the nested {@code &lt;profile>} element.
-     * <p/>
-     * Actions in the contributed configuration profiles are merged; multiple {@link MavenActionProviders}
+     * <p>
+     * Actions in the contributed configuration profiles are merged; multiple {@link MavenActionsProvider}s
      * created by {@link #fromNbActions(org.netbeans.api.project.Project, java.net.URL)} can supply their
      * actions. The first definition of a given {@code actionName} counts, subsequent definitions from 
-     * {@link MavenActionProviders} further in the project's Lookup are ignored.
-     * <p/>
+     * {@link MavenActionsProvider} further in the project's Lookup are ignored.
+     * <p>
      * Note: at the moment it is not possible to build the <b>default configuration</b> actions 
-     * from multiple {@link MavenActionProviders}. 
-     * <p/>
-     * <b>This is a part of Maven module's friend API. If possible, use se  
+     * from multiple {@link MavenActionsProvider}s. 
+     * <p>
+     * <b>This is a part of Maven module's friend API.</b> If possible, use se  
      * <a href="@org-netbeans-api-maven@/org/netbeans/spi/maven/MavenActions.html">MavenActions</a> to register
      * actions declaratively, using module layers.
      * 
      * @param mavenProject the maven project. 
      * @param resourceURL action definitions.
-     * @return new {@link MavenActionProvider} instance.
+     * @return new {@link MavenActionsProvider} instance.
      * @since 2.148
      */
     public static MavenActionsProvider fromNbActions(Project mavenProject, URL resourceURL) {
diff --git a/java/maven/src/org/netbeans/modules/maven/spi/actions/MavenActionsProvider.java b/java/maven/src/org/netbeans/modules/maven/spi/actions/MavenActionsProvider.java
index 66102b5..aa26908 100644
--- a/java/maven/src/org/netbeans/modules/maven/spi/actions/MavenActionsProvider.java
+++ b/java/maven/src/org/netbeans/modules/maven/spi/actions/MavenActionsProvider.java
@@ -47,7 +47,7 @@
     /**
      * Create an instance of RunConfig configured for execution.
      * @param actionName one of the ActionProvider constants
-     * @returns RunConfig or null, if action not supported
+     * @return RunConfig or null, if action not supported
      */
     RunConfig createConfigForDefaultAction(String actionName, Project project, Lookup lookup);
 
diff --git a/java/maven/src/org/netbeans/modules/maven/spi/cos/CoSAlternativeExecutorImplementation.java b/java/maven/src/org/netbeans/modules/maven/spi/cos/CoSAlternativeExecutorImplementation.java
index fbfcae4..fcf4c4e 100644
--- a/java/maven/src/org/netbeans/modules/maven/spi/cos/CoSAlternativeExecutorImplementation.java
+++ b/java/maven/src/org/netbeans/modules/maven/spi/cos/CoSAlternativeExecutorImplementation.java
@@ -35,7 +35,7 @@
  *
  * <p>
  * If the project want to use {@link CoSAlternativeExecutorImplementation} it should register
- * it in it's project {@link Lookup}.
+ * it in it's project {@link org.openide.util.Lookup}.
  *
  * <p>
  * This class should not be used directly. Use {@link CoSAlternativeExecutor} API class instead.
@@ -45,7 +45,7 @@
  *
  * @see CoSAlternativeExecutor
  *
- * @author Martin Janicek <mjanicek@netbeans.org>
+ * @author Martin Janicek &lt;mjanicek@netbeans.org&gt;
  * @since 2.99
  */
 public interface CoSAlternativeExecutorImplementation {
diff --git a/java/maven/src/org/netbeans/modules/maven/spi/nodes/DependencyTypeIconBadge.java b/java/maven/src/org/netbeans/modules/maven/spi/nodes/DependencyTypeIconBadge.java
index 0c24d2d..b24ac37 100644
--- a/java/maven/src/org/netbeans/modules/maven/spi/nodes/DependencyTypeIconBadge.java
+++ b/java/maven/src/org/netbeans/modules/maven/spi/nodes/DependencyTypeIconBadge.java
@@ -27,8 +27,8 @@
 
 /**
  * global service providing an icon badge to dependency artifact's node
- * @see Lookup
- * @see ServiceProvider
+ * @see org.openide.util.Lookup
+ * @see org.openide.util.lookup.ServiceProvider
  * @author mkleint
  * @since 2.89
  */
diff --git a/java/maven/src/org/netbeans/modules/maven/spi/nodes/OtherSourcesExclude.java b/java/maven/src/org/netbeans/modules/maven/spi/nodes/OtherSourcesExclude.java
index 06fa39d..a8a71e0 100644
--- a/java/maven/src/org/netbeans/modules/maven/spi/nodes/OtherSourcesExclude.java
+++ b/java/maven/src/org/netbeans/modules/maven/spi/nodes/OtherSourcesExclude.java
@@ -27,7 +27,7 @@
  * src/main and src/test. It is assumed that implementing this interface is associated 
  * with implementation of a NodeFactory providing special handling for such folder.
  * To be registered in project lookup.
- * Related to {@link JavaLikeRootProvider} but only handling the Other sources node display.
+ * Related to {@link org.netbeans.modules.maven.spi.queries.JavaLikeRootProvider} but only handling the Other sources node display.
  * 
  * Note: the api is a bit simplistic for performance reasons, eg. if user reconfigures the src/main/webapp content to a different location in pom.xml we silently assume that
  * src/main/webapp doesn't exist then.
diff --git a/java/maven/src/org/netbeans/modules/maven/spi/queries/JavaLikeRootProvider.java b/java/maven/src/org/netbeans/modules/maven/spi/queries/JavaLikeRootProvider.java
index 406f732..40027f7 100644
--- a/java/maven/src/org/netbeans/modules/maven/spi/queries/JavaLikeRootProvider.java
+++ b/java/maven/src/org/netbeans/modules/maven/spi/queries/JavaLikeRootProvider.java
@@ -26,9 +26,9 @@
  * Extension point for contributing source roots compilable in parallel with Java sources.
  * Necessary since the {@link ClassPath#SOURCE} for {@code src/main/java/} must include {@code src/main/KIND/} too.
  * Generally these roots (under {@code src/test/KIND/} also) will get the same classpath information as Java.
- * Creation of {@link SourceGroup}s (or their nodes) is not automatic, as this requires display labels
+ * Creation of <a href="@org-netbeans-modules-projectapi@/org/netbeans/api/project/SourceGroup.html">SourceGroup</a>s (or their nodes) is not automatic, as this requires display labels
  * and might merit further customization.
- * Related/similar to {@link OtherSourcesExclude}
+ * Related/similar to {@link org.netbeans.modules.maven.spi.nodes.OtherSourcesExclude}
  * 
  * Note: the api is a bit simplistic for performance reasons, eg. if user reconfigures the src/main/groovy content to a different location in pom.xml we silently assume that
  * src/main/groovy doesn't exist then.
diff --git a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/InlineRefactoring.java b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/InlineRefactoring.java
index 861c75e..6a922cb 100644
--- a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/InlineRefactoring.java
+++ b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/InlineRefactoring.java
@@ -44,7 +44,7 @@
 
     /**
      * Creates a new instance of InlineRefactoring.
-     * @param selectedElement, element to inline.
+     * @param selectedElement element to inline.
      */
     public InlineRefactoring(@NonNull TreePathHandle selectedElement, Type inlineType) {
         super(Lookups.fixed(selectedElement));
diff --git a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/IntroduceLocalExtensionRefactoring.java b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/IntroduceLocalExtensionRefactoring.java
index d92b13d..d19c46e 100644
--- a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/IntroduceLocalExtensionRefactoring.java
+++ b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/IntroduceLocalExtensionRefactoring.java
@@ -190,7 +190,7 @@
      * Only create the extension class, or should all usages be replaced with
      * the new local extension.
      *
-     * @param replace true if usages need to use the new type.
+     * @return true if usages need to use the new type.
      */
     public boolean getReplace() {
         return replace;
diff --git a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
index 49ce5a0..458c70e 100644
--- a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
+++ b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/api/JavaRefactoringUtils.java
@@ -71,7 +71,7 @@
      * @param method 
      * @param info 
      * @return collection of ExecutableElements which overrides 'method'
-     * @deprecated use {@link #getOverridingMethods(javax.lang.model.element.ExecutableElement, org.netbeans.api.java.source.CompilationInfo, java.util.concurrent.atomic.AtomicBoolean) 
+     * @deprecated use {@link #getOverridingMethods(javax.lang.model.element.ExecutableElement, org.netbeans.api.java.source.CompilationInfo, java.util.concurrent.atomic.AtomicBoolean)}
      */
     @Deprecated
     @SuppressWarnings("deprecation")
diff --git a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/JavaWhereUsedFilters.java b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/JavaWhereUsedFilters.java
index 79bbac2..2071375 100644
--- a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/JavaWhereUsedFilters.java
+++ b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/JavaWhereUsedFilters.java
@@ -21,7 +21,7 @@
 /**
  * Filters used by Java Find Usages plugins.
  * 
- * @author Ralph Benjamin Ruijs <ralphbenjamin@netbeans.org>
+ * @author Ralph Benjamin Ruijs &lt;ralphbenjamin@netbeans.org&gt;
  * @since 1.39
  */
 public enum JavaWhereUsedFilters {
diff --git a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
index 01c23e3..357fb4b 100644
--- a/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
+++ b/java/refactoring.java/src/org/netbeans/modules/refactoring/java/spi/RefactoringVisitor.java
@@ -146,7 +146,7 @@
      * <p>
      * <code>tree</code> and <code>newTree</code> cannot be <code>null</code>.
      * If <code>oldTree</code> is null, <code>newTree</code> must be of kind
-     * {@link DocTree.Kind#DOC_COMMENT DOC_COMMENT}.
+     * {@link com.sun.source.doctree.DocTree.Kind#DOC_COMMENT DOC_COMMENT}.
      * 
      * @param tree     the tree to which the doctrees belong.
      * @param oldTree  tree to be replaced, use tree already represented in
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/ErrorDescriptionFactory.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/ErrorDescriptionFactory.java
index c5b6a15..bd583e1 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/ErrorDescriptionFactory.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/ErrorDescriptionFactory.java
@@ -127,7 +127,7 @@
      * and the {@link ErrorDescription} is created to be consistent with {@link ErrorDescription}s created
      * by the other factory methods in this class.
      * 
-     * @param context from which the {@link Severity} and other properties are inferred.
+     * @param context from which the {@link org.netbeans.spi.editor.hints.Severity} and other properties are inferred.
      * @param start start of the warning
      * @param end end of the warning
      * @param text the warning text
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/Hint.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/Hint.java
index e0f9413..55abf50 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/Hint.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/Hint.java
@@ -74,7 +74,7 @@
      */
     public String minSourceVersion() default "";
 
-    /**Whether the hint should be considered a {@link Kind#HINT hint}, e.g. it
+    /**Whether the hint should be considered a {@link Kind#INSPECTION hint}, e.g. it
      * detects a code smell, or otherwise leads to improving the code, or a {@link Kind#ACTION},
      * which is simply an offer to do automatically do something for the user.
      */
@@ -88,7 +88,7 @@
         * The transformation is not intended to improve the code, only allow the
         * user to do some kind of code transformation quickly.
         *
-        * The only meaningful severity for suggestions if {@link Severity#CURRENT_LINE_WARNING}.
+        * The only meaningful severity for suggestions if {@link HintSeverity#CURRENT_LINE_WARNING}.
         */
        ACTION;
     }
@@ -97,10 +97,10 @@
     */
     public enum Options {
         /**The hint does not produce any automatic transformations that could be run
-         * inside the Inspect&Refactor dialog.
+         * inside the Inspect&amp;Refactor dialog.
          */
         QUERY,
-        /**The hint cannot be run inside the Inspect&Refactor dialog.
+        /**The hint cannot be run inside the Inspect&amp;Refactor dialog.
          */
         NO_BATCH,
         /**
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/HintSeverity.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/HintSeverity.java
index 374909e..d694ac4 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/HintSeverity.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/HintSeverity.java
@@ -21,9 +21,11 @@
 import org.netbeans.spi.editor.hints.Severity;
 
 /** Severity of hint
+ *  <ul>
  *  <li><code>ERROR</code>  - will show up as error
  *  <li><code>WARNING</code>  - will show up as warning
  *  <li><code>CURRENT_LINE_WARNING</code>  - will only show up when the caret is placed in the erroneous element
+ *  </ul>
  * @author Petr Hrebejk
  */
 public enum HintSeverity {
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFix.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFix.java
index 8ca77dc..cfb7ccc 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFix.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/JavaFix.java
@@ -58,7 +58,7 @@
 
 /**A base class for fixes that modify Java source code. Using this class
  * as a base class makes creating the fix somewhat simpler, but also supports
- * running the hint in the Inspect&Transform dialog. The fix can be converted
+ * running the hint in the Inspect&amp;Transform dialog. The fix can be converted
  * to {@link Fix} by means of the {@link #toEditorFix() } method.
  *
  * @see JavaFixUtilities for various predefined fixes.
@@ -307,7 +307,7 @@
         }
 
         /**Record a changed version of a file. The changes will be applied altogether with
-         * changes to the Java file. In Inspect&Transform, changes done through this
+         * changes to the Java file. In Inspect&amp;Transform, changes done through this
          * method will be part of the preview.
          *
          * @param file whose content should be changed
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerOptions.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerOptions.java
index 03e35e0..e1d350b 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerOptions.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerOptions.java
@@ -38,7 +38,7 @@
      * Causes the trigger even on code which is locked for the user. Specifically
      * will trigger the hint on guarded block code, which the user can not modify.
      * However some supplemental information can be collected this way by the hint.
-     * <p/>
+     * <p>
      * Hint do not act on guarded blocks by default.
      */
     public static final String PROCESS_GUARDED = "processGuarded"; // NOI18N
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerTreeKind.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerTreeKind.java
index 4466469..d31a18c 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerTreeKind.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/TriggerTreeKind.java
@@ -29,7 +29,7 @@
 /**Invoke the method for {@link TreePath}s of the given kind.
  *
  * The method must be {@code public static}, the return type must either be assignable to
- * {@link ErrorDescription} or to {@link Iterable}{@code <? extends }{@link ErrorDescription}{@code >}.
+ * {@link org.netbeans.spi.editor.hints.ErrorDescription} or to {@link Iterable}{@code <? extends }{@link org.netbeans.spi.editor.hints.ErrorDescription}{@code >}.
  * Its sole parameter must be {@link HintContext}.
  *
  * @author lahvac
diff --git a/java/spi.java.hints/src/org/netbeans/spi/java/hints/support/TransformationSupport.java b/java/spi.java.hints/src/org/netbeans/spi/java/hints/support/TransformationSupport.java
index 7de0f58..99b6a86 100644
--- a/java/spi.java.hints/src/org/netbeans/spi/java/hints/support/TransformationSupport.java
+++ b/java/spi.java.hints/src/org/netbeans/spi/java/hints/support/TransformationSupport.java
@@ -54,7 +54,7 @@
 
 /**
  * Static utility classes for processing jackpot patterns.
- * <a href="https://bitbucket.org/jlahoda/jackpot30/wiki/RulesLanguage">Rules Language</a>
+ * <a href="https://github.com/apache/netbeans-jackpot30/tree/master/cmdline">Rules Language</a>
  * @author Jan Becicka
  * @since 1.1
  */
@@ -130,7 +130,7 @@
 
     /**
      * Transformer callback which is called for each occurrence during processing 
-     * of {@link #performTransformation(java.lang.String, org.netbeans.spi.java.hints.support.JackpotSupport.Transformer, java.util.concurrent.atomic.AtomicBoolean)    
+     * of {@link #performTransformation(java.lang.String, org.netbeans.spi.java.hints.support.JackpotSupport.Transformer, java.util.concurrent.atomic.AtomicBoolean) }
      */
     public interface Transformer {
 
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
index 1361dc8..471b212 100644
--- a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
@@ -67,7 +67,7 @@
 extide/gradle/external/gradle-7.4-bin.zip enterprise/libs.amazon/external/ion-java-1.0.2.jar
 extide/gradle/external/gradle-7.4-bin.zip ide/c.jcraft.jsch/external/jsch-0.1.55.jar
 extide/gradle/external/gradle-7.4-bin.zip ide/c.jcraft.jzlib/external/jzlib-1.1.3.jar
-extide/gradle/external/gradle-7.4-bin.zip ide/libs.commons_compress/external/commons-compress-1.21.jar
+extide/gradle/external/gradle-7.4-bin.zip ide/libs.commons_compress/external/commons-compress-1.23.0.jar
 extide/gradle/external/gradle-7.4-bin.zip ide/libs.tomlj/external/tomlj-1.0.0.jar
 extide/gradle/external/gradle-7.4-bin.zip ide/o.apache.commons.lang/external/commons-lang-2.6.jar
 extide/gradle/external/gradle-7.4-bin.zip ide/o.eclipse.jgit/external/org.eclipse.jgit-5.7.0.202003110725-r.jar
diff --git a/php/php.editor/nbproject/project.properties b/php/php.editor/nbproject/project.properties
index a5f392a..f1eae35 100644
--- a/php/php.editor/nbproject/project.properties
+++ b/php/php.editor/nbproject/project.properties
@@ -18,7 +18,7 @@
 javac.compilerargs=-Xlint -Xlint:-serial
 nbjavac.ignore.missing.enclosing=**/CUP$ASTPHP5Parser$actions.class
 nbm.needs.restart=true
-spec.version.base=2.23.0
+spec.version.base=2.24.0
 release.external/predefined_vars-1.0.zip=docs/predefined_vars.zip
 sigtest.gen.fail.on.error=false
 
diff --git a/php/php.editor/nbproject/project.xml b/php/php.editor/nbproject/project.xml
index e5d659e..f18d004 100644
--- a/php/php.editor/nbproject/project.xml
+++ b/php/php.editor/nbproject/project.xml
@@ -84,7 +84,7 @@
                     <compile-dependency/>
                     <run-dependency>
                         <release-version>2</release-version>
-                        <specification-version>2.72</specification-version>
+                        <specification-version>2.78</specification-version>
                     </run-dependency>
                 </dependency>
                 <dependency>
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/CodeUtils.java b/php/php.editor/src/org/netbeans/modules/php/editor/CodeUtils.java
index eff457d..fcc307e 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/CodeUtils.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/CodeUtils.java
@@ -320,6 +320,10 @@
     public static String extractUnqualifiedClassName(StaticDispatch dispatch) {
         Parameters.notNull("dispatch", dispatch);
         Expression dispatcher = dispatch.getDispatcher();
+        if (dispatcher instanceof StaticConstantAccess) {
+            // e.g. EnumName::Case::staticMethod();
+            dispatcher = ((StaticConstantAccess) dispatcher).getDispatcher();
+        }
         return extractUnqualifiedName(dispatcher);
     }
 
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java b/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
index d01a107..a38a996 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletion.java
@@ -330,8 +330,13 @@
 
         PHPCompletionItem.CompletionRequest request = new PHPCompletionItem.CompletionRequest();
         request.context = context;
-        String prefix = getPrefix(info, caretOffset, true, PrefixBreaker.WITH_NS_PARTS);
-        if (prefix == null) {
+        QueryType queryType = completionContext.getQueryType();
+        String prefix;
+        // GH-4494 if query type is documentation, get a whole identifier as a prefix
+        boolean upToOffset = queryType != QueryType.DOCUMENTATION;
+        prefix = getPrefix(info, caretOffset, upToOffset, PrefixBreaker.WITH_NS_PARTS);
+        if (prefix == null
+                || (queryType == QueryType.DOCUMENTATION && prefix.isEmpty())) {
             return CodeCompletionResult.NONE;
         }
         prefix = prefix.trim().isEmpty() ? completionContext.getPrefix() : prefix;
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/csl/SemanticAnalysis.java b/php/php.editor/src/org/netbeans/modules/php/editor/csl/SemanticAnalysis.java
index a1aa521..ff246f1 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/csl/SemanticAnalysis.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/csl/SemanticAnalysis.java
@@ -663,6 +663,7 @@
             if (node.getBody() != null) {
                 node.getBody().accept(this);
                 scanMethodBodies();
+                addColoringForUnusedPrivateConstants();
             }
             needToScan.remove(typeInfo);
             removeFromPath();
@@ -819,6 +820,12 @@
                     if (!isPrivate || parentNode instanceof TraitDeclaration) {
                         addColoringForNode(identifier, coloring);
                     } else {
+                        // NOTE: private constants, methods, and fields may be used in traits
+                        // currently, we don't check traits (if there is no performance problem, should check them if possible)
+                        // an enum is handled as a "final" class in PHP
+                        // so, virtually, "protected" is "private"
+                        // however, as written above, it may be used in traits
+                        // don't add protected items of Enum to unused items
                         privateUnusedConstants.put(new UnusedIdentifier(identifier.getName(), typeInfo), new ASTNodeColoring(identifier, coloring));
                     }
                 }
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java
index c8a4085..3056133 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/indent/FormatVisitor.java
@@ -600,7 +600,7 @@
                 formatTokens.add(new FormatToken.IndentToken(ts.offset(), options.indentSize));
             }
 
-            if (parent instanceof ClassDeclaration || parent instanceof InterfaceDeclaration || parent instanceof TraitDeclaration) {
+            if (isTypeNode(parent)) {
                 formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_CLASS_LEFT_BRACE, ts.offset()));
             } else if (isAnonymousClass(parent)) {
                 formatTokens.add(new FormatToken(FormatToken.Kind.WHITESPACE_AFTER_ANONYMOUS_CLASS_LEFT_BRACE, ts.offset()));
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java b/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java
index 0966469..0649af2 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/indent/TokenFormatter.java
@@ -742,7 +742,7 @@
                                         indentRule = true;
                                         ws = countWhiteSpaceBeforeRightBrace(
                                                 docOptions.classDeclBracePlacement,
-                                                newLines,
+                                                docOptions.blankLinesBeforeClassEnd + 1, // GH-46111 ignore existing newLines to prioritize this option
                                                 docOptions.blankLinesBeforeClassEnd,
                                                 indent,
                                                 formatTokens,
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/model/ModelUtils.java b/php/php.editor/src/org/netbeans/modules/php/editor/model/ModelUtils.java
index af8a561..ad54aef 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/model/ModelUtils.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/model/ModelUtils.java
@@ -59,6 +59,7 @@
 import org.netbeans.modules.php.editor.parser.astnodes.Assignment;
 import org.netbeans.modules.php.editor.parser.astnodes.Expression;
 import org.netbeans.modules.php.editor.parser.astnodes.NamespaceDeclaration;
+import org.netbeans.modules.php.editor.parser.astnodes.StaticConstantAccess;
 import org.netbeans.modules.php.editor.parser.astnodes.StaticDispatch;
 import org.netbeans.modules.php.editor.parser.astnodes.VariableBase;
 import org.netbeans.modules.php.editor.parser.astnodes.visitors.DefaultVisitor;
@@ -198,8 +199,13 @@
 
     public static Collection<? extends TypeScope> resolveType(Model model, StaticDispatch dispatch) {
         VariableScope variableScope = model.getVariableScope(dispatch.getStartOffset());
+        Expression staticDispatch = dispatch;
+        if (dispatch.getDispatcher() instanceof StaticConstantAccess) {
+            // e.g. EnumName::Case::method();
+            staticDispatch = ((StaticConstantAccess) dispatch.getDispatcher()).getDispatcher();
+        }
         QualifiedName fullyQualifiedName = VariousUtils.getFullyQualifiedName(
-                ASTNodeInfo.toQualifiedName(dispatch, true),
+                ASTNodeInfo.toQualifiedName(staticDispatch, true),
                 dispatch.getStartOffset(),
                 variableScope);
         NamespaceIndexFilter filter = new NamespaceIndexFilter(fullyQualifiedName.toString());
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ClassScopeImpl.java b/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ClassScopeImpl.java
index ce7a574..3ae5417 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ClassScopeImpl.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ClassScopeImpl.java
@@ -39,6 +39,7 @@
 import org.netbeans.modules.php.editor.api.elements.TraitElement;
 import org.netbeans.modules.php.editor.api.elements.TypeConstantElement;
 import org.netbeans.modules.php.editor.api.elements.TypeElement;
+import org.netbeans.modules.php.editor.api.elements.TypeMemberElement;
 import org.netbeans.modules.php.editor.index.PHPIndexer;
 import org.netbeans.modules.php.editor.index.Signature;
 import org.netbeans.modules.php.editor.model.CaseElement;
@@ -335,6 +336,13 @@
                 allFields.add(new FieldElementImpl(traitScope, field));
             }
         }
+        // GH-4683 get fields of mixin
+        Set<TypeMemberElement> mixinTypeMembers = index.getAccessibleMixinTypeMembers(this, this);
+        for (TypeMemberElement mixinTypeMember : mixinTypeMembers) {
+            if (mixinTypeMember instanceof org.netbeans.modules.php.editor.api.elements.FieldElement) {
+                allFields.add((new FieldElementImpl(this, (org.netbeans.modules.php.editor.api.elements.FieldElement) mixinTypeMember)));
+            }
+        }
         return allFields;
     }
 
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ModelVisitor.java b/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ModelVisitor.java
index ef3de8e..b5ac842 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ModelVisitor.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/ModelVisitor.java
@@ -439,7 +439,7 @@
                 Kind[] kinds = {Kind.CLASS, Kind.IFACE};
                 occurencesBuilder.prepare(kinds, namespaceName, fileScope);
             }
-        } else if (!(parent instanceof ClassDeclaration) && !(parent instanceof InterfaceDeclaration)
+        } else if (!(parent instanceof ClassDeclaration) && !(parent instanceof EnumDeclaration) && !(parent instanceof InterfaceDeclaration)
                 && !(parent instanceof FormalParameter) && !(parent instanceof InstanceOfExpression)
                 && !(parent instanceof UseTraitStatementPart) && !(parent instanceof TraitConflictResolutionDeclaration)
                 && !(parent instanceof TraitMethodAliasDeclaration) && !(parent instanceof IntersectionType)) {
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/VariousUtils.java b/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/VariousUtils.java
index 36953f8..47e0226 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/VariousUtils.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/model/impl/VariousUtils.java
@@ -1411,6 +1411,11 @@
                                 }
                                 metaAll.insert(0, PRE_OPERATION_TYPE_DELIMITER + VariousUtils.TYPE_TYPE_PREFIX);
                             }
+                        } else if (isReference(token)) {
+                            // ->fieldName
+                            metaAll.insert(0, PRE_OPERATION_TYPE_DELIMITER + VariousUtils.FIELD_TYPE_PREFIX);
+                            state = State.REFERENCE;
+                            break;
                         } else {
                             metaAll = transformToFullyQualifiedType(metaAll, tokenSequence, varScope);
                             metaAll.insert(0, PRE_OPERATION_TYPE_DELIMITER + VariousUtils.TYPE_TYPE_PREFIX);
@@ -1666,9 +1671,9 @@
             csi = (TypeScope) inScope;
         }
         if (csi != null) {
-            if ("self".equals(staticTypeName)) { //NOI18N
+            if (Type.SELF.equalsIgnoreCase(staticTypeName) || Type.STATIC.equalsIgnoreCase(staticTypeName)) {
                 return Collections.singletonList(csi);
-            } else if ("parent".equals(staticTypeName) && (csi instanceof ClassScope)) { //NOI18N
+            } else if (Type.PARENT.equalsIgnoreCase(staticTypeName) && (csi instanceof ClassScope)) {
                 return ((ClassScope) csi).getSuperClasses();
             }
         }
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptor.java b/php/php.editor/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptor.java
index b3a2c13..d6d92c3 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptor.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptor.java
@@ -183,7 +183,7 @@
                 if (ts != null) {
                     ts.move(dotPos);
                     if (ts.moveNext() && (ts.offset() < dotPos)) {
-                        GsfUtilities.setLineIndentation(doc, dotPos, previousAdjustmentIndent);
+                        GsfUtilities.setLineIndentation((Document) doc, dotPos, previousAdjustmentIndent);
                     }
                 }
             }
@@ -450,29 +450,38 @@
                     int currentIndent = Utilities.getRowIndent(doc, offset);
                     int newIndent = IndentUtils.countIndent(doc, offset, previousIndent);
                     if (newIndent != currentIndent) {
-                        GsfUtilities.setLineIndentation(doc, offset, Math.max(newIndent, 0));
+                        GsfUtilities.setLineIndentation((Document) doc, offset, Math.max(newIndent, 0));
                     }
                 } else if (id == PHPTokenId.WHITESPACE || (id == PHPTokenId.PHP_TOKEN && token.text().charAt(0) == ':')) { // ":" handles "default:"
+                    Token<? extends PHPTokenId> previousToken = null;
                     if (id == PHPTokenId.WHITESPACE) {
-                        LexUtilities.findPreviousToken(ts, Arrays.asList(PHPTokenId.PHP_CASE));
+                        previousToken = LexUtilities.findPreviousToken(ts, Arrays.asList(PHPTokenId.PHP_CASE, PHPTokenId.PHP_TOKEN));
                     } else {
-                        LexUtilities.findPreviousToken(ts, Arrays.asList(PHPTokenId.PHP_DEFAULT));
+                        if (ts.movePrevious()) { // ":"
+                            previousToken = LexUtilities.findPreviousToken(ts, Arrays.asList(PHPTokenId.PHP_DEFAULT, PHPTokenId.PHP_TOKEN));
+                        }
                     }
-                    if (ts.offset() >= rowFirstNonWhite) { //previous "case" or "default" on one line with typed char
-                        LexUtilities.findPreviousToken(ts, Arrays.asList(PHPTokenId.PHP_SWITCH));
-                        Token<? extends PHPTokenId> firstCaseInSwitch = LexUtilities.findNextToken(ts, Arrays.asList(PHPTokenId.PHP_CASE));
-                        if (firstCaseInSwitch != null && firstCaseInSwitch.id() == PHPTokenId.PHP_CASE) {
-                            int indentOfFirstCase = GsfUtilities.getLineIndent(doc, ts.offset());
-                            GsfUtilities.setLineIndentation(doc, offset, indentOfFirstCase);
+                    if (ts.offset() >= rowFirstNonWhite
+                            && previousToken != null
+                            && (previousToken.id() == PHPTokenId.PHP_CASE
+                            || previousToken.id() == PHPTokenId.PHP_DEFAULT)) {
+                        // previous "case" or "default" on one line with typed char
+                        previousToken = LexUtilities.findPreviousToken(ts, Arrays.asList(PHPTokenId.PHP_SWITCH));
+                        if (previousToken != null && previousToken.id() == PHPTokenId.PHP_SWITCH) {
+                            Token<? extends PHPTokenId> firstCaseInSwitch = LexUtilities.findNextToken(ts, Arrays.asList(PHPTokenId.PHP_CASE));
+                            if (firstCaseInSwitch != null && firstCaseInSwitch.id() == PHPTokenId.PHP_CASE) {
+                                int indentOfFirstCase = GsfUtilities.getLineIndent((Document) doc, ts.offset());
+                                GsfUtilities.setLineIndentation((Document) doc, offset, indentOfFirstCase);
+                            }
                         }
                     }
                 } else if (id == PHPTokenId.PHP_CURLY_CLOSE) {
                     OffsetRange begin = LexUtilities.findBwd(doc, ts, PHPTokenId.PHP_CURLY_OPEN, '{', PHPTokenId.PHP_CURLY_CLOSE, '}');
                     if (begin != OffsetRange.NONE) {
                         int beginOffset = begin.getStart();
-                        int indent = GsfUtilities.getLineIndent(doc, beginOffset);
-                        previousAdjustmentIndent = GsfUtilities.getLineIndent(doc, offset);
-                        GsfUtilities.setLineIndentation(doc, offset, indent);
+                        int indent = GsfUtilities.getLineIndent((Document) doc, beginOffset);
+                        previousAdjustmentIndent = GsfUtilities.getLineIndent((Document) doc, offset);
+                        GsfUtilities.setLineIndentation((Document) doc, offset, indent);
                         previousAdjustmentOffset = caret.getDot();
                     }
                 }
diff --git a/php/php.editor/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestion.java b/php/php.editor/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestion.java
index 0a9de4a..7989774 100644
--- a/php/php.editor/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestion.java
+++ b/php/php.editor/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestion.java
@@ -20,6 +20,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -51,13 +52,16 @@
 import org.netbeans.modules.php.editor.api.elements.BaseFunctionElement.PrintAs;
 import org.netbeans.modules.php.editor.api.elements.ClassElement;
 import org.netbeans.modules.php.editor.api.elements.ElementFilter;
+import org.netbeans.modules.php.editor.api.elements.EnumCaseElement;
 import org.netbeans.modules.php.editor.api.elements.FieldElement;
 import org.netbeans.modules.php.editor.api.elements.MethodElement;
 import org.netbeans.modules.php.editor.api.elements.TypeConstantElement;
 import org.netbeans.modules.php.editor.elements.MethodElementImpl;
 import org.netbeans.modules.php.editor.lexer.LexUtilities;
 import org.netbeans.modules.php.editor.lexer.PHPTokenId;
+import org.netbeans.modules.php.editor.model.CaseElement;
 import org.netbeans.modules.php.editor.model.ClassScope;
+import org.netbeans.modules.php.editor.model.EnumScope;
 import org.netbeans.modules.php.editor.model.InterfaceScope;
 import org.netbeans.modules.php.editor.model.MethodScope;
 import org.netbeans.modules.php.editor.model.Model;
@@ -134,14 +138,16 @@
             final Model model = phpParseResult.getModel();
             IntroduceFixVisitor introduceFixVisitor = new IntroduceFixVisitor(model, lineBounds);
             phpParseResult.getProgram().accept(introduceFixVisitor);
-            IntroduceFix variableFix = introduceFixVisitor.getIntroduceFix();
-            if (variableFix != null) {
-                if (CancelSupport.getDefault().isCancelled()) {
-                    return;
+            List<IntroduceFix> variableFixes = introduceFixVisitor.getIntroduceFixes();
+            if (!variableFixes.isEmpty()) {
+                for (IntroduceFix variableFixe : variableFixes) {
+                    if (CancelSupport.getDefault().isCancelled()) {
+                        return;
+                    }
+                    hints.add(new Hint(IntroduceSuggestion.this, getDisplayName(),
+                            fileObject, variableFixe.getOffsetRange(),
+                            Collections.<HintFix>singletonList(variableFixe), 500));
                 }
-                hints.add(new Hint(IntroduceSuggestion.this, getDisplayName(),
-                        fileObject, variableFix.getOffsetRange(),
-                        Collections.<HintFix>singletonList(variableFix), 500));
             }
         }
     }
@@ -149,7 +155,7 @@
     private static class IntroduceFixVisitor extends DefaultTreePathVisitor {
         private final Model model;
         private final OffsetRange lineBounds;
-        private IntroduceFix fix;
+        private final List<IntroduceFix> fixes = new ArrayList<>();
 
         IntroduceFixVisitor(Model model, OffsetRange lineBounds) {
             this.lineBounds = lineBounds;
@@ -185,7 +191,7 @@
                     if (clzName != null && classes.isEmpty()) {
                         ClassElement clz = getIndexedClass(clzName);
                         if (clz == null) {
-                            fix = IntroduceClassFix.getInstance(clzName, model, instanceCreation);
+                            fixes.add(IntroduceClassFix.getInstance(clzName, model, instanceCreation));
                         }
                     }
                 }
@@ -209,9 +215,9 @@
                         if (allMethods.isEmpty()) {
                             assert type != null;
                             FileObject fileObject = type.getFileObject();
-                            BaseDocument document = fileObject != null ? GsfUtilities.getDocument(fileObject, true) : null;
+                            BaseDocument document = fileObject != null ? (BaseDocument) GsfUtilities.getADocument(fileObject, true) : null;
                             if (document != null && fileObject.canWrite()) {
-                                fix = new IntroduceMethodFix(document, methodInvocation, type);
+                                fixes.add(new IntroduceMethodFix(document, methodInvocation, type));
                             }
                         }
                     }
@@ -240,9 +246,9 @@
                         if (allMethods.isEmpty()) {
                             assert type != null;
                             FileObject fileObject = type.getFileObject();
-                            BaseDocument document = fileObject != null ? GsfUtilities.getDocument(fileObject, true) : null;
+                            BaseDocument document = fileObject != null ? (BaseDocument) GsfUtilities.getADocument(fileObject, true) : null;
                             if (document != null && fileObject.canWrite()) {
-                                fix = new IntroduceStaticMethodFix(document, methodInvocation, type);
+                                fixes.add(new IntroduceStaticMethodFix(document, methodInvocation, type));
                             }
                         }
                     }
@@ -267,10 +273,10 @@
                         if (allFields.isEmpty()) {
                             assert type != null;
                             FileObject fileObject = type.getFileObject();
-                            BaseDocument document = fileObject != null ? GsfUtilities.getDocument(fileObject, false) : null;
+                            BaseDocument document = fileObject != null ? (BaseDocument) GsfUtilities.getADocument(fileObject, false) : null;
                             if (document != null && fileObject.canWrite()) {
                                 if (type instanceof ClassScope || type instanceof TraitScope) {
-                                    fix = new IntroduceFieldFix(document, fieldAccess, type);
+                                    fixes.add(new IntroduceFieldFix(document, fieldAccess, type));
                                 }
                             }
                         }
@@ -310,10 +316,10 @@
                         if (allFields.isEmpty()) {
                             assert type != null;
                             FileObject fileObject = type.getFileObject();
-                            BaseDocument document = fileObject != null ? GsfUtilities.getDocument(fileObject, true) : null;
+                            BaseDocument document = fileObject != null ? (BaseDocument) GsfUtilities.getADocument(fileObject, true) : null;
                             if (document != null && fileObject.canWrite()) {
                                 if (type instanceof ClassScope || type instanceof TraitScope) {
-                                    fix = new IntroduceStaticFieldFix(document, fieldAccess, type);
+                                    fixes.add(new IntroduceStaticFieldFix(document, fieldAccess, type));
                                 }
                             }
                         }
@@ -341,12 +347,19 @@
                         if (!(type instanceof TraitScope)) {
                             ElementQuery.Index index = model.getIndexScope().getIndex();
                             Set<TypeConstantElement> allConstants = ElementFilter.forName(NameKind.exact(constName)).filter(index.getAllTypeConstants(type));
-                            if (allConstants.isEmpty()) {
+                            Set<EnumCaseElement> allEnumCases = type instanceof EnumScope
+                                    ? ElementFilter.forName(NameKind.exact(constName)).filter(index.getAllEnumCases(type))
+                                    : Collections.emptySet();
+                            if (allConstants.isEmpty() && allEnumCases.isEmpty()) {
                                 assert type != null;
                                 FileObject fileObject = type.getFileObject();
-                                BaseDocument document = fileObject != null ? GsfUtilities.getDocument(fileObject, false) : null;
+                                BaseDocument document = fileObject != null ? (BaseDocument) GsfUtilities.getADocument(fileObject, false) : null;
+                                // if fileObject is null, document is null
                                 if (document != null && fileObject.canWrite()) {
-                                    fix = new IntroduceClassConstantFix(document, staticConstantAccess, (TypeScope) type);
+                                    fixes.add(new IntroduceClassConstantFix(document, staticConstantAccess, type));
+                                    if (type instanceof EnumScope) {
+                                        fixes.add(new IntroduceEnumCaseFix(document, staticConstantAccess, (EnumScope) type));
+                                    }
                                 }
                             }
                         }
@@ -358,10 +371,12 @@
         }
 
         /**
-         * @return or null
+         * Get Fixes.
+         *
+         * @return fixes
          */
-        public IntroduceFix getIntroduceFix() {
-            return fix;
+        public List<IntroduceFix> getIntroduceFixes() {
+            return Collections.unmodifiableList(fixes);
         }
 
         private ClassElement getIndexedClass(String name) {
@@ -719,6 +734,79 @@
         }
     }
 
+    private static class IntroduceEnumCaseFix extends IntroduceFix {
+
+        private final EnumScope type;
+        private final String template;
+        private final String enumCaseName;
+        private final String backingType;
+
+        public IntroduceEnumCaseFix(BaseDocument doc, StaticConstantAccess node, EnumScope type) {
+            super(doc, node);
+            this.type = type;
+            this.enumCaseName = ((StaticConstantAccess) node).getConstantName().getName();
+            this.backingType = type.getBackingType() != null ? type.getBackingType().toString() : null;
+            this.template = String.format(getTemplate(backingType), enumCaseName);
+        }
+
+        private String getTemplate(String backingType) {
+            String caseTemplate = "case %s;"; // NOI18N
+            if (backingType != null) {
+                if (Type.STRING.equals(backingType)) {
+                    caseTemplate = "case %s = '';"; // NOI18N
+                } else if (Type.INT.equals(backingType)) {
+                    caseTemplate = "case %s = " + (getLastIntIndex() + 1) + ";"; // NOI18N
+                }
+            }
+            return caseTemplate;
+        }
+
+        private int getLastIntIndex() {
+            int index = 0;
+            for (CaseElement enumCase : type.getDeclaredEnumCases()) {
+                String value = enumCase.getValue();
+                try {
+                    int intValue = Integer.parseInt(value);
+                    index = Integer.max(index, intValue);
+                } catch (NumberFormatException e) {
+                    // no-op
+                }
+            }
+            return index;
+        }
+
+        @Override
+        public void implement() throws Exception {
+            int templateOffset = getOffset();
+            EditList edits = new EditList(doc);
+            edits.replace(templateOffset, 0, "\n" + template, true, 0); // NOI18N
+            edits.apply();
+            int caretPositionFromEndOftemplate = Type.STRING.equalsIgnoreCase(backingType) ? 2 : 1;
+            templateOffset = LineDocumentUtils.getLineEnd(doc, templateOffset + 1) - caretPositionFromEndOftemplate;
+            UiUtils.open(type.getFileObject(), templateOffset);
+        }
+
+        @Override
+        @Messages({
+            "# {0} - Case name",
+            "# {1} - Type kind",
+            "# {2} - Type name",
+            "# {3} - File name",
+            "IntroduceHintEnumCaseDesc=Create Enum Case \"{0}\" in {1} \"{2}\" ({3})"
+        })
+        public String getDescription() {
+            String typeName = type.getName();
+            FileObject fileObject = type.getFileObject();
+            String fileName = fileObject == null ? UNKNOWN_FILE_NAME : fileObject.getNameExt();
+            String typeKindName = getTypeKindName(type);
+            return Bundle.IntroduceHintEnumCaseDesc(enumCaseName, typeKindName, typeName, fileName);
+        }
+
+        int getOffset() throws BadLocationException {
+            return IntroduceSuggestion.getOffset(doc, type, PhpElementKind.ENUM_CASE);
+        }
+    }
+
     abstract static class IntroduceFix implements HintFix {
 
         BaseDocument doc;
@@ -781,6 +869,10 @@
                     TraitScope trait = (TraitScope) typeScope;
                     elements.addAll(trait.getDeclaredFields());
                     elements.addAll(trait.getDeclaredMethods());
+                } else if (typeScope instanceof EnumScope) {
+                    EnumScope enumScope = (EnumScope) typeScope;
+                    elements.addAll(enumScope.getDeclaredEnumCases());
+                    elements.addAll(enumScope.getDeclaredMethods());
                 }
                 break;
             case FIELD:
@@ -792,6 +884,12 @@
                     elements.addAll(trait.getDeclaredFields());
                 }
                 break;
+            case ENUM_CASE:
+                if (typeScope instanceof EnumScope) {
+                    EnumScope enumScope = (EnumScope) typeScope;
+                    elements.addAll(enumScope.getDeclaredEnumCases());
+                }
+                break;
             case TYPE_CONSTANT:
                 // no-op
                 break;
@@ -953,7 +1051,8 @@
     @Messages({
         "IntroduceHintClassName=Class",
         "IntroduceHintInterfaceName=Interface",
-        "IntroduceHintTraitName=Trait"
+        "IntroduceHintTraitName=Trait",
+        "IntroduceHintEnumName=Enum",
     })
     private static String getTypeKindName(TypeScope typeScope) {
         if (typeScope instanceof ClassScope) {
@@ -962,6 +1061,8 @@
             return Bundle.IntroduceHintInterfaceName();
         } else if (typeScope instanceof TraitScope) {
             return Bundle.IntroduceHintTraitName();
+        } else if (typeScope instanceof EnumScope) {
+            return Bundle.IntroduceHintEnumName();
         }
         assert false;
         return "?"; // NOI18N
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php
new file mode 100644
index 0000000..f4e1c7f
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php
@@ -0,0 +1,53 @@
+<?php
+/*
+ * 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.
+ */
+/**
+ * function gh4494().
+ *
+ * @return void
+ */
+function gh4494(): void {
+}
+
+/**
+ * function gh4494_aa().
+ *
+ * @return void
+ */
+function gh4494_aa(): void {
+}
+
+/**
+ * function gh4494_aa_bb().
+ *
+ * @return void
+ */
+function gh4494_aa_bbb(): void {
+}
+
+/**
+ * function gh4494_aa_bb_cc().
+ *
+ * @return void
+ */
+function gh4494_aa_bb_cc(): void {
+}
+
+gh4494_aa_bb_cc();
+gh4494_aa_bbb();
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_01.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_01.html
new file mode 100644
index 0000000..daeaf44
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_01.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh44|94_aa_bbb();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bbb()                 [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bbb</b><br/><br/>
+function gh4494_aa_bb().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_02.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_02.html
new file mode 100644
index 0000000..74e6c82
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_02.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa|_bbb();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bbb()                 [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bbb</b><br/><br/>
+function gh4494_aa_bb().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_03.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_03.html
new file mode 100644
index 0000000..aa5ad8c
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_03.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa_b|bb();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bbb()                 [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bbb</b><br/><br/>
+function gh4494_aa_bb().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_04.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_04.html
new file mode 100644
index 0000000..d63442a
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_04.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494|_aa_bb_cc();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bb_cc()               [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_05.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_05.html
new file mode 100644
index 0000000..21fe2ae
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_05.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa|_bb_cc();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bb_cc()               [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_06.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_06.html
new file mode 100644
index 0000000..0a6703c
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_06.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa_bb|_cc();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bb_cc()               [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_07.html b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_07.html
new file mode 100644
index 0000000..520b02d
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH4494.php.testIssueGH4494_07.html
@@ -0,0 +1,11 @@
+<html><body>
+<pre>Code completion result for source line:
+gh4494_aa_bb_cc|();
+(QueryType=DOCUMENTATION, prefixSearch=false, caseSensitive=true)
+METHOD     gh4494_aa_bb_cc()               [PUBLIC]   issueGH4494.php
+</pre><h2>Documentation:</h2><div align="right"><font size=-1></font></div><b>gh4494_aa_bb_cc</b><br/><br/>
+function gh4494_aa_bb_cc().
+<br />
+<h3>Returns:</h3>
+<table>
+<tr><th align="left">Type:</th><td>void</td></tr></table></body></html>
\ No newline at end of file
diff --git a/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH5347.php b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH5347.php
new file mode 100644
index 0000000..1af61ad
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/documentation/issueGH5347.php
@@ -0,0 +1,22 @@
+<?php
+/*
+ * 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.
+ */
+// test
+
+undefined();
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php
new file mode 100644
index 0000000..05ee502
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php
@@ -0,0 +1,128 @@
+<?php
+/*
+ * 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.
+ */
+
+/**
+ * @property-read TestData $data
+ */
+class MixinClass {
+    public const PUBLIC_CONSTANT = "public const";
+    private const PRIVATE_CONSTANT = "private const";
+    protected const PROTECTED_CONSTANT = "protected const";
+
+    public static $publicStaticField;
+    private static $privateStaticField;
+    protected static $protectedStaticField;
+
+    public function __construct(
+        public readonly array $publicField,
+        private array $privatecField,
+        protected int $protectedField,
+    ) {
+
+    }
+
+    public function publicMethod(): void {
+
+    }
+
+    private function privateMethod(): void {
+
+    }
+
+    protected function protectedMethod(): void {
+
+    }
+
+    public static function publicStaticMethod(): void {
+
+    }
+
+    private static function privateStaticMethod(): void {
+
+    }
+
+    protected static function protectedStaticMethod(): void {
+
+    }
+}
+
+/**
+ * @mixin MixinClass
+ */
+class TestClass {
+
+    public function test(): void {
+        $this->data;
+        $this->data->publicField;
+        $this->data::PUBLIC_CONSTANT;
+    }
+
+}
+
+class TestData {
+
+    public const PUBLIC_CONSTANT = "public const";
+    private const PRIVATE_CONSTANT = "private const";
+    protected const PROTECTED_CONSTANT = "protected const";
+
+    public static $publicStaticField;
+    private static $privateStaticField;
+    protected static $protectedStaticField;
+
+    public function __construct(
+        public readonly array $publicField,
+        private array $privatecField,
+        protected int $protectedField,
+    ) {
+
+    }
+
+    public function publicMethod(): void {
+
+    }
+
+    private function privateMethod(): void {
+
+    }
+
+    protected function protectedMethod(): void {
+
+    }
+
+    public static function publicStaticMethod(): void {
+
+    }
+
+    private static function privateStaticMethod(): void {
+
+    }
+
+    protected static function protectedStaticMethod(): void {
+
+    }
+
+}
+
+$test = new TestClass();
+$data = new TestData([], [], 0);
+
+$test->data;
+$test->data->publicField;
+$test->data::PUBLIC_CONSTANT;
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_01.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_01.completion
new file mode 100644
index 0000000..e78d21e
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_01.completion
@@ -0,0 +1,11 @@
+Code completion result for source line:
+$this->|data;
+(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
+METHOD     protectedMethod()               [PROTECTE  MixinClass
+METHOD     protectedStaticMethod()         [PROTECTE  MixinClass
+METHOD     publicMethod()                  [PUBLIC]   MixinClass
+METHOD     publicStaticMethod()            [STATIC]   MixinClass
+METHOD     test()                          [PUBLIC]   TestClass
+VARIABLE   TestData data                   [PUBLIC]   MixinClass
+VARIABLE   array publicField               [PUBLIC]   MixinClass
+VARIABLE   int protectedField              [PROTECTE  MixinClass
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_02.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_02.completion
new file mode 100644
index 0000000..146c82e
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_02.completion
@@ -0,0 +1,6 @@
+Code completion result for source line:
+$this->data->|publicField;
+(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
+METHOD     publicMethod()                  [PUBLIC]   TestData
+METHOD     publicStaticMethod()            [STATIC]   TestData
+VARIABLE   array publicField               [PUBLIC]   TestData
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_03.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_03.completion
new file mode 100644
index 0000000..6e75651
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_03.completion
@@ -0,0 +1,7 @@
+Code completion result for source line:
+$this->data::|PUBLIC_CONSTANT;
+(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
+METHOD     publicStaticMethod()            [STATIC]   TestData
+VARIABLE   ? $publicStaticField            [STATIC]   TestData
+CONSTANT   PUBLIC_CONSTANT "public const"  [PUBLIC]   TestData
+CONSTANT   class \TestData                 [PUBLIC]   Magic Constant
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_04.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_04.completion
new file mode 100644
index 0000000..eae28e9
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_04.completion
@@ -0,0 +1,8 @@
+Code completion result for source line:
+$test->|data;
+(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
+METHOD     publicMethod()                  [PUBLIC]   MixinClass
+METHOD     publicStaticMethod()            [STATIC]   MixinClass
+METHOD     test()                          [PUBLIC]   TestClass
+VARIABLE   TestData data                   [PUBLIC]   MixinClass
+VARIABLE   array publicField               [PUBLIC]   MixinClass
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_05.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_05.completion
new file mode 100644
index 0000000..2941f36
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_05.completion
@@ -0,0 +1,6 @@
+Code completion result for source line:
+$test->data->|publicField;
+(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
+METHOD     publicMethod()                  [PUBLIC]   TestData
+METHOD     publicStaticMethod()            [STATIC]   TestData
+VARIABLE   array publicField               [PUBLIC]   TestData
diff --git a/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_06.completion b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_06.completion
new file mode 100644
index 0000000..686e657
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/completion/lib/gh4683/gh4683.php.testGH3486_06.completion
@@ -0,0 +1,7 @@
+Code completion result for source line:
+$test->data::|PUBLIC_CONSTANT;
+(QueryType=COMPLETION, prefixSearch=true, caseSensitive=true)
+METHOD     publicStaticMethod()            [STATIC]   TestData
+VARIABLE   ? $publicStaticField            [STATIC]   TestData
+CONSTANT   PUBLIC_CONSTANT "public const"  [PUBLIC]   TestData
+CONSTANT   class \TestData                 [PUBLIC]   Magic Constant
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords01.php.formatted
index 245e644..f349292 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords01.php.formatted
@@ -67,7 +67,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords02.php.formatted
index 245e644..f349292 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords02.php.formatted
@@ -67,7 +67,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords03.php.formatted
index 3401c63..b4c7f4f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords03.php.formatted
@@ -82,7 +82,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords04.php.formatted
index ae33085..8bb3420 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/alignmentKeywords04.php.formatted
@@ -71,7 +71,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentArrayInit01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentArrayInit01.php.formatted
index a6ffd59..c7752b8 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentArrayInit01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentArrayInit01.php.formatted
@@ -35,7 +35,6 @@
             "shor"     => 222
         );
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentAssignment01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentAssignment01.php.formatted
index 5cd5efc..20b98c9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentAssignment01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/groupAlignmentAssignment01.php.formatted
@@ -35,7 +35,6 @@
             "shor" => 222
         );
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue209030.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue209030.php.formatted
index 5848625..b4f3947 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue209030.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue209030.php.formatted
@@ -11,7 +11,6 @@
             //
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue211482.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue211482.php.formatted
index 3568930..d44b2b2 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue211482.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue211482.php.formatted
@@ -26,7 +26,6 @@
 
         $quiteLongVariable = "long";
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue218847.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue218847.php.formatted
index 235742a..d06b027 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue218847.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue218847.php.formatted
@@ -36,7 +36,6 @@
             function functionName3() {
         
     }
-
 }
 
 class Foo {
@@ -52,7 +51,6 @@
             function foo() {
         
     }
-
 }
 
 interface Iface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue230798.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue230798.php.formatted
index c1e012c..20bd952 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue230798.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/alignment/issue230798.php.formatted
@@ -5,7 +5,6 @@
     private $barbarbarbar = 'b';
     protected $snafu      = 'c';
     public $foo           = 'a';
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/anonymousClass.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/anonymousClass.php.formatted
index 86ecb9c..e95cc51 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/anonymousClass.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/anonymousClass.php.formatted
@@ -24,7 +24,6 @@
             }
         };
     }
-
 }
 
 $anonClass = new class {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/arrays3.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/arrays3.php.formatted
index 4c5fbb7..1e6ccad 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/arrays3.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/arrays3.php.formatted
@@ -20,7 +20,6 @@
       "Item 3" => 3
   );
   public $number2 = 1;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/arrays5.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/arrays5.php.formatted
index 41d0781..4a4edfd 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/arrays5.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/arrays5.php.formatted
@@ -9,7 +9,6 @@
             echo "false";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/arrowFunctions01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/arrowFunctions01.php.formatted
index 94610de..6afad71 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/arrowFunctions01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/arrowFunctions01.php.formatted
@@ -98,5 +98,4 @@
     public static function new() {
         return new ArrowFunctions();
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement01.php.formatted
index 637dda9..3cd64b4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement01.php.formatted
@@ -74,7 +74,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement02.php.formatted
index e3359f9..cc9f15e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement02.php.formatted
@@ -74,7 +74,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
             }
         }
-
     }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement03.php.formatted
index f56534c..e2d0df9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/BracePlacement03.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class01.php.formatted
index 44e725a..2b50e4b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class01.php.formatted
@@ -10,7 +10,6 @@
     final public function moreTesting() {
         echo "BaseClass::moreTesting() called\n";
     }
-
 }
 
 final class ChildClass extends BaseClass {
@@ -21,13 +20,11 @@
     public function method1() {
         
     }
-
 }
 
 final class ChildClass2 extends BaseClass {
 
     public $field2 = 22;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class03.php.formatted
index 8539bc1..45204c4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Class03.php.formatted
@@ -64,7 +64,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility01.php.formatted
index d6d7e6a..307f3af 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility01.php.formatted
@@ -6,5 +6,4 @@
     public const PUBLIC_CONST = 1;
     private const PRIVATE_CONST = [1, 2];
     protected const PROTECTED_CONST = "";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility02.php.formatted
index d6d7e6a..307f3af 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility02.php.formatted
@@ -6,5 +6,4 @@
     public const PUBLIC_CONST = 1;
     private const PRIVATE_CONST = [1, 2];
     protected const PROTECTED_CONST = "";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility03.php.formatted
index 2197f45..b4e976b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility03.php.formatted
@@ -21,5 +21,4 @@
      * PROTECTED_CONST
      */
     protected const PROTECTED_CONST = "";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility04.php.formatted
index 2197f45..b4e976b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility04.php.formatted
@@ -21,5 +21,4 @@
      * PROTECTED_CONST
      */
     protected const PROTECTED_CONST = "";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility05.php.formatted
index 0585cd7..804bca3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility05.php.formatted
@@ -9,5 +9,4 @@
     private const PRIVATE_CONST = [1, 2];
 
     protected const PROTECTED_CONST = "";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility06.php.formatted
index 0585cd7..804bca3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility06.php.formatted
@@ -9,5 +9,4 @@
     private const PRIVATE_CONST = [1, 2];
 
     protected const PROTECTED_CONST = "";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility07.php.formatted
index 5047306..533ded4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility07.php.formatted
@@ -13,5 +13,4 @@
     public function publicFunction() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility08.php.formatted
index 955cf19..a584b9f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/ClassConstantVisibility08.php.formatted
@@ -10,5 +10,4 @@
     public function publicFunction() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields01.php.formatted
index 2fd66cc..d9f3373 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields01.php.formatted
@@ -3,5 +3,4 @@
 class Simple {
 
     public $field1 = 22;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields02.php.formatted
index 652ef75..1f98d2a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields02.php.formatted
@@ -4,5 +4,4 @@
 
     public $field1 = 22;
     public $field2 = "ahoj";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields03.php.formatted
index 0db2297..bb40f86 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields03.php.formatted
@@ -7,5 +7,4 @@
      * @var int
      */
     public $field1 = 22;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields04.php.formatted
index 0db2297..bb40f86 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields04.php.formatted
@@ -7,5 +7,4 @@
      * @var int
      */
     public $field1 = 22;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields05.php.formatted
index 549f6fc..1aeadbf 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields05.php.formatted
@@ -8,5 +8,4 @@
     // comment 3
 
     public $field2;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields06.php.formatted
index 72dce9c..6de45ab 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields06.php.formatted
@@ -11,5 +11,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields07.php.formatted
index ef4abc8..37b3065 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields07.php.formatted
@@ -13,5 +13,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields08.php.formatted
index 0df8938..aff06b3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields08.php.formatted
@@ -28,5 +28,4 @@
         $this->field2 = $field2;
         $this->field3 = $field3;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields09.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields09.php.formatted
index ec1070e..791bb5f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields09.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields09.php.formatted
@@ -34,5 +34,4 @@
         $this->field2 = $field2;
         $this->field3 = $field3;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields10.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields10.php.formatted
index e80454c..7df4a4b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields10.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields10.php.formatted
@@ -11,7 +11,6 @@
      * comment for field2
      */
     public $field2;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields11.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields11.php.formatted
index 347f4c9..8adf898 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields11.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Fields11.php.formatted
@@ -6,7 +6,6 @@
 
 
     public $field2;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Function04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Function04.php.formatted
index 1805a3b..bd4b226 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Function04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Function04.php.formatted
@@ -9,7 +9,6 @@
     public function test2() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass01.php.formatted
index c392e3d..964fb24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass01.php.formatted
@@ -9,7 +9,6 @@
     public function displayVar() {
         echo $this->var;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass02.php.formatted
index f3f376d..ba9e4e0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass02.php.formatted
@@ -12,7 +12,6 @@
     public function displayVar() {
         echo $this->var;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass04.php.formatted
index a50bd26..3d28278 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass04.php.formatted
@@ -20,7 +20,6 @@
         return "You ordered ($this->qty) '$this->name'" . ($this->qty == 1 ? "" : "s") .
                 " at \$$this->price, for a total of: \$$this->total.";
     }
-
 }
 
 echo (new Item("Widget 22", 4.90, 2));
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass11.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass11.php.formatted
index 02962d6..5306cce 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass11.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass11.php.formatted
@@ -4,6 +4,5 @@
     public function test() {
         
     }
-
 }
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass13.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass13.php.formatted
index 160b609..3b5658a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass13.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass13.php.formatted
@@ -5,7 +5,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass14.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass14.php.formatted
index 039ff73..e53312a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass14.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass14.php.formatted
@@ -5,7 +5,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass15.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass15.php.formatted
index 039ff73..e53312a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass15.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass15.php.formatted
@@ -5,7 +5,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass16.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass16.php.formatted
index 1d6773c..37206ac 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass16.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass16.php.formatted
@@ -7,7 +7,6 @@
         {
         
         }
-
     }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass17.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass17.php.formatted
index e91aedc..a3e8683 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass17.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleClass17.php.formatted
@@ -7,7 +7,6 @@
             {
             
             }
-
         }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait01.php.formatted
index 741a78d..2f10121 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait01.php.formatted
@@ -9,7 +9,6 @@
     public function displayVar() {
         echo $this->var;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait02.php.formatted
index 9089452..0857993 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait02.php.formatted
@@ -12,7 +12,6 @@
     public function displayVar() {
         echo $this->var;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait04.php.formatted
index 52b7c85..0188825 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait04.php.formatted
@@ -20,7 +20,6 @@
         return "You ordered ($this->qty) '$this->name'" . ($this->qty == 1 ? "" : "s") .
                 " at \$$this->price, for a total of: \$$this->total.";
     }
-
 }
 
 echo (new Item("Widget 22", 4.90, 2));
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait11.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait11.php.formatted
index 1e7911a..641d3f6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait11.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait11.php.formatted
@@ -4,6 +4,5 @@
     public function test() {
         
     }
-
 }
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait13.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait13.php.formatted
index c1c626d..676160d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait13.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait13.php.formatted
@@ -5,7 +5,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait14.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait14.php.formatted
index 1b1d6bb..7eece4c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait14.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait14.php.formatted
@@ -5,7 +5,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait15.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait15.php.formatted
index 1b1d6bb..7eece4c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait15.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait15.php.formatted
@@ -5,7 +5,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait16.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait16.php.formatted
index a676a7d..ab58316 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait16.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait16.php.formatted
@@ -7,7 +7,6 @@
         {
         
         }
-
     }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait17.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait17.php.formatted
index 74b5392..309ebf2 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait17.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/SimpleTrait17.php.formatted
@@ -7,7 +7,6 @@
             {
             
             }
-
         }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait01.php.formatted
index 27767cf..5ed2627 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait01.php.formatted
@@ -10,7 +10,6 @@
     public function moreTesting() {
         echo "BaseTrait::moreTesting() called\n";
     }
-
 }
 
 trait ChildTrait {
@@ -21,13 +20,11 @@
     public function method1() {
         
     }
-
 }
 
 trait ChildTrait2 {
 
     public $field2 = 22;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait03.php.formatted
index 7b4c1bb..7110ff8 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/Trait03.php.formatted
@@ -64,7 +64,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_01.php.formatted
index f768dd0..e39d243 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_01.php.formatted
@@ -22,5 +22,4 @@
 class Simple {
 
     public int $field1 = 22;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_02.php.formatted
index 0a3747b..f2f0eee 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_02.php.formatted
@@ -23,5 +23,4 @@
 
     public ?int $field1 = 22;
     public string $field2 = "ahoj";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_03.php.formatted
index f65ac3f..e471362 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_03.php.formatted
@@ -26,5 +26,4 @@
      * @var int
      */
     public int $field1 = 22;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_04.php.formatted
index f65ac3f..e471362 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_04.php.formatted
@@ -26,5 +26,4 @@
      * @var int
      */
     public int $field1 = 22;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05.php.formatted
index ec5824d..db9eeb9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05.php.formatted
@@ -27,5 +27,4 @@
     // comment 3
 
     public MyClass $field2;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05a.php.formatted
index d8a6791..1c558a7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05a.php.formatted
@@ -27,5 +27,4 @@
     // comment 3
 
     public \Foo\MyClass $field2;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05b.php.formatted
index b2b3e8b..cd75b1c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_05b.php.formatted
@@ -27,5 +27,4 @@
     // comment 3
 
     public ?\Foo\MyClass $field2;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06.php.formatted
index 175e62f..67cdd22 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06.php.formatted
@@ -30,5 +30,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06a.php.formatted
index 0227fca..973ec72 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06a.php.formatted
@@ -30,5 +30,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06b.php.formatted
index a84bd88..61a270d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_06b.php.formatted
@@ -30,5 +30,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07.php.formatted
index c102e0b..9a12f47 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07.php.formatted
@@ -32,5 +32,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07a.php.formatted
index 0b242ac..8b9bb5b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_07a.php.formatted
@@ -32,5 +32,4 @@
     public function method01() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_08.php.formatted
index 6db1843..0c6a410 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_08.php.formatted
@@ -47,5 +47,4 @@
         $this->field2 = $field2;
         $this->field3 = $field3;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_09.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_09.php.formatted
index f46c792..ea30fe2 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_09.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_09.php.formatted
@@ -53,5 +53,4 @@
         $this->field2 = $field2;
         $this->field3 = $field3;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_10.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_10.php.formatted
index ac493a6..d878e91 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_10.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_10.php.formatted
@@ -30,7 +30,6 @@
      * comment for field2
      */
     public ?MyClass $field2;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_11.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_11.php.formatted
index 34848bf..6d0a74b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_11.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/TypedProperties20_11.php.formatted
@@ -25,7 +25,6 @@
 
 
     public ?int $field2;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_01.php.formatted
index 2ab8db2..c7f9058 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_01.php.formatted
@@ -8,7 +8,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_02.php.formatted
index 14ff7af..c21a37c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue186461_02.php.formatted
@@ -15,7 +15,6 @@
 
     /* comment 10 */
     private $field7; // comment 11
-
 }
 
 /*
@@ -27,7 +26,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue229703.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue229703.php.formatted
index 66ac7e2..0f17fa4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue229703.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue229703.php.formatted
@@ -16,5 +16,4 @@
      * Another docblock for another constant.
      */
     const B_CONSTANT = "Set in stone.";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_01.php.formatted
index 53072e4..bd2d127 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_01.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_02.php.formatted
index 53072e4..bd2d127 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_02.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_03.php.formatted
index 53072e4..bd2d127 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_03.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_04.php.formatted
index 53072e4..bd2d127 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_04.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_05.php.formatted
index 923d634..0b06220 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_05.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_06.php.formatted
index 923d634..0b06220 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_06.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_07.php.formatted
index 923d634..0b06220 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_07.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_08.php.formatted
index 923d634..0b06220 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue232395_08.php.formatted
@@ -11,7 +11,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_01.php.formatted
index 24fdfda..097693c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_01.php.formatted
@@ -5,5 +5,4 @@
     public function getName() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_02.php.formatted
index 7aaf57c..89790e5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_02.php.formatted
@@ -5,7 +5,6 @@
     public function getName() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_03.php.formatted
index 9f4328a..282ba28 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_03.php.formatted
@@ -5,7 +5,6 @@
     public function getName() {
         
     }
-
 }
 
 
@@ -15,7 +14,6 @@
     public function getName() {
         
     }
-
 }
 
 
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_04.php.formatted
index 66328b8..590a8a8 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue234764_04.php.formatted
@@ -5,7 +5,6 @@
     public function getName() {
         
     }
-
 }
 
 
@@ -15,7 +14,6 @@
     public function getName() {
         
     }
-
 }
 
 
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_01.php.formatted
index 93d3e89..e68a58e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_01.php.formatted
@@ -10,5 +10,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_02.php.formatted
index 93d3e89..e68a58e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_02.php.formatted
@@ -10,5 +10,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_03.php.formatted
index ce1a6e1..66202e6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_03.php.formatted
@@ -8,5 +8,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_04.php.formatted
index ce1a6e1..66202e6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_04.php.formatted
@@ -8,5 +8,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_05.php.formatted
index 77c1cd7..e98e21a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_05.php.formatted
@@ -9,5 +9,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_06.php.formatted
index b5d47ec..09193ea 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_06.php.formatted
@@ -7,5 +7,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_07.php.formatted
index fd10758..4a8eb0b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_07.php.formatted
@@ -11,5 +11,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_08.php.formatted
index 5500cd8..75fd9a0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_08.php.formatted
@@ -14,5 +14,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_09.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_09.php.formatted
index 1a34496..2d31876 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_09.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_09.php.formatted
@@ -10,5 +10,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_10.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_10.php.formatted
index cbb17f4..7031fdee 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_10.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_10.php.formatted
@@ -13,5 +13,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_11.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_11.php.formatted
index 1a34496..2d31876 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_11.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_11.php.formatted
@@ -10,5 +10,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_12.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_12.php.formatted
index 5500cd8..75fd9a0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_12.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_12.php.formatted
@@ -14,5 +14,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_13.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_13.php.formatted
index 1a34496..2d31876 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_13.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_13.php.formatted
@@ -10,5 +10,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_14.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_14.php.formatted
index cbb17f4..7031fdee 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_14.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issue268710_14.php.formatted
@@ -13,5 +13,4 @@
     public function bar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php
new file mode 100644
index 0000000..5d4d5c5
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php
@@ -0,0 +1,75 @@
+<?php
+/*
+ * 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.
+ */
+class GH4611Class
+{
+
+private int $field;
+
+public function method1() {
+}
+
+/**
+ * Test.
+ */
+public function method2() {
+}
+
+}
+
+trait GH4611Trait
+{
+private const CONSTANT=1;
+
+/**
+ * Test.
+ */
+public function method1() {
+}
+
+public function method2() {
+}
+
+}
+
+enum GH4611Enum
+{
+/**
+ * Test.
+ */
+public const CONSTANT = 1;
+/**
+ * Test.
+ */
+case Case1 = 1;
+public function method1() {
+}
+
+public function method2() {
+}
+
+}
+
+interface GH4611Interface
+{
+/**
+ * Test.
+ */
+public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01a.formatted
new file mode 100644
index 0000000..f9f27e2
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01a.formatted
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait
+{
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum
+{
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface
+{
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01b.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01b.formatted
new file mode 100644
index 0000000..a360476
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01b.formatted
@@ -0,0 +1,85 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait
+{
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum
+{
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface
+{
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01c.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01c.formatted
new file mode 100644
index 0000000..8fbae43
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01c.formatted
@@ -0,0 +1,86 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait
+{
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum
+{
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface
+{
+
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01d.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01d.formatted
new file mode 100644
index 0000000..070f6d9
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01d.formatted
@@ -0,0 +1,88 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait
+{
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum
+{
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface
+{
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01e.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01e.formatted
new file mode 100644
index 0000000..b438015
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01e.formatted
@@ -0,0 +1,89 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait
+{
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum
+{
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface
+{
+
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01f.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01f.formatted
new file mode 100644
index 0000000..bc859ab
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01f.formatted
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait
+{
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum
+{
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface
+{
+
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01g.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01g.formatted
new file mode 100644
index 0000000..fbd1c79
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01g.formatted
@@ -0,0 +1,84 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait
+{
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum
+{
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface
+{
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01h.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01h.formatted
new file mode 100644
index 0000000..401465f
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_01h.formatted
@@ -0,0 +1,85 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait
+{
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum
+{
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface
+{
+
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02a.formatted
new file mode 100644
index 0000000..355979b
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02a.formatted
@@ -0,0 +1,77 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait {
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum {
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface {
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02b.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02b.formatted
new file mode 100644
index 0000000..45013b0
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02b.formatted
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait {
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum {
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface {
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02c.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02c.formatted
new file mode 100644
index 0000000..ebb824d
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02c.formatted
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait {
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum {
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface {
+
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02d.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02d.formatted
new file mode 100644
index 0000000..002a927
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02d.formatted
@@ -0,0 +1,84 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait {
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum {
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface {
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02e.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02e.formatted
new file mode 100644
index 0000000..9848ee7
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02e.formatted
@@ -0,0 +1,85 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait {
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum {
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface {
+
+    /**
+     * Test.
+     */
+    public function method();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02f.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02f.formatted
new file mode 100644
index 0000000..07fb467
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02f.formatted
@@ -0,0 +1,78 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait {
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum {
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface {
+
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02g.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02g.formatted
new file mode 100644
index 0000000..9e0b4ea
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02g.formatted
@@ -0,0 +1,80 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait {
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum {
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface {
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02h.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02h.formatted
new file mode 100644
index 0000000..8002f78
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php.testIssueGH4611BothMethodsAndProperties_02h.formatted
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    private int $field;
+
+    public function method1() {
+        
+    }
+
+    /**
+     * Test.
+     */
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait {
+
+    private const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum {
+
+    /**
+     * Test.
+     */
+    public const CONSTANT = 1;
+
+    /**
+     * Test.
+     */
+    case Case1 = 1;
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface {
+
+    /**
+     * Test.
+     */
+    public function method();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php
new file mode 100644
index 0000000..3b9ce4c
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php
@@ -0,0 +1,56 @@
+<?php
+/*
+ * 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.
+ */
+class GH4611Class
+{
+
+public function method1() {
+}
+
+public function method2() {
+}
+
+}
+
+trait GH4611Trait
+{
+
+public function method1() {
+}
+
+public function method2() {
+}}
+
+enum GH4611Enum
+{
+
+public function method1() {
+}
+
+public function method2() {
+}}
+
+interface GH4611Interface
+{
+
+public function method1();
+
+public function method2();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01a.formatted
new file mode 100644
index 0000000..2caa37c
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01a.formatted
@@ -0,0 +1,59 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait
+{
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum
+{
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface
+{
+    public function method1();
+    public function method2();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01b.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01b.formatted
new file mode 100644
index 0000000..d310cbb
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01b.formatted
@@ -0,0 +1,63 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait
+{
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum
+{
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface
+{
+    public function method1();
+    public function method2();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01c.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01c.formatted
new file mode 100644
index 0000000..00d3246
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01c.formatted
@@ -0,0 +1,68 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait
+{
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum
+{
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface
+{
+
+    public function method1();
+
+    public function method2();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01d.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01d.formatted
new file mode 100644
index 0000000..1faaa10
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_01d.formatted
@@ -0,0 +1,64 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait
+{
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum
+{
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface
+{
+
+    public function method1();
+
+    public function method2();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02a.formatted
new file mode 100644
index 0000000..0f54282
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02a.formatted
@@ -0,0 +1,55 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait {
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum {
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface {
+    public function method1();
+    public function method2();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02b.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02b.formatted
new file mode 100644
index 0000000..438bcad
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02b.formatted
@@ -0,0 +1,59 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait {
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum {
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface {
+    public function method1();
+    public function method2();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02c.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02c.formatted
new file mode 100644
index 0000000..d68f81f
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02c.formatted
@@ -0,0 +1,64 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+trait GH4611Trait {
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+enum GH4611Enum {
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+
+}
+
+interface GH4611Interface {
+
+    public function method1();
+
+    public function method2();
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02d.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02d.formatted
new file mode 100644
index 0000000..4f4fb7a
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Methods.php.testIssueGH4611Methods_02d.formatted
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+trait GH4611Trait {
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+enum GH4611Enum {
+
+    public function method1() {
+        
+    }
+
+    public function method2() {
+        
+    }
+}
+
+interface GH4611Interface {
+
+    public function method1();
+
+    public function method2();
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php
new file mode 100644
index 0000000..397f414
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php
@@ -0,0 +1,41 @@
+<?php
+/*
+ * 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.
+ */
+class GH4611Class
+{
+
+private int $field;
+
+}
+
+trait GH4611Trait
+{
+private const CONSTANT=1;
+
+}
+
+enum GH4611Enum
+{
+case Case1 = 1;
+}
+
+interface GH4611Interface
+{
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01a.formatted
new file mode 100644
index 0000000..cc7042e
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01a.formatted
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    private int $field;
+}
+
+trait GH4611Trait
+{
+    private const CONSTANT = 1;
+}
+
+enum GH4611Enum
+{
+    case Case1 = 1;
+}
+
+interface GH4611Interface
+{
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01b.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01b.formatted
new file mode 100644
index 0000000..38ccd49
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01b.formatted
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+    private int $field;
+
+}
+
+trait GH4611Trait
+{
+    private const CONSTANT = 1;
+
+}
+
+enum GH4611Enum
+{
+    case Case1 = 1;
+
+}
+
+interface GH4611Interface
+{
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01c.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01c.formatted
new file mode 100644
index 0000000..59373b0
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01c.formatted
@@ -0,0 +1,46 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    private int $field;
+
+}
+
+trait GH4611Trait
+{
+
+    private const CONSTANT = 1;
+
+}
+
+enum GH4611Enum
+{
+
+    case Case1 = 1;
+
+}
+
+interface GH4611Interface
+{
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01d.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01d.formatted
new file mode 100644
index 0000000..752b273
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_01d.formatted
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class
+{
+
+    private int $field;
+}
+
+trait GH4611Trait
+{
+
+    private const CONSTANT = 1;
+}
+
+enum GH4611Enum
+{
+
+    case Case1 = 1;
+}
+
+interface GH4611Interface
+{
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02a.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02a.formatted
new file mode 100644
index 0000000..8497413
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02a.formatted
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    private int $field;
+}
+
+trait GH4611Trait {
+    private const CONSTANT = 1;
+}
+
+enum GH4611Enum {
+    case Case1 = 1;
+}
+
+interface GH4611Interface {
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02b.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02b.formatted
new file mode 100644
index 0000000..e201b22
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02b.formatted
@@ -0,0 +1,39 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+    private int $field;
+
+}
+
+trait GH4611Trait {
+    private const CONSTANT = 1;
+
+}
+
+enum GH4611Enum {
+    case Case1 = 1;
+
+}
+
+interface GH4611Interface {
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02c.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02c.formatted
new file mode 100644
index 0000000..9b4959b
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02c.formatted
@@ -0,0 +1,42 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    private int $field;
+
+}
+
+trait GH4611Trait {
+
+    private const CONSTANT = 1;
+
+}
+
+enum GH4611Enum {
+
+    case Case1 = 1;
+
+}
+
+interface GH4611Interface {
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02d.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02d.formatted
new file mode 100644
index 0000000..2cfb818
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/issueGH4611Properties.php.testIssueGH4611Properties_02d.formatted
@@ -0,0 +1,39 @@
+<?php
+
+/*
+ * 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.
+ */
+
+class GH4611Class {
+
+    private int $field;
+}
+
+trait GH4611Trait {
+
+    private const CONSTANT = 1;
+}
+
+enum GH4611Enum {
+
+    case Case1 = 1;
+}
+
+interface GH4611Interface {
+    
+}
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_01b.php.formatted
index 7b49b42..19c116a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_01b.php.formatted
@@ -61,5 +61,4 @@
     #[A(1)]
     #[A(2)]
     private Test $field8;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_02b.php.formatted
index b6c69d1..5f89ab6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFields_02b.php.formatted
@@ -25,14 +25,12 @@
 
     #[A(1)]
     public int|string $field1 = 1;
-
 }
 
 class AttributeSyntax2 {
 
     #[A(1)] // comment
     public int $field2 = 1;
-
 }
 
 class AttributeSyntax3 {
@@ -42,7 +40,6 @@
      */
     #[A(1)]
     public $field3 = 1;
-
 }
 
 class AttributeSyntax4 {
@@ -52,7 +49,6 @@
      * comment1
      */
     public static $field4 = 1;
-
 }
 
 class AttributeSyntax5 {
@@ -65,7 +61,6 @@
      * comment2
      */
     public $field5;
-
 }
 
 class AttributeSyntax6 {
@@ -73,7 +68,6 @@
     #[A(1)]
     // comment
     private int|bool $field6 = 1;
-
 }
 
 class AttributeSyntax7 {
@@ -81,7 +75,6 @@
     // comment
     #[A]
     private int|bool $field7 = 1;
-
 }
 
 class AttributeSyntax8 {
@@ -89,21 +82,18 @@
     #[A(1)]
     #[A(2)]
     private Test $field8;
-
 }
 
 class AttributeSyntaxConst1 {
 
     #[A(1)]
     public const CONSTANT1 = 1;
-
 }
 
 class AttributeSyntaxConst2 {
 
     #[A(1)] // comment
     public const CONSTANT2 = 1;
-
 }
 
 class AttributeSyntaxConst3 {
@@ -113,7 +103,6 @@
      */
     #[A(1)]
     public const CONSTANT3 = 3;
-
 }
 
 class AttributeSyntaxConst4 {
@@ -123,7 +112,6 @@
      * comment1
      */
     public const CONSTANT4 = 4;
-
 }
 
 class AttributeSyntaxConst5 {
@@ -136,7 +124,6 @@
      * comment2
      */
     private const CONSTANT5 = 5;
-
 }
 
 class AttributeSyntaxConst6 {
@@ -144,7 +131,6 @@
     #[A(1)]
     // comment
     const CONSTANT6 = 6;
-
 }
 
 class AttributeSyntaxConst7 {
@@ -152,7 +138,6 @@
     // comment
     #[A]
     public const CONSTANT7 = 7;
-
 }
 
 class AttributeSyntaxConst8 {
@@ -160,5 +145,4 @@
     #[A(1)]
     #[A(2)]
     public const CONSTANT8 = 8;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFunction_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFunction_01b.php.formatted
index fd5a70d..c4b5623 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFunction_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxAfterFunction_01b.php.formatted
@@ -78,7 +78,6 @@
     public function test8(): void {
         
     }
-
 }
 
 #[A(1)]
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01a.php.formatted
index b0e403a..59ac802 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01a.php.formatted
@@ -60,5 +60,4 @@
     #[A(1)]
     #[A(2)]
     private Test $field8;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01b.php.formatted
index 15dd39f..3b8c560 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_01b.php.formatted
@@ -61,5 +61,4 @@
     #[A(1)]
     #[A(2)]
     private Test $field8;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02a.php.formatted
index c816b2c..c0f85a4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02a.php.formatted
@@ -24,13 +24,11 @@
 class AttributeSyntax1 {
     #[A(1)]
     public int|string $field1 = 1;
-
 }
 
 class AttributeSyntax2 {
     #[A(1)] // comment
     public int $field2 = 1;
-
 }
 
 class AttributeSyntax3 {
@@ -39,7 +37,6 @@
      */
     #[A(1)]
     public $field3 = 1;
-
 }
 
 class AttributeSyntax4 {
@@ -48,7 +45,6 @@
      * comment1
      */
     public static $field4 = 1;
-
 }
 
 class AttributeSyntax5 {
@@ -60,40 +56,34 @@
      * comment2
      */
     public $field5;
-
 }
 
 class AttributeSyntax6 {
     #[A(1)]
     // comment
     private int|bool $field6 = 1;
-
 }
 
 class AttributeSyntax7 {
     // comment
     #[A]
     private int|bool $field7 = 1;
-
 }
 
 class AttributeSyntax8 {
     #[A(1)]
     #[A(2)]
     private Test $field8;
-
 }
 
 class AttributeSyntaxConst1 {
     #[A(1)]
     public const CONSTANT1 = 1;
-
 }
 
 class AttributeSyntaxConst2 {
     #[A(1)] // comment
     public const CONSTANT2 = 1;
-
 }
 
 class AttributeSyntaxConst3 {
@@ -102,7 +92,6 @@
      */
     #[A(1)]
     public const CONSTANT3 = 3;
-
 }
 
 class AttributeSyntaxConst4 {
@@ -111,7 +100,6 @@
      * comment1
      */
     public const CONSTANT4 = 4;
-
 }
 
 class AttributeSyntaxConst5 {
@@ -123,26 +111,22 @@
      * comment2
      */
     private const CONSTANT5 = 5;
-
 }
 
 class AttributeSyntaxConst6 {
     #[A(1)]
     // comment
     const CONSTANT6 = 6;
-
 }
 
 class AttributeSyntaxConst7 {
     // comment
     #[A]
     public const CONSTANT7 = 7;
-
 }
 
 class AttributeSyntaxConst8 {
     #[A(1)]
     #[A(2)]
     public const CONSTANT8 = 8;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02b.php.formatted
index d63088c..c1b1cb4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFields_02b.php.formatted
@@ -25,14 +25,12 @@
 
     #[A(1)]
     public int|string $field1 = 1;
-
 }
 
 class AttributeSyntax2 {
 
     #[A(1)] // comment
     public int $field2 = 1;
-
 }
 
 class AttributeSyntax3 {
@@ -42,7 +40,6 @@
      */
     #[A(1)]
     public $field3 = 1;
-
 }
 
 class AttributeSyntax4 {
@@ -52,7 +49,6 @@
      * comment1
      */
     public static $field4 = 1;
-
 }
 
 class AttributeSyntax5 {
@@ -65,7 +61,6 @@
      * comment2
      */
     public $field5;
-
 }
 
 class AttributeSyntax6 {
@@ -73,7 +68,6 @@
     #[A(1)]
     // comment
     private int|bool $field6 = 1;
-
 }
 
 class AttributeSyntax7 {
@@ -81,7 +75,6 @@
     // comment
     #[A]
     private int|bool $field7 = 1;
-
 }
 
 class AttributeSyntax8 {
@@ -89,21 +82,18 @@
     #[A(1)]
     #[A(2)]
     private Test $field8;
-
 }
 
 class AttributeSyntaxConst1 {
 
     #[A(1)]
     public const CONSTANT1 = 1;
-
 }
 
 class AttributeSyntaxConst2 {
 
     #[A(1)] // comment
     public const CONSTANT2 = 1;
-
 }
 
 class AttributeSyntaxConst3 {
@@ -113,7 +103,6 @@
      */
     #[A(1)]
     public const CONSTANT3 = 3;
-
 }
 
 class AttributeSyntaxConst4 {
@@ -123,7 +112,6 @@
      * comment1
      */
     public const CONSTANT4 = 4;
-
 }
 
 class AttributeSyntaxConst5 {
@@ -136,7 +124,6 @@
      * comment2
      */
     private const CONSTANT5 = 5;
-
 }
 
 class AttributeSyntaxConst6 {
@@ -144,7 +131,6 @@
     #[A(1)]
     // comment
     const CONSTANT6 = 6;
-
 }
 
 class AttributeSyntaxConst7 {
@@ -152,7 +138,6 @@
     // comment
     #[A]
     public const CONSTANT7 = 7;
-
 }
 
 class AttributeSyntaxConst8 {
@@ -160,5 +145,4 @@
     #[A(1)]
     #[A(2)]
     public const CONSTANT8 = 8;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01a.php.formatted
index beb526c..6fb48a7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01a.php.formatted
@@ -77,7 +77,6 @@
     public function test8(): void {
         
     }
-
 }
 
 #[A(1)]
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01b.php.formatted
index 3247448..f73f452 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBeforeFunction_01b.php.formatted
@@ -86,7 +86,6 @@
     public function test8(): void {
         
     }
-
 }
 
 
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01a.php.formatted
index f7bff66..883aaa0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01a.php.formatted
@@ -88,5 +88,4 @@
     // comment
     #[A]
     private int|bool $field9 = 1;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01b.php.formatted
index 19a11f0..81fa668 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_01b.php.formatted
@@ -103,5 +103,4 @@
     // comment
     #[A]
     private int|bool $field9 = 1;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02a.php.formatted
index f7bff66..883aaa0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02a.php.formatted
@@ -88,5 +88,4 @@
     // comment
     #[A]
     private int|bool $field9 = 1;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02b.php.formatted
index 19a11f0..81fa668 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php80/AttributeSyntaxBetweenFields_02b.php.formatted
@@ -103,5 +103,4 @@
     // comment
     #[A]
     private int|bool $field9 = 1;
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01a.php.formatted
index 43d3fa8..4818c24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01a.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01b.php.formatted
index cd19628..4818c24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLAfter_01b.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -48,7 +47,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -67,7 +65,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -76,7 +73,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -93,5 +89,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01a.php.formatted
index 5bed6d3..d348cba 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01a.php.formatted
@@ -33,7 +33,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -46,7 +45,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -64,7 +62,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -72,7 +69,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -88,5 +84,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01b.php.formatted
index cd19628..4818c24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBefore_01b.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -48,7 +47,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -67,7 +65,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -76,7 +73,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -93,5 +89,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01a.php.formatted
index 84073b8..72b5aff 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01a.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -49,7 +48,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -69,7 +67,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -78,7 +75,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -96,5 +92,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01b.php.formatted
index 1360135..1374b26 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/blankLines/php81/enumCasesBLBetween_01b.php.formatted
@@ -38,7 +38,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -53,7 +52,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -73,7 +71,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -84,7 +81,6 @@
 
 
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -102,5 +98,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/broken/constructorPropertyPromotion.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/broken/constructorPropertyPromotion.php.formatted
index 4e991a0..c3a6a9d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/broken/constructorPropertyPromotion.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/broken/constructorPropertyPromotion.php.formatted
@@ -26,5 +26,4 @@
     ) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/comment06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/comment06.php.formatted
index add4fc9..d723ef7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/comment06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/comment06.php.formatted
@@ -20,7 +20,6 @@
     function fasdfa($param) {
         
     }
-
 }
 
 /*
@@ -33,7 +32,6 @@
     function __construct() {
         
     }
-
 }
 
 /**
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/html/issue183268.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/html/issue183268.php.formatted
index d18be18..3e663da 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/html/issue183268.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/html/issue183268.php.formatted
@@ -136,6 +136,5 @@
     public function toXHTML() {
         $this->mode->modeToXHTML();
     }
-
 }
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/initialIndent01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/initialIndent01.php.formatted
index 72d311f..ea4ceb5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/initialIndent01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/initialIndent01.php.formatted
@@ -9,7 +9,6 @@
     function method6($param) {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue162320.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue162320.php.formatted
index 5762072..a89dde3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue162320.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue162320.php.formatted
@@ -14,7 +14,6 @@
     // cmt
     echo 1;
   }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue164219.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue164219.php.formatted
index f0f660f..488a89d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue164219.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue164219.php.formatted
@@ -19,7 +19,6 @@
   function function_name() {
     ;
   }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue166550.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue166550.php.formatted
index 32c350a..6797c27 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue166550.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue166550.php.formatted
@@ -7,7 +7,6 @@
         'part-time' => 'Part time',
         'freelance' => 'Freelance',
     );
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue167791.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue167791.php.formatted
index 4116a0c..8698954 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue167791.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue167791.php.formatted
@@ -17,7 +17,6 @@
          $this->foo = 'Foo';
          $this->bar = array('Bar1', 'Bar2', 'Bar3');
        }
-
      }
 
      $foo = new foo();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01.php.formatted
index 6b35351..795ceb8 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01.php.formatted
@@ -31,7 +31,6 @@
                     "test1" => "passed"
         ));
     }
-
 }
 ?>
 
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01_psr12.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01_psr12.php.formatted
index e7e01f5..606cd5f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01_psr12.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue168396_01_psr12.php.formatted
@@ -32,7 +32,6 @@
                 )
         );
     }
-
 }
 ?>
 
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue171309.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue171309.php.formatted
index 8de9764..ead704c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue171309.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue171309.php.formatted
@@ -14,7 +14,6 @@
       $this->_flashMessenger->addMessage('Chyba: ' . $e);
     }
   }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue181588.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue181588.php.formatted
index 35f3c8a..2881136 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue181588.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue181588.php.formatted
@@ -18,7 +18,6 @@
 
         return array($sPhase, $sTeam);
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue182072_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue182072_01.php.formatted
index e46a5e3..6a072d6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue182072_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue182072_01.php.formatted
@@ -12,7 +12,6 @@
                 "invalid" => "Tato položka byla špatně vyplněna")),
         ));
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue183200_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue183200_01.php.formatted
index e07cb05..e04535c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue183200_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue183200_01.php.formatted
@@ -8,7 +8,6 @@
             )
         )
     );
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue184687_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue184687_01.php.formatted
index 64360ff..733aa4a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue184687_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue184687_01.php.formatted
@@ -14,7 +14,6 @@
             }
             echo 'end of cycle';
         }
-
     }
 
     echo \BLA;
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue188431_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue188431_03.php.formatted
index d96f98c..3fabb72 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue188431_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue188431_03.php.formatted
@@ -127,7 +127,6 @@
 
         return $img;
     }
-
 }
 
 //**********************************************************************************
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue190010_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue190010_02.php.formatted
index e326810..7181928 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue190010_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue190010_02.php.formatted
@@ -13,7 +13,6 @@
             'items_item_comment' => array('_type' => G_CreoleDataFlow::TYPE_STRING),
         )));
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue196405.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue196405.php.formatted
index 6b45527..ea4460b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue196405.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue196405.php.formatted
@@ -12,7 +12,6 @@
                 1, 2
         );
     }
-
 }
 
 $y = foo(1,
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue196405_psr12.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue196405_psr12.php.formatted
index 7ec894b..43eee5d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue196405_psr12.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue196405_psr12.php.formatted
@@ -12,7 +12,6 @@
                 1, 2
         );
     }
-
 }
 
 $y = foo(
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue197698.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue197698.php.formatted
index d1af8dc..29a3f59 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue197698.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue197698.php.formatted
@@ -13,7 +13,6 @@
     private $test;
 
     const GGGG = 'ff';
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue199298_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue199298_01.php.formatted
index 27685f1..f536c8f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue199298_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue199298_01.php.formatted
@@ -16,7 +16,6 @@
     private function moveNode($params = array()) {
         return true;
     }
-
 }
 
 //end class
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue199654.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue199654.php.formatted
index 2cb24e7..6829585 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue199654.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue199654.php.formatted
@@ -11,7 +11,6 @@
     private
             $field1,
             $field2;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue218877.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue218877.php.formatted
index 0982828..ca9737a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue218877.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue218877.php.formatted
@@ -13,7 +13,6 @@
         else
             2;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue227287.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue227287.php.formatted
index d93c548..58d2542 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue227287.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue227287.php.formatted
@@ -21,7 +21,6 @@
             3,
         );
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue233353_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue233353_03.php.formatted
index 90cf7fc..7ee350a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue233353_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue233353_03.php.formatted
@@ -7,7 +7,6 @@
             return 1;
         };
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue233353_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue233353_04.php.formatted
index 0f02fdc..b98978a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue233353_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue233353_04.php.formatted
@@ -7,7 +7,6 @@
             return $a - $b;
         });
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue247047.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue247047.php.formatted
index 857b5db..f354d7b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue247047.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue247047.php.formatted
@@ -18,5 +18,4 @@
             }
         ];
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue259111.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue259111.php.formatted
index e88d1ee..b347606 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue259111.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue259111.php.formatted
@@ -25,7 +25,6 @@
     public function __invoke() {
         echo "class __invoke" . PHP_EOL;
     }
-
 }
 
 (new Bar())();
@@ -52,7 +51,6 @@
     public static function test() {
         echo "array call" . PHP_EOL;
     }
-
 }
 
 $array = new ArrayCall();
@@ -77,5 +75,4 @@
     public function doSomething() {
         ($this->callable)();
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue269707.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue269707.php.formatted
index 755aa84..68d8de6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue269707.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue269707.php.formatted
@@ -14,5 +14,4 @@
             }
         };
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/issue271062.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/issue271062.php.formatted
index 9bd33ce..791be29 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/issue271062.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/issue271062.php.formatted
@@ -23,5 +23,4 @@
         };
         $this->test();
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/namespaces1.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/namespaces1.php.formatted
index 040dad1..b9302db 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/namespaces1.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/namespaces1.php.formatted
@@ -7,7 +7,6 @@
     public function __construct() {
         echo 'test';
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_02.php.formatted
index 40c4ff1..cf6e0fb 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_02.php.formatted
@@ -10,7 +10,6 @@
             echo $this->testFunc();
             return null;
         }
-
     }
 
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_03.php.formatted
index b0de975..abbbea5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_03.php.formatted
@@ -13,7 +13,6 @@
             echo $this->testFunc();
             return null;
         }
-
     }
 
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_04.php.formatted
index f6fdead..d8ce2c7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_04.php.formatted
@@ -13,7 +13,6 @@
             echo $this->testFunc();
             return null;
             }
-
         }
 
     }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_05.php.formatted
index b51e041..cda8220 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/namespaces_05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/namespaces_05.php.formatted
@@ -11,7 +11,6 @@
             echo $this->testFunc();
             return null;
         }
-
     }
 
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_01.php.formatted
index af7ffe7..cb51b1b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_01.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[Class1\Test(9)] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ChildClass1(1)]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[Trait1] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[Anon1(1)] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02a.php.formatted
index a3416c3..a120dce 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02a.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02b.php.formatted
index 2284416..10d5b15 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_02b.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03a.php.formatted
index e7637bb..bd6408a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03a.php.formatted
@@ -70,5 +70,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03b.php.formatted
index f9054cb..17f3175 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/attributeSyntax_03b.php.formatted
@@ -70,5 +70,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01a.php.formatted
index 8182e79..34c8843 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01a.php.formatted
@@ -24,7 +24,6 @@
     public function __construct(private int $field1, private ?string $field2, public int|string $field3, protected $field4) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion1b {
@@ -37,7 +36,6 @@
     ) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion2a {
@@ -45,7 +43,6 @@
     public function __construct(private int $field1 = 1, private ?string $field2 = null, public int|string $field3 = 2, protected $field4 = "default value",) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion2b {
@@ -58,7 +55,6 @@
     ) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion3a {
@@ -66,7 +62,6 @@
     public function __construct($param1, private int $field1, private ?string $field2 = "default value", string|int $param2 = "default value") {
         
     }
-
 }
 
 class ConstructorPropertyPromotion3b {
@@ -79,7 +74,6 @@
     ) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion4a {
@@ -87,7 +81,6 @@
     public function __construct(private int $field1, mixed $param1 = "default value", private ?string $field2 = "default value",) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion4b {
@@ -99,5 +92,4 @@
     ) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01b.php.formatted
index c09171f..49b1bde 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/constructorPropertyPromotion_01b.php.formatted
@@ -24,7 +24,6 @@
     public function __construct(private int $field1, private ?string $field2, public int|string $field3, protected $field4) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion1b {
@@ -37,7 +36,6 @@
     ) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion2a {
@@ -45,7 +43,6 @@
     public function __construct(private int $field1 = 1, private ?string $field2 = null, public int|string $field3 = 2, protected $field4 = "default value",) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion2b {
@@ -58,7 +55,6 @@
     ) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion3a {
@@ -66,7 +62,6 @@
     public function __construct($param1, private int $field1, private ?string $field2 = "default value", string|int $param2 = "default value") {
         
     }
-
 }
 
 class ConstructorPropertyPromotion3b {
@@ -79,7 +74,6 @@
     ) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion4a {
@@ -87,7 +81,6 @@
     public function __construct(private int $field1, mixed $param1 = "default value", private ?string $field2 = "default value",) {
         
     }
-
 }
 
 class ConstructorPropertyPromotion4b {
@@ -99,5 +92,4 @@
     ) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLineIndented_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLineIndented_01.php.formatted
index eacd5f6..09a9999 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLineIndented_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLineIndented_01.php.formatted
@@ -156,7 +156,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLine_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLine_01.php.formatted
index f94ce81..11041f3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLine_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_NewLine_01.php.formatted
@@ -156,7 +156,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_PreserveExisting_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_PreserveExisting_01.php.formatted
index f810530..0859523 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_PreserveExisting_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_PreserveExisting_01.php.formatted
@@ -145,7 +145,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_SameLine_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_SameLine_01.php.formatted
index 4b3687b..6c8d373 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_SameLine_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/matchExpression_SameLine_01.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01a.php.formatted
index 96520c7..51b4f25 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01a.php.formatted
@@ -36,7 +36,6 @@
     ) {
         
     }
-
 }
 
 class ExampleClass extends ParentClass {
@@ -55,7 +54,6 @@
     public static function staticTest(ExampleClass $exampleClass, int $test) {
         
     }
-
 }
 
 $instance = new ExampleClass($test1, test2: $test2);
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01b.php.formatted
index 8e85c5d..7151b67 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php80/namedArguments_01b.php.formatted
@@ -36,7 +36,6 @@
     ) {
         
     }
-
 }
 
 class ExampleClass extends ParentClass {
@@ -55,7 +54,6 @@
     public static function staticTest(ExampleClass $exampleClass, int $test) {
         
     }
-
 }
 
 $instance = new ExampleClass($test1, test2: $test2);
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_01.php.formatted
index bfcbed0..f07fe71 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_01.php.formatted
@@ -35,7 +35,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -50,7 +49,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc
@@ -70,7 +68,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int
@@ -80,7 +77,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string
@@ -98,5 +94,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_03.php.formatted
index cd19628..4818c24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_03.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -48,7 +47,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -67,7 +65,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -76,7 +73,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -93,5 +89,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_04.php.formatted
index 2790529..8e94bae 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerationsBP_04.php.formatted
@@ -35,7 +35,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
     }
 
 #[Attr]
@@ -50,7 +49,6 @@
 
     #[AAA]
     const Bar = 2;
-
     }
 
 enum WithDoc
@@ -70,7 +68,6 @@
      * test
      */
     const Bar = 2;
-
     }
 
 enum BackingTypeInt: int
@@ -80,7 +77,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
     }
 
 enum BackingTypeString: string
@@ -98,5 +94,4 @@
      */
     #[AAA]
     case B = "testB";
-
     }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerations_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerations_01.php.formatted
index cd19628..4818c24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerations_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/enumerations_01.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -48,7 +47,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -67,7 +65,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -76,7 +73,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -93,5 +89,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstantsWithAttributes_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstantsWithAttributes_01.php.formatted
index a23ea9e..de24e75 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstantsWithAttributes_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstantsWithAttributes_01.php.formatted
@@ -62,7 +62,6 @@
 
     #[A("attribute")]
     protected final const PROTECTED_CONST5 = "foo", PROTECTED_CONST6 = "foo";
-
 }
 
 interface I {
@@ -75,5 +74,4 @@
 
     #[A("attribute")]
     public final const PUBLIC_CONST2 = "i";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstants_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstants_01.php.formatted
index f5e7727..a043629 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstants_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/finalClassConstants_01.php.formatted
@@ -35,7 +35,6 @@
     public final const PUBLIC_CONST5 = "foo", PUBLIC_CONST6 = "foo";
     private final const PRIVATE_CONST5 = "foo", PRIVATE_CONST6 = "foo";
     protected final const PROTECTED_CONST5 = "foo", PROTECTED_CONST6 = "foo";
-
 }
 
 interface I {
@@ -43,5 +42,4 @@
     final const IMPLICIT_CONST = "i";
     final public const PUBLIC_CONST1 = "i";
     public final const PUBLIC_CONST2 = "i";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_01.php.formatted
index a1501fc..957d0fc 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_01.php.formatted
@@ -59,7 +59,6 @@
     ) {
         
     }
-
 }
 
 class ParentClass {
@@ -71,5 +70,4 @@
     public static function method($self = new self, $parent = new parent) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_02.php.formatted
index a1501fc..957d0fc 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/newInInitializers_02.php.formatted
@@ -59,7 +59,6 @@
     ) {
         
     }
-
 }
 
 class ParentClass {
@@ -71,5 +70,4 @@
     public static function method($self = new self, $parent = new parent) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/php81/readonlyProperties_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/php81/readonlyProperties_01.php.formatted
index ada4657..53322bb 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/php81/readonlyProperties_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/php81/readonlyProperties_01.php.formatted
@@ -46,7 +46,6 @@
     public function readonly(): void {
         
     }
-
 }
 
 trait ReadonlyPropertiesTrait {
@@ -76,5 +75,4 @@
     public function readonly(): void {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php.formatted
index 8ad5847..0218a3c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php.formatted
@@ -20,5 +20,4 @@
     public function anotherone() {
         //blablabla
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_10_10.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_10_10.formatted
index e6ac8e6..2e92afc 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_10_10.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_10_10.formatted
@@ -20,5 +20,4 @@
           public function anotherone() {
                     //blablabla
           }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_5_5.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_5_5.formatted
index 271621f..9f4e222 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_5_5.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/152429_1.php_5_5.formatted
@@ -20,5 +20,4 @@
      public function anotherone() {
           //blablabla
      }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/168396_1.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/168396_1.php.formatted
index 9cf67ce..a2146b9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/168396_1.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/168396_1.php.formatted
@@ -13,7 +13,6 @@
           'four',
       )
   );
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php.formatted
index f12b4b5e..8eadbd5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php.formatted
@@ -5,7 +5,6 @@
   function emptyFunction() {
     $a = 10;
   }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_10_10.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_10_10.formatted
index 431137f..4ad3963 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_10_10.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_10_10.formatted
@@ -5,7 +5,6 @@
           function emptyFunction() {
                     $a = 10;
           }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_5_5.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_5_5.formatted
index 0b99e32..d53fbe7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_5_5.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173903.php_5_5.formatted
@@ -5,7 +5,6 @@
      function emptyFunction() {
           $a = 10;
      }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php.formatted
index 8de9764..ead704c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php.formatted
@@ -14,7 +14,6 @@
       $this->_flashMessenger->addMessage('Chyba: ' . $e);
     }
   }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_10_10.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_10_10.formatted
index 0aaffc3..55c1026 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_10_10.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_10_10.formatted
@@ -14,7 +14,6 @@
                               $this->_flashMessenger->addMessage('Chyba: ' . $e);
                     }
           }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_5_5.formatted b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_5_5.formatted
index c8a32e9..bf1616e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_5_5.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/qa/issues/stable_fixedIssues/173908.php_5_5.formatted
@@ -14,7 +14,6 @@
                $this->_flashMessenger->addMessage('Chyba: ' . $e);
           }
      }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/shortArrays3.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/shortArrays3.php.formatted
index 231d681..a82a018 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/shortArrays3.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/shortArrays3.php.formatted
@@ -20,7 +20,6 @@
       "Item 3" => 3
   ];
   public $number2 = 1;
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/shortArrays5.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/shortArrays5.php.formatted
index b7c6593..4fb0df7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/shortArrays5.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/shortArrays5.php.formatted
@@ -9,7 +9,6 @@
             echo "false";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/simple_class_def.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/simple_class_def.php.formatted
index d8393d5..ed7dc1d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/simple_class_def.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/simple_class_def.php.formatted
@@ -11,7 +11,6 @@
   function testFunc() {
     ;
   }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted
index 5839fb0..faf883e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaceAfterType.php.formatted
@@ -36,5 +36,4 @@
     public function isValid(float $length): bool {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_01.php.formatted
index a778453..984f1ab 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_01.php.formatted
@@ -5,7 +5,6 @@
     function test($param) {
         if ($this->test($param))
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_02.php.formatted
index 594cf19..762c635 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187665_02.php.formatted
@@ -5,7 +5,6 @@
     function test($param) {
         while ($this->test($param))
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187864_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187864_01.php.formatted
index 87354e1..3ed7cef 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187864_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/issue187864_01.php.formatted
@@ -16,4 +16,3 @@
     echo "1";
 } while (true);
 
-
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01a.php.formatted
index 4496ecd..91f77e5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01a.php.formatted
@@ -27,7 +27,6 @@
         $this->test ?-> test();
         $this->test() ?-> foo::$bar;
     }
-
 }
 
 $instance ?-> test();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01b.php.formatted
index b32948d..e64d384 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundNullsafeOperator_01b.php.formatted
@@ -27,7 +27,6 @@
         $this->test?->test();
         $this->test()?->foo::$bar;
     }
-
 }
 
 $instance?->test();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01a.php.formatted
index f330241..5c79d7b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01a.php.formatted
@@ -41,7 +41,6 @@
     public static function testStaticMethod(self | parent | null $param1, iterable | false $param2): self | parent | null {
         return null;
     }
-
 }
 
 trait UnionTypesTrait {
@@ -55,5 +54,4 @@
     ): iterable | false | Type1 | null {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01b.php.formatted
index 7cd3f8a..3e27ba2 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_01b.php.formatted
@@ -41,7 +41,6 @@
     public static function testStaticMethod(self|parent|null $param1, iterable|false $param2): self|parent|null {
         return null;
     }
-
 }
 
 trait UnionTypesTrait {
@@ -55,5 +54,4 @@
     ): iterable|false|Type1|null {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02a.php.formatted
index f330241..5c79d7b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02a.php.formatted
@@ -41,7 +41,6 @@
     public static function testStaticMethod(self | parent | null $param1, iterable | false $param2): self | parent | null {
         return null;
     }
-
 }
 
 trait UnionTypesTrait {
@@ -55,5 +54,4 @@
     ): iterable | false | Type1 | null {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02b.php.formatted
index 7cd3f8a..3e27ba2 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_02b.php.formatted
@@ -41,7 +41,6 @@
     public static function testStaticMethod(self|parent|null $param1, iterable|false $param2): self|parent|null {
         return null;
     }
-
 }
 
 trait UnionTypesTrait {
@@ -55,5 +54,4 @@
     ): iterable|false|Type1|null {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03a.php.formatted
index 62a8ebd..56a8fa3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03a.php.formatted
@@ -32,5 +32,4 @@
     public function testNullableType(): self | static | null {
         return new static;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03b.php.formatted
index a7100fb..0e00640 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceAroundUnionTypeSeparator_03b.php.formatted
@@ -32,5 +32,4 @@
     public static function testNullableType(): self|static|null {
         return new static;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01a.php.formatted
index f0f41ac..409d0bc 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01a.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[Class1\Test (9)] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ChildClass1 (1)]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[Trait1] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[Anon1 (1)] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01b.php.formatted
index af7ffe7..cb51b1b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_01b.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[Class1\Test(9)] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ChildClass1(1)]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[Trait1] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[Anon1(1)] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02a.php.formatted
index 817200e..689f88b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02a.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02b.php.formatted
index a3416c3..a120dce 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeAttributeDeclParen_02b.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_01.php.formatted
index 61ec19e..f2c75a4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_01.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_02.php.formatted
index dd34178..160e723 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchLeftBrace_02.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_01.php.formatted
index 61ec19e..f2c75a4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_01.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_02.php.formatted
index 43ba410..5a73649 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceBeforeMatchParen_02.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01a.php.formatted
index 73462d4..77b80c6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01a.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[ Class1\Test(9) ] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ ChildClass1(1) ]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[ Trait1 ] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[ Anon1(1) ] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01b.php.formatted
index af7ffe7..cb51b1b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_01b.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[Class1\Test(9)] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ChildClass1(1)]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[Trait1] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[Anon1(1)] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02a.php.formatted
index a3416c3..a120dce 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02a.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02b.php.formatted
index a3416c3..a120dce 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeBrackets_02b.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01a.php.formatted
index 28767d2..7e42b6f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01a.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[Class1\Test( 9 )] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ChildClass1( 1 )]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[Trait1] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[Anon1( 1 )] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01b.php.formatted
index af7ffe7..cb51b1b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_01b.php.formatted
@@ -41,7 +41,6 @@
     public static function staticMethod(#[Class1\Test(9)] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 #[ChildClass1(1)]
@@ -69,7 +68,6 @@
     public static function staticMethod(#[Trait1] int|string $param1): bool|int {
         return false;
     }
-
 }
 
 $anon = new #[Anon1(1)] class() {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02a.php.formatted
index 613a61f..74dafa3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02a.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02b.php.formatted
index a3416c3..a120dce 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinAttributeDeclParens_02b.php.formatted
@@ -51,5 +51,4 @@
     private function test() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_01.php.formatted
index d98808a..be1bfa5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_01.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_02.php.formatted
index 61ec19e..f2c75a4 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php80/spaceWithinMatchParen_02.php.formatted
@@ -142,7 +142,6 @@
     public function match(): void {
         echo "Context Sensitive Lexer" . PHP_EOL;
     }
-
 }
 
 $instance = new MatchExpression();
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01a.php.formatted
index 380ed32..d87af85 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01a.php.formatted
@@ -50,7 +50,6 @@
     public function returnType(): X & Y {
         return $this->test;
     }
-
 }
 
 trait TestTrait {
@@ -64,7 +63,6 @@
     public function returnType(): X & Y {
         return $this->test;
     }
-
 }
 
 interface TestInterfase {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01b.php.formatted
index 77d0cc1..43f1485 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_01b.php.formatted
@@ -50,7 +50,6 @@
     public function returnType(): X&Y {
         return $this->test;
     }
-
 }
 
 trait TestTrait {
@@ -64,7 +63,6 @@
     public function returnType(): X&Y {
         return $this->test;
     }
-
 }
 
 interface TestInterfase {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02a.php.formatted
index 380ed32..d87af85 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02a.php.formatted
@@ -50,7 +50,6 @@
     public function returnType(): X & Y {
         return $this->test;
     }
-
 }
 
 trait TestTrait {
@@ -64,7 +63,6 @@
     public function returnType(): X & Y {
         return $this->test;
     }
-
 }
 
 interface TestInterfase {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02b.php.formatted
index 77d0cc1..43f1485 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceAroundPureIntersectionTypeSeparator_02b.php.formatted
@@ -50,7 +50,6 @@
     public function returnType(): X&Y {
         return $this->test;
     }
-
 }
 
 trait TestTrait {
@@ -64,7 +63,6 @@
     public function returnType(): X&Y {
         return $this->test;
     }
-
 }
 
 interface TestInterfase {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01a.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01a.php.formatted
index cd19628..4818c24 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01a.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01a.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -48,7 +47,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc {
@@ -67,7 +65,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int {
@@ -76,7 +73,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string {
@@ -93,5 +89,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01b.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01b.php.formatted
index f8b90d3..b37de40 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01b.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/php81/spaceBeforeEnumDecLeftBrace_01b.php.formatted
@@ -34,7 +34,6 @@
     public static function staticTest(Foo&Bar $param): void {
         
     }
-
 }
 
 #[Attr]
@@ -48,7 +47,6 @@
 
     #[AAA]
     const Bar = 2;
-
 }
 
 enum WithDoc{
@@ -67,7 +65,6 @@
      * test
      */
     const Bar = 2;
-
 }
 
 enum BackingTypeInt: int{
@@ -76,7 +73,6 @@
 
     case A = self::CONSTANT;
     case B = 2;
-
 }
 
 enum BackingTypeString: string{
@@ -93,5 +89,4 @@
      */
     #[AAA]
     case B = "testB";
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed04.php.formatted
index 1b83d3c..d8b6177 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed04.php.formatted
@@ -5,5 +5,4 @@
     function nullableTypes(?string $string): ?int {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed05.php.formatted
index 63aa709..1ef70fe 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed05.php.formatted
@@ -5,5 +5,4 @@
     function nullableTypes(?string $string, int $num): ?int {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed06.php.formatted
index 2b1c53b..8b3367c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForMixed06.php.formatted
@@ -5,5 +5,4 @@
     function nullableTypes(?string $string, ?\Foo\Bar $bar): ?\Foo\Bar {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter04.php.formatted
index 2ab6eda..2876ab9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter04.php.formatted
@@ -5,5 +5,4 @@
     function nullableTypes(?string $string) {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter05.php.formatted
index 2ab6eda..2876ab9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter05.php.formatted
@@ -5,5 +5,4 @@
     function nullableTypes(?string $string) {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter06.php.formatted
index fc366ba..9d091b6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForParameter06.php.formatted
@@ -5,5 +5,4 @@
     function nullableTypes(?string $string, ?\Foo\Bar $bar) {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn04.php.formatted
index 82afb31..6f8a1bf 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn04.php.formatted
@@ -5,5 +5,4 @@
     public function nullableTypes(): ?int {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn05.php.formatted
index 82afb31..6f8a1bf 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn05.php.formatted
@@ -5,5 +5,4 @@
     public function nullableTypes(): ?int {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn06.php.formatted
index 5bb1ade..26be589 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAfterNullableTypePrefixForReturn06.php.formatted
@@ -5,5 +5,4 @@
     public function nullableTypes(): ?\Foo\Bar {
         return null;
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp01.php.formatted
index 403f635..191b90a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp01.php.formatted
@@ -8,7 +8,6 @@
             $value = $value * 2;
         }
     }
-
 }
 
 $arr2 = array("a"=>1, "b"=>2,
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp02.php.formatted
index 4e5acf1..c089a57 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundKeyValueOp02.php.formatted
@@ -8,7 +8,6 @@
             $value = $value * 2;
         }
     }
-
 }
 
 $arr2 = array("a" => 1, "b" => 2,
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType07.php.formatted
index 88909ca..88f6420 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType07.php.formatted
@@ -5,5 +5,4 @@
     function foo(): array {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType08.php.formatted
index 5bfa27f..47135c7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType08.php.formatted
@@ -5,5 +5,4 @@
     function foo(): MyClass {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType09.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType09.php.formatted
index 70578e4..19a5673 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType09.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundReturnType09.php.formatted
@@ -5,5 +5,4 @@
     function foo(): \Company\MyClass {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundStringConcat01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundStringConcat01.php.formatted
index e8a7ea8..cb92811 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundStringConcat01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceAroundStringConcat01.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: '.$e->getMessage()."\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeCatchLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeCatchLeftBrace01.php.formatted
index 522e2e9..b79dcf6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeCatchLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeCatchLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace01.php.formatted
index 3f0659d..32c5a62 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace01.php.formatted
@@ -7,7 +7,6 @@
     public function getText() {
         return $this->text;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace02.php.formatted
index 3f0659d..32c5a62 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace02.php.formatted
@@ -7,7 +7,6 @@
     public function getText() {
         return $this->text;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace03.php.formatted
index b5ba347..90a5c8e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeClassDecLeftBrace03.php.formatted
@@ -7,7 +7,6 @@
     public function getText() {
         return $this->text;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeDoLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeDoLeftBrace01.php.formatted
index 2ebfd53..fae3d59 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeDoLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeDoLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeElseLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeElseLeftBrace01.php.formatted
index de1c6f3..b4e9925 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeElseLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeElseLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeForLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeForLeftBrace01.php.formatted
index 40e1f42..a070fd5 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeForLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeForLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeIfElseIfLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeIfElseIfLeftBrace01.php.formatted
index 521729e..6791047 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeIfElseIfLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeIfElseIfLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace01.php.formatted
index 7f1124c..8e818ff 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace01.php.formatted
@@ -5,7 +5,6 @@
     public function getText() {
         return $this->text;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace02.php.formatted
index b5a9be4..d8a60ca 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace02.php.formatted
@@ -5,7 +5,6 @@
     public function getText(){
         return $this->text;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace03.php.formatted
index 8ef4b77..08e10b7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeMethodDeclLeftBrace03.php.formatted
@@ -7,7 +7,6 @@
     {
         return $this->text;
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeSwitchLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeSwitchLeftBrace01.php.formatted
index 8bf929c..8e3660e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeSwitchLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeSwitchLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeTryLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeTryLeftBrace01.php.formatted
index e3734ed..dfa9bd1 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeTryLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeTryLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeWhileLeftBrace01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeWhileLeftBrace01.php.formatted
index 87b117d..45d2d25 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeWhileLeftBrace01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceBeforeWhileLeftBrace01.php.formatted
@@ -58,7 +58,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords01.php.formatted
index 0387037..2184430 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords01.php.formatted
@@ -13,7 +13,6 @@
     public function test() {
         return "test";
     }
-
 }
 
 $lambda = function ($param) use ($parent) {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords02.php.formatted
index fc6ff24..0b35391 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceCheckAfterKeywords02.php.formatted
@@ -27,7 +27,6 @@
     private function test2() {
         return;
     }
-
 }
 
 $greet = function ($name) {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens01.php.formatted
index 4e5acf1..c089a57 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens01.php.formatted
@@ -8,7 +8,6 @@
             $value = $value * 2;
         }
     }
-
 }
 
 $arr2 = array("a" => 1, "b" => 2,
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens02.php.formatted
index 6e7b61f..47c055a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinArrayDeclParens02.php.formatted
@@ -8,7 +8,6 @@
             $value = $value * 2;
         }
     }
-
 }
 
 $arr2 = array( "a" => 1, "b" => 2,
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens01.php.formatted
index 200c95c..09419fc 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens01.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens02.php.formatted
index 5da4887..a104bfe 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens02.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens03.php.formatted
index 83a4f41..ee9fff2 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens03.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens04.php.formatted
index 69e1fd1..303988b 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens04.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens05.php.formatted
index 941f9cd..bfa5998 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens05.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens06.php.formatted
index f56534c..e2d0df9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens06.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens07.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens07.php.formatted
index cb2d7fe..a33ca8d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens07.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens07.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 $value = new Example("name");
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens08.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens08.php.formatted
index 2dd99cc..081c7fb 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens08.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spaces/spaceWithinParens08.php.formatted
@@ -56,7 +56,6 @@
             echo 'Caught exception: ' . $e->getMessage() . "\n";
         }
     }
-
 }
 
 $value = new Example( "name" );
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/spreadOperatorInClassConst.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/spreadOperatorInClassConst.php.formatted
index fade372..fcb712f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/spreadOperatorInClassConst.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/spreadOperatorInClassConst.php.formatted
@@ -41,13 +41,11 @@
         "4",
         self::CONSTANT1
     ];
-
 }
 
 class UnpackChildClass extends UnpackClass {
 
     public const CHILD_CONSTANT = ["0", ...parent::CONSTANT,];
-
 }
 
 namespace Bar;
@@ -68,5 +66,4 @@
         4,
     ];
     private const CONST4 = [...F_CONST];
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_01.php.formatted
index 632134f..038edfd 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_01.php.formatted
@@ -19,7 +19,6 @@
     public function getName() {
         
     }
-
 }
 
 function functionName($param) {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_02.php.formatted
index f2bdeae..3071f18 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_02.php.formatted
@@ -21,7 +21,6 @@
     {
         
     }
-
 }
 
 function functionName($param) {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_03.php.formatted
index 7916c1f..b6c758a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/templates/implementsOverwrite_03.php.formatted
@@ -21,7 +21,6 @@
     {
     
     }
-
 }
 
 function functionName($param) {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/typedProperties20_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/typedProperties20_01.php.formatted
index c4cc0e9..b0e50a3 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/typedProperties20_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/typedProperties20_01.php.formatted
@@ -49,5 +49,4 @@
     // Handle these as error in UnusableTypesUnhandledError
     public callable $callble; // NG, Unusable type
     public void $void; // NG, Unusable type
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit01.php.formatted
index d5f3a55..49191f8 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit01.php.formatted
@@ -13,7 +13,6 @@
             $value = (int) $value * 2;
         }
     }
-
 }
 
 $test = array(
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit02.php.formatted
index 4715eb6..48843bf 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit02.php.formatted
@@ -14,7 +14,6 @@
             $value = (int) $value * 2;
         }
     }
-
 }
 
 $test = array(
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit03.php.formatted
index 4747568..4d81326 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/arrayInit03.php.formatted
@@ -30,7 +30,6 @@
             $value = (int) $value * 2;
         }
     }
-
 }
 
 $test = array(
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block01.php.formatted
index 099c2b7..c0754ea 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block01.php.formatted
@@ -47,7 +47,6 @@
 class Simple {
 
     public $field;
-
 }
 
 class Simple2 {
@@ -55,7 +54,6 @@
     function method() {
         echo "test";
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block02.php.formatted
index 3d57ba4..5841f4a 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block02.php.formatted
@@ -35,13 +35,11 @@
 class Simple {
 
     public $field;
-
 }
 
 class Simple2 {
 
     function method() { echo "test"; }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block03.php.formatted
index f2531c4..abfa634 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block03.php.formatted
@@ -49,7 +49,6 @@
 class Simple {
 
     public $field;
-
 }
 
 class Simple2 {
@@ -57,7 +56,6 @@
     function method() {
         echo "test";
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block04.php.formatted
index b29f0c2..e04ae7e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block04.php.formatted
@@ -37,13 +37,11 @@
 class Simple {
 
     public $field;
-
 }
 
 class Simple2 {
 
     function method() { echo "test"; }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block05.php.formatted
index 98f30b4..5b6ec1f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block05.php.formatted
@@ -62,7 +62,6 @@
 {
 
     public $field;
-
 }
 
 class Simple2
@@ -72,7 +71,6 @@
     {
         echo "test";
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block06.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block06.php.formatted
index cffdf63..24e80c9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block06.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/block06.php.formatted
@@ -50,7 +50,6 @@
 {
 
     public $field;
-
 }
 
 class Simple2
@@ -58,7 +57,6 @@
 
     function method()
     { echo "test"; }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces01.php.formatted
index 56b1c3d..a44fbbb 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces01.php.formatted
@@ -6,7 +6,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces02.php.formatted
index 56b1c3d..a44fbbb 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces02.php.formatted
@@ -6,7 +6,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces03.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces03.php.formatted
index c6c23cb..6a053fb 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces03.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces03.php.formatted
@@ -6,7 +6,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces04.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces04.php.formatted
index 4f62339..0d124e6 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces04.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces04.php.formatted
@@ -7,7 +7,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces05.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces05.php.formatted
index 67e47a5..cbb2931 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces05.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/interfaces05.php.formatted
@@ -8,7 +8,6 @@
     public function test() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/issue228712.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/issue228712.php.formatted
index 32f2cd5..2fbf982 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/issue228712.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/issue228712.php.formatted
@@ -6,7 +6,6 @@
     function __construct() {
         
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodChainCall_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodChainCall_01.php.formatted
index 11890d0..3b73b7c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodChainCall_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodChainCall_01.php.formatted
@@ -5,7 +5,6 @@
     public function test($param1, Example $param2, $param3 = "hello longer text as default value") {
         $this->method1()->method2()->method3()->methofsaddfafadasfasdfdafdad4();
     }
-
 }
 
 ?>
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_01.php.formatted
index 693ad5f..fb11020 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_01.php.formatted
@@ -68,7 +68,6 @@
             string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_02.php.formatted
index 9ce7e9f..1757639 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenAlways_02.php.formatted
@@ -505,7 +505,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_02.php.formatted
index 8332d2c..c3a5592 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenIfLong_02.php.formatted
@@ -454,7 +454,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_02.php.formatted
index 52797c5..aeb7640 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsAfterLeftParenNever_02.php.formatted
@@ -475,7 +475,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_01.php.formatted
index da18973..95a566d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_01.php.formatted
@@ -73,7 +73,6 @@
     ): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_02.php.formatted
index 67602f6..f0561dd 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensAlways_02.php.formatted
@@ -524,7 +524,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_02.php.formatted
index 57cb7e5..10a2bb8 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensIfLong_02.php.formatted
@@ -473,7 +473,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_02.php.formatted
index 0dbd390..22412d7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsBothParensNever_02.php.formatted
@@ -494,7 +494,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_newline.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_newline.php.formatted
index a92bfeb..8964e91 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_newline.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_newline.php.formatted
@@ -310,7 +310,6 @@
     ): void {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_sameline.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_sameline.php.formatted
index aa48c25..f23ead7 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_sameline.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_01_sameline.php.formatted
@@ -301,7 +301,6 @@
     ): void {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_newline.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_newline.php.formatted
index fdf0940..1731688 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_newline.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_newline.php.formatted
@@ -30,5 +30,4 @@
     {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_sameline.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_sameline.php.formatted
index 5ba03ca..bebb51e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_sameline.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_02_sameline.php.formatted
@@ -29,5 +29,4 @@
     public function testMethod($param1, $param2,) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_newline.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_newline.php.formatted
index e867b20..ac94376 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_newline.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_newline.php.formatted
@@ -30,5 +30,4 @@
     {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_sameline.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_sameline.php.formatted
index 9c82638..df0861c 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_sameline.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsKeepRightParenAndLeftBraceOnTheSameLine_03_sameline.php.formatted
@@ -29,5 +29,4 @@
     public function __construct(private int $test1, private string $test2) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_01.php.formatted
index 31e14e3..fdfec3f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_01.php.formatted
@@ -63,7 +63,6 @@
             string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_02.php.formatted
index 6d2ebae..658f945 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensAlways_02.php.formatted
@@ -485,7 +485,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_02.php.formatted
index 008e24c..52cf4b9 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensIfLong_02.php.formatted
@@ -434,7 +434,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_02.php.formatted
index 8d4acf6..5927a42 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsNoWrapParensNever_02.php.formatted
@@ -455,7 +455,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_01.php.formatted
index 5bbb63f..8722243 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_01.php.formatted
@@ -68,7 +68,6 @@
     ): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_02.php.formatted
index 9070c61..a7cf5f1 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenAlways_02.php.formatted
@@ -504,7 +504,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_02.php.formatted
index 6499379..00edd9d 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenIfLong_02.php.formatted
@@ -453,7 +453,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_01.php.formatted
index 98a34f2..bd2169f 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_01.php.formatted
@@ -53,7 +53,6 @@
     private function testParams3($param1, int $param2, string $param3,): int {
         
     }
-
 }
 
 $labmda = function () {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_02.php.formatted
index 32644a2..a230204 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/methodParamsRightParenNever_02.php.formatted
@@ -474,7 +474,6 @@
     ): int {
         
     }
-
 }
 
 interface TestInterface {
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01.php.formatted
index 0efec9e..78ffa0e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01.php.formatted
@@ -59,7 +59,6 @@
     ): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function (
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01_psr12.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01_psr12.php.formatted
index e526581..240daa0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01_psr12.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways01_psr12.php.formatted
@@ -61,7 +61,6 @@
     ): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function (
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02.php.formatted
index 53cc5ac..ebd26f0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02.php.formatted
@@ -51,7 +51,6 @@
             ?string $param2,): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function ($param1,
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02_psr12.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02_psr12.php.formatted
index c743f6f..bfc87ed 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02_psr12.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsAlways02_psr12.php.formatted
@@ -61,7 +61,6 @@
     ): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function (
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01.php.formatted
index 0efec9e..78ffa0e 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01.php.formatted
@@ -59,7 +59,6 @@
     ): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function (
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01_psr12.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01_psr12.php.formatted
index e526581..240daa0 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01_psr12.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever01_psr12.php.formatted
@@ -61,7 +61,6 @@
     ): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function (
diff --git a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever02.php.formatted b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever02.php.formatted
index d5bf309..6766f20 100644
--- a/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever02.php.formatted
+++ b/php/php.editor/test/unit/data/testfiles/formatting/wrapping/php80/AllowTrailingCommaInParameterList/declarationsNever02.php.formatted
@@ -40,7 +40,6 @@
     public function testWithReturnType(int $param1, ?string $param2,): void {
         echo "Trailing Comma in Parameter List" . PHP_EOL;
     }
-
 }
 
 $closure = function ($param1, $param2, $param3, $param4,) {
diff --git a/php/php.editor/test/unit/data/testfiles/gotodeclaration/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php b/php/php.editor/test/unit/data/testfiles/gotodeclaration/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php
new file mode 100644
index 0000000..2d2a1a0
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/gotodeclaration/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php
@@ -0,0 +1,38 @@
+<?php
+/*
+ * 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.
+ */
+namespace Enum1;
+
+interface ExampleInterface1 {}
+interface ExampleInterface2 {}
+
+namespace Enum2;
+
+use Enum1\ExampleInterface1;
+use Enum1\ExampleInterface2;
+
+enum EnumImpl1 implements ExampleInterface1 {
+    case A = 'A';
+    case B = 'B';
+}
+
+enum EnumImpl2 implements ExampleInterface1, ExampleInterface2 {
+    case A = 'A';
+    case B = 'B';
+}
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_02d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_03e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testConstructorPropertyPromotion/testConstructorPropertyPromotion.php.testConstructorPropertyPromotion_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01g.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01g.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01g.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01g.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01h.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01h.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_01h.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_01h.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_05a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_05a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_05a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_05a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_05b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_05b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_05b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_05b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_06a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_06a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_06a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_06a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_06b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_06b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_06b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_06b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_07a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_07a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_07a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_07a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_07b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_07b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_07b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_07b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_07c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_07c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_07c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_07c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_08a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_08a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_08a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_08a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_08b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_08b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_08b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_08b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_09a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_09a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_09a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_09a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_09b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_09b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_09b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_09b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_09c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_09c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMatchExpression.php.testMatchExpression_09c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testMatchExpression/testMatchExpression.php.testMatchExpression_09c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNonCapturingCatches.php.testNonCapturingCatches_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNonCapturingCatches/testNonCapturingCatches.php.testNonCapturingCatches_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_01f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_01f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_02f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_02f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04g.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04g.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_04g.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_04g.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_05a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_05a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_05a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_05a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_05b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_05b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_05b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_05b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_06a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_06a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_06a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_06a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_06b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_06b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_06b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_06b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_06c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_06c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_06c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_06c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_07a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_07a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_07a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_07a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_07b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_07b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_07b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_07b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_08a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_08a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_08a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_08a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_08b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_08b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_08b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_08b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_08c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_08c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_08c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_08c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_09a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_09a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_09a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_09a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_09b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_09b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_09b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_09b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullsafeOperator.php.testNullsafeOperator_10d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testNullsafeOperator/testNullsafeOperator.php.testNullsafeOperator_10d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_02d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_02d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_03d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_03d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUnionTypes.php.testUnionTypes_04e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php80/testUnionTypes/testUnionTypes.php.testUnionTypes_04e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_a14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_a14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_b11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_b11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_c08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_c08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_d06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_d06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_e08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_e08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_f01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_f01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_f01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_f01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_f02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_f02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_f02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_f02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_f03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_f03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_f03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_f03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_g01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_g01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_g01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_g01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_g02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_g02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_g02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_g02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_g03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_g03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerations.php.testEnumerations_g03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerations/testEnumerations.php.testEnumerations_g03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_a02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_b03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithBackingType/testEnumerationsWithBackingType.php.testEnumerationsWithBackingType_c02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php
new file mode 100644
index 0000000..2d2a1a0
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php
@@ -0,0 +1,38 @@
+<?php
+/*
+ * 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.
+ */
+namespace Enum1;
+
+interface ExampleInterface1 {}
+interface ExampleInterface2 {}
+
+namespace Enum2;
+
+use Enum1\ExampleInterface1;
+use Enum1\ExampleInterface2;
+
+enum EnumImpl1 implements ExampleInterface1 {
+    case A = 'A';
+    case B = 'B';
+}
+
+enum EnumImpl2 implements ExampleInterface1, ExampleInterface2 {
+    case A = 'A';
+    case B = 'B';
+}
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01a.occurrences
new file mode 100644
index 0000000..1160511
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01a.occurrences
@@ -0,0 +1,4 @@
+interface |>MARK_OCCURRENCES:ExampleInter^face1<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterface1<|;
+enum EnumImpl1 implements |>MARK_OCCURRENCES:ExampleInterface1<| {
+enum EnumImpl2 implements |>MARK_OCCURRENCES:ExampleInterface1<|, ExampleInterface2 {
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01b.occurrences
new file mode 100644
index 0000000..8a7962f
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01b.occurrences
@@ -0,0 +1,4 @@
+interface |>MARK_OCCURRENCES:ExampleInterface1<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterf^ace1<|;
+enum EnumImpl1 implements |>MARK_OCCURRENCES:ExampleInterface1<| {
+enum EnumImpl2 implements |>MARK_OCCURRENCES:ExampleInterface1<|, ExampleInterface2 {
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01c.occurrences
new file mode 100644
index 0000000..20632b5
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01c.occurrences
@@ -0,0 +1,4 @@
+interface |>MARK_OCCURRENCES:ExampleInterface1<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterface1<|;
+enum EnumImpl1 implements |>MARK_OCCURRENCES:ExampleInterf^ace1<| {
+enum EnumImpl2 implements |>MARK_OCCURRENCES:ExampleInterface1<|, ExampleInterface2 {
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01d.occurrences
new file mode 100644
index 0000000..1c22c68
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_01d.occurrences
@@ -0,0 +1,4 @@
+interface |>MARK_OCCURRENCES:ExampleInterface1<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterface1<|;
+enum EnumImpl1 implements |>MARK_OCCURRENCES:ExampleInterface1<| {
+enum EnumImpl2 implements |>MARK_OCCURRENCES:ExampleInterfa^ce1<|, ExampleInterface2 {
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02a.occurrences
new file mode 100644
index 0000000..6e24ebc
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02a.occurrences
@@ -0,0 +1,3 @@
+interface |>MARK_OCCURRENCES:ExampleInterf^ace2<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterface2<|;
+enum EnumImpl2 implements ExampleInterface1, |>MARK_OCCURRENCES:ExampleInterface2<| {
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02b.occurrences
new file mode 100644
index 0000000..b328e7c
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02b.occurrences
@@ -0,0 +1,3 @@
+interface |>MARK_OCCURRENCES:ExampleInterface2<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterfa^ce2<|;
+enum EnumImpl2 implements ExampleInterface1, |>MARK_OCCURRENCES:ExampleInterface2<| {
diff --git a/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02c.occurrences
new file mode 100644
index 0000000..f8602cc
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testEnumerationsWithInterface/testEnumerationsWithInterface.php.testEnumerationsWithInterface_02c.occurrences
@@ -0,0 +1,3 @@
+interface |>MARK_OCCURRENCES:ExampleInterface2<| {}
+use Enum1\|>MARK_OCCURRENCES:ExampleInterface2<|;
+enum EnumImpl2 implements ExampleInterface1, |>MARK_OCCURRENCES:Exam^pleInterface2<| {
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_03d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testFirstClassCallableSyntax/testFirstClassCallableSyntax.php.testFirstClassCallableSyntax_05b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithAttribute/testNewInInitializersWithAttribute.php.testNewInInitializersWithAttribute_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithConstant/testNewInInitializersWithConstant.php.testNewInInitializersWithConstant_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithFunc/testNewInInitializersWithFunc.php.testNewInInitializersWithFunc_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithMethod/testNewInInitializersWithMethod.php.testNewInInitializersWithMethod_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testNewInInitializersWithStaticVariable/testNewInInitializersWithStaticVariable.php.testNewInInitializersWithStaticVariable_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_05a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_05a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_05a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_05a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_05b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_05b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_05b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_05b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_06a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_06a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_06a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_06a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_06b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_06b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_06b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_06b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_07a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_07a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_07a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_07a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_07b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_07b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_07b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_07b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_08a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_08a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_08a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_08a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_08b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_08b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_08b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_08b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_09a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_09a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_09a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_09a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_09b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_09b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_09b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_09b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_10a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_10a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_10a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_10a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_10b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_10b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_10b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_10b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_11a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_11a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_11a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_11a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_11b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_11b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_11b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_11b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_12a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_12a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_12a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_12a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_12b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_12b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_12b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_12b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_13a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_13a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_13a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_13a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_13b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_13b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_13b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_13b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_14a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_14a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_14a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_14a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_14b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_14b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_14b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_14b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_15a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_15a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_15a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_15a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_15b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_15b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_15b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_15b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_16a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_16a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_16a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_16a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_16b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_16b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_16b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_16b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_17a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_17a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_17a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_17a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_17b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_17b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testPureIntersectionType.php.testPureIntersectionType_17b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php81/testPureIntersectionType/testPureIntersectionType.php.testPureIntersectionType_17b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_01f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_01f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_02d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_02d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_03d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_03d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantsInTraits.php.testConstantsInTraits_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/php82/testConstantsInTraits/testConstantsInTraits.php.testConstantsInTraits_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses01.php.testAnonymousClasses01_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses01/testAnonymousClasses01.php.testAnonymousClasses01_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses02.php.testAnonymousClasses02_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses02/testAnonymousClasses02.php.testAnonymousClasses02_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses03.php.testAnonymousClasses03_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses03/testAnonymousClasses03.php.testAnonymousClasses03_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses04.php.testAnonymousClasses04_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses04/testAnonymousClasses04.php.testAnonymousClasses04_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses04.php.testAnonymousClasses04_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses04/testAnonymousClasses04.php.testAnonymousClasses04_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses04.php.testAnonymousClasses04_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses04/testAnonymousClasses04.php.testAnonymousClasses04_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses04.php.testAnonymousClasses04_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses04/testAnonymousClasses04.php.testAnonymousClasses04_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testAnonymousClasses05.php.testAnonymousClasses05_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testAnonymousClasses05/testAnonymousClasses05.php.testAnonymousClasses05_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrayDereferencing.php.testArrayDereferencing_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrayDereferencing/testArrayDereferencing.php.testArrayDereferencing_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02g.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02g.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02g.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02g.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02h.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02h.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02h.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02h.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02i.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02i.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02i.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02i.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02j.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02j.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02j.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02j.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02k.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02k.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02k.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02k.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02l.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02l.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02l.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02l.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02m.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02m.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02m.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02m.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02n.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02n.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_02n.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_02n.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05g.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05g.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05g.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05g.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05h.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05h.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05h.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05h.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05i.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05i.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05i.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05i.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05j.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05j.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05j.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05j.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05k.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05k.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05k.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05k.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05l.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05l.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_05l.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_05l.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_06a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_06a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_06a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_06a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_06b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_06b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_06b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_06b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_07a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_07a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_07a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_07a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_07b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_07b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_07b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_07b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_08a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_08a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_08a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_08a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_08b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_08b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_08b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_08b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_09a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_09a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_09a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_09a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_09b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_09b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_09b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_09b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_10a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_10a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_10a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_10a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_10b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_10b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_10b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_10b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_11a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_11a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_11a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_11a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_11b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_11b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_11b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_11b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_12a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_12a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_12a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_12a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_12b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_12b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_12b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_12b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_13a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_13a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_13a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_13a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_13b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_13b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_13b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_13b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_14a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_14a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_14a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_14a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_14b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_14b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_14b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_14b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_15a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_15a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_15a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_15a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_15b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_15b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_15b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_15b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_16a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_16a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_16a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_16a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_16b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_16b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_16b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_16b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_17a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_17a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_17a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_17a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_17b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_17b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_17b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_17b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_18a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_18a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_18a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_18a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_18b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_18b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_18b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_18b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_19a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_19a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_19a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_19a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_19b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_19b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_19b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_19b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_20a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_20a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_20a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_20a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_21a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_21a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_21a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_21a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_21b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_21b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_21b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_21b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_22a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_22a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_22a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_22a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_22b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_22b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_22b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_22b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_23a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_23a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_23a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_23a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_23b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_23b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_23b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_23b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_24a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_24a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_24a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_24a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_24b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_24b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_24b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_24b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_25a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_25a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_25a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_25a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_25b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_25b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_25b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_25b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_01e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_01e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testArrowFunctions.php.testArrowFunctions_GH4209_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testArrowFunctions/testArrowFunctions.php.testArrowFunctions_GH4209_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testCatchWithAlias.php.testCatchWithAlias_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testCatchWithAlias/testCatchWithAlias.php.testCatchWithAlias_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testCatchWithAlias.php.testCatchWithAlias_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testCatchWithAlias/testCatchWithAlias.php.testCatchWithAlias_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testCatchWithAlias.php.testCatchWithAlias_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testCatchWithAlias/testCatchWithAlias.php.testCatchWithAlias_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testCatchWithAlias.php.testCatchWithAlias_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testCatchWithAlias/testCatchWithAlias.php.testCatchWithAlias_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testCatchWithAlias.php.testCatchWithAlias_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testCatchWithAlias/testCatchWithAlias.php.testCatchWithAlias_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testCatchWithAlias.php.testCatchWithAlias_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testCatchWithAlias/testCatchWithAlias.php.testCatchWithAlias_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_19.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_19.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_19.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_19.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_20.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_20.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_20.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_20.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_21.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_21.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_21.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_21.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_22.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_22.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_22.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_22.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_23.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_23.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_23.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_23.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_24.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_24.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_24.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_24.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_25.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_25.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_25.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_25.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_26.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_26.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_26.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_26.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_27.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_27.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_27.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_27.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_28.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_28.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_28.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_28.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_29.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_29.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_29.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_29.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_30.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_30.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibility.php.testClassConstantVisibility_30.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibility/testClassConstantVisibility.php.testClassConstantVisibility_30.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClassConstantVisibilityFQN/testClassConstantVisibilityFQN.php.testClassConstantVisibilityFQN_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testClsVarPropInPhpDocTest.php.testClsVarPropInPhpDocTest.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testClsVarPropInPhpDocTest/testClsVarPropInPhpDocTest.php.testClsVarPropInPhpDocTest.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testClsVarPropInPhpDocTest.php.testClsVarPropInPhpDocTest.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testClsVarPropInPhpDocTest/testClsVarPropInPhpDocTest.php.testClsVarPropInPhpDocTest.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_19.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_19.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_19.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_19.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_20.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_20.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_20.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_20.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_21.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_21.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_21.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_21.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_22.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_22.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_22.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_22.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_23.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_23.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_23.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_23.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_24.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_24.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_24.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_24.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_25.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_25.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_25.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_25.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_26.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_26.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_26.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_26.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_27.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_27.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_27.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_27.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_28.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_28.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_28.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_28.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_29.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_29.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_29.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_29.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_30.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_30.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstantArrayAccess.php.testConstantArrayAccess_30.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstantArrayAccess/testConstantArrayAccess.php.testConstantArrayAccess_30.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testConstants.php.testConstants_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testConstants/testConstants.php.testConstants_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_19.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_19.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_19.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_19.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_20.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_20.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_20.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_20.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_21.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_21.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_21.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_21.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_22.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_22.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_22.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_22.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_23.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_23.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_23.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_23.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_24.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_24.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_24.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_24.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_25.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_25.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_25.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_25.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_26.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_26.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_26.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_26.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_27.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_27.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testContextSensitiveLexer.php.testContextSensitiveLexer_27.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testContextSensitiveLexer/testContextSensitiveLexer.php.testContextSensitiveLexer_27.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testFieldAccessInInstanceOf/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testFieldAccessInInstanceOf/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testFieldAccessInInstanceOf/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testFieldAccessInInstanceOf/testFieldAccessInInstanceOf.php.testFieldAccessInInstanceOf_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGotoConstructTest.php.testGotoConstructTest.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGotoConstructTest/testGotoConstructTest.php.testGotoConstructTest.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGotoConstructTest.php.testGotoConstructTest.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGotoConstructTest/testGotoConstructTest.php.testGotoConstructTest.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGotoConstructTest.php.testGotoConstructTest_2.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGotoConstructTest/testGotoConstructTest.php.testGotoConstructTest_2.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGotoConstructTest.php.testGotoConstructTest_2.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGotoConstructTest/testGotoConstructTest.php.testGotoConstructTest_2.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGotoLabel.php.testGotoLabel.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGotoLabel/testGotoLabel.php.testGotoLabel.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGotoLabel.php.testGotoLabel.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGotoLabel/testGotoLabel.php.testGotoLabel.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUseTrailingCommas/testGroupUseTrailingCommas.php.testGroupUseTrailingCommas_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses01.php.testGroupUses01_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses01/testGroupUses01.php.testGroupUses01_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testGroupUses02.php.testGroupUses02_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testGroupUses02/testGroupUses02.php.testGroupUses02_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest_2.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest_2.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest_2.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest_2.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest_3.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest_3.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest_3.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest_3.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest_4.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest_4.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIfaceTest.php.testIfaceTest_4.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIfaceTest/testIfaceTest.php.testIfaceTest_4.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testInstanceof198909.php.testInstanceof198909_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testInstanceof198909/testInstanceof198909.php.testInstanceof198909_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testInstanceof198909.php.testInstanceof198909_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testInstanceof198909/testInstanceof198909.php.testInstanceof198909_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testInstanceof198909.php.testInstanceof198909_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testInstanceof198909/testInstanceof198909.php.testInstanceof198909_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testInstanceof198909.php.testInstanceof198909_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testInstanceof198909/testInstanceof198909.php.testInstanceof198909_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testInstanceof198909.php.testInstanceof198909_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testInstanceof198909/testInstanceof198909.php.testInstanceof198909_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testInstanceof198909.php.testInstanceof198909_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testInstanceof198909/testInstanceof198909.php.testInstanceof198909_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue133465.php.testIssue133465_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue133465/testIssue133465.php.testIssue133465_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue133465.php.testIssue133465_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue133465/testIssue133465.php.testIssue133465_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue133465.php.testIssue133465_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue133465/testIssue133465.php.testIssue133465_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue133465.php.testIssue133465_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue133465/testIssue133465.php.testIssue133465_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue133465.php.testIssue133465_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue133465/testIssue133465.php.testIssue133465_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue133465.php.testIssue133465_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue133465/testIssue133465.php.testIssue133465_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue186553.php.testIssue186553_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue186553/testIssue186553.php.testIssue186553_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue186553.php.testIssue186553_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue186553/testIssue186553.php.testIssue186553_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue186553.php.testIssue186553_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue186553/testIssue186553.php.testIssue186553_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue186553.php.testIssue186553_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue186553/testIssue186553.php.testIssue186553_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue186553.php.testIssue186553_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue186553/testIssue186553.php.testIssue186553_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue186553.php.testIssue186553_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue186553/testIssue186553.php.testIssue186553_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue197283.php.testIssue197283_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue197283/testIssue197283.php.testIssue197283_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue198449.php.testIssue198449_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue198449/testIssue198449.php.testIssue198449_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue198449.php.testIssue198449_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue198449/testIssue198449.php.testIssue198449_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200399.php.testIssue200399_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200399/testIssue200399.php.testIssue200399_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200399.php.testIssue200399_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200399/testIssue200399.php.testIssue200399_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_19.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_19.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_19.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_19.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_20.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_20.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_20.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_20.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_21.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_21.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_21.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_21.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_22.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_22.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_22.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_22.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_23.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_23.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_23.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_23.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_24.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_24.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_24.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_24.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_25.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_25.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_25.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_25.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_26.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_26.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_26.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_26.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_27.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_27.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_27.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_27.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_28.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_28.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_28.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_28.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_29.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_29.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_29.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_29.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_30.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_30.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue200596.php.testIssue200596_30.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue200596/testIssue200596.php.testIssue200596_30.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue201429.php.testIssue201429_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue201429/testIssue201429.php.testIssue201429_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue201429.php.testIssue201429_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue201429/testIssue201429.php.testIssue201429_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue201671.php.testIssue201671.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue201671/testIssue201671.php.testIssue201671.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue201671.php.testIssue201671.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue201671/testIssue201671.php.testIssue201671.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203073.php.testIssue203073_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203073/testIssue203073.php.testIssue203073_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203419.php.testIssue203419_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203419/testIssue203419.php.testIssue203419_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue203814.php.testIssue203814_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue203814/testIssue203814.php.testIssue203814_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue204433.php.testIssue204433_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue204433/testIssue204433.php.testIssue204433_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue204433.php.testIssue204433_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue204433/testIssue204433.php.testIssue204433_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue204433.php.testIssue204433_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue204433/testIssue204433.php.testIssue204433_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue204433.php.testIssue204433_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue204433/testIssue204433.php.testIssue204433_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue204433.php.testIssue204433_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue204433/testIssue204433.php.testIssue204433_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue204433.php.testIssue204433_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue204433/testIssue204433.php.testIssue204433_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207346.php.testIssue207346_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207346/testIssue207346.php.testIssue207346_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207346.php.testIssue207346_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207346/testIssue207346.php.testIssue207346_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207346.php.testIssue207346_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207346/testIssue207346.php.testIssue207346_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207346.php.testIssue207346_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207346/testIssue207346.php.testIssue207346_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207346.php.testIssue207346_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207346/testIssue207346.php.testIssue207346_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207346.php.testIssue207346_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207346/testIssue207346.php.testIssue207346_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207615.php.testIssue207615_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207615/testIssue207615.php.testIssue207615_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207615.php.testIssue207615_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207615/testIssue207615.php.testIssue207615_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207615.php.testIssue207615_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207615/testIssue207615.php.testIssue207615_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207615.php.testIssue207615_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207615/testIssue207615.php.testIssue207615_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207615.php.testIssue207615_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207615/testIssue207615.php.testIssue207615_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207615.php.testIssue207615_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207615/testIssue207615.php.testIssue207615_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue207971.php.testIssue207971_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue207971/testIssue207971.php.testIssue207971_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208245.php.testIssue208245_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208245/testIssue208245.php.testIssue208245_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue208826.php.testIssue208826_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue208826/testIssue208826.php.testIssue208826_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209187.php.testIssue209187_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209187/testIssue209187.php.testIssue209187_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209187.php.testIssue209187_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209187/testIssue209187.php.testIssue209187_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209187.php.testIssue209187_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209187/testIssue209187.php.testIssue209187_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209187.php.testIssue209187_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209187/testIssue209187.php.testIssue209187_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209187.php.testIssue209187_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209187/testIssue209187.php.testIssue209187_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209187.php.testIssue209187_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209187/testIssue209187.php.testIssue209187_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_010.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_010.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_010.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_010.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_011.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_011.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_011.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_011.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_012.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_012.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_012.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_012.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_013.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_013.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_013.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_013.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_014.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_014.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_014.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_014.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_015.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_015.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_015.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_015.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_016.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_016.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_016.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_016.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_018.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_018.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_018.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_018.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_019.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_019.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_019.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_019.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_020.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_020.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_020.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_020.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_021.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_021.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_021.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_021.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209308.php.testIssue209308_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209308/testIssue209308.php.testIssue209308_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue209309.php.testIssue209309_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue209309/testIssue209309.php.testIssue209309_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211015.php.testIssue211015_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211015/testIssue211015.php.testIssue211015_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue211230.php.testIssue211230_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue211230/testIssue211230.php.testIssue211230_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213133.php.testIssue213133_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213133/testIssue213133.php.testIssue213133_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue213584.php.testIssue213584_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue213584/testIssue213584.php.testIssue213584_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue216876.php.testIssue216876_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue216876/testIssue216876.php.testIssue216876_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue216876.php.testIssue216876_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue216876/testIssue216876.php.testIssue216876_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue216876.php.testIssue216876_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue216876/testIssue216876.php.testIssue216876_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue216876.php.testIssue216876_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue216876/testIssue216876.php.testIssue216876_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue216876.php.testIssue216876_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue216876/testIssue216876.php.testIssue216876_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue216876.php.testIssue216876_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue216876/testIssue216876.php.testIssue216876_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217357.php.testIssue217357_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217357/testIssue217357.php.testIssue217357_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217357.php.testIssue217357_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217357/testIssue217357.php.testIssue217357_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217357.php.testIssue217357_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217357/testIssue217357.php.testIssue217357_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217357.php.testIssue217357_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217357/testIssue217357.php.testIssue217357_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217357.php.testIssue217357_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217357/testIssue217357.php.testIssue217357_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217357.php.testIssue217357_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217357/testIssue217357.php.testIssue217357_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue217360.php.testIssue217360_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue217360/testIssue217360.php.testIssue217360_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue218487.php.testIssue218487_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue218487/testIssue218487.php.testIssue218487_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue218487.php.testIssue218487_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue218487/testIssue218487.php.testIssue218487_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue218487.php.testIssue218487_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue218487/testIssue218487.php.testIssue218487_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue218487.php.testIssue218487_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue218487/testIssue218487.php.testIssue218487_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue223076.php.testIssue223076_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue223076/testIssue223076.php.testIssue223076_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue223076.php.testIssue223076_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue223076/testIssue223076.php.testIssue223076_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue223076.php.testIssue223076_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue223076/testIssue223076.php.testIssue223076_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue223076.php.testIssue223076_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue223076/testIssue223076.php.testIssue223076_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue223076.php.testIssue223076_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue223076/testIssue223076.php.testIssue223076_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue223076.php.testIssue223076_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue223076/testIssue223076.php.testIssue223076_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue244317.php.testIssue244317_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue244317/testIssue244317.php.testIssue244317_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue244317.php.testIssue244317_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue244317/testIssue244317.php.testIssue244317_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue244317.php.testIssue244317_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue244317/testIssue244317.php.testIssue244317_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue244317.php.testIssue244317_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue244317/testIssue244317.php.testIssue244317_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue244317.php.testIssue244317_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue244317/testIssue244317.php.testIssue244317_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue244317.php.testIssue244317_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue244317/testIssue244317.php.testIssue244317_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue247082.php.testIssue247082_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue247082/testIssue247082.php.testIssue247082_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_00.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_00.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_00.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_00.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue262438.php.testIssue262438_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue262438/testIssue262438.php.testIssue262438_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue268712.php.testIssue268712_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue268712/testIssue268712.php.testIssue268712_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269647.php.testIssue269647_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269647/testIssue269647.php.testIssue269647_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssue269672.php.testIssue269672_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssue269672/testIssue269672.php.testIssue269672_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testIssueGH5371.php.testIssueGH5371_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testIssueGH5371/testIssueGH5371.php.testIssueGH5371_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMagicMethod.php.testMagicMethod_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMagicMethod/testMagicMethod.php.testMagicMethod_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMagicMethod.php.testMagicMethod_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMagicMethod/testMagicMethod.php.testMagicMethod_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMagicMethod.php.testMagicMethod_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMagicMethod/testMagicMethod.php.testMagicMethod_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMagicMethod.php.testMagicMethod_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMagicMethod/testMagicMethod.php.testMagicMethod_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMagicMethod171249.php.testMagicMethod171249.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMagicMethod171249/testMagicMethod171249.php.testMagicMethod171249.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMagicMethod171249.php.testMagicMethod171249.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMagicMethod171249/testMagicMethod171249.php.testMagicMethod171249.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_2.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_2.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_2.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_2.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_3.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_3.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_3.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_3.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_4.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_4.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_4.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_4.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_5.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_5.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_5.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_5.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_6.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_6.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_6.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_6.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_7.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_7.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_7.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_7.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_8.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_8.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_8.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_8.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_9.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_9.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkArray.php.testMarkArray_9.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkArray/testMarkArray.php.testMarkArray_9.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_19.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_19.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_19.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_19.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_2.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_2.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_2.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_2.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_20.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_20.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_20.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_20.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_21.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_21.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_21.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_21.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_22.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_22.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_22.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_22.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_3.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_3.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_3.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_3.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_4.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_4.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_4.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_4.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_5.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_5.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_5.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_5.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_6.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_6.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_6.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_6.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_7.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_7.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_7.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_7.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_8.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_8.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_8.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_8.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_9.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_9.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkClsIface.php.testMarkClsIface_9.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkClsIface/testMarkClsIface.php.testMarkClsIface_9.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkReturnsOnConstructorTest/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkReturnsOnConstructorTest/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest_2.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMarkReturnsOnConstructorTest/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest_2.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest_2.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMarkReturnsOnConstructorTest/testMarkReturnsOnConstructorTest.php.testMarkReturnsOnConstructorTest_2.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMixin.php.testMixin_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMixin/testMixin.php.testMixin_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatch.php.testMultiCatch_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatch/testMultiCatch.php.testMultiCatch_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testMultiCatchFQN.php.testMultiCatchFQN_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testMultiCatchFQN/testMultiCatchFQN.php.testMultiCatchFQN_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_03c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_03c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_03c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_03c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_04a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_04a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_04a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_04a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_04b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_04b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_04b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_04b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_04c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_04c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb1861.php.testNb1861_04c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb1861/testNb1861.php.testNb1861_04c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_03a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_03a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_03a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_03a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_03b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_03b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_03b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_03b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_03c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_03c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb3108.php.testNb3108_03c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb3108/testNb3108.php.testNb3108_03c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01g.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01g.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNb5062.php.testNb5062_01g.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNb5062/testNb5062.php.testNb5062_01g.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypes.php.testNullableTypes_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypes/testNullableTypes.php.testNullableTypes_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesFQN.php.testNullableTypesFQN_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesFQN/testNullableTypesFQN.php.testNullableTypesFQN_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testNullableTypesInPhpDoc/testNullableTypesInPhpDoc.php.testNullableTypesInPhpDoc_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrences1.php.testOccurrences1.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences1/testOccurrences1.php.testOccurrences1.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrences1.php.testOccurrences1.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences1/testOccurrences1.php.testOccurrences1.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrences2.php.testOccurrences2.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences2/testOccurrences2.php.testOccurrences2.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrences2.php.testOccurrences2.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences2/testOccurrences2.php.testOccurrences2.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrences3.php.testOccurrences3.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences3/testOccurrences3.php.testOccurrences3.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrences3.php.testOccurrences3.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences3/testOccurrences3.php.testOccurrences3.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrences4.php.testOccurrences4.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences4/testOccurrences4.php.testOccurrences4.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrences4.php.testOccurrences4.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrences4/testOccurrences4.php.testOccurrences4.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrencesClassHeader.php.testOccurrencesClassHeader.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesClassHeader/testOccurrencesClassHeader.php.testOccurrencesClassHeader.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrencesClassHeader.php.testOccurrencesClassHeader.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesClassHeader/testOccurrencesClassHeader.php.testOccurrencesClassHeader.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrencesDefines.php.testOccurrencesDefines.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesDefines/testOccurrencesDefines.php.testOccurrencesDefines.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrencesDefines.php.testOccurrencesDefines.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesDefines/testOccurrencesDefines.php.testOccurrencesDefines.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrencesInstanceMethod.php.testOccurrencesInstanceMethod.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesInstanceMethod/testOccurrencesInstanceMethod.php.testOccurrencesInstanceMethod.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrencesInstanceMethod.php.testOccurrencesInstanceMethod.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesInstanceMethod/testOccurrencesInstanceMethod.php.testOccurrencesInstanceMethod.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesInstanceVarParam/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesInstanceVarParam/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam_1.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesInstanceVarParam/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam_1.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam_1.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testOccurrencesInstanceVarParam/testOccurrencesInstanceVarParam.php.testOccurrencesInstanceVarParam_1.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testParamVarPropInPhpDocTest.php.testParamVarPropInPhpDocTest.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testParamVarPropInPhpDocTest/testParamVarPropInPhpDocTest.php.testParamVarPropInPhpDocTest.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testParamVarPropInPhpDocTest.php.testParamVarPropInPhpDocTest.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testParamVarPropInPhpDocTest/testParamVarPropInPhpDocTest.php.testParamVarPropInPhpDocTest.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testQualifiedUseStatement.php.testQualifiedUseStatement_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testQualifiedUseStatement/testQualifiedUseStatement.php.testQualifiedUseStatement_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReflectionVariableInMethodInvocation/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReflectionVariableInMethodInvocation/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReflectionVariableInMethodInvocation/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReflectionVariableInMethodInvocation/testReflectionVariableInMethodInvocation.php.testReflectionVariableInMethodInvocation_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testReturnTypes01.php.testReturnTypes01_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testReturnTypes01/testReturnTypes01.php.testReturnTypes01_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInArrayExpression/testSpreadOperatorInArrayExpression.php.testSpreadOperatorInArrayExpression_GlobalConst_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_01c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02a.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02a.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02a.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02a.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02b.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02b.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02b.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02b.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02c.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02c.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02c.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02c.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02d.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02d.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02d.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02d.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02e.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02e.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02e.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02e.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02f.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02f.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02f.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02f.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02g.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02g.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02g.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02g.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02h.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02h.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02h.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02h.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02i.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02i.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02i.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02i.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02j.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02j.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02j.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testSpreadOperatorInClassConst/testSpreadOperatorInClassConst.php.testSpreadOperatorInClassConst_02j.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_18.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_18.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNs.php.testStaticAccessWithNs_18.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNs/testStaticAccessWithNs.php.testStaticAccessWithNs_18.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticAccessWithNsAlias/testStaticAccessWithNsAlias.php.testStaticAccessWithNsAlias_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testStaticMethodCall.php.testStaticMethodCall.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testStaticMethodCall/testStaticMethodCall.php.testStaticMethodCall.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testStaticMethodCall.php.testStaticMethodCall.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testStaticMethodCall/testStaticMethodCall.php.testStaticMethodCall.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Class.php.testTypedProperties20Class_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Class/testTypedProperties20Class.php.testTypedProperties20Class_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testTypedProperties20Trait.php.testTypedProperties20Trait_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testTypedProperties20Trait/testTypedProperties20Trait.php.testTypedProperties20Trait_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax01.php.testUniformVariableSyntax01_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax01/testUniformVariableSyntax01.php.testUniformVariableSyntax01_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax02.php.testUniformVariableSyntax02_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax02/testUniformVariableSyntax02.php.testUniformVariableSyntax02_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUniformVariableSyntax03.php.testUniformVariableSyntax03_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUniformVariableSyntax03/testUniformVariableSyntax03.php.testUniformVariableSyntax03_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testUseFuncAndConst.php.testUseFuncAndConst_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testUseFuncAndConst/testUseFuncAndConst.php.testUseFuncAndConst_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_01.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_01.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_01.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_01.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_02.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_02.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_02.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_02.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_03.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_03.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_03.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_03.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_04.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_04.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_04.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_04.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_05.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_05.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_05.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_05.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_06.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_06.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_06.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_06.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_07.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_07.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_07.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_07.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_08.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_08.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_08.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_08.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_09.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_09.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_09.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_09.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_10.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_10.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_10.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_10.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_11.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_11.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_11.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_11.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_12.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_12.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_12.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_12.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_13.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_13.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_13.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_13.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_14.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_14.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_14.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_14.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_15.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_15.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_15.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_15.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_16.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_16.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_16.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_16.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_17.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_17.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc.php.testVardoc_17.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc/testVardoc.php.testVardoc_17.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc166660.php.testVardoc166660.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc166660/testVardoc166660.php.testVardoc166660.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc166660.php.testVardoc166660.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc166660/testVardoc166660.php.testVardoc166660.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVardoc166660.php.testVardoc166660_1.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc166660/testVardoc166660.php.testVardoc166660_1.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVardoc166660.php.testVardoc166660_1.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVardoc166660/testVardoc166660.php.testVardoc166660_1.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/testVariableAsAClassName.php.testVariableAsAClassName.occurrences b/php/php.editor/test/unit/data/testfiles/markoccurences/testVariableAsAClassName/testVariableAsAClassName.php.testVariableAsAClassName.occurrences
similarity index 100%
rename from php/php.editor/test/unit/data/testfiles/testVariableAsAClassName.php.testVariableAsAClassName.occurrences
rename to php/php.editor/test/unit/data/testfiles/markoccurences/testVariableAsAClassName/testVariableAsAClassName.php.testVariableAsAClassName.occurrences
diff --git a/php/php.editor/test/unit/data/testfiles/semantic/enumerationsWithPrivateConst.php b/php/php.editor/test/unit/data/testfiles/semantic/enumerationsWithPrivateConst.php
new file mode 100644
index 0000000..db2a3cb
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/semantic/enumerationsWithPrivateConst.php
@@ -0,0 +1,71 @@
+<?php
+/*
+ * 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.
+ */
+
+enum UsedPrivateConst1 {
+
+    public const PUBLIC_CONST = 'public const';
+    private const PRIVATE_CONST = 'private const';
+    protected const PROTECTED_CONST = 'protected const';
+
+    case Case1;
+
+    private function test(): void {
+        self::PRIVATE_CONST;
+    }
+
+}
+
+enum UsedPrivateConst2 {
+
+    public const PUBLIC_CONST = 'public const';
+    private const PRIVATE_CONST = 'private const';
+    protected const PROTECTED_CONST = 'protected const';
+
+    case Case1;
+
+    private function test(): void {
+        static::PRIVATE_CONST;
+    }
+
+}
+
+enum UsedPrivateConst3 {
+
+    public const PUBLIC_CONST = 'public const';
+    private const PRIVATE_CONST = 'private const';
+    protected const PROTECTED_CONST = 'protected const';
+
+    case Case1;
+
+    private function test(): void {
+        UsedPrivateConst3::PRIVATE_CONST;
+    }
+
+}
+
+enum UnusedPrivateConst {
+
+    public const PUBLIC_CONST = 'public const';
+    private const PRIVATE_CONST = 'private const';
+    protected const PROTECTED_CONST = 'protected const';
+
+    case Case1;
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/semantic/enumerationsWithPrivateConst.php.semantic b/php/php.editor/test/unit/data/testfiles/semantic/enumerationsWithPrivateConst.php.semantic
new file mode 100644
index 0000000..bdc266a
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/semantic/enumerationsWithPrivateConst.php.semantic
@@ -0,0 +1,71 @@
+<?php
+/*
+ * 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.
+ */
+
+enum |>CLASS:UsedPrivateConst1<| {
+
+    public const |>FIELD,STATIC:PUBLIC_CONST<| = 'public const';
+    private const |>FIELD,STATIC:PRIVATE_CONST<| = 'private const';
+    protected const |>FIELD,STATIC:PROTECTED_CONST<| = 'protected const';
+
+    case |>FIELD,STATIC:Case1<|;
+
+    private function |>METHOD,UNUSED:test<|(): void {
+        self::|>FIELD,STATIC:PRIVATE_CONST<|;
+    }
+
+}
+
+enum |>CLASS:UsedPrivateConst2<| {
+
+    public const |>FIELD,STATIC:PUBLIC_CONST<| = 'public const';
+    private const |>FIELD,STATIC:PRIVATE_CONST<| = 'private const';
+    protected const |>FIELD,STATIC:PROTECTED_CONST<| = 'protected const';
+
+    case |>FIELD,STATIC:Case1<|;
+
+    private function |>METHOD,UNUSED:test<|(): void {
+        static::|>FIELD,STATIC:PRIVATE_CONST<|;
+    }
+
+}
+
+enum |>CLASS:UsedPrivateConst3<| {
+
+    public const |>FIELD,STATIC:PUBLIC_CONST<| = 'public const';
+    private const |>FIELD,STATIC:PRIVATE_CONST<| = 'private const';
+    protected const |>FIELD,STATIC:PROTECTED_CONST<| = 'protected const';
+
+    case |>FIELD,STATIC:Case1<|;
+
+    private function |>METHOD,UNUSED:test<|(): void {
+        UsedPrivateConst3::|>FIELD,STATIC:PRIVATE_CONST<|;
+    }
+
+}
+
+enum |>CLASS:UnusedPrivateConst<| {
+
+    public const |>FIELD,STATIC:PUBLIC_CONST<| = 'public const';
+    private const |>FIELD,STATIC,UNUSED:PRIVATE_CONST<| = 'private const';
+    protected const |>FIELD,STATIC:PROTECTED_CONST<| = 'protected const';
+
+    case |>FIELD,STATIC:Case1<|;
+
+}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_01.fixed
index cef40fe..2480286 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_01.fixed
@@ -32,7 +32,6 @@
     public function testEnum(): void {
         
     }
-
 }
 
 enum TestEnumWithTrait {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_02.fixed
index f969a32..99293f1 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testEnumerations_01.php.testEnumerationssFix_02.fixed
@@ -37,5 +37,4 @@
     public function testTrait(): void {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_01.fixed
index 35e8433..e7d3c22 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_01.fixed
@@ -12,7 +12,6 @@
     public function abstractFoo() {
         
     }
-
 }
 
 class ExtendingClass2 extends AbstractClass {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_02.fixed
index 9ddaa1a..0513080 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_02.fixed
@@ -16,7 +16,6 @@
     public function abstractFoo() {
         
     }
-
 }
 
 class ExtendingClass3 extends AbstractClass
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_03.fixed
index 65e51b9..cab30b0 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_03.fixed
@@ -20,7 +20,6 @@
     public function abstractFoo() {
         
     }
-
 }
 
 class ExtendingClass4 extends AbstractClass {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_04.fixed
index c2aac7b..70d8ace 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_04.fixed
@@ -29,7 +29,6 @@
     public function abstractFoo() {
         
     }
-
 }
 
 class ExtendingClass5 extends AbstractClass2 {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_05.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_05.fixed
index 07cb489..782d20e 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_05.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_05.fixed
@@ -39,7 +39,6 @@
     public function abstractBar() {
         
     }
-
 }
 
 interface InterfaceName {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_06.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_06.fixed
index 1800945..ce0e484 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_06.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testImplementAbstractMethodsHintFix.php.testImplementAbstractMethodsHintFix_06.fixed
@@ -45,5 +45,4 @@
     public function abstractBar() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod01.php.testIntersectionTypesFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod01.php.testIntersectionTypesFix_01.fixed
index 5656cd4..714e60b 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod01.php.testIntersectionTypesFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod01.php.testIntersectionTypesFix_01.fixed
@@ -29,7 +29,6 @@
     public function testMethod(Foo&Bar $param): Foo&Bar {
         
     }
-
 }
 
 class Foo {}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod02.php.testIntersectionTypesFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod02.php.testIntersectionTypesFix_02.fixed
index 59393cf..92fb0f2 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod02.php.testIntersectionTypesFix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod02.php.testIntersectionTypesFix_02.fixed
@@ -38,7 +38,6 @@
         public function testMethod(Foo&Bar $param): Foo&Bar {
             
         }
-
     }
 
     class Foo {}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod03.php.testIntersectionTypesFix_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod03.php.testIntersectionTypesFix_03.fixed
index eeb34df..6924196 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod03.php.testIntersectionTypesFix_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod03.php.testIntersectionTypesFix_03.fixed
@@ -38,7 +38,6 @@
         public function testMethod(\Test1\Foo&\Test1\Bar $param): \Test1\Foo&\Test1\Bar {
             
         }
-
     }
 
     $instance = new Implement();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod04.php.testIntersectionTypesFix_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod04.php.testIntersectionTypesFix_04.fixed
index 7519b64..6875299 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod04.php.testIntersectionTypesFix_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIntersectionTypesImplementMethod04.php.testIntersectionTypesFix_04.fixed
@@ -29,7 +29,6 @@
     public function testMethod(Foo&Bar $param): Foo&Bar {
         
     }
-
 }
 
 class Foo {}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01a.fixed
index 7b2b042..7a2c036 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01a.fixed
@@ -10,5 +10,4 @@
     public function someMethod(int $baz): \Bar {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01b.fixed
index d79e4a0..72052fe 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix01.php.testIssue262838Fix01b.fixed
@@ -10,5 +10,4 @@
     public function someMethod(int $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02a.fixed
index 54d4364..3df614c 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02a.fixed
@@ -13,5 +13,4 @@
     public function someMethod(int $baz): \Bar {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02b.fixed
index 8671eb7..af7baec 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix02.php.testIssue262838Fix02b.fixed
@@ -13,5 +13,4 @@
     public function someMethod(int $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03a.fixed
index 5d05638..7539c3a 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03a.fixed
@@ -13,5 +13,4 @@
     public function someMethod(int $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03b.fixed
index 5d05638..7539c3a 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue262838Fix03.php.testIssue262838Fix03b.fixed
@@ -13,5 +13,4 @@
     public function someMethod(int $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01a.fixed
index 22c529b..14b48d0 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01a.fixed
@@ -10,5 +10,4 @@
     public function someMethod(): \FooInterface {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01b.fixed
index fefdbf5..5391b10 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix01.php.testIssue267563Fix01b.fixed
@@ -10,5 +10,4 @@
     public function someMethod() {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02a.fixed
index 166832d..3629451 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02a.fixed
@@ -10,5 +10,4 @@
     public function someMethod(\FooInterface $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02b.fixed
index 166832d..3629451 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue267563Fix02.php.testIssue267563Fix02b.fixed
@@ -10,5 +10,4 @@
     public function someMethod(\FooInterface $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01a.fixed
index b23e1b6..6eb9324 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01a.fixed
@@ -10,5 +10,4 @@
     public function someMethod(?string $string, int $int): ?\Bar {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01b.fixed
index d842501..aebdfc0 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix01.php.testIssue270237Fix01b.fixed
@@ -10,5 +10,4 @@
     public function someMethod(?string $string, int $int) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02a.fixed
index a230baf..fbb6ed6 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02a.fixed
@@ -13,5 +13,4 @@
     public function someMethod(?string $string, int $int): ?\Bar {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02b.fixed
index 7024207..48f87ae 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix02.php.testIssue270237Fix02b.fixed
@@ -13,5 +13,4 @@
     public function someMethod(?string $string, int $int) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03a.fixed
index 90ce5c0..c02f15d 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03a.fixed
@@ -10,5 +10,4 @@
     public function someMethod(?string $string, int $int): ?\FooInterface {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03b.fixed
index 7cf7761..0a38349 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix03.php.testIssue270237Fix03b.fixed
@@ -10,5 +10,4 @@
     public function someMethod(?string $string, int $int) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04a.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04a.fixed
index 8f36aa8..03eea66 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04a.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04a.fixed
@@ -10,5 +10,4 @@
     public function someMethod(?\FooInterface $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04b.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04b.fixed
index 8f36aa8..03eea66 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04b.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testIssue270237Fix04.php.testIssue270237Fix04b.fixed
@@ -10,5 +10,4 @@
     public function someMethod(?\FooInterface $baz) {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testMixedTypeImplementMethod01.php.testMixedTypeFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testMixedTypeImplementMethod01.php.testMixedTypeFix_01.fixed
index 5d350bb..4452d0a 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testMixedTypeImplementMethod01.php.testMixedTypeFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testMixedTypeImplementMethod01.php.testMixedTypeFix_01.fixed
@@ -27,5 +27,4 @@
     public function testMixed(mixed $mixed): mixed {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_01.fixed
index cfdb99f..063ba69 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_01.fixed
@@ -24,7 +24,6 @@
     public function test(): array {
         
     }
-
 }
 
 abstract class TestAbstractClass
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_02.fixed
index 2ef27f9..42ce269 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testNetbeans5370.php.testNetbeans5370Fix_02.fixed
@@ -37,7 +37,6 @@
     public function test(): array {
         
     }
-
 }
 
 interface TestInterface
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testStaticReturnTypeImplementMethod01.php.testStaticReturnTypeFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testStaticReturnTypeImplementMethod01.php.testStaticReturnTypeFix_01.fixed
index b210015..d908457 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testStaticReturnTypeImplementMethod01.php.testStaticReturnTypeFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testStaticReturnTypeImplementMethod01.php.testStaticReturnTypeFix_01.fixed
@@ -37,5 +37,4 @@
     public function testUnionType(): static|string|null {
         
     }
-
 }
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod01.php.testUnionTypesFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod01.php.testUnionTypesFix_01.fixed
index 40d2041..c3792af 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod01.php.testUnionTypesFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod01.php.testUnionTypesFix_01.fixed
@@ -29,7 +29,6 @@
     public function testMethod(float|int|array|Foo|null $param): Foo|Bar {
         
     }
-
 }
 
 class Foo {}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod02.php.testUnionTypesFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod02.php.testUnionTypesFix_02.fixed
index 11fd0a9..c48f018 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod02.php.testUnionTypesFix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod02.php.testUnionTypesFix_02.fixed
@@ -38,7 +38,6 @@
         public function testMethod(float|int|array|Foo|null $param): Foo|Bar {
             
         }
-
     }
 
     class Foo {}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod03.php.testUnionTypesFix_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod03.php.testUnionTypesFix_03.fixed
index 5f320ac..69475232 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod03.php.testUnionTypesFix_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod03.php.testUnionTypesFix_03.fixed
@@ -38,7 +38,6 @@
         public function testMethod(float|int|array|\Test1\Foo|null $param): \Test1\Foo|\Test1\Bar {
             
         }
-
     }
 
     $instance = new Implement();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod04.php.testUnionTypesFix_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod04.php.testUnionTypesFix_04.fixed
index 8968eab..0b600d1 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod04.php.testUnionTypesFix_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethod04.php.testUnionTypesFix_04.fixed
@@ -29,7 +29,6 @@
     public function testMethod(float|int|array|Foo|null $param): Foo|Bar {
         
     }
-
 }
 
 class Foo {}
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes01.php.testUnionTypesWithSpecialTypesFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes01.php.testUnionTypesWithSpecialTypesFix_01.fixed
index 91bac27..84f40ab 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes01.php.testUnionTypesWithSpecialTypesFix_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes01.php.testUnionTypesWithSpecialTypesFix_01.fixed
@@ -45,7 +45,6 @@
     public function testUniontypes(ParentClass|Child|null $parent): ParentClass|Child|null {
         
     }
-
 }
 
 $instance = new Grandchild();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes02.php.testUnionTypesWithSpecialTypesFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes02.php.testUnionTypesWithSpecialTypesFix_02.fixed
index f181a17..328721b 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes02.php.testUnionTypesWithSpecialTypesFix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes02.php.testUnionTypesWithSpecialTypesFix_02.fixed
@@ -44,7 +44,6 @@
     public function testUniontypes(\TestParent1\ParentClass|Child|null $parent): \TestParent1\ParentClass|Child|null {
         
     }
-
 }
 
 $instance = new Grandchild();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes03.php.testUnionTypesWithSpecialTypesFix_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes03.php.testUnionTypesWithSpecialTypesFix_03.fixed
index f8671c3..b8ab8c7 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes03.php.testUnionTypesWithSpecialTypesFix_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes03.php.testUnionTypesWithSpecialTypesFix_03.fixed
@@ -40,7 +40,6 @@
     public function testUniontypes(ParentClass|Child|null $parent): ParentClass|Child|null {
         
     }
-
 }
 
 $instance = new Grandchild();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes04.php.testUnionTypesWithSpecialTypesFix_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes04.php.testUnionTypesWithSpecialTypesFix_04.fixed
index 5588630..299403e 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes04.php.testUnionTypesWithSpecialTypesFix_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/ImplementAbstractMethodsHintError/testUnionTypesImplementMethodSpecialTypes04.php.testUnionTypesWithSpecialTypesFix_04.fixed
@@ -38,7 +38,6 @@
     public function testUniontypes(\ParentClass|\Child|null $parent): \ParentClass|\Child|null {
         
     }
-
 }
 
 $instance = new Grandchild();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix01.fixed b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix01.fixed
index 8ec9ef4..8cb7103 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix01.fixed
@@ -5,7 +5,6 @@
     private function testMethod1() {
         
     }
-
 }
 
 class Test2 {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix02.fixed b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix02.fixed
index 01129be..fcecc09 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix02.fixed
@@ -11,7 +11,6 @@
     private function testMethod2(): ?array {
         
     }
-
 }
 
 class Test3 {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix03.fixed b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix03.fixed
index a34cb49..da753e1 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix03.fixed
@@ -16,7 +16,6 @@
     private function testMethod3() {
         
     }
-
 }
 
 class Test4 {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix04.fixed b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix04.fixed
index b98b1d9..624dec8 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/IncorrectNonAbstractMethod/testIssue270385.php.testIssue270385Fix04.fixed
@@ -21,6 +21,5 @@
     private function testMethod4(): string {
         
     }
-
 }
 
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php
new file mode 100644
index 0000000..baf82ae
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php
@@ -0,0 +1,51 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_01a.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_01a.fixed
new file mode 100644
index 0000000..349ab8a
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_01a.fixed
@@ -0,0 +1,52 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+    case Case3;
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_01b.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_01b.fixed
new file mode 100644
index 0000000..11e2505
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_01b.fixed
@@ -0,0 +1,52 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+    const Case3 = "";
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_02a.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_02a.fixed
new file mode 100644
index 0000000..16f13dc
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_02a.fixed
@@ -0,0 +1,52 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+    case Case3 = 3;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_02b.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_02b.fixed
new file mode 100644
index 0000000..03a3209
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_02b.fixed
@@ -0,0 +1,52 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+    const Case3 = "";
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_03a.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_03a.fixed
new file mode 100644
index 0000000..ec157bf
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_03a.fixed
@@ -0,0 +1,52 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+    case Case3 = '';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_03b.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_03b.fixed
new file mode 100644
index 0000000..3eca451
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCaseFix_03b.fixed
@@ -0,0 +1,52 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::Case3;
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumInt::Case3;
+
+enum BackedEnumString: string {
+    const a = 1;
+    const Case3 = "";
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public function publicMethod(): void {
+    }
+}
+
+BackedEnumString::Case3;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_01.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_01.hints
new file mode 100644
index 0000000..150e05c
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_01.hints
@@ -0,0 +1,6 @@
+ExampleEnum::Ca^se3;
+------------------
+HINT:Introduce Hint
+FIX:Create Constant "Case3" in Enum "ExampleEnum" (testEnumCase.php)
+HINT:Introduce Hint
+FIX:Create Enum Case "Case3" in Enum "ExampleEnum" (testEnumCase.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_02.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_02.hints
new file mode 100644
index 0000000..a6037f6
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_02.hints
@@ -0,0 +1,6 @@
+BackedEnumInt::Case^3;
+--------------------
+HINT:Introduce Hint
+FIX:Create Constant "Case3" in Enum "BackedEnumInt" (testEnumCase.php)
+HINT:Introduce Hint
+FIX:Create Enum Case "Case3" in Enum "BackedEnumInt" (testEnumCase.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_03.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_03.hints
new file mode 100644
index 0000000..7cd2ae9
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumCase.php.testEnumCase_03.hints
@@ -0,0 +1,6 @@
+BackedEnumString::C^ase3;
+-----------------------
+HINT:Introduce Hint
+FIX:Create Constant "Case3" in Enum "BackedEnumString" (testEnumCase.php)
+HINT:Introduce Hint
+FIX:Create Enum Case "Case3" in Enum "BackedEnumString" (testEnumCase.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php
new file mode 100644
index 0000000..2bbc9e6
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php
@@ -0,0 +1,51 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_01.fixed
new file mode 100644
index 0000000..63058b8
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_01.fixed
@@ -0,0 +1,55 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+
+    public static function introduceStaticMethod() {
+        
+    }
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_02.fixed
new file mode 100644
index 0000000..8832bae
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_02.fixed
@@ -0,0 +1,55 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+
+    public function introduceMethod() {
+        
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_03.fixed
new file mode 100644
index 0000000..97f5e43
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_03.fixed
@@ -0,0 +1,55 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+
+    public static function introduceStaticMethod() {
+        
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_04.fixed
new file mode 100644
index 0000000..97f5e43
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_04.fixed
@@ -0,0 +1,55 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+
+    public static function introduceStaticMethod() {
+        
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_05.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_05.fixed
new file mode 100644
index 0000000..8832bae
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_05.fixed
@@ -0,0 +1,55 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+
+    public function introduceMethod() {
+        
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_06.fixed b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_06.fixed
new file mode 100644
index 0000000..a65e92a
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethodsFix_06.fixed
@@ -0,0 +1,55 @@
+<?php
+/*
+ * 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.
+ */
+enum ExampleEnum {
+    const a = 1;
+
+    case Case1 = 100;
+    case Case2 = 'C';
+}
+
+ExampleEnum::introduceStaticMethod();
+
+enum BackedEnumInt: int {
+    const a = 1;
+
+    case Case1 = 1;
+    case Case2 = 2;
+
+    public function publicMethod(): void {
+        $this->introduceMethod();
+        self::introduceStaticMethod();
+        static::introduceStaticMethod();
+    }
+}
+
+BackedEnumInt::Case1->introduceMethod();
+
+enum BackedEnumString: string {
+    const a = 1;
+
+    case Case1 = 'A';
+    case Case2 = 'B';
+
+    public static function introduceStaticMethod() {
+        
+    }
+}
+
+BackedEnumString::Case2::introduceStaticMethod();
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_01.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_01.hints
new file mode 100644
index 0000000..635dc07
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_01.hints
@@ -0,0 +1,4 @@
+ExampleEnum::introduceStat^icMethod();
+------------------------------------
+HINT:Introduce Hint
+FIX:Create Method " introduceStaticMethod()" in Enum "ExampleEnum" (testEnumMethods.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_02.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_02.hints
new file mode 100644
index 0000000..97b3bce
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_02.hints
@@ -0,0 +1,4 @@
+        $this->introduceMeth^od();
+        ------------------------
+HINT:Introduce Hint
+FIX:Create Method " introduceMethod()" in Enum "BackedEnumInt" (testEnumMethods.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_03.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_03.hints
new file mode 100644
index 0000000..cd3c4c2
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_03.hints
@@ -0,0 +1,4 @@
+        self::introduceStaticMet^hod();
+        -----------------------------
+HINT:Introduce Hint
+FIX:Create Method " introduceStaticMethod()" in Enum "BackedEnumInt" (testEnumMethods.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_04.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_04.hints
new file mode 100644
index 0000000..edc7eb4
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_04.hints
@@ -0,0 +1,4 @@
+        static::introduceStaticMeth^od();
+        -------------------------------
+HINT:Introduce Hint
+FIX:Create Method " introduceStaticMethod()" in Enum "BackedEnumInt" (testEnumMethods.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_05.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_05.hints
new file mode 100644
index 0000000..c59990a
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_05.hints
@@ -0,0 +1,4 @@
+BackedEnumInt::Case1->introduceMet^hod();
+---------------------------------------
+HINT:Introduce Hint
+FIX:Create Method " introduceMethod()" in Enum "BackedEnumInt" (testEnumMethods.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_06.hints b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_06.hints
new file mode 100644
index 0000000..93f858a4
--- /dev/null
+++ b/php/php.editor/test/unit/data/testfiles/verification/IntroduceSuggestion/testEnumMethods.php.testEnumMethods_06.hints
@@ -0,0 +1,4 @@
+BackedEnumString::Case2::introdu^ceStaticMethod();
+------------------------------------------------
+HINT:Introduce Hint
+FIX:Create Method " introduceStaticMethod()" in Enum "BackedEnumString" (testEnumMethods.php)
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_02.fixed
index 2ae659b..ca35ad4 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_02.fixed
@@ -3,7 +3,6 @@
 class Omg {
 
     public $bar;
-
 }
 $foo = new Omg();
 
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_03.fixed
index b518fe5..7e22889 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_03.fixed
@@ -5,7 +5,6 @@
     public function method() {
         
     }
-
 }
 $foo = new Omg();
 
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_04.fixed
index c1b419b..2c147bd 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_04.fixed
@@ -3,7 +3,6 @@
 class Omg {
 
     const CON = "";
-
 }
 $foo = new Omg();
 
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_05.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_05.fixed
index 3f3f057..7a440e5 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_05.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_05.fixed
@@ -5,7 +5,6 @@
     public static function stMeth() {
         
     }
-
 }
 $foo = new Omg();
 
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_06.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_06.fixed
index d5e81c6..677c35a 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_06.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestion.php.testIntroduceSuggestionFix_06.fixed
@@ -3,7 +3,6 @@
 class Omg {
 
     static $stFld = "";
-
 }
 $foo = new Omg();
 
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitMethod.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitMethod.fixed
index 0ba6674..b318986 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitMethod.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitMethod.fixed
@@ -16,7 +16,6 @@
     public function method() {
         
     }
-
 }
 
 trait TraitB {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_03.fixed
index d216119..53a7680 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_03.fixed
@@ -20,7 +20,6 @@
     use BaseTrait;
 
     static $staticTraitBField = "";
-
 }
 
 trait TraitC {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_04.fixed
index fce6fc6..f971118 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticField_04.fixed
@@ -24,7 +24,6 @@
 trait TraitC {
 
     static $staticTraitCField = "";
-
 }
 
 TraitA::$staticField2;
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_01.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_01.fixed
index ca7caed..821bac9 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_01.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_01.fixed
@@ -16,7 +16,6 @@
     public static function staticMethod1() {
         
     }
-
 }
 
 trait TraitB {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_02.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_02.fixed
index 9e80437..e774eaf 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_02.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_02.fixed
@@ -16,7 +16,6 @@
     public static function staticMethod2() {
         
     }
-
 }
 
 trait TraitB {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_03.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_03.fixed
index 142f886..1e519ad 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_03.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_03.fixed
@@ -22,7 +22,6 @@
     public static function staticTraitBMethod() {
         
     }
-
 }
 
 trait TraitC {
diff --git a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_04.fixed b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_04.fixed
index 84b0e2f..b8dd7f9 100644
--- a/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_04.fixed
+++ b/php/php.editor/test/unit/data/testfiles/verification/testIntroduceSuggestionTrait.php.testIntroduceSuggestionFixForTraitStaticMethod_04.fixed
@@ -26,7 +26,6 @@
     public static function staticTraitCMethod() {
         
     }
-
 }
 
 TraitA::$staticField2;
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
index f299402..f577a53 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCCDocumentationTest.java
@@ -23,6 +23,7 @@
 import java.util.Collections;
 import java.util.Map;
 import org.netbeans.api.java.classpath.ClassPath;
+import org.netbeans.modules.csl.api.CodeCompletionHandler.QueryType;
 import org.netbeans.modules.php.project.api.PhpSourcePath;
 import org.netbeans.spi.java.classpath.support.ClassPathSupport;
 import org.openide.filesystems.FileObject;
@@ -299,6 +300,44 @@
         checkCompletionDocumentation("testfiles/completion/documentation/issueGH5426.php", "        $this->testMetho^d(null);", false, "");
     }
 
+    public void testIssueGH4494_01() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh44^94_aa_bbb();");
+    }
+
+    public void testIssueGH4494_02() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh4494_aa^_bbb();");
+    }
+
+    public void testIssueGH4494_03() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh4494_aa_b^bb();");
+    }
+
+    public void testIssueGH4494_04() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh4494^_aa_bb_cc();");
+    }
+
+    public void testIssueGH4494_05() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh4494_aa^_bb_cc();");
+    }
+
+    public void testIssueGH4494_06() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh4494_aa_bb^_cc();");
+    }
+
+    public void testIssueGH4494_07() throws Exception {
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH4494.php", "gh4494_aa_bb_cc^();");
+    }
+
+    public void testIssueGH5347_01() throws Exception {
+        // no golden file
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH5347.php", "^// test", true);
+    }
+
+    public void testIssueGH5347_02() throws Exception {
+        // no golden file
+        checkCompletionOnlyDocumentation("testfiles/completion/documentation/issueGH5347.php", "un^defined();", true);
+    }
+
     @Override
     protected String alterDocumentationForTest(String documentation) {
         int start = documentation.indexOf("file:");
@@ -324,6 +363,24 @@
         }
     }
 
+    private void checkCompletionOnlyDocumentation(String filePath, String caretLine) throws Exception {
+        checkCompletionOnlyDocumentation(filePath, caretLine, false);
+    }
+
+    private void checkCompletionOnlyDocumentation(String filePath, String caretLine, boolean noDocument) throws Exception {
+        if (!noDocument) {
+            checkCompletionDocumentation(filePath, caretLine, false, "", QueryType.DOCUMENTATION);
+        } else {
+            try {
+                checkCompletionDocumentation(filePath, caretLine, false, "", QueryType.DOCUMENTATION);
+            } catch (AssertionError ex) {
+                // there is no completion item
+                return;
+            }
+            fail("Must not have documentation");
+        }
+    }
+
     @Override
     protected Map<String, ClassPath> createClassPathsForTest() {
         return Collections.singletonMap(
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletionGH4683Test.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletionGH4683Test.java
new file mode 100644
index 0000000..99adfbe
--- /dev/null
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/completion/PHPCodeCompletionGH4683Test.java
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+package org.netbeans.modules.php.editor.completion;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Map;
+import org.netbeans.api.java.classpath.ClassPath;
+import org.netbeans.modules.php.project.api.PhpSourcePath;
+import org.netbeans.spi.java.classpath.support.ClassPathSupport;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+
+public class PHPCodeCompletionGH4683Test extends PHPCodeCompletionTestBase {
+
+    public PHPCodeCompletionGH4683Test(String testName) {
+        super(testName);
+    }
+
+    public void testGH3486_01() throws Exception {
+        checkCompletion("testfiles/completion/lib/gh4683/gh4683.php", "        $this->^data;", false);
+    }
+
+    public void testGH3486_02() throws Exception {
+        checkCompletion("testfiles/completion/lib/gh4683/gh4683.php", "        $this->data->^publicField;", false);
+    }
+
+    public void testGH3486_03() throws Exception {
+        checkCompletion("testfiles/completion/lib/gh4683/gh4683.php", "        $this->data::^PUBLIC_CONSTANT;", false);
+    }
+
+    public void testGH3486_04() throws Exception {
+        checkCompletion("testfiles/completion/lib/gh4683/gh4683.php", "$test->^data;", false);
+    }
+
+    public void testGH3486_05() throws Exception {
+        checkCompletion("testfiles/completion/lib/gh4683/gh4683.php", "$test->data->^publicField;", false);
+    }
+
+    public void testGH3486_06() throws Exception {
+        checkCompletion("testfiles/completion/lib/gh4683/gh4683.php", "$test->data::^PUBLIC_CONSTANT;", false);
+    }
+
+    @Override
+    protected Map<String, ClassPath> createClassPathsForTest() {
+        return Collections.singletonMap(
+            PhpSourcePath.SOURCE_CP,
+            ClassPathSupport.createClassPath(new FileObject[] {
+                FileUtil.toFileObject(new File(getDataDir(), "/testfiles/completion/lib/gh4683"))
+            })
+        );
+    }
+}
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP81Test.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP81Test.java
index f68ba9a..f7c015c 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP81Test.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/GotoDeclarationPHP81Test.java
@@ -437,6 +437,26 @@
         checkDeclaration(getTestPath(), "$i::publicSt^aticMethod();", "    public static function ^publicStaticMethod(): void {");
     }
 
+    public void testEnumerationsWithInterface_01a() throws Exception {
+        checkDeclaration(getTestPath(), "use Enum1\\ExampleInter^face1;", "interface ^ExampleInterface1 {}");
+    }
+
+    public void testEnumerationsWithInterface_01b() throws Exception {
+        checkDeclaration(getTestPath(), "enum EnumImpl1 implements ExampleInterf^ace1 {", "interface ^ExampleInterface1 {}");
+    }
+
+    public void testEnumerationsWithInterface_01c() throws Exception {
+        checkDeclaration(getTestPath(), "enum EnumImpl2 implements ExampleInterfa^ce1, ExampleInterface2 {", "interface ^ExampleInterface1 {}");
+    }
+
+    public void testEnumerationsWithInterface_02a() throws Exception {
+        checkDeclaration(getTestPath(), "use Enum1\\ExampleInter^face2;", "interface ^ExampleInterface2 {}");
+    }
+
+    public void testEnumerationsWithInterface_02b() throws Exception {
+        checkDeclaration(getTestPath(), "enum EnumImpl2 implements ExampleInterface1, ExampleInterfa^ce2 {", "interface ^ExampleInterface2 {}");
+    }
+
     public void testEnumerationsWithBackingType_01() throws Exception {
         checkDeclaration(getTestPath(), "            static::CASE^1 => 'Case1',", "    case ^CASE1 = 1;");
     }
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP81Test.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP81Test.java
index 3e5e205..ca3d7d2 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP81Test.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplPHP81Test.java
@@ -493,6 +493,34 @@
         checkOccurrences(getTestPath(), "        static::CONST^ANT2;", true);
     }
 
+    public void testEnumerationsWithInterface_01a() throws Exception {
+        checkOccurrences(getTestPath(), "interface ExampleInter^face1 {}", true);
+    }
+
+    public void testEnumerationsWithInterface_01b() throws Exception {
+        checkOccurrences(getTestPath(), "use Enum1\\ExampleInterf^ace1;", true);
+    }
+
+    public void testEnumerationsWithInterface_01c() throws Exception {
+        checkOccurrences(getTestPath(), "enum EnumImpl1 implements ExampleInterf^ace1 {", true);
+    }
+
+    public void testEnumerationsWithInterface_01d() throws Exception {
+        checkOccurrences(getTestPath(), "enum EnumImpl2 implements ExampleInterfa^ce1, ExampleInterface2 {", true);
+    }
+
+    public void testEnumerationsWithInterface_02a() throws Exception {
+        checkOccurrences(getTestPath(), "interface ExampleInterf^ace2 {}", true);
+    }
+
+    public void testEnumerationsWithInterface_02b() throws Exception {
+        checkOccurrences(getTestPath(), "use Enum1\\ExampleInterfa^ce2;", true);
+    }
+
+    public void testEnumerationsWithInterface_02c() throws Exception {
+        checkOccurrences(getTestPath(), "enum EnumImpl2 implements ExampleInterface1, Exam^pleInterface2 {", true);
+    }
+
     public void testEnumerationsWithBackingType_a01() throws Exception {
         checkOccurrences(getTestPath(), "    case C^ASE1 = 1;", true);
     }
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplTestBase.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplTestBase.java
index 1a31898..49cb0e1 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplTestBase.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/OccurrencesFinderImplTestBase.java
@@ -19,6 +19,7 @@
 package org.netbeans.modules.php.editor.csl;
 
 import java.io.File;
+import java.io.IOException;
 import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileUtil;
 
@@ -35,6 +36,12 @@
         return new FileObject[]{FileUtil.toFileObject(new File(getDataDir(), getTestFolderPath()))};
     }
 
+    @Override
+    protected void assertDescriptionMatches(FileObject fileObject, String description, boolean includeTestName, String ext) throws IOException {
+        // put each golden file to each test file directory
+        assertDescriptionMatches(fileObject, description, includeTestName, ext, true);
+    }
+
     protected String getBaseTestFolderPath() {
         return BASE_TEST_FOLDER_PATH;
     }
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/SemanticAnalyzerTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/SemanticAnalyzerTest.java
index f7c50a0..4fbc1df 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/SemanticAnalyzerTest.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/csl/SemanticAnalyzerTest.java
@@ -214,6 +214,10 @@
         checkSemantic("testfiles/semantic/enumerations.php");
     }
 
+    public void testEnumerationsWithPrivateConst() throws Exception {
+        checkSemantic("testfiles/semantic/enumerationsWithPrivateConst.php");
+    }
+
     public void testConstantsInTraits() throws Exception {
         checkSemantic("testfiles/semantic/constantsInTraits.php");
     }
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterBlankLinesTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterBlankLinesTest.java
index e1d914e..13a2f15 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterBlankLinesTest.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterBlankLinesTest.java
@@ -1687,4 +1687,276 @@
         reformatFileContents("testfiles/formatting/blankLines/php81/enumCasesBLBefore_01b.php", options);
     }
 
+    public void testIssueGH4611Methods_01a() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_01b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_01c() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_01d() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_02a() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_02b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_02c() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Methods_02d() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Methods.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_01a() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_01b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_01c() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_01d() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_02a() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_02b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_02c() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611Properties_02d() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611Properties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01a() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01c() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01d() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01e() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01f() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01g() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_01h() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.NEW_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02a() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02c() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02d() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02e() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02f() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 0);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02g() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
+    public void testIssueGH4611BothMethodsAndProperties_02h() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.BLANK_LINES_BEFORE_CLASS_END, 0);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FUNCTION, 1);
+        options.put(FmtOptions.BLANK_LINES_BEFORE_FIELDS, 1);
+        options.put(FmtOptions.CLASS_DECL_BRACE_PLACEMENT, CodeStyle.BracePlacement.SAME_LINE);
+        reformatFileContents("testfiles/formatting/blankLines/issueGH4611BothMethodsAndProperties.php", options, false, true);
+    }
+
 }
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTestBase.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTestBase.java
index 7e05ce2..70a8166 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTestBase.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterTestBase.java
@@ -119,10 +119,14 @@
     }
 
     protected void reformatFileContents(String file, Map<String, Object> options, boolean isTemplate) throws Exception {
-        reformatFileContents(file, options, isTemplate, new IndentPrefs(4, 4));
+        reformatFileContents(file, options, isTemplate, false, new IndentPrefs(4, 4));
     }
 
-    private void reformatFileContents(String file, Map<String, Object> options, boolean isTemplate, IndentPrefs indentPrefs) throws Exception {
+    protected void reformatFileContents(String file, Map<String, Object> options, boolean isTemplate, boolean includeTestName) throws Exception {
+        reformatFileContents(file, options, isTemplate, includeTestName, new IndentPrefs(4, 4));
+    }
+
+    private void reformatFileContents(String file, Map<String, Object> options, boolean isTemplate, boolean includeTestName, IndentPrefs indentPrefs) throws Exception {
         FileObject fo = getTestFile(file);
         assertNotNull(fo);
 
@@ -194,7 +198,7 @@
 
         format(doc, formatter, formatStart, formatEnd, false);
         String after = doc.getText(0, doc.getLength());
-        assertDescriptionMatches(file, after, false, ".formatted");
+        assertDescriptionMatches(file, after, includeTestName, ".formatted");
         GSFPHPParserTestUtil.setUnitTestCaretPosition(-1);
     }
 }
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterWrappingTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterWrappingTest.java
index ea17685..18effb0 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterWrappingTest.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/indent/PHPFormatterWrappingTest.java
@@ -686,6 +686,12 @@
         reformatFileContents("testfiles/formatting/wrapping/coalescingOp03a.php", options);
     }
 
+    public void testCoalescingOp03b() throws Exception {
+        HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
+        options.put(FmtOptions.WRAP_COALESCING_OPS, CodeStyle.WrapStyle.WRAP_IF_LONG);
+        reformatFileContents("testfiles/formatting/wrapping/coalescingOp03b.php", options);
+    }
+
     public void testCoalescingOp04a() throws Exception {
         HashMap<String, Object> options = new HashMap<>(FmtOptions.getDefaults());
         options.put(FmtOptions.WRAP_COALESCING_OPS, CodeStyle.WrapStyle.WRAP_IF_LONG);
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptorTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptorTest.java
index 144a453..4f64215 100644
--- a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptorTest.java
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/typinghooks/PhpTypedTextInterceptorTest.java
@@ -662,6 +662,42 @@
         insertChar("'\"(a)\"'^", '[', "[\"(a)\"]^", "'\"(a)\"'");
     }
 
+    public void testIssueGH5707_01() throws Exception {
+        String original = ""
+                + "switch ($variable) {\n"
+                + "    case 1:\n"
+                + "        break;\n"
+                + "    case 2:\n"
+                + "        break;\n"
+                + "    ^\n"
+                + "}";
+        String expected = ""
+                + "switch ($variable) {\n"
+                + "    case 1:\n"
+                + "        break;\n"
+                + "    case 2:\n"
+                + "        break;\n"
+                + "     ^\n"
+                + "}";
+        insertChar(original, ' ', expected);
+    }
+
+    public void testIssueGH5707_02() throws Exception {
+        String original = ""
+                + "enum Enum1 {\n"
+                + "    case A = 'A';\n"
+                + "    case B = 'B';\n"
+                + "    ^\n"
+                + "}";
+        String expected = ""
+                + "enum Enum1 {\n"
+                + "    case A = 'A';\n"
+                + "    case B = 'B';\n"
+                + "     ^\n"
+                + "}";
+        insertChar(original, ' ', expected);
+    }
+
 //    Uncomment when CslTestBase.insertChar() will support ambiguous selection strings
 //
 //    public void testIssue242358() throws Exception {
diff --git a/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestionTest.java b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestionTest.java
new file mode 100644
index 0000000..39281af
--- /dev/null
+++ b/php/php.editor/test/unit/src/org/netbeans/modules/php/editor/verification/IntroduceSuggestionTest.java
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+package org.netbeans.modules.php.editor.verification;
+
+public class IntroduceSuggestionTest extends PHPHintsTestBase {
+
+    public IntroduceSuggestionTest(String testName) {
+        super(testName);
+    }
+
+    @Override
+    protected String getTestDirectory() {
+        return TEST_DIRECTORY + "IntroduceSuggestion/";
+    }
+
+    public void testEnumCase_01() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumCase.php", "ExampleEnum::Ca^se3;");
+    }
+
+    public void testEnumCase_02() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumCase.php", "BackedEnumInt::Case^3;");
+    }
+
+    public void testEnumCase_03() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumCase.php", "BackedEnumString::C^ase3;");
+    }
+
+    public void testEnumCaseFix_01a() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumCase.php", "ExampleEnum::Ca^se3;", "Create Enum Case");
+    }
+
+    public void testEnumCaseFix_01b() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumCase.php", "ExampleEnum::Ca^se3;", "Create Constant");
+    }
+
+    public void testEnumCaseFix_02a() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumCase.php", "BackedEnumInt::Case^3;", "Create Enum Case");
+    }
+
+    public void testEnumCaseFix_02b() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumCase.php", "BackedEnumInt::Case^3;", "Create Constant");
+    }
+
+    public void testEnumCaseFix_03a() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumCase.php", "BackedEnumString::C^ase3;", "Create Enum Case");
+    }
+
+    public void testEnumCaseFix_03b() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumCase.php", "BackedEnumString::C^ase3;", "Create Constant");
+    }
+
+    public void testEnumMethods_01() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumMethods.php", "ExampleEnum::introduceStat^icMethod();");
+    }
+
+    public void testEnumMethods_02() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumMethods.php", "        $this->introduceMeth^od();");
+    }
+
+    public void testEnumMethods_03() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumMethods.php", "        self::introduceStaticMet^hod();");
+    }
+
+    public void testEnumMethods_04() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumMethods.php", "        static::introduceStaticMeth^od();");
+    }
+
+    public void testEnumMethods_05() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumMethods.php", "BackedEnumInt::Case1->introduceMet^hod();");
+    }
+
+    public void testEnumMethods_06() throws Exception {
+        checkHints(new IntroduceSuggestion(), "testEnumMethods.php", "BackedEnumString::Case2::introdu^ceStaticMethod();");
+    }
+
+    public void testEnumMethodsFix_01() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumMethods.php", "ExampleEnum::introduceStat^icMethod();", "Create Method");
+    }
+
+    public void testEnumMethodsFix_02() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumMethods.php", "        $this->introduceMeth^od();", "Create Method");
+    }
+
+    public void testEnumMethodsFix_03() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumMethods.php", "        self::introduceStaticMet^hod();", "Create Method");
+    }
+
+    public void testEnumMethodsFix_04() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumMethods.php", "        static::introduceStaticMeth^od();", "Create Method");
+    }
+
+    public void testEnumMethodsFix_05() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumMethods.php", "BackedEnumInt::Case1->introduceMet^hod();", "Create Method");
+    }
+
+    public void testEnumMethodsFix_06() throws Exception {
+        applyHint(new IntroduceSuggestion(), "testEnumMethods.php", "BackedEnumString::Case2::introdu^ceStaticMethod();", "Create Method");
+    }
+}
diff --git a/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/Bundle.properties b/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/Bundle.properties
index fbc5f1e..97f934a 100644
--- a/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/Bundle.properties
+++ b/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/Bundle.properties
@@ -34,6 +34,8 @@
 DSC_VariableUsages=<html>Variable <b>{0}</b>:</html>
 DSC_UseAliasUsages=<html>Use Alias <b>{0}</b>:</html>
 DSC_TraitUsages=<html>Trait <b>{0}</b>:</html>
+DSC_EnumUsages=<html>Enum <b>{0}</b>:</html>
+DSC_EnumCaseUsages=<html>Enum Case <b>{0}</b> of enum <b>{1}</b>:</html>
 DSC_WhereUsedWarningInDevelopment={0} (PHP refactoring is approximate. Review all results.)
 LBL_FindUsages=Find &Usages
 LBL_FindOverridingMethods=Find &Overriding Methods
diff --git a/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedPanel.java b/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedPanel.java
index e36670a..201ec1f 100644
--- a/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedPanel.java
+++ b/php/php.refactoring/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedPanel.java
@@ -199,6 +199,12 @@
             case TRAIT:
                 bundleKey = "DSC_TraitUsages"; //NOI18N
                 break;
+            case ENUM:
+                bundleKey = "DSC_EnumUsages"; // NOI18N
+                break;
+            case ENUM_CASE:
+                bundleKey = "DSC_EnumCaseUsages"; // NOI18N
+                break;
             default:
                 assert false : usage.getKind();
         }
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php
new file mode 100644
index 0000000..1209da3
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php
@@ -0,0 +1,68 @@
+<?php
+/*
+ * 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.
+ */
+
+namespace A;
+
+enum EnumA {
+
+    public const CONSTANT_A = 1;
+
+    case Case1;
+    case Case2;
+
+    public function test(): void {
+        $this->publicMethod();
+        self::publicStaticMethod();
+        static::publicStaticMethod();
+    }
+
+    public function publicMethod(): void { // EnumA
+    }
+
+    public static function publicStaticMethod(): string { // EnumA
+        return "publicStaticMethod()";
+    }
+}
+
+namespace B;
+
+use A\EnumA;
+
+interface InterfaceB {
+}
+
+enum EnumB: string implements InterfaceB {
+
+    public const CONSTANT_B = EnumA::CONSTANT_A;
+
+    case A = 'A';
+    case B = 'B';
+    case C = EnumA::Case1;
+
+    public function publicMethod(): void { // EnumB
+    }
+
+    public static function publicStaticMethod(): string { // EnumB
+        return "publicStaticMethod()";
+    }
+}
+
+EnumB::A->publicMethod();
+EnumB::A::publicStaticMethod();
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_01a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_01a.findUsages
new file mode 100644
index 0000000..3a98252
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_01a.findUsages
@@ -0,0 +1,9 @@
+Display text: case <b>Case1</b>;
+File name: index.php
+Name: Case1
+Position: BEGIN: 886 END: 891
+
+Display text: case C = EnumA::<b>Case1</b>;
+File name: index.php
+Name: Case1
+Position: BEGIN: 1435 END: 1440
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_01b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_01b.findUsages
new file mode 100644
index 0000000..3a98252
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_01b.findUsages
@@ -0,0 +1,9 @@
+Display text: case <b>Case1</b>;
+File name: index.php
+Name: Case1
+Position: BEGIN: 886 END: 891
+
+Display text: case C = EnumA::<b>Case1</b>;
+File name: index.php
+Name: Case1
+Position: BEGIN: 1435 END: 1440
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02a.findUsages
new file mode 100644
index 0000000..3af4cdb
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02a.findUsages
@@ -0,0 +1,14 @@
+Display text: case <b>A</b> = 'A';
+File name: index.php
+Name: A
+Position: BEGIN: 1388 END: 1389
+
+Display text: EnumB::<b>A</b>->publicMethod();
+File name: index.php
+Name: A
+Position: BEGIN: 1624 END: 1625
+
+Display text: EnumB::<b>A</b>::publicStaticMethod();
+File name: index.php
+Name: A
+Position: BEGIN: 1650 END: 1651
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02b.findUsages
new file mode 100644
index 0000000..3af4cdb
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02b.findUsages
@@ -0,0 +1,14 @@
+Display text: case <b>A</b> = 'A';
+File name: index.php
+Name: A
+Position: BEGIN: 1388 END: 1389
+
+Display text: EnumB::<b>A</b>->publicMethod();
+File name: index.php
+Name: A
+Position: BEGIN: 1624 END: 1625
+
+Display text: EnumB::<b>A</b>::publicStaticMethod();
+File name: index.php
+Name: A
+Position: BEGIN: 1650 END: 1651
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02c.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02c.findUsages
new file mode 100644
index 0000000..3af4cdb
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Case_02c.findUsages
@@ -0,0 +1,14 @@
+Display text: case <b>A</b> = 'A';
+File name: index.php
+Name: A
+Position: BEGIN: 1388 END: 1389
+
+Display text: EnumB::<b>A</b>->publicMethod();
+File name: index.php
+Name: A
+Position: BEGIN: 1624 END: 1625
+
+Display text: EnumB::<b>A</b>::publicStaticMethod();
+File name: index.php
+Name: A
+Position: BEGIN: 1650 END: 1651
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Constant_01a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Constant_01a.findUsages
new file mode 100644
index 0000000..346dd4f
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Constant_01a.findUsages
@@ -0,0 +1,9 @@
+Display text: public const <b>CONSTANT_A</b> = 1;
+File name: index.php
+Name: CONSTANT_A
+Position: BEGIN: 860 END: 870
+
+Display text: public const CONSTANT_B = EnumA::<b>CONSTANT_A</b>;
+File name: index.php
+Name: CONSTANT_A
+Position: BEGIN: 1366 END: 1376
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Constant_01b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Constant_01b.findUsages
new file mode 100644
index 0000000..346dd4f
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Constant_01b.findUsages
@@ -0,0 +1,9 @@
+Display text: public const <b>CONSTANT_A</b> = 1;
+File name: index.php
+Name: CONSTANT_A
+Position: BEGIN: 860 END: 870
+
+Display text: public const CONSTANT_B = EnumA::<b>CONSTANT_A</b>;
+File name: index.php
+Name: CONSTANT_A
+Position: BEGIN: 1366 END: 1376
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01a.findUsages
new file mode 100644
index 0000000..345dbb1
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01a.findUsages
@@ -0,0 +1,19 @@
+Display text: enum <b>EnumA</b> {
+File name: index.php
+Name: EnumA
+Position: BEGIN: 834 END: 839
+
+Display text: use A\<b>EnumA</b>;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1251 END: 1256
+
+Display text: public const CONSTANT_B = <b>EnumA</b>::CONSTANT_A;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1359 END: 1364
+
+Display text: case C = <b>EnumA</b>::Case1;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1428 END: 1433
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01b.findUsages
new file mode 100644
index 0000000..345dbb1
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01b.findUsages
@@ -0,0 +1,19 @@
+Display text: enum <b>EnumA</b> {
+File name: index.php
+Name: EnumA
+Position: BEGIN: 834 END: 839
+
+Display text: use A\<b>EnumA</b>;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1251 END: 1256
+
+Display text: public const CONSTANT_B = <b>EnumA</b>::CONSTANT_A;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1359 END: 1364
+
+Display text: case C = <b>EnumA</b>::Case1;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1428 END: 1433
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01c.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01c.findUsages
new file mode 100644
index 0000000..345dbb1
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01c.findUsages
@@ -0,0 +1,19 @@
+Display text: enum <b>EnumA</b> {
+File name: index.php
+Name: EnumA
+Position: BEGIN: 834 END: 839
+
+Display text: use A\<b>EnumA</b>;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1251 END: 1256
+
+Display text: public const CONSTANT_B = <b>EnumA</b>::CONSTANT_A;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1359 END: 1364
+
+Display text: case C = <b>EnumA</b>::Case1;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1428 END: 1433
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01d.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01d.findUsages
new file mode 100644
index 0000000..345dbb1
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_01d.findUsages
@@ -0,0 +1,19 @@
+Display text: enum <b>EnumA</b> {
+File name: index.php
+Name: EnumA
+Position: BEGIN: 834 END: 839
+
+Display text: use A\<b>EnumA</b>;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1251 END: 1256
+
+Display text: public const CONSTANT_B = <b>EnumA</b>::CONSTANT_A;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1359 END: 1364
+
+Display text: case C = <b>EnumA</b>::Case1;
+File name: index.php
+Name: EnumA
+Position: BEGIN: 1428 END: 1433
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02a.findUsages
new file mode 100644
index 0000000..ba47c75
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02a.findUsages
@@ -0,0 +1,14 @@
+Display text: enum <b>EnumB</b>: string implements InterfaceB {
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1290 END: 1295
+
+Display text: <b>EnumB</b>::A->publicMethod();
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1617 END: 1622
+
+Display text: <b>EnumB</b>::A::publicStaticMethod();
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1643 END: 1648
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02b.findUsages
new file mode 100644
index 0000000..ba47c75
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02b.findUsages
@@ -0,0 +1,14 @@
+Display text: enum <b>EnumB</b>: string implements InterfaceB {
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1290 END: 1295
+
+Display text: <b>EnumB</b>::A->publicMethod();
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1617 END: 1622
+
+Display text: <b>EnumB</b>::A::publicStaticMethod();
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1643 END: 1648
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02c.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02c.findUsages
new file mode 100644
index 0000000..ba47c75
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_EnumName_02c.findUsages
@@ -0,0 +1,14 @@
+Display text: enum <b>EnumB</b>: string implements InterfaceB {
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1290 END: 1295
+
+Display text: <b>EnumB</b>::A->publicMethod();
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1617 END: 1622
+
+Display text: <b>EnumB</b>::A::publicStaticMethod();
+File name: index.php
+Name: EnumB
+Position: BEGIN: 1643 END: 1648
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Interface_01a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Interface_01a.findUsages
new file mode 100644
index 0000000..c2f2d33
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Interface_01a.findUsages
@@ -0,0 +1,9 @@
+Display text: interface <b>InterfaceB</b> {
+File name: index.php
+Name: InterfaceB
+Position: BEGIN: 1269 END: 1279
+
+Display text: enum EnumB: string implements <b>InterfaceB</b> {
+File name: index.php
+Name: InterfaceB
+Position: BEGIN: 1315 END: 1325
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Interface_01b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Interface_01b.findUsages
new file mode 100644
index 0000000..c2f2d33
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Interface_01b.findUsages
@@ -0,0 +1,9 @@
+Display text: interface <b>InterfaceB</b> {
+File name: index.php
+Name: InterfaceB
+Position: BEGIN: 1269 END: 1279
+
+Display text: enum EnumB: string implements <b>InterfaceB</b> {
+File name: index.php
+Name: InterfaceB
+Position: BEGIN: 1315 END: 1325
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_01a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_01a.findUsages
new file mode 100644
index 0000000..910c405
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_01a.findUsages
@@ -0,0 +1,9 @@
+Display text: $this-><b>publicMethod</b>();
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 960 END: 972
+
+Display text: public function <b>publicMethod</b>(): void { // EnumA
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 1077 END: 1089
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_01b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_01b.findUsages
new file mode 100644
index 0000000..910c405
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_01b.findUsages
@@ -0,0 +1,9 @@
+Display text: $this-><b>publicMethod</b>();
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 960 END: 972
+
+Display text: public function <b>publicMethod</b>(): void { // EnumA
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 1077 END: 1089
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_02a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_02a.findUsages
new file mode 100644
index 0000000..df4e7bc
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_02a.findUsages
@@ -0,0 +1,9 @@
+Display text: public function <b>publicMethod</b>(): void { // EnumB
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 1463 END: 1475
+
+Display text: EnumB::A-><b>publicMethod</b>();
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 1627 END: 1639
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_02b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_02b.findUsages
new file mode 100644
index 0000000..df4e7bc
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_Method_02b.findUsages
@@ -0,0 +1,9 @@
+Display text: public function <b>publicMethod</b>(): void { // EnumB
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 1463 END: 1475
+
+Display text: EnumB::A-><b>publicMethod</b>();
+File name: index.php
+Name: publicMethod
+Position: BEGIN: 1627 END: 1639
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01a.findUsages
new file mode 100644
index 0000000..333b043
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01a.findUsages
@@ -0,0 +1,14 @@
+Display text: self::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 990 END: 1008
+
+Display text: static::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1028 END: 1046
+
+Display text: public static function <b>publicStaticMethod</b>(): string { // EnumA
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1143 END: 1161
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01b.findUsages
new file mode 100644
index 0000000..333b043
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01b.findUsages
@@ -0,0 +1,14 @@
+Display text: self::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 990 END: 1008
+
+Display text: static::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1028 END: 1046
+
+Display text: public static function <b>publicStaticMethod</b>(): string { // EnumA
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1143 END: 1161
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01c.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01c.findUsages
new file mode 100644
index 0000000..333b043
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_01c.findUsages
@@ -0,0 +1,14 @@
+Display text: self::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 990 END: 1008
+
+Display text: static::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1028 END: 1046
+
+Display text: public static function <b>publicStaticMethod</b>(): string { // EnumA
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1143 END: 1161
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_02a.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_02a.findUsages
new file mode 100644
index 0000000..23a93a2
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_02a.findUsages
@@ -0,0 +1,9 @@
+Display text: public static function <b>publicStaticMethod</b>(): string { // EnumB
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1529 END: 1547
+
+Display text: EnumB::A::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1653 END: 1671
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_02b.findUsages b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_02b.findUsages
new file mode 100644
index 0000000..23a93a2
--- /dev/null
+++ b/php/php.refactoring/test/unit/data/testfiles/findusages/testEnums/index.php.testEnums_StaticMethod_02b.findUsages
@@ -0,0 +1,9 @@
+Display text: public static function <b>publicStaticMethod</b>(): string { // EnumB
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1529 END: 1547
+
+Display text: EnumB::A::<b>publicStaticMethod</b>();
+File name: index.php
+Name: publicStaticMethod
+Position: BEGIN: 1653 END: 1671
\ No newline at end of file
diff --git a/php/php.refactoring/test/unit/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedSupportTest.java b/php/php.refactoring/test/unit/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedSupportTest.java
index 34d7198..cfb7b38 100644
--- a/php/php.refactoring/test/unit/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedSupportTest.java
+++ b/php/php.refactoring/test/unit/src/org/netbeans/modules/refactoring/php/findusages/WhereUsedSupportTest.java
@@ -272,4 +272,104 @@
         findUsages("echo $this->privateFi^eld;", "nb6087.php");
     }
 
+    public void testEnums_EnumName_01a() throws Exception {
+        findUsages("enum Enum^A {");
+    }
+
+    public void testEnums_EnumName_01b() throws Exception {
+        findUsages("use A\\Enu^mA;");
+    }
+
+    public void testEnums_EnumName_01c() throws Exception {
+        findUsages("    public const CONSTANT_B = Enu^mA::CONSTANT_A;");
+    }
+
+    public void testEnums_EnumName_01d() throws Exception {
+        findUsages("    case C = E^numA::Case1;");
+    }
+
+    public void testEnums_EnumName_02a() throws Exception {
+        findUsages("enum Enu^mB: string implements InterfaceB {");
+    }
+
+    public void testEnums_EnumName_02b() throws Exception {
+        findUsages("Enu^mB::A->publicMethod();");
+    }
+
+    public void testEnums_EnumName_02c() throws Exception {
+        findUsages("E^numB::A::publicStaticMethod();");
+    }
+
+    public void testEnums_Constant_01a() throws Exception {
+        findUsages("    public const CONSTA^NT_A = 1;");
+    }
+
+    public void testEnums_Constant_01b() throws Exception {
+        findUsages("    public const CONSTANT_B = EnumA::CONS^TANT_A;");
+    }
+
+    public void testEnums_Case_01a() throws Exception {
+        findUsages("    case Cas^e1;");
+    }
+
+    public void testEnums_Case_01b() throws Exception {
+        findUsages("    case C = EnumA::Cas^e1;");
+    }
+
+    public void testEnums_Case_02a() throws Exception {
+        findUsages("    case ^A = 'A';");
+    }
+
+    public void testEnums_Case_02b() throws Exception {
+        findUsages("EnumB::A^->publicMethod();");
+    }
+
+    public void testEnums_Case_02c() throws Exception {
+        findUsages("EnumB::^A::publicStaticMethod();");
+    }
+
+    public void testEnums_Method_01a() throws Exception {
+        findUsages("        $this->publicMeth^od();");
+    }
+
+    public void testEnums_Method_01b() throws Exception {
+        findUsages("    public function publicMet^hod(): void { // EnumA");
+    }
+
+    public void testEnums_Method_02a() throws Exception {
+        findUsages("    public function publicM^ethod(): void { // EnumB");
+    }
+
+    public void testEnums_Method_02b() throws Exception {
+        findUsages("EnumB::A->publicMet^hod();");
+    }
+
+    public void testEnums_StaticMethod_01a() throws Exception {
+        findUsages("        self::publicStaticMet^hod();");
+    }
+
+    public void testEnums_StaticMethod_01b() throws Exception {
+        findUsages("        static::publicStaticMe^thod();");
+    }
+
+    public void testEnums_StaticMethod_01c() throws Exception {
+        findUsages("    public static function publicStati^cMethod(): string { // EnumA");
+    }
+
+    public void testEnums_StaticMethod_02a() throws Exception {
+        findUsages("    public static function publicStatic^Method(): string { // EnumB");
+    }
+
+    public void testEnums_StaticMethod_02b() throws Exception {
+        findUsages("EnumB::A::publicStati^cMethod();");
+    }
+
+    public void testEnums_Interface_01a() throws Exception {
+        findUsages("interface Interfac^eB {");
+    }
+
+    public void testEnums_Interface_01b() throws Exception {
+        findUsages("enum EnumB: string implements Inter^faceB {");
+    }
+
 }
diff --git a/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinition.java b/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinition.java
index a34ee17..f969d33 100644
--- a/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinition.java
+++ b/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinition.java
@@ -48,7 +48,7 @@
  * In most cases, you do not need to create custom implementation. You can 
  * use some factory method in {@link SearchInfoDefinitionFactory}.
  * 
- * <div clas="nonnormative">
+ * <div class="nonnormative">
  * <p>Example:</p>
  * <pre>
  * {@code
diff --git a/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinitionFactory.java b/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinitionFactory.java
index a092e13..45b9136 100644
--- a/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinitionFactory.java
+++ b/platform/api.search/src/org/netbeans/spi/search/SearchInfoDefinitionFactory.java
@@ -175,7 +175,7 @@
      * Convenience method for creating search info for a list of roots with
      * default filters.
      *
-     * @see #createSearchInfo(.FileObject[], SearchFilterDefinition[])
+     * @see #createSearchInfo(FileObject[], SearchFilterDefinition[])
      */
     public static @NonNull SearchInfoDefinition createSearchInfo(
             @NonNull FileObject[] roots) {
@@ -197,7 +197,7 @@
      * <p> In case you want to create node children in the node constructor, you
      * can create children in one constructor and pass them to another
      * constructor:</p>
-     * <pre class="nonnormative"">
+     * <pre class="nonnormative">
      * {@code
      * public ExampleNode() {
      *    this(Children.create(someChildrenFactory, true));
diff --git a/platform/autoupdate.services/apichanges.xml b/platform/autoupdate.services/apichanges.xml
index 58588a8..77aafa6 100644
--- a/platform/autoupdate.services/apichanges.xml
+++ b/platform/autoupdate.services/apichanges.xml
@@ -33,6 +33,20 @@
     <!-- ACTUAL CHANGES BEGIN HERE: -->
 
     <changes>
+        <change id="plugin-installer">
+            <api name="general"/>
+            <summary>Simple API to install modules</summary>
+            <version major="1" minor="76"/>
+            <date day="18" month="3" year="2023"/>
+            <author login="sdedic"/>
+            <compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" semantic="compatible" source="compatible"/>
+            <description>
+                <a href="@TOP@/org/netbeans/api/autoupdate/PluginInstaller.html">Simplified API to install</a> additional plugins to avoid dependencies on UI part of the AutoUpdate. CLI and UI implementations
+                for the autoupdate plugs provides their implementations, UI is preferred.
+            </description>
+            <class package="org.netbeans.api.autoupdate" name="Plugininstaller"/>
+            <class package="org.netbeans.spi.autoupdate" name="PlugininstallerImplementation"/>
+        </change>
         <change id="unpack200">
             <api name="general"/>
             <summary>Allow alternative unpack200 implementation</summary>
diff --git a/platform/autoupdate.services/manifest.mf b/platform/autoupdate.services/manifest.mf
index cb77055..1f7a2fb 100644
--- a/platform/autoupdate.services/manifest.mf
+++ b/platform/autoupdate.services/manifest.mf
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 OpenIDE-Module: org.netbeans.modules.autoupdate.services
 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/autoupdate/services/resources/Bundle.properties
-OpenIDE-Module-Specification-Version: 1.75
+OpenIDE-Module-Specification-Version: 1.76
 OpenIDE-Module-Layer: org/netbeans/modules/autoupdate/services/resources/layer.xml
 AutoUpdate-Show-In-Client: false
 AutoUpdate-Essential-Module: true
diff --git a/platform/autoupdate.services/nbproject/project.xml b/platform/autoupdate.services/nbproject/project.xml
index bd5097f..df7c1e1 100644
--- a/platform/autoupdate.services/nbproject/project.xml
+++ b/platform/autoupdate.services/nbproject/project.xml
@@ -26,6 +26,15 @@
             <code-name-base>org.netbeans.modules.autoupdate.services</code-name-base>
             <module-dependencies>
                 <dependency>
+                    <code-name-base>org.netbeans.api.annotations.common</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <release-version>1</release-version>
+                        <specification-version>1.48</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
                     <code-name-base>org.netbeans.api.progress</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
@@ -61,6 +70,14 @@
                     </run-dependency>
                 </dependency>
                 <dependency>
+                    <code-name-base>org.openide.dialogs</code-name-base>
+                    <build-prerequisite/>
+                    <compile-dependency/>
+                    <run-dependency>
+                        <specification-version>7.66</specification-version>
+                    </run-dependency>
+                </dependency>
+                <dependency>
                     <code-name-base>org.openide.filesystems</code-name-base>
                     <build-prerequisite/>
                     <compile-dependency/>
diff --git a/platform/autoupdate.services/src/org/netbeans/api/autoupdate/InstallSupport.java b/platform/autoupdate.services/src/org/netbeans/api/autoupdate/InstallSupport.java
index a622975..63c279e 100644
--- a/platform/autoupdate.services/src/org/netbeans/api/autoupdate/InstallSupport.java
+++ b/platform/autoupdate.services/src/org/netbeans/api/autoupdate/InstallSupport.java
@@ -53,7 +53,7 @@
  *      support.doRestart(r, null);
  * }
  * </pre>
- * </p>
+ *
  * @author Radek Matous, Jiri Rechtacek
  */
 public final class InstallSupport {
diff --git a/platform/autoupdate.services/src/org/netbeans/api/autoupdate/OperationContainer.java b/platform/autoupdate.services/src/org/netbeans/api/autoupdate/OperationContainer.java
index 58f1ebb..82991c6 100644
--- a/platform/autoupdate.services/src/org/netbeans/api/autoupdate/OperationContainer.java
+++ b/platform/autoupdate.services/src/org/netbeans/api/autoupdate/OperationContainer.java
@@ -59,7 +59,7 @@
  * OperationSupport support = container.getSupport();
  * support.doOperation(null);
  * </pre>
- * </p>
+ *
  * @param <Support> the type of support for performing chosen operation like 
  * {@link OperationSupport} or {@link InstallSupport}
  * @author Radek Matous, Jiri Rechtacek
diff --git a/platform/autoupdate.services/src/org/netbeans/api/autoupdate/PluginInstaller.java b/platform/autoupdate.services/src/org/netbeans/api/autoupdate/PluginInstaller.java
new file mode 100644
index 0000000..710325d
--- /dev/null
+++ b/platform/autoupdate.services/src/org/netbeans/api/autoupdate/PluginInstaller.java
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+package org.netbeans.api.autoupdate;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.netbeans.api.annotations.common.NonNull;
+import org.netbeans.spi.autoupdate.PluginInstallerImplementation;
+import org.openide.NotifyDescriptor;
+import org.openide.util.Lookup;
+import org.openide.util.UserCancelException;
+
+/**
+ * Allows to programmatically install plugins. It serves as a frontend API to UI/CLI
+ * whichever is installed - other modules need to provide the actual installation provider to handle the requests. 
+ * No default implementation for the installation provider is present by default unless additional modules
+ * like {@code autoupdate.ui} is installed. If no providers are registered, the installation fails as if
+ * the user had rejected the operation using "Cancel" button.
+ * 
+ * @since 1.76
+ * @author sdedic
+ */
+public final class PluginInstaller {
+    private static final Logger LOG = Logger.getLogger(PluginInstaller.class.getName());
+    
+    private static PluginInstaller INSTANCE;
+    
+    public static PluginInstaller getDefault() {
+        if (INSTANCE != null) {
+            return INSTANCE;
+        }
+        // no sync needed, instance is stateless.
+        return INSTANCE = new PluginInstaller();
+    }
+    
+    /**
+     * Installs a single module. When reporting progress or messages, uses the supplied `displayName`; use {@code null}
+     * to use a generic description possibly based on the module name/codename. The method converts the {@link UserCancelException}
+     * thrown by the actual implementation into {@link NotifyDescriptor#CANCEL_OPTION} for compatibility with older code.
+     * Otherwise, see {@link #install(java.lang.String, java.lang.String, org.openide.util.Lookup, java.lang.Object...)}.
+     * 
+     * @param codenamebase codename base to install
+     * @param displayName title/heading for messages
+     * @param context additional context passed to the process
+     * @param alternativeOptions possible failure resolution choices
+     * @return null on success, {@link NotifyDescriptor#CANCEL_OPTION} if the operation is rejected (i.e. user cancel) or one of
+     * "alternativeOptions".
+     */
+    public Object install(@NonNull String codenamebase, @NonNull String displayName,
+            Lookup context, @NonNull Object... alternativeOptions) {
+        try {
+            return install(Collections.singleton(codenamebase), displayName, context, alternativeOptions);
+        } catch (UserCancelException ex) {
+            LOG.log(Level.FINE, "User cancelled", ex);
+            return NotifyDescriptor.CANCEL_OPTION;
+        } catch (OperationException ex) {
+            LOG.log(Level.WARNING, "Exception during install of " + codenamebase, ex);
+            return NotifyDescriptor.CANCEL_OPTION;
+        }
+    }
+    
+    /**
+     * Installs a single module. Uses some default title for possible progress indication during module search 
+     * and installation. Does not support alternative options. The method converts the {@link UserCancelException}
+     * thrown by the actual implementation into {@link NotifyDescriptor#CANCEL_OPTION} for compatibility with older code.
+     * Otherwise, see {@link #install(java.lang.String, java.lang.String, org.openide.util.Lookup, java.lang.Object...)}.
+     * 
+     * @param codenamebase codename base of the module to install
+     * @return null on success, {@link NotifyDescriptor#CANCEL_OPTION} if the operation is rejected (i.e. user cancel).
+     */
+    public Object install(@NonNull String codenamebase) {
+        return install(codenamebase, null, null);
+    }
+    
+    /**
+     * Attempts to install one or more plugins, specified by their codebases. During module + dependency search and download
+     * some interim progress messages can be displayed - the `displayName` will be used as a title, heading or otherwise provide
+     * informative context for those messages. If the display name is not provided, some generic title can be used (i.e. searching,
+     * installing).
+     * <p>
+     * If fetching the plugin catalog data fails on I/O, the user can get a choice to 
+     * retry the process or cancel the operation. `alternativeOptions` are presented as other alternative solutions. If the user
+     * chooses to cancel, operation ends with {@link NotifyDescriptor#CANCEL_OPTION}. The user can choose to retry the operation.
+     * The user can also select one of the `alternativeOptions`, which will terminate the operation with the chosen option as a result.
+     * During the download, the operation can be cancelled resulting in {@link NotifyDescriptor#CANCEL_OPTION}.
+     * <p>
+     * If the operation completes successfully, the method returns {@code null}.
+     * <p>
+     * In the case that no installation provider is installed, the implementation throws {@link UserCancelException} as if the operation
+     * was rejected by the user.
+     * 
+     * @param codenamebases codename bases of modules to install. The modules will be installed in no particular order.
+     * @param displayName 
+     * @param alternativeOptions
+     * @return {@code null} on success. {@link NotifyDescriptor#CANCEL_OPTION} on cancel, or one of `alternativeOptions` on failure
+     * according to user's choice.
+     * @throws OperationException if the download or installation / enable operation fails.
+     * @throws UserCancelException if the operation is rejected.
+     */
+    public Object install(@NonNull Set<String> codenamebases, String displayName, Lookup context, Object... alternativeOptions) throws OperationException, UserCancelException {
+        PluginInstallerImplementation impl = Lookup.getDefault().lookup(PluginInstallerImplementation.class);
+        if (impl == null) {
+            throw new UserCancelException();
+        }
+        Object o = impl.install(codenamebases, displayName, context == null ? Lookup.EMPTY : context, alternativeOptions);
+        if (o == NotifyDescriptor.CLOSED_OPTION) {
+            return NotifyDescriptor.CANCEL_OPTION;
+        } else {
+            // even OK_OPTION would display in case of some failure.
+            return o;
+        }
+    }
+}
diff --git a/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/PluginInstallerImplementation.java b/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/PluginInstallerImplementation.java
new file mode 100644
index 0000000..fdab056
--- /dev/null
+++ b/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/PluginInstallerImplementation.java
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+package org.netbeans.spi.autoupdate;
+
+import java.util.Set;
+import org.netbeans.api.annotations.common.NonNull;
+import org.netbeans.api.autoupdate.OperationException;
+import org.openide.NotifyDescriptor;
+import org.openide.util.Lookup;
+import org.openide.util.UserCancelException;
+
+/**
+ * Handles out plugin installation requests. An implementation should be provided for CLI, UI or remote UI as suitabke
+ * for the distribution that handles possible user interaction. As downloading the plugins often require license acceptance
+ * no default implementation is provided.
+ * 
+ * @since 1.76
+ * @author sdedic
+ */
+public interface PluginInstallerImplementation {
+    /**
+     * Attempts to install one or more plugins. Before the actual installation, some network I/O may occur
+     * to e.g. download catalog of plugins or download the plugin itself. The `displayName` serves as a context
+     * for possible progress messages or interactive UI. When the network I/O fails, the implementation
+     * may prompt the user and retry the operation or offer other remedies (and implement them).
+     * The `alternativeOptions` are other choices that should be presented to the user, and will be handled
+     * by the caller. Values accepted in `alternativeOptions are the same as with {@link NotifyDescriptor#setOptions}.
+     * <p>
+     * After the network operations complete, the implementation should install the plugin(s). Any report from this
+     * phase should be reported by throwing a {@link OperationException} that describes the failure.
+     * <p>
+     * On successful completion, returns {@code null}. In the case of a network error must return {@link NotifyDescriptor#CANCEL_OPTION}
+     * if the user cancelled the operation, one of the `additionalOption` values if the user selected an alternative choice.
+     * Retry (if offered) must be handled by the implementation.
+     * <p>
+     * If the user cancels the operation, the {@link UserCancelException} should be thrown to avoid dependency on Dialogs API; modules that use Dialogs API may
+     * return {@link NotifyDescriptor#CANCEL_OPTION}.
+     * 
+     * @param codenamebases codenames of plugins to install
+     * @param displayName context for possible progress or error messages
+     * @param alternativeOptions alternative network failure resolution choices
+     * @return {@code null} if successful, {@link NotifyDescriptor#CANCEL_OPTION} or one of `additionalOptions'.
+     * @throws OperationException on a failed operation.
+     * @throws UserCancelException if the user cancels the operation.
+     */
+    public Object install(@NonNull Set<String> codenamebases, String displayName, Lookup context, @NonNull Object... alternativeOptions)
+            throws OperationException, UserCancelException;
+}
diff --git a/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/UpdateItem.java b/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/UpdateItem.java
index 2db1706..5b62e55 100644
--- a/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/UpdateItem.java
+++ b/platform/autoupdate.services/src/org/netbeans/spi/autoupdate/UpdateItem.java
@@ -50,8 +50,8 @@
         item.setUpdateItem (this);
     }
     
-    /** Creates <code>UpdateItem/code> which represents NetBeans Module in Autoupdate infrastructure.
-     * UpdateItem is identify by <code>codeName</code> and <code>specificationVersion<code>.
+    /** Creates <code>UpdateItem</code> which represents NetBeans Module in Autoupdate infrastructure.
+     * UpdateItem is identify by <code>codeName</code> and <code>specificationVersion</code>.
      * 
      * @param codeName code name of module
      * @param specificationVersion specification version of module
@@ -93,8 +93,8 @@
         return new UpdateItem (item);
     }
     
-    /** Creates <code>UpdateItem/code> which represents NetBeans Module in Autoupdate infrastructure.
-     * UpdateItem is identify by <code>codeName</code> and <code>specificationVersion<code>.
+    /** Creates <code>UpdateItem</code> which represents NetBeans Module in Autoupdate infrastructure.
+     * UpdateItem is identify by <code>codeName</code> and <code>specificationVersion</code>.
      * 
      * @param codeName code name of module
      * @param specificationVersion specification version of module
@@ -141,8 +141,8 @@
     
     /** Creates <code>UpdateItem</code> which represents <code>Feature</code>, it's means group
      * of NetBeans Modules. This <code>Feature</code> is handled in UI as atomic item.
-     * UpdateItem is identify by <code>codeName</code> and <code>specificationVersion<code>.
-     * <p/>
+     * UpdateItem is identify by <code>codeName</code> and <code>specificationVersion</code>.
+     * <p>
      * If some of the tokens in {@code dependencies} is not known, it will be reported
      * as a missing dependency.
      * 
diff --git a/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/GuiPluginInstallerImpl.java b/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/GuiPluginInstallerImpl.java
new file mode 100644
index 0000000..ae2bc68
--- /dev/null
+++ b/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/GuiPluginInstallerImpl.java
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+package org.netbeans.modules.autoupdate.ui;
+
+import java.util.Set;
+import org.netbeans.api.autoupdate.OperationException;
+import org.netbeans.spi.autoupdate.PluginInstallerImplementation;
+import org.openide.NotifyDescriptor;
+import org.openide.util.Lookup;
+import org.openide.util.Parameters;
+import org.openide.util.UserCancelException;
+import org.openide.util.lookup.ServiceProvider;
+
+/**
+ * GUI implementation of the plugin installer, shows wizard etc. Register with a higher priority
+ * than CLI implementation.
+ * 
+ * @author sdedic
+ */
+@ServiceProvider(service = PluginInstallerImplementation.class, position = 30000)
+public class GuiPluginInstallerImpl implements PluginInstallerImplementation {
+
+    @Override
+    public Object install(Set<String> codenamebases, String displayName, Lookup context, Object... alternativeOptions) throws OperationException, UserCancelException {
+        // copied from PluginManager, but displayName handling changed.
+        Parameters.notNull("cnb", codenamebases); // NOI18N
+        Parameters.notNull("alternativeOptions", alternativeOptions); // NOI18N
+        if (codenamebases.isEmpty()) {
+            throw new IllegalArgumentException("No plugins to install");
+        }
+
+        Object o = new ModuleInstallerSupport(alternativeOptions).installPlugins(displayName, codenamebases);
+        if (o == NotifyDescriptor.CANCEL_OPTION) {
+            throw new UserCancelException();
+        } else {
+            return o;
+        }
+    }
+    
+}
diff --git a/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/ModuleInstallerSupport.java b/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/ModuleInstallerSupport.java
index d6302aa..6565b66 100644
--- a/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/ModuleInstallerSupport.java
+++ b/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/ModuleInstallerSupport.java
@@ -107,7 +107,7 @@
             final String resolveTitle = displayName != null
                     ? resolve_title_single(displayName) : resolve_title();
 
-            final ProgressHandle handle = ProgressHandleFactory.createHandle(searchMessage);
+            final ProgressHandle handle = ProgressHandle.createHandle(searchMessage);
             initButtons();
             final DialogDescriptor searching = new DialogDescriptor(searchingPanel(new JLabel(searchMessage),
                     ProgressHandleFactory.createProgressComponent(handle)), resolveTitle, true, null);
diff --git a/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/api/PluginManager.java b/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/api/PluginManager.java
index 7505e8d..2bf0d0e 100644
--- a/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/api/PluginManager.java
+++ b/platform/autoupdate.ui/src/org/netbeans/modules/autoupdate/ui/api/PluginManager.java
@@ -30,6 +30,7 @@
 import org.netbeans.api.autoupdate.OperationContainer;
 import org.netbeans.api.autoupdate.OperationContainer.OperationInfo;
 import org.netbeans.api.autoupdate.OperationException;
+import org.netbeans.api.autoupdate.PluginInstaller;
 import org.netbeans.api.autoupdate.UpdateManager;
 import org.netbeans.api.autoupdate.UpdateUnit;
 import org.netbeans.modules.autoupdate.ui.ModuleInstallerSupport;
@@ -58,8 +59,8 @@
      * <p>
      * Single module installation can be handled easily by
      * {@link #installSingle(java.lang.String, java.lang.String, java.lang.Object[])}.
-<pre>
-{@link OperationContainer}<InstallSupport> container = OperationContainer.createForInstall();
+<pre><code>
+{@link OperationContainer}&lt;InstallSupport&gt; container = OperationContainer.createForInstall();
 for ({@link UpdateUnit} u : {@link UpdateManager#getUpdateUnits(org.netbeans.api.autoupdate.UpdateManager.TYPE[]) UpdateManager.getDefault().getUpdateUnits(UpdateManager.TYPE.MODULE)}) {
     if (u.getCodeName().matches("org.my.favorite.module")) {
         if (u.getAvailableUpdates().isEmpty()) {
@@ -69,7 +70,7 @@
     }
 }
 PluginManager.openInstallWizard(container);
-</pre>
+</code></pre>
      *
      * @param container the container with list of modules for install
      * @return true if all the requested modules were successfully installed,
@@ -162,7 +163,11 @@
      * and blocks (until the user clicks through), so either call from AWT dispatch
      * thread directly, or be sure you hold no locks and block no progress of other
      * threads to avoid deadlocks.
-     *
+     * <p>
+     * Although the method is not deprecated, modules that <b>only uses PluginManager.install</b> to
+     * install additional plugins should now depend on <code>autoupdate.services</code> directly,
+     * and use {@link PluginInstaller#install} to reduce UI dependencies.
+     * 
      * @param codenamebases the codenamebases of modules to install; must contain at least
      *             one codenamebase
      * @param alternativeOptions alternative options possibly displayed in error
diff --git a/platform/core.multiview/src/org/netbeans/core/spi/multiview/text/MultiViewEditorElement.java b/platform/core.multiview/src/org/netbeans/core/spi/multiview/text/MultiViewEditorElement.java
index 3def348..46274ba 100644
--- a/platform/core.multiview/src/org/netbeans/core/spi/multiview/text/MultiViewEditorElement.java
+++ b/platform/core.multiview/src/org/netbeans/core/spi/multiview/text/MultiViewEditorElement.java
@@ -50,7 +50,7 @@
  * to continue to call super implementation) and register the
  * subclass.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 1.24
  */
 public class MultiViewEditorElement implements 
diff --git a/platform/core.netigso/src/org/netbeans/core/netigso/spi/BundleContent.java b/platform/core.netigso/src/org/netbeans/core/netigso/spi/BundleContent.java
index c1c0b89..8a3035a 100644
--- a/platform/core.netigso/src/org/netbeans/core/netigso/spi/BundleContent.java
+++ b/platform/core.netigso/src/org/netbeans/core/netigso/spi/BundleContent.java
@@ -24,7 +24,7 @@
 /** Interface to represent anyone capable of providing real content from
  * a bundle.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 1.3
  */
 public interface BundleContent {
diff --git a/platform/core.netigso/src/org/netbeans/core/netigso/spi/NetigsoArchive.java b/platform/core.netigso/src/org/netbeans/core/netigso/spi/NetigsoArchive.java
index 1962569..ce25ec0 100644
--- a/platform/core.netigso/src/org/netbeans/core/netigso/spi/NetigsoArchive.java
+++ b/platform/core.netigso/src/org/netbeans/core/netigso/spi/NetigsoArchive.java
@@ -34,7 +34,7 @@
  * an associated {@link BundleContent} implementation. Then you can read
  * cached content of your bundles via {@link #fromArchive(java.lang.String)}.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 1.3
  */
 public final class NetigsoArchive {
diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacHelperMethodsNetscape.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacHelperMethodsNetscape.java
index 8531e98..d06e938 100644
--- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacHelperMethodsNetscape.java
+++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacHelperMethodsNetscape.java
@@ -256,7 +256,7 @@
      * <br>
      * @param args up to max 3 arguments
      * @return 
-     * @see org.netbeans.network.proxy.pac.datetime.PacUtilsDateTime#WEEKDAY_NAMES
+     * @see org.netbeans.core.network.proxy.pac.datetime.PacUtilsDateTime#WEEKDAY_NAMES
      */
     public boolean weekdayRange(Object... args);
 
@@ -279,7 +279,6 @@
      * Even if not shown above, the {@code gmt} parameter can always be
      * added as an (optional) last parameter.
      * 
-     * <p>
      * <ul>
      *    <li>{@code day} is the day of month between 1 and 31 (as an integer).
      *    </li>
@@ -320,7 +319,7 @@
      *     true from beginning of year 1995 until the end of year 1997.
      * </pre>
      * 
-     * @see org.netbeans.network.proxy.pac.datetime.PacUtilsDateTime#MONTH_NAMES
+     * @see org.netbeans.core.network.proxy.pac.datetime.PacUtilsDateTime#MONTH_NAMES
      * @param args
      * @return 
      */
@@ -339,7 +338,6 @@
      * </pre>
      * Even if not shown above, the {@code gmt} parameter can always be
      * added as an (optional) last parameter.
-     * <p>
      * <ul>
      *    <li>{@code hour} is the hour from 0 to 23. (0 is midnight, 23 is 11 pm.)
      *    </li>
diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacUtils.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacUtils.java
index c7b8a2f..41c6ab1 100644
--- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacUtils.java
+++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/PacUtils.java
@@ -30,7 +30,7 @@
 /**
  * Methods and constants useful in PAC script evaluation.
  * 
- * @see org.netbeans.network.proxy.pac.datetime.PacUtilsDateTime
+ * @see org.netbeans.core.network.proxy.pac.datetime.PacUtilsDateTime
  * 
  * @author lbruun
  */
@@ -54,17 +54,18 @@
      *
      * <p>
      * This method supports all GLOB wildcards, such as
-     * <table border="0" style="order-collapse: separate;border-spacing: 50px 0;" summary="">
-     * <tr align="left"><td>{@code *}</td><td>matches any number of any
+     * <table>
+     * <caption>Example of translation</caption>
+     * <tr><td>{@code *}</td><td>matches any number of any
      * characters including none</td>
-     * <tr align="left"><td>{@code ?}</td><td>matches any single character</td>
-     * <tr align="left"><td>{@code [abc]}</td><td>matches one character given in
+     * <tr><td>{@code ?}</td><td>matches any single character</td>
+     * <tr><td>{@code [abc]}</td><td>matches one character given in
      * the bracket</td>
-     * <tr align="left"><td>{@code [a-z]}</td><td>matches one character from the
+     * <tr><td>{@code [a-z]}</td><td>matches one character from the
      * range given in the bracket</td>
-     * <tr align="left"><td>{@code [!abc]}</td><td>matches one character
+     * <tr><td>{@code [!abc]}</td><td>matches one character
      * <i>not</i> given in the bracket</td>
-     * <tr align="left"><td>{@code [!a-z]}</td><td>matches one character
+     * <tr><td>{@code [!a-z]}</td><td>matches one character
      * <i>not</i> from the range given in the bracket</td>
      * </table>
      *
diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java
index 52def8a..551df3a 100644
--- a/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java
+++ b/platform/core.network/src/org/netbeans/core/network/proxy/pac/impl/NbPacScriptEvaluator.java
@@ -51,12 +51,15 @@
  * NetBeans implementation of a PAC script evaluator. This implementation
  * is the one returned by {@link NbPacScriptEvaluatorFactory}.
  *
- * <h3>Features comparison</h3>
+ * <p>
+ * <strong>Features comparison</strong>
+ * <p>
  * There are differences between how browsers have implemented the PAC
  * evaluation functionality. In the following the Apache NetBeans implementation
  * (this class) is pitched against some of the major browsers.<br><br>
  *
- * <table summary="" style="table-layout: fixed; width:100%;" border="1" cellpadding="10" cellspacing="0">
+ * <table>
+ *   <caption>Features comparison</caption>
  *   <tr><th class="tablersh">Behavior</th>
  *       <th>Apache<br>NetBeans</th>
  *       <th>Chrome<br>{@code 61.0.3163.100}</th>
@@ -167,7 +170,9 @@
  *    at finding the host's correct IP address, in particular on a multi-homed
  *    computer.
  *
- * <h3>Customization</h3>
+ * <p>
+ * <strong>Customization</strong>
+ * <p>
  * The implementation for
  * {@link org.netbeans.core.network.proxy.pac.PacHelperMethods PacHelperMethods} is
  * found via the global lookup. If you are unhappy with the implementation
diff --git a/platform/core.network/src/org/netbeans/core/network/utils/HostnameUtils.java b/platform/core.network/src/org/netbeans/core/network/utils/HostnameUtils.java
index 7ac2e9a..f9d31c4 100644
--- a/platform/core.network/src/org/netbeans/core/network/utils/HostnameUtils.java
+++ b/platform/core.network/src/org/netbeans/core/network/utils/HostnameUtils.java
@@ -36,8 +36,7 @@
      * name on the network.
      * 
      * <p>
-     * IMPLEMENTATION:
-     * <p>
+     * IMPLEMENTATION: 
      * <ul>
      *   <li>On Unix-like OSes (incl Mac OS X) this is the value as returned from
      *       the {@code gethostname()} function from the standard C Library. </li>
diff --git a/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java b/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java
index cded068..2062bfe 100644
--- a/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java
+++ b/platform/core.network/src/org/netbeans/core/network/utils/IpAddressUtils.java
@@ -207,7 +207,7 @@
 
     /**
      * Performs a name service lookup with a timeout. Same as 
-     * {@link #nameResolveArr(java.lang.String, int, org.netbeans.network.IpAddressUtils.IpTypePreference) nameResolveArr()}
+     * {@link #nameResolveArr(java.lang.String, int, IpTypePreference) nameResolveArr()}
      * but only returns a single address. 
      * 
      * @see #nameResolveArr(String, int, IpTypePreference) 
@@ -235,7 +235,7 @@
     
     /**
      * Performs a name service lookup with a timeout. Same as 
-     * {@link #nameResolveArr(java.lang.String, int, org.netbeans.network.IpAddressUtils.IpTypePreference) nameResolveArr()}
+     * {@link #nameResolveArr(java.lang.String, int, IpTypePreference) nameResolveArr()}
      * but only returns a single address and uses 
      * {@link IpTypePreference#ANY_JDK_PREF IpTypePreference.ANY_JDK_PREF}.
      * 
diff --git a/platform/core.network/src/org/netbeans/core/network/utils/LocalAddressUtils.java b/platform/core.network/src/org/netbeans/core/network/utils/LocalAddressUtils.java
index 96ac007..43c927a 100644
--- a/platform/core.network/src/org/netbeans/core/network/utils/LocalAddressUtils.java
+++ b/platform/core.network/src/org/netbeans/core/network/utils/LocalAddressUtils.java
@@ -47,7 +47,6 @@
 /**
  * Methods for determining the local host's own address. The methods provide
  * two benefits over the core JDK classes.:
- * <p>
  * <ul>
  *    <li><i>Caching</i>. Results from the methods are cached and can therefore
  *       be returned without blocking. An application should call 
@@ -250,13 +249,13 @@
      * Returns the addresses of the local host.
      * 
      * <p>This is achieved by retrieving the
-     * {@link org.netbeans.network.hname.HostnameUtils#getNetworkHostname() name-of-the-host} 
+     * {@link HostnameUtils#getNetworkHostname() name-of-the-host} 
      * from the system, then resolving that name into a list of {@code InetAddress}es. 
      * 
      * <p>This method returns a cached result and is therefore likely not to
      * block unless this is the first time this class is being referenced.
      * 
-     * @see org.netbeans.network.hname.HostnameUtils#getNetworkHostname()
+     * @see HostnameUtils#getNetworkHostname()
      * @see InetAddress#getAllByName(java.lang.String) 
      * @param ipTypePref filter
      * @return
diff --git a/platform/core.startup/arch.xml b/platform/core.startup/arch.xml
index 7a18ab7..befc257 100644
--- a/platform/core.startup/arch.xml
+++ b/platform/core.startup/arch.xml
@@ -704,7 +704,7 @@
         </question>
 -->
  <answer id="exec-reflection">
-        <api category="friend" group="java" name="Javeleon" type="import" url="https://netbeans.org/bugzilla/show_bug.cgi?id=195074">
+        <api category="friend" group="java" name="Javeleon" type="import" url="https://bz.apache.org/netbeans/show_bug.cgi?id=195074">
             <p>When present as a Java agent on the boot classpath, Javeleon is invoked reflectively to enhance module reloading.</p>
         </api>
  </answer>
diff --git a/platform/core.startup/src/org/netbeans/core/startup/AutomaticDependencies.java b/platform/core.startup/src/org/netbeans/core/startup/AutomaticDependencies.java
index 6038c03..639e59f 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/AutomaticDependencies.java
+++ b/platform/core.startup/src/org/netbeans/core/startup/AutomaticDependencies.java
@@ -58,8 +58,8 @@
  * Public for possible access from AU (see #29577).
  * Usage: see implementation of {@link ModuleInstaller#refineDependencies}.
  * @author Jesse Glick, with help from NB XML module
- * @see "#30161"
- * @see <a href="http://www.netbeans.org/dtds/module-auto-deps-1_0.dtd"><samp>-//NetBeans//DTD Module Automatic Dependencies 1.0//EN</samp></a>
+ * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=30161">30161</a>
+ * @see <a href="http://www.netbeans.org/dtds/module-auto-deps-1_0.dtd"><code>-//NetBeans//DTD Module Automatic Dependencies 1.0//EN</code></a>
  * @since org.netbeans.core/1 1.12
  */
 public final class AutomaticDependencies {
@@ -119,8 +119,8 @@
     /**
      * Create a list of transformations based on some XML files.
      * They must be valid (this method may not validate them).
-     * Doctype must be <samp>&lt;transformations&gt;</samp> from
-     * <samp>-//NetBeans//DTD Module Automatic Dependencies 1.0//EN</samp>.
+     * Doctype must be <code>&lt;transformations&gt;</code> from
+     * <code>-//NetBeans//DTD Module Automatic Dependencies 1.0//EN</code>.
      * @param urls the XML files
      * @throws SAXException if malformed
      * @throws IOException if unloadable
diff --git a/platform/core.startup/src/org/netbeans/core/startup/MainLookup.java b/platform/core.startup/src/org/netbeans/core/startup/MainLookup.java
index 148a162..9b32d10 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/MainLookup.java
+++ b/platform/core.startup/src/org/netbeans/core/startup/MainLookup.java
@@ -107,8 +107,8 @@
         l.changeLookups(newDelegates);
     }
 
-    /** Called when Lookup<ModuleInfo> is ready from the ModuleManager.
-     * @see "#28465"
+    /** Called when Lookup&lt;ModuleInfo&gt; is ready from the ModuleManager.
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=28465">28465</a>
      */
     public static final void moduleLookupReady(Lookup moduleLookup) {
         if (Lookup.getDefault() instanceof MainLookup) {
diff --git a/platform/core.startup/src/org/netbeans/core/startup/ModuleLifecycleManager.java b/platform/core.startup/src/org/netbeans/core/startup/ModuleLifecycleManager.java
index 1e65d5b..e30cfdc 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/ModuleLifecycleManager.java
+++ b/platform/core.startup/src/org/netbeans/core/startup/ModuleLifecycleManager.java
@@ -33,7 +33,7 @@
 /**
  * Rudimentary manager useful for non-GUI platform applications.
  * Superseded by NbLifecycleManager.
- * @see #158525
+ * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=158525">158525</a>
  */
 @ServiceProvider(service=LifecycleManager.class)
 public class ModuleLifecycleManager extends LifecycleManager {
diff --git a/platform/core.startup/src/org/netbeans/core/startup/NbPlaces.java b/platform/core.startup/src/org/netbeans/core/startup/NbPlaces.java
index 42e8057..8fc5475 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/NbPlaces.java
+++ b/platform/core.startup/src/org/netbeans/core/startup/NbPlaces.java
@@ -24,7 +24,7 @@
 
 /** Implementation of Places to deal with command line --cachedir argument.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 @ServiceProvider(service=Places.class)
 public final class NbPlaces extends Places {
diff --git a/platform/core.startup/src/org/netbeans/core/startup/layers/LayerCacheManager.java b/platform/core.startup/src/org/netbeans/core/startup/layers/LayerCacheManager.java
index b2914fd..ee12902 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/layers/LayerCacheManager.java
+++ b/platform/core.startup/src/org/netbeans/core/startup/layers/LayerCacheManager.java
@@ -46,7 +46,7 @@
 import org.openide.util.NbBundle;
 
 /** Interface for a manager which can handle XML layer caching.
- * @see "#20168"
+ * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=20168">20168</a>
  * @author Jesse Glick
  */
 public abstract class LayerCacheManager implements LayerFactory {
@@ -195,7 +195,7 @@
      * Should only be called when the cache directory is prepared.
      * The filesystem's contents should be modified.
      * The filesystem must have been originally produced by
-     * {@link #createEmptyFileSystem} or {@link #createLoadedFileSystem}.
+     * {@link #createEmptyFileSystem}.
      * Not called if the manager does not support loading;
      * otherwise must be overridden.
      */
@@ -204,7 +204,6 @@
     /**
      * Save a new cache to disk, load it, and return that filesystem.
      * @param urls list of type URL; earlier layers can override later layers
-     * @return a new filesystem with the specified contents
      * Not called if the manager supports loading;
      * otherwise must be overridden.
      */
diff --git a/platform/core.startup/src/org/netbeans/core/startup/layers/SessionManager.java b/platform/core.startup/src/org/netbeans/core/startup/layers/SessionManager.java
index 4aee208..6e60f24 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/layers/SessionManager.java
+++ b/platform/core.startup/src/org/netbeans/core/startup/layers/SessionManager.java
@@ -71,7 +71,7 @@
     * @param homeDir directory where netbeans has been installed, user need not have write access
     * @param extradirs 0+ extra dirs to add; cf. #27151
     * @return repository
-    * @exception PropertyVetoException if something fails
+    * @exception java.beans.PropertyVetoException if something fails
     */
     public FileSystem create(File userDir, File homeDir, File[] extradirs)
     throws java.beans.PropertyVetoException, IOException {
@@ -89,7 +89,7 @@
     
     /** get a layer associated with the name
      * @param name layer name (LAYER_SESSION, ...)
-     * @return layer, can be <code>null</null>
+     * @return layer, can be <code>null</code>
      */
     public FileSystem getLayer(String name) {
         return layers.get(name);
diff --git a/platform/core.startup/src/org/netbeans/core/startup/package.html b/platform/core.startup/src/org/netbeans/core/startup/package.html
index cd4085d..b22c02f 100644
--- a/platform/core.startup/src/org/netbeans/core/startup/package.html
+++ b/platform/core.startup/src/org/netbeans/core/startup/package.html
@@ -84,7 +84,7 @@
   <p>{@link org.netbeans.core.modules.TestModuleDeployer} is a service available via lookup
   which deploys test modules; accessible separately with a thin API for use by modules
   such as the API Support.
-  <p>{@link AutomaticDependencies} is used to parse XML files constrained by <a href="http://www.netbeans.org/dtds/module-auto-deps-1_0.dtd"><samp>module-auto-deps-1_0.dtd</samp></a>
+  <p>{@link org.netbeans.core.stratup.AutomaticDependencies} is used to parse XML files constrained by <a href="http://www.netbeans.org/dtds/module-auto-deps-1_0.dtd"><samp>module-auto-deps-1_0.dtd</samp></a>
   and automatically update dependencies used by old modules as a result. This is very
   useful for maintaining backward compatibility across major refactorings.
   <p>Also of interest: {@link org.netbeans.core.ui.ModuleBean} provides a Swing-safe UI
diff --git a/platform/o.n.bootstrap/arch.xml b/platform/o.n.bootstrap/arch.xml
index 4ca45f7..87508d9 100644
--- a/platform/o.n.bootstrap/arch.xml
+++ b/platform/o.n.bootstrap/arch.xml
@@ -190,7 +190,7 @@
                         group="java.io.File" 
                         name="nbexec" 
                         type="export" 
-                        url="http://platform.netbeans.org/articles/installation.html#launcher"
+                        url="https://netbeans.apache.org/projects/platform/articles/installation.html#launcher"
                     /> launcher is fully featured and
                     supported. It should work on any Unix flavor. Implemented as
                     a shell script. 
@@ -215,7 +215,7 @@
                         group="java.io.File" 
                         name="nbexec.exe" 
                         type="export" 
-                        url="http://platform.netbeans.org/articles/installation.html#launcher"
+                        url="https://netbeans.apache.org/projects/platform/articles/installation.html#launcher"
                     />
                     launcher is fully featured and
                     supported. <!-- <samp>runidew.exe</samp> is similar but avoids
@@ -282,7 +282,7 @@
 -->
     <answer id="deploy-nbm">
         As part of core. But <a
-        href="http://www.netbeans.org/issues/show_bug.cgi?id=24361">not on
+        href="https://bz.apache.org/netbeans/show_bug.cgi?id=24361">not on
         Windows</a>.
     </answer>
 
@@ -477,7 +477,7 @@
             <li>
                 <api type="export" group="systemproperty" name="netbeans.dirs" category="friend">
                     Additional secondary NetBeans installation directories as proposed in <a
-                    href="https://platform.netbeans.org/articles/installation.html">installation structure</a>
+                    href="https://netbeans.apache.org/projects/platform/articles/installation.html">installation structure</a>
                     design document.
                 </api>
             </li>
@@ -684,7 +684,7 @@
             <li>
                 <api type="export" group="cli" name="--fontsize" category="deprecated">
                     Specify base fontsize. Deprecated in favor of using <a
-                    href="http://ui.netbeans.org/docs/ui/themes/themes.html">themes</a>
+                    href="https://netbeans.apache.org/projects/ui/themes/themes.html">themes</a>
                     which is much more general. But this is a convenient quick
                     settings, handy for projection screens and so on.
                 </api>
@@ -759,7 +759,7 @@
         load from JARs is rather buggy when it comes to changing or removing the
         JAR during the JVM session.
         </p>
-        <api category="friend" group="java" name="Javeleon" type="import" url="https://netbeans.org/bugzilla/show_bug.cgi?id=195074">
+        <api category="friend" group="java" name="Javeleon" type="import" url="https://bz.apache.org/netbeans/show_bug.cgi?id=195074">
             <p>When present as a Java agent on the boot classpath, Javeleon is invoked reflectively to enhance module reloading.</p>
         </api>
     </answer>
@@ -1410,7 +1410,7 @@
         <a name="usecase-invalidate.cache"></a>
         <p>
             NetBeans Module system is optimized to eliminate useless I/O
-            operations on start (as a result the <a href="http://netbinox.apidesign.org">
+            operations on start (as a result the <a href="http://wiki.apidesign.org/wiki/Netbinox">
             embedded OSGi container</a> is fastest on the planet -- with respect to 
             application start up time). This is achieved by caching information
             known to have been needed in previous starts and using it
@@ -1427,7 +1427,7 @@
             Together, working in orchestration, they eliminate the need to
             touch the disk (which is very slow operation especially during
             <a href="http://wiki.apidesign.org/wiki/Startup#Morning_Launch">morning launch</a>).
-            Btw. there is a <a href="http://hg.netbeans.org/releases/file/cdbdc70050a8/core.startup/test/unit/src/org/netbeans/core/startup/layers/CachingPreventsFileTouchesTest.java">
+            Btw. there is a <a href="https://github.com/apache/netbeans/tree/master/platform/core.startup/test/unit/src/org/netbeans/core/startup/layers/CachingPreventsFileTouchesTest.java">
             test which verifies</a> 
             the caching system really works
             -- it is recommended for each product built on top of NetBeans Platform
diff --git a/platform/o.n.bootstrap/manifest.mf b/platform/o.n.bootstrap/manifest.mf
index 75ae0c4..0a534f0 100644
--- a/platform/o.n.bootstrap/manifest.mf
+++ b/platform/o.n.bootstrap/manifest.mf
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0
 OpenIDE-Module: org.netbeans.bootstrap/1
-OpenIDE-Module-Specification-Version: 2.98
+OpenIDE-Module-Specification-Version: 2.99
 OpenIDE-Module-Localizing-Bundle: org/netbeans/Bundle.properties
 OpenIDE-Module-Recommends: org.netbeans.NetigsoFramework
 
diff --git a/platform/o.n.bootstrap/src/org/netbeans/CLIHandler.java b/platform/o.n.bootstrap/src/org/netbeans/CLIHandler.java
index 5e2bf4a..20817f8 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/CLIHandler.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/CLIHandler.java
@@ -55,12 +55,12 @@
  * Command Line Interface and User Directory Locker support class.
  * Subclasses may be registered into the system to handle special command-line options.
  * To be registered, use {@link org.openide.util.lookup.ServiceProvider}
- * in a JAR file in the startup or dynamic class path (e.g. <samp>lib/ext/</samp>
- * or <samp>lib/</samp>).
+ * in a JAR file in the startup or dynamic class path (e.g. <code>lib/ext/</code>
+ * or <code>lib/</code>).
  * @author Jaroslav Tulach
  * @since org.netbeans.core/1 1.18
  * @see "#32054"
- * @see <a href="http://openide.netbeans.org/proposals/arch/cli.html">Specification</a>
+ * @see <a href="https://netbeans.apache.org/projects/platform/openide/proposals/arch/cli.html">Specification</a>
  */
 public abstract class CLIHandler extends Object {
     /** lenght of the key used for connecting */
diff --git a/platform/o.n.bootstrap/src/org/netbeans/Events.java b/platform/o.n.bootstrap/src/org/netbeans/Events.java
index b3932f4..ba53121 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/Events.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/Events.java
@@ -59,23 +59,23 @@
     public static final String FINISH_DEPLOY_TEST_MODULE = "finishDeployTestModule"; // NOI18N
     /** Module toDelete */
     public static final String DELETE_MODULE = "deleteModule"; // NOI18N
-    /** List<Module> toEnable */
+    /** List&lt;Module&gt; toEnable */
     public static final String START_ENABLE_MODULES = "startEnableModules"; // NOI18N
-    /** List<Module> toEnable */
+    /** List&lt;Module&gt; toEnable */
     public static final String FINISH_ENABLE_MODULES = "finishEnableModules"; // NOI18N
-    /** List<Module> toDisable */
+    /** List&lt;Module&gt; toDisable */
     public static final String START_DISABLE_MODULES = "startDisableModules"; // NOI18N
-    /** List<Module> toDisable */
+    /** List&lt;Module&gt; toDisable */
     public static final String FINISH_DISABLE_MODULES = "finishDisableModules"; // NOI18N
     /** Module prepared */
     public static final String PREPARE = "prepare"; // NOI18N
-    /** List<Module> loaded */
+    /** List&lt;Module&gt; loaded */
     public static final String START_LOAD = "startLoad"; // NOI18N
-    /** List<Module> loaded */
+    /** List&lt;Module&gt; loaded */
     public static final String FINISH_LOAD = "finishLoad"; // NOI18N
-    /** List<Module> unloaded */
+    /** List&lt;Module&gt; unloaded */
     public static final String START_UNLOAD = "startUnload"; // NOI18N
-    /** List<Module> unloaded */
+    /** List&lt;Module&gt; unloaded */
     public static final String FINISH_UNLOAD = "finishUnload"; // NOI18N
     /** Module installed */
     public static final String INSTALL = "install"; // NOI18N
@@ -91,27 +91,27 @@
     public static final String CLOSE = "close"; // NOI18N
     /** no args */
     public static final String START_READ = "startRead"; // NOI18N
-    /** Set<Module> found */
+    /** Set&lt;Module&gt; found */
     public static final String FINISH_READ = "finishRead"; // NOI18N
     /** FileObject */
     public static final String MODULES_FILE_PROCESSED = "modulesFileProcessed"; // NOI18N
     /** Integer */
     public static final String MODULES_FILE_SCANNED = "modulesFileScanned"; // NOI18N
-    /** Set<Module> toInstall */
+    /** Set&lt;Module&gt; toInstall */
     public static final String START_AUTO_RESTORE = "startAutoRestore"; // NOI18N
-    /** Set<Module> toInstall */
+    /** Set&lt;Module&gt; toInstall */
     public static final String FINISH_AUTO_RESTORE = "finishAutoRestore"; // NOI18N
-    /** Set<Module> notInstalled */
+    /** Set&lt;Module&gt; notInstalled */
     public static final String FAILED_INSTALL_NEW = "failedInstallNew"; // NOI18N
     /** Module notInstalled, InvalidException problem */
     public static final String FAILED_INSTALL_NEW_UNEXPECTED = "failedInstallNewUnexpected"; // NOI18N
-    /** Set<Module> modules */
+    /** Set&lt;Module&gt; modules */
     public static final String LOAD_LAYERS = "loadLayers"; // NOI18N
-    /** Set<Module> modules */
+    /** Set&lt;Module&gt; modules */
     public static final String UNLOAD_LAYERS = "unloadLayers"; // NOI18N
     /** Module culprit, Class offending, ClassLoader expected */
     public static final String WRONG_CLASS_LOADER = "wrongClassLoader"; // NOI18N
-    /** File extension, Set<File> owners */
+    /** File extension, Set&lt;File&gt;owners */
     public static final String EXTENSION_MULTIPLY_LOADED = "extensionMultiplyLoaded"; // NOI18N
     /** File nonexistentJar */
     public static final String MISSING_JAR_FILE = "missingJarFile"; // NOI18N
diff --git a/platform/o.n.bootstrap/src/org/netbeans/Module.java b/platform/o.n.bootstrap/src/org/netbeans/Module.java
index 45dffce..ff81bba 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/Module.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/Module.java
@@ -63,7 +63,7 @@
     /** event logging (should not be much here) */
     protected final Events events;
     /** associated history object
-     * @see ModuleHistory
+     * @see <a href="@org-netbeans-core-startup@/org/netbeans/core/startup/ModuleHistory.html">ModuleHistory</a>
      */
     private final Object history;
     /** true if currently enabled; manipulated by ModuleManager */
@@ -203,7 +203,7 @@
      * permanently beyond the existence of its JAR file;
      * it is enabled when some real module needs it to be,
      * and disabled when this is no longer the case.
-     * @see <a href="http://www.netbeans.org/issues/show_bug.cgi?id=9779">#9779</a>
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=9779">#9779</a>
      */
     public boolean isAutoload() {
         return autoload;
@@ -215,7 +215,7 @@
      * its dependencies. This may be used to implement "bridge" modules with
      * simple functionality that just depend on two normal modules.
      * A module may not be simultaneously eager and autoload.
-     * @see <a href="http://www.netbeans.org/issues/show_bug.cgi?id=17501">#17501</a>
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=17501">#17501</a>
      * @since org.netbeans.core/1 1.3
      */
     public boolean isEager() {
@@ -440,7 +440,7 @@
 
     /** Turn off the classloader and release all resources. */
     protected abstract void classLoaderDown();
-    /** Should be called after turning off the classloader of one or more modules & GC'ing. */
+    /** Should be called after turning off the classloader of one or more modules &amp; GC'ing. */
     protected abstract void cleanup();
     
     /** Notify the module that it is being deleted. */
@@ -520,7 +520,7 @@
     }
     
     /** Get the history object representing what has happened to this module before.
-     * @see org.netbeans.core.startup.ModuleHistory
+     * @see <a href="@org-netbeans-core-startup@/org/netbeans/core/startup/ModuleHistory.html">ModuleHistory</a>
      */
     public final Object getHistory() {
         return history;
@@ -619,7 +619,7 @@
      * @see Module#getPublicPackages
      */
     public static final class PackageExport {
-        /** Package to export, in the form <samp>org/netbeans/modules/foo/</samp>. */
+        /** Package to export, in the form <code>org/netbeans/modules/foo/</code>. */
         public final String pkg;
         /** If true, export subpackages also. */
         public final boolean recursive;
diff --git a/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java b/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java
index 3e15e51..5654999 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java
@@ -19,6 +19,7 @@
 
 package org.netbeans;
 
+import java.awt.GraphicsEnvironment;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.io.ByteArrayInputStream;
@@ -57,6 +58,7 @@
 import java.util.concurrent.Future;
 import java.util.jar.Manifest;
 import java.util.logging.Level;
+import java.util.logging.Logger;
 import org.openide.modules.Dependency;
 import org.openide.modules.ModuleInfo;
 import org.openide.modules.Modules;
@@ -80,6 +82,11 @@
  * @author Jesse Glick
  */
 public final class ModuleManager extends Modules {
+    /**
+     * Used for dependency logging. Use -J-Dorg.netbeans.ModuleManager.deps.level=500 to enable. For brute-force extractions from the log,
+     * use {@code grep DEP: messages.log | cut -d : -f3- | sort | uniq}. The output is in "dot" format, just enclose in digraph block.
+     */
+    private static final Logger DEPLOG = Logger.getLogger(ModuleManager.class.getName() + ".deps");
 
     public static final String PROP_MODULES = "modules"; // NOI18N
     public static final String PROP_ENABLED_MODULES = "enabledModules"; // NOI18N
@@ -114,6 +121,11 @@
 
     // modules providing a given requires token; set may never be empty
     private final ProvidersOf providersOf = new ProvidersOf();
+    
+    /**
+     * Generic tokens provided "by the environment". Initially only one token is defined, <code>"netbeans:gui.swing"</code>
+     */
+    private final Set<String> environmentTokens = new HashSet<>();
 
     private final ModuleInstaller installer;
     private ModuleFactory moduleFactory;
@@ -166,6 +178,13 @@
                 moduleFactory.getClasspathDelegateClassLoader(this, 
                     ModuleManager.class.getClassLoader()));
         }
+        initializeEnvTokens();
+    }
+    
+    private void initializeEnvTokens() {
+        if (!GraphicsEnvironment.isHeadless()) {
+            environmentTokens.add("netbeans:gui.swing");
+        }
     }
 
     /** Access for ManifestSection.
@@ -954,7 +973,7 @@
      * `parent'. The parent is identified either by module specification (parent) or by a classloader
      * which should load the package. For system or bootstrap classes, `parent' may be {@code null}, since
      * boostrap classloaders load more modules together.
-     * <p/>
+     * <p>
      * If <b>both</b> `parent' and `ldr' are {@code null}, access to system/application classpath will be checked.
      * 
      * @param m module that attempts to load resources.
@@ -1130,7 +1149,7 @@
      * Removes a fragment module. Throws an exception if the fragment's
      * host is already enabled and its classloader may have loaded fragment's
      * contents.
-     * <p/>
+     * <p>
      * The method does nothing for non-fragment modules
      * 
      * @param m the module to remove
@@ -1680,7 +1699,8 @@
             }
             if (m.isEnabled()) throw new IllegalModuleException(IllegalModuleException.Reason.SIMULATE_ENABLE_ALREADY, m);
             if (!m.isValid()) throw new IllegalModuleException(IllegalModuleException.Reason.SIMULATE_ENABLE_INVALID, m);
-            maybeAddToEnableList(willEnable, modules, m, true);
+            addedBecauseOfDependent = null;
+            maybeAddToEnableList(willEnable, modules, m, true, null);
         }
         // XXX clumsy but should work:
         Set<Module> stillDisabled = new HashSet<Module>(this.modules);
@@ -1742,7 +1762,11 @@
         return false;
     }
     
-    private void maybeAddToEnableList(Set<Module> willEnable, Set<Module> mightEnable, Module m, boolean okToFail) {
+    private Module addedBecauseOfDependent;
+    private boolean eagerActivation;
+    private Set<Module> reported = new HashSet<>();
+    
+    private void maybeAddToEnableList(Set<Module> willEnable, Set<Module> mightEnable, Module m, boolean okToFail, String reason) {
         if (! missingDependencies(m).isEmpty()) {
             if (!okToFail) {
                 Util.err.warning("Module " + m + " had unexpected problems: " + missingDependencies(m));
@@ -1751,74 +1775,97 @@
             // Cannot satisfy its dependencies, exclude it.
             return;
         }
+        if (reported.add(m)) {
+            if (addedBecauseOfDependent == null) {
+                DEPLOG.log(Level.FINE, "DEP: \"" + m.getCodeNameBase() + '"' + (eagerActivation ? "[color=cornsilk]" : ""));
+            } else if (!addedBecauseOfDependent.getCodeNameBase().equals(m.getCodeNameBase())) {
+                DEPLOG.log(Level.FINE, "DEP: \"" + addedBecauseOfDependent.getCodeNameBase() + "\" "+ "->\""  
+                        + (reason != null ? "[label=\"" + reason + "\"]" : "")
+                        + " " + m.getCodeNameBase() + '"');
+            }
+        }
+
         if (!willEnable.add(m)) {
             // Already there, done.
             return;
         }
-        // need to register fragments eagerly, so they are available during
-        // dependency sort
-        Module host = attachModuleFragment(m);
-        if (host != null && !host.isEnabled()) {
-            maybeAddToEnableList(willEnable, mightEnable, host, okToFail);
-        }
-        // Also add anything it depends on, if not already there,
-        // or already enabled.
-        for (Dependency dep : m.getDependenciesArray()) {
-            if (dep.getType() == Dependency.TYPE_MODULE) {
-                String codeNameBase = (String)Util.parseCodeName(dep.getName())[0];
-                Module other = get(codeNameBase);
-                // Should never happen:
-                if (other == null) throw new IllegalStateException("Should have found module: " + codeNameBase); // NOI18N
-                if (! other.isEnabled()) {
-                    maybeAddToEnableList(willEnable, mightEnable, other, false);
-                }
-            } else if (
-                dep.getType() == Dependency.TYPE_REQUIRES || 
-                dep.getType() == Dependency.TYPE_NEEDS ||
-                dep.getType() == Dependency.TYPE_RECOMMENDS
-            ) {
-                Set<Module> providers = getProvidersOf().get(dep.getName());
-                if (providers == null) {
-                    assert dep.getType() == Dependency.TYPE_RECOMMENDS : "Should have found a provider of " + dep;
-                    continue;
-                }
-                // First check if >= 1 is already enabled or will be soon. If so, great.
-                boolean foundOne = false;
-                for (Module other : providers) {
-                    if (other.isEnabled() ||
-                            (other.getProblems().isEmpty() && mightEnable.contains(other))) {
-                        foundOne = true;
-                        break;
-                    }
-                }
-                if (foundOne) {
-                    // OK, we are satisfied.
-                    continue;
-                }
-                // All disabled. So add them all to the enable list.
-                for (Module other : providers) {
-                    // It is OK if one of them fails.
-                    maybeAddToEnableList(willEnable, mightEnable, other, true);
-                    // But we still check to ensure that at least one did not!
-                    if (!foundOne && willEnable.contains(other)) {
-                        foundOne = true;
-                        // and continue with the others, try to add them too...
-                    }
-                }
-                // Logic is that missingDependencies(m) should contain dep in this case.
-                assert foundOne || dep.getType() == Dependency.TYPE_RECOMMENDS : "Should have found a nonproblematic provider of " + dep + " among " + providers + " with willEnable=" + willEnable + " mightEnable=" + mightEnable;
+        Module outer = addedBecauseOfDependent;
+        boolean outerEagerActivatioon = eagerActivation;
+        Set<Module> outerReported = reported;
+        try {
+            reported = new HashSet<>();
+            addedBecauseOfDependent = m;
+            // need to register fragments eagerly, so they are available during
+            // dependency sort
+            Module host = attachModuleFragment(m);
+            if (host != null && !host.isEnabled()) {
+                maybeAddToEnableList(willEnable, mightEnable, host, okToFail, "Fragment host");
             }
-            // else some other kind of dependency that does not concern us
-        }
-        Collection<Module> frags = getAttachedFragments(m);
-        for (Module fragMod : frags) {
-            // do not enable regular fragments unless eager: if something depends on a fragment, it will 
-            // enable the fragment along with normal dependencies.
-            if (fragMod.isEager()) {
-                maybeAddToEnableList(willEnable, mightEnable, fragMod, fragMod.isAutoload() || fragMod.isEager());
+            
+            // Also add anything it depends on, if not already there,
+            // or already enabled.
+            for (Dependency dep : m.getDependenciesArray()) {
+                if (dep.getType() == Dependency.TYPE_MODULE) {
+                    String codeNameBase = (String)Util.parseCodeName(dep.getName())[0];
+                    Module other = get(codeNameBase);
+                    // Should never happen:
+                    if (other == null) throw new IllegalStateException("Should have found module: " + codeNameBase); // NOI18N
+                    if (! other.isEnabled()) {
+                        maybeAddToEnableList(willEnable, mightEnable, other, false, null);
+                    }
+                } else if (
+                    dep.getType() == Dependency.TYPE_REQUIRES || 
+                    dep.getType() == Dependency.TYPE_NEEDS ||
+                    dep.getType() == Dependency.TYPE_RECOMMENDS
+                ) {
+                    Set<Module> providers = getProvidersOf().get(dep.getName());
+                    if (providers == null) {
+                        assert dep.getType() == Dependency.TYPE_RECOMMENDS : "Should have found a provider of " + dep;
+                        continue;
+                    }
+                    // First check if >= 1 is already enabled or will be soon. If so, great.
+                    boolean foundOne = false;
+                    for (Module other : providers) {
+                        if (other.isEnabled() ||
+                                (other.getProblems().isEmpty() && mightEnable.contains(other))) {
+                            foundOne = true;
+                            break;
+                        }
+                    }
+                    if (foundOne) {
+                        // OK, we are satisfied.
+                        continue;
+                    }
+                    // All disabled. So add them all to the enable list.
+                    for (Module other : providers) {
+                        // It is OK if one of them fails.
+                        maybeAddToEnableList(willEnable, mightEnable, other, true, (dep.getName().startsWith("cnb.") ? null : "Provides " + dep.getName()));
+                        // But we still check to ensure that at least one did not!
+                        if (!foundOne && willEnable.contains(other)) {
+                            foundOne = true;
+                            // and continue with the others, try to add them too...
+                        }
+                    }
+                    // Logic is that missingDependencies(m) should contain dep in this case.
+                    assert foundOne || dep.getType() == Dependency.TYPE_RECOMMENDS : "Should have found a nonproblematic provider of " + dep + " among " + providers + " with willEnable=" + willEnable + " mightEnable=" + mightEnable;
+                }
+                // else some other kind of dependency that does not concern us
             }
+            Collection<Module> frags = getAttachedFragments(m);
+            for (Module fragMod : frags) {
+                // do not enable regular fragments unless eager: if something depends on a fragment, it will 
+                // enable the fragment along with normal dependencies.
+                if (fragMod.isEager()) {
+                    maybeAddToEnableList(willEnable, mightEnable, fragMod, fragMod.isAutoload() || fragMod.isEager(), "Fragment");
+                }
+            }
+        } finally {
+            reported = outerReported;
+            addedBecauseOfDependent = outer;
+            eagerActivation = outerEagerActivatioon;
         }
     }
+    
     private boolean searchForPossibleEager(Set<Module> willEnable, Set<Module> stillDisabled, Set<Module> mightEnable) {
         // Check for any eagers in stillDisabled which could be enabled based
         // on currently enabled modules and willEnable. For any such, remove from
@@ -1849,7 +1896,12 @@
                     // Go for it!
                     found = true;
                     it.remove();
-                    maybeAddToEnableList(willEnable, mightEnable, m, false);
+                    eagerActivation = true;
+                    try {
+                        maybeAddToEnableList(willEnable, mightEnable, m, false, "Eager");
+                    } finally {
+                        eagerActivation = false;
+                    }
                 }
             }
         }
diff --git a/platform/o.n.bootstrap/src/org/netbeans/NetigsoFramework.java b/platform/o.n.bootstrap/src/org/netbeans/NetigsoFramework.java
index b03a22f..21802af 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/NetigsoFramework.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/NetigsoFramework.java
@@ -35,7 +35,7 @@
 /** This class contains abstracted calls to OSGi provided by core.netigso
  * module. No other module can implement this class, except core.netigso.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 public abstract class NetigsoFramework {
     private ModuleManager mgr;
@@ -135,7 +135,7 @@
     //
     
     /** Get an array of bytes from archive. If not found, it remembers the
-     * request and later calls {@link #toArchive(java.lang.String, java.lang.String)}
+     * request and later calls <code>#toArchive(java.lang.String, java.lang.String)</code>
      * method to store it for next time.
      *
      * @param name name of the resource inside the JAR
@@ -170,7 +170,7 @@
     
     /** Gives OSGi support access to NetBeans bytecode manipulation libraries.
      * They are built over {@link Instrumentation} specification 
-     * read more at <a href="@TOP@architecture-overview.html#usecase-bytecode.patching">
+     * read more at <a href="@TOP@/architecture-summary.html#usecase-patch">
      * architecture document</a>.
      * 
      * @param l the classloader that is loading the class
diff --git a/platform/o.n.bootstrap/src/org/netbeans/PatchByteCode.java b/platform/o.n.bootstrap/src/org/netbeans/PatchByteCode.java
index 074d8a7..0da8351 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/PatchByteCode.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/PatchByteCode.java
@@ -163,7 +163,7 @@
     }
     /**
      * Patches a class if it is needed.
-     * @param arr the bytecode
+     * @param data the bytecode
      * @return the enhanced bytecode
      */
     public static byte[] patch(byte[] data) {
diff --git a/platform/o.n.bootstrap/src/org/netbeans/ProxyClassLoader.java b/platform/o.n.bootstrap/src/org/netbeans/ProxyClassLoader.java
index e64180d..0f72833 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/ProxyClassLoader.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/ProxyClassLoader.java
@@ -106,7 +106,7 @@
          
     /**
      * Loads the class with the specified name.  The implementation of
-     * this method searches for classes in the following order:<p>
+     * this method searches for classes in the following order:
      * <ol>
      * <li> Looks for a known package and pass the loading to the ClassLoader 
             for that package. 
@@ -450,7 +450,6 @@
     /**
      * Faster way to find a package.
      * @param name package name in org.netbeans.modules.foo format
-     * @param sname package name in org/netbeans/modules/foo/ format
      * @param recurse whether to also ask parents
      * @return located package, or null
      */
diff --git a/platform/o.n.bootstrap/src/org/netbeans/Stamps.java b/platform/o.n.bootstrap/src/org/netbeans/Stamps.java
index 7e8ec50..f274d5d 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/Stamps.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/Stamps.java
@@ -62,7 +62,7 @@
  * Support for optimal checking of time stamps of certain files in
  * NetBeans directory structure. 
  *
- * @author Jaroslav Tulach <jaroslav.tulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jaroslav.tulach@netbeans.org&gt;
  * @since 2.9
  */
 public final class Stamps {
@@ -133,7 +133,7 @@
     }
     
     /** Opens the access to cache object as a stream.
-     * @param name name of the cache
+     * @param cache name of the cache
      * @return stream to read from the cache or null if the cache is not valid
      */
     public InputStream asStream(String cache) {
@@ -157,7 +157,7 @@
      */
    
     /** Opens the access to cache object as a stream.
-     * @param name name of the cache
+     * @param cache name of the cache
      * @return stream to read from the cache or null if the cache is not valid
      */
     public ByteBuffer asByteBuffer(String cache) {
@@ -213,7 +213,7 @@
     
     /** Method for registering updates to caches.
      * @param updater the callback to start when flushing caches
-     * @param file name of the file to store the cache into
+     * @param cache name of the file to store the cache into
      * @param append write from scratch or append?
      */
     public void scheduleSave(Updater updater, String cache, boolean append) {
diff --git a/platform/o.n.bootstrap/src/org/netbeans/StandardModule.java b/platform/o.n.bootstrap/src/org/netbeans/StandardModule.java
index 52ab00b..e524661 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/StandardModule.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/StandardModule.java
@@ -334,7 +334,7 @@
      * as needed.
      * Note: due to #19698, this cache is not usually used; only if you
      * specifically go to look at the display properties of a disabled module.
-     * @see <a href="http://www.netbeans.org/issues/show_bug.cgi?id=12549">#12549</a>
+     * @see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=12549">#12549</a>
      */
     private void loadLocalizedProps(JarFile jarFile, Manifest m) throws IOException {
         String locbundle = m.getMainAttributes().getValue("OpenIDE-Module-Localizing-Bundle"); // NOI18N
@@ -557,7 +557,7 @@
         }
         classloader = null;
     }
-    /** Should be called after turning off the classloader of one or more modules & GC'ing. */
+    /** Should be called after turning off the classloader of one or more modules &amp; GC'ing. */
     protected void cleanup() {
         if (isEnabled()) throw new IllegalStateException("cleanup on enabled module: " + this); // NOI18N
         if (classloader != null) throw new IllegalStateException("cleanup on module with classloader: " + this); // NOI18N
diff --git a/platform/o.n.bootstrap/src/org/netbeans/Util.java b/platform/o.n.bootstrap/src/org/netbeans/Util.java
index 395de60..2287d87 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/Util.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/Util.java
@@ -232,7 +232,7 @@
      * list of modules (suitable for disabling; reverse for enabling).
      * @param modules some modules
      * @param modulesByName map from module cnbs to modules (may contain unrelated modules)
-     * @param providersOf map from tokens to sets of modules providing them (may mention unrelated modules)
+     * @param _providersOf map from tokens to sets of modules providing them (may mention unrelated modules)
      * @return a map from modules to lists of modules they depend on
      * @see Utilities#topologicalSort
      * JST-PENDING needed from tests
diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ArrayOfIntSupport.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ArrayOfIntSupport.java
index f22dde2..a10c13f 100644
--- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ArrayOfIntSupport.java
+++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ArrayOfIntSupport.java
@@ -211,7 +211,7 @@
     * the value should be available via the getValue method.
     * An IOException should be thrown when the value cannot be restored from the specified XML element
     * @param element the XML DOM element representing a subtree of XML from which the value should be loaded
-    * @exception IOException thrown when the value cannot be restored from the specified XML element
+    * @exception java.io.IOException thrown when the value cannot be restored from the specified XML element
     */
     public void readFromXML (org.w3c.dom.Node element) throws java.io.IOException {
         if (!getXMLValueTag ().equals (element.getNodeName ())) {
diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharEditor.java
index 47292ea..c09bf40 100644
--- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharEditor.java
+++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/CharEditor.java
@@ -107,7 +107,7 @@
     /**
      * Accepts Character and String values. If the argument is
      * a String the first character is taken as the new value.
-     * @param v new value
+     * @param newValue new value
      */
     @Override
     public void setValue(Object newValue) throws IllegalArgumentException {
diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ColorEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ColorEditor.java
index a0f0320..7358ec6 100644
--- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/ColorEditor.java
+++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/ColorEditor.java
@@ -225,7 +225,7 @@
 
     /** Sets value. Implements <code>PropertyEditor</code> interface.
      * @param object object to set, accepts <code>Color</code> 
-     * or <code>SuperColor<code> types */
+     * or <code>SuperColor</code> types */
     public void setValue (Object object) {
         if(object != null) {
             if (object instanceof SuperColor) {
diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntEditor.java
index 6eda57d..9f09147 100644
--- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntEditor.java
+++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/IntEditor.java
@@ -33,12 +33,14 @@
  *  values and handles whitespace in setAsText better than the default
  *  JDK one.  The following hints are supported:
  *  <UL><LI><B>stringKeys</B> - an array of Strings that should be supplied
- *  from getTags()</LI><LI><B>intValues - an array of ints corresponding to
+ *  from getTags()</LI><LI><B>intValues</B> - an array of ints corresponding to
  *  the values represented by stringKeys. <I>This hint must be present if
- *  the stringKeys hint is used, and the arrays must be of the same length.</LI>
+ *  the stringKeys hint is used, and the arrays must be of the same length.</I></LI>
  *  <LI><B>codeValues</B> - an array of strings that should be returned from
  *  getJavaInitializationString.  This hint is optional when using the
- *  aforementioned hints.  <P>These hints will also work for the Integer
+ *  aforementioned hints. 
+ *  </UL>
+ *  <P>These hints will also work for the Integer
  *  editor, which wraps an instance of this editor.
  *
  * @author  Tim Boudreau
diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/StringArrayEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/StringArrayEditor.java
index 1aeb0f7..417f7f7 100644
--- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/StringArrayEditor.java
+++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/StringArrayEditor.java
@@ -197,7 +197,7 @@
      * the specified XML element
      * @param element the XML DOM element representing a subtree of XML from
      *                which the value should be loaded
-     * @exception IOException thrown when the value cannot be restored from
+     * @exception java.io.IOException thrown when the value cannot be restored from
                   the specified XML element
      */
     public void readFromXML(org.w3c.dom.Node element) throws java.io.IOException {
diff --git a/platform/o.n.core/src/org/netbeans/beaninfo/editors/URLEditor.java b/platform/o.n.core/src/org/netbeans/beaninfo/editors/URLEditor.java
index 3a516e8..735908a 100644
--- a/platform/o.n.core/src/org/netbeans/beaninfo/editors/URLEditor.java
+++ b/platform/o.n.core/src/org/netbeans/beaninfo/editors/URLEditor.java
@@ -83,7 +83,7 @@
     * the value should be available via the getValue method.
     * An IOException should be thrown when the value cannot be restored from the specified XML element
     * @param element the XML DOM element representing a subtree of XML from which the value should be loaded
-    * @exception IOException thrown when the value cannot be restored from the specified XML element
+    * @exception java.io.IOException thrown when the value cannot be restored from the specified XML element
     */
     public void readFromXML (org.w3c.dom.Node element) throws java.io.IOException {
         if (!XML_URL.equals (element.getNodeName ())) {
diff --git a/platform/o.n.core/src/org/netbeans/core/Services.java b/platform/o.n.core/src/org/netbeans/core/Services.java
index 42e2b31..2540c39 100644
--- a/platform/o.n.core/src/org/netbeans/core/Services.java
+++ b/platform/o.n.core/src/org/netbeans/core/Services.java
@@ -130,7 +130,7 @@
     * instaces of the objects but only of the types that are already registered
     * to the system by manifest sections.
     *
-    * @param arr list of ServiceTypes 
+    * @param arr0 list of ServiceTypes 
     */
     public synchronized void setServiceTypes (java.util.List/*<ServiceType>*/ arr0) {
         if (arr0 == null) {
diff --git a/platform/o.n.core/src/org/netbeans/core/actions/LogViewerSupport.java b/platform/o.n.core/src/org/netbeans/core/actions/LogViewerSupport.java
index 56b51b9..b523069 100644
--- a/platform/o.n.core/src/org/netbeans/core/actions/LogViewerSupport.java
+++ b/platform/o.n.core/src/org/netbeans/core/actions/LogViewerSupport.java
@@ -49,7 +49,7 @@
     
     /** Connects a given process to the output window. Returns immediately, but threads are started that
      * copy streams of the process to/from the output window.
-     * @param process process whose streams to connect to the output window
+     * @param fileName process whose streams to connect to the output window
      * @param ioName name of the output window tab to use
      */
     public LogViewerSupport(final File fileName, final String ioName) {
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTable.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTable.java
index 627e21b..48158bf 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTable.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTable.java
@@ -313,7 +313,7 @@
     /**
      * Overridden to calculate a preferred size based on the current optimal
      * number of columns, and set up the preferred width for each column based
-     * on the maximum width item & icon displayed in it
+     * on the maximum width item &amp; icon displayed in it
      */
     @Override
     public Dimension getPreferredSize() {
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableItem.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableItem.java
index 25fbb3d..afcf7a0 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableItem.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableItem.java
@@ -22,7 +22,7 @@
 import javax.swing.Icon;
 
 /**
- * Represents one item in <code>SwitcherTable</class>.
+ * Represents one item in <code>SwitcherTable</code>.
  *
  * @see SwitcherTable
  *
@@ -100,7 +100,7 @@
     
     /**
      * Return item's description - the text which can be used for arbitrary
-     * purpose. E.g. </code>KeyboardPopupSwitcher</code> uses it for statusbar
+     * purpose. E.g. <code>KeyboardPopupSwitcher</code> uses it for statusbar
      * text.
      */
     public String getDescription() {
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableModel.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableModel.java
index a735f24..5f57566 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableModel.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/popupswitcher/SwitcherTableModel.java
@@ -24,7 +24,7 @@
 import org.openide.util.Utilities;
 
 /**
- * <code>TableModel</code> for <code>SwitcherTable</class>.
+ * <code>TableModel</code> for <code>SwitcherTable</code>.
  *
  * @see SwitcherTable
  *
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabData.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabData.java
index 57f2e82..c8d63cd 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabData.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabData.java
@@ -31,7 +31,7 @@
  * immutable to client code, changes to the data model may change the values
  * returned by the methods of this class.  TabData objects are the data
  * component of TabDataModel.
- * <p/>
+ * <p>
  * TabData objects implement their <code>equals()</code> and
  * <code>hashCode</code> contract based on the equality of the user object and
  * the text.  The icon and the tooltip text are not considered when testing
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDataModel.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDataModel.java
index 7e2f7ff..3e1deab 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDataModel.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabDataModel.java
@@ -208,7 +208,7 @@
      * The model will fire a change event whenever a modification occurs that
      * could require a repaint. <strong>This method is only here for the
      * prototype - eventually the UI delegate should listen for ComplexDataNN
-     * events and optimize repaints based on the actual areas affected.
+     * events and optimize repaints based on the actual areas affected.</strong>
      */
     public void addChangeListener(ChangeListener listener);
 
@@ -216,7 +216,7 @@
      * The model will fire a change event whenever a modification occurs that
      * could require a repaint. <strong>This method is only here for the
      * prototype - eventually the UI delegate should listen for ComplexDataNN
-     * events and optimize repaints based on the actual areas affected.
+     * events and optimize repaints based on the actual areas affected.</strong>
      */
     public void removeChangeListener(ChangeListener listener);
 }
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabbedContainer.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabbedContainer.java
index e531508..63aa5c8 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabbedContainer.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/TabbedContainer.java
@@ -75,13 +75,16 @@
  * fade or sliding effect when displayed.  For this style, a second click on the selected
  * tab will hide the selected tab (setting the selection model's selected index to -1).</li></ul>
  * <p>
- * <h4>Customizing the appearance of tabs</h4>
+ * <strong>Customizing the appearance of tabs</strong>
+ * <p>
  * Tabs are customized by providing a different UI delegate for the tab displayer component,
  * via UIManager, in the same manner as any standard Swing component; for <code>TYPE_SLIDING</code>
  * tabs, simply implementing an alternate UI delegate for the buttons used to represent tabs
  * is all that is needed.
  *
- * <h4>Managing user events on tabs</h4>
+ * <p>
+ * <strong>Managing user events on tabs</strong>
+ * <p>
  * When a user clicks a tab, the TabbedContainer will fire an action event to all of its listeners.
  * This action event will always be an instance of <code>TabActionEvent</code>, which can provide
  * the index of the tab that was pressed, and the command name of the action that was performed.
@@ -89,7 +92,9 @@
  * to save data, and possibly vetoing the closing of a tab) may veto (or take full responsibility
  * for performing) the action by consuming the TabActionEvent.
  *
- *<h4>Indication of focus and the &quot;activated&quot; state</h4>
+ * <p>
+ * <strong>Indication of focus and the &quot;activated&quot; state</strong>
+ * <p>
  * The property <code>active</code> is provided to allow a tabbed container to indicate that it
  * contains the currently focused component. However, no effort is made to track focus on the
  * part of the tabbed control - there is too much variability possible (for example, if
@@ -571,7 +576,7 @@
      * TabbedContainer. While one would expect a component gaining keyboard
      * focus to be a good determinant, it actually turns out to be a potent
      * source of subtle and hard-to-fix bugs.
-     * <p/>
+     * <p>
      * NetBeans uses an AWTEventListener to track mouse clicks, and allows
      * components to become activated only via a mouse click or via a keyboard
      * action or menu item which activates the component.  This approach is far
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/customtabs/Tabbed.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/customtabs/Tabbed.java
index 248de8e..d6c3bff 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/customtabs/Tabbed.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/customtabs/Tabbed.java
@@ -50,7 +50,7 @@
 
     /**
      * Turn tab highlight on/off
-     * @param tab
+     * @param tc
      * @since 1.38
      */
     public void setAttentionHighlight(TopComponent tc, boolean highlight) {
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/event/ArrayDiff.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/event/ArrayDiff.java
index 12c20f4..14f6153 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/event/ArrayDiff.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/event/ArrayDiff.java
@@ -33,7 +33,6 @@
  * Class representing a diff of two arrays.  Note that it is
  * <strong>not</strong> designed to work with arrays which contain the same
  * element more than one time - in that case, the results are undefined.
- * <p/>
  * <p>Note the current implementation is unoptimized and fairly brute force.
  *
  * @author Tim Boudreau
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java
index 41f045ed..80ef033 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/AbstractViewTabDisplayerUI.java
@@ -69,7 +69,7 @@
 /**
  * Basic UI class for view tabs - non scrollable tabbed displayer, which shows all
  * tabs equally sized, proportionally. This class is independent on specific
- * L&F, acts as base class for specific L&F descendants.
+ * L&amp;F, acts as base class for specific L&amp;F descendants.
  * <p>
  * XXX eventually this class should be deleted and a subclass of BasicTabDisplayer can be used;
  * currently this is simply a port of the original code to the new API. Do not introduce any new
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BusyTabsSupport.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BusyTabsSupport.java
index 3325bcd..b68bc6d 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BusyTabsSupport.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/BusyTabsSupport.java
@@ -35,7 +35,7 @@
 
 /**
  * Support class to implement animation in tab headers to indicate some sort of
- * 'busy' state.<br
+ * 'busy' state.<br>
  * The default implementation tracks changes in registered tab containers
  * (<code>install(Tabbed, TabDataModel)</code>) and if any tab is marked as 'busy'
  * (<code>TopComponent.makeBusy(boolean)</code>) it forces repeated repaints of
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/DefaultTabbedContainerUI.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/DefaultTabbedContainerUI.java
index 3cfae3c..b49d6c0 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/DefaultTabbedContainerUI.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/DefaultTabbedContainerUI.java
@@ -468,10 +468,10 @@
      * Create the layout manager that will manage the layout of the
      * TabbedContainer.  A TabbedContainer contains two components - the tabs
      * contentDisplayer, and the component contentDisplayer.
-     * <p/>
+     * <p>
      * The layout manager determines the position of the tabs relative to the
      * contentDisplayer component which displays the tab contents.
-     * <p/>
+     * <p>
      * The default implementation uses BorderLayout.  If you override this, you
      * should probably override <code>installDisplayer()</code> as well.
      */
@@ -534,8 +534,8 @@
      * Shows the passed component. <strong>This method does not communicate with
      * the data model in any way shape or form, it just moves the passed
      * component to the front.  It should only be called in response to an event
-     * from the data model or selection model.
-     * <p/>
+     * from the data model or selection model.</strong>
+     * <p>
      * If you override <code>createContentDisplayerLayoutModel()</code> to
      * provide your own layout manager to arrange the displayed component, you
      * need to override this to tell the layout (or do whatever is needed) to
@@ -624,7 +624,7 @@
      * cases such as removing the selected component appropriately, so if such a
      * model change happens, a selection change will be immediately forthcoming
      * to handle it.
-     * <p/>
+     * <p>
      * Note that it is important that this listener be added to the data model
      * <i>after</i> the DefaultSelectionModel has added its listener. It is
      * important to create the displayer component before adding this listener.
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/EqualPolygon.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/EqualPolygon.java
index 7921bd7..40790ea 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/EqualPolygon.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/EqualPolygon.java
@@ -34,12 +34,12 @@
  * A Polygon which implements a proper equals/hashcode contract.  In order to
  * optimize drag and drop repainting, it is necessary that the Shape objects
  * returned by getTabIndication() be able to be compared properly.
- * <p/>
+ * <p>
  * To ease migration of older code, this class also implements a couple methods
  * of GeneralPath, which was used before. These methods just delegate to
  * addPoint(), so the full functionality of GeneralPath is not replicated
  * (specifically, a polygon must be contiguous and closed).
- * <p/>
+ * <p>
  *
  * @author Tim Boudreau
  */
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalEditorTabCellRenderer.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalEditorTabCellRenderer.java
index d5eccc3..b5930e6 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalEditorTabCellRenderer.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/MetalEditorTabCellRenderer.java
@@ -28,7 +28,7 @@
 import java.awt.*;
 
 /**
- * Renderer for editor tabs in metal l&f
+ * Renderer for editor tabs in metal l&amp;f
  *
  * @author Tim Boudreau
  */
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabCellRenderer.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabCellRenderer.java
index ebcfccf..d06be80 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabCellRenderer.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabCellRenderer.java
@@ -100,7 +100,7 @@
      * Get the shape that represents those pixels actually occupied by the tab
      * on-screen.  This is used for determining whether a mouse event really
      * occured on a tab, and for painting.<p> <b>A note on painting of tab drag
-     * and drop indication:  <code>AbstractTabsUI</code> contains generic
+     * and drop indication:</b>  <code>AbstractTabsUI</code> contains generic
      * support for drawing drag and drop target indications. If want to use it
      * rather than write your own, you need to specify the polygon returned by
      * this method with the following point order:  The last two points in the
diff --git a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabState.java b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabState.java
index 0aa98cf..db7c0f9 100644
--- a/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabState.java
+++ b/platform/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/TabState.java
@@ -59,7 +59,8 @@
  * <p>
  * BasicTabDisplayerUI implements a mouse listener which will call the appropriate
  * methods when the mouse enters/exits tabs, etc.
- * <h4>Details</h4>
+ * <p>
+ * <strong>Details</strong>
  * <p>
  * State is composed as an integer bitmask which covers all of the supported
  * states of a tab that may affect the way they paint.  These are also the values that
diff --git a/platform/openide.actions/src/org/openide/actions/SaveAction.java b/platform/openide.actions/src/org/openide/actions/SaveAction.java
index f8c01a9..b747f30 100644
--- a/platform/openide.actions/src/org/openide/actions/SaveAction.java
+++ b/platform/openide.actions/src/org/openide/actions/SaveAction.java
@@ -43,7 +43,7 @@
 
 /** Save a one or more objects. Since version 6.20 this handles ANY selection
  * instead of EXACTLY_ONE selection.
- * @see savable
+ * @see Savable
  * @see SaveCookie
  *
  * @author   Jan Jancura, Petr Hamernik, Ian Formanek, Dafe Simonek
diff --git a/platform/openide.explorer/arch-propertysheet.xml b/platform/openide.explorer/arch-propertysheet.xml
index ac5f6d3..1f06309 100644
--- a/platform/openide.explorer/arch-propertysheet.xml
+++ b/platform/openide.explorer/arch-propertysheet.xml
@@ -600,7 +600,7 @@
 bean. Reflection is used during decision-making whether "Restore Default Value"
 Action should be disabled or enabled. This is due to the backward compatibility
 with properties in old modules (or new incorrectly implemented properties). See
-<a href="http://www.netbeans.org/issues/show_bug.cgi?id=51907">#51907</a> for
+<a href="https://bz.apache.org/netbeans/show_bug.cgi?id=51907">#51907</a> for
 detailed description why we do so.
 </answer>
 
diff --git a/platform/openide.explorer/src/org/openide/explorer/ExplorerManager.java b/platform/openide.explorer/src/org/openide/explorer/ExplorerManager.java
index 5a170a5..2d024b9 100644
--- a/platform/openide.explorer/src/org/openide/explorer/ExplorerManager.java
+++ b/platform/openide.explorer/src/org/openide/explorer/ExplorerManager.java
@@ -352,7 +352,7 @@
      * @param value the new node to explore, or <code>null</code> if none should be explored.
      * @param selection the new nodes to be selected
      * @throws IllegalArgumentException if the node is not within the current root context in the node hierarchy
-     * @throws PropertyVetoExcepion if listeners attached to this explorer manager do so
+     * @throws PropertyVetoException if listeners attached to this explorer manager do so
      */
     public final void setExploredContextAndSelection(final Node value, final Node[] selection)
     throws PropertyVetoException {
@@ -794,7 +794,7 @@
      * that implements {@link Provider}.  <P> This method should be used in
      * {@link Component#addNotify} of each component that works with the
      * Explorer manager, e.g.:
-     * <p><pre>
+     * <pre>
      * private transient ExplorerManager explorer;
      *
      * public void addNotify () {
diff --git a/platform/openide.explorer/src/org/openide/explorer/ExplorerUtils.java b/platform/openide.explorer/src/org/openide/explorer/ExplorerUtils.java
index bbdd363..6dab2ea 100644
--- a/platform/openide.explorer/src/org/openide/explorer/ExplorerUtils.java
+++ b/platform/openide.explorer/src/org/openide/explorer/ExplorerUtils.java
@@ -46,7 +46,7 @@
  *
         <span class="comment">// following line tells the top component which lookup should be associated with it</span>
         associateLookup (ExplorerUtils.createLookup (manager, map));
-</span>    }
+    }
     <span class="keyword">public</span> <span class="type">ExplorerManager</span> <span class="function-name">getExplorerManager</span>() {
         <span class="keyword">return</span> manager;
     }
@@ -68,7 +68,7 @@
 <span class="keyword">implements</span> <span class="type">ExplorerManager.Provider</span>, <span class="type">Lookup.Provider</span> {
     <span class="keyword">private</span> <span class="type">ExplorerManager</span> <span class="variable-name">manager</span>;
     <span class="keyword">private</span> <span class="type">Lookup</span> <span class="variable-name">lookup</span>;
-</span>    <span class="keyword">public</span> <span class="type">YourComponent</span>() {
+    <span class="keyword">public</span> <span class="type">YourComponent</span>() {
         <span class="comment">// same as before...</span>
         manager = <span class="keyword">new</span> <span class="type">ExplorerManager</span>();
         <span class="type">ActionMap</span> <span class="variable-name">map</span> = getActionMap();
diff --git a/platform/openide.explorer/src/org/openide/explorer/propertysheet/ButtonPanel.java b/platform/openide.explorer/src/org/openide/explorer/propertysheet/ButtonPanel.java
index a503e22..a0b3af7 100644
--- a/platform/openide.explorer/src/org/openide/explorer/propertysheet/ButtonPanel.java
+++ b/platform/openide.explorer/src/org/openide/explorer/propertysheet/ButtonPanel.java
@@ -457,7 +457,7 @@
      * custom editor button.
      * <p>
      * This class also contains the ability to create an image buffer of itself
-     * and use it for its lifetime.  On XP and Aqua L&Fs, button painting is
+     * and use it for its lifetime.  On XP and Aqua L&amp;Fs, button painting is
      * expensive, and a huge amount of a treetable or property sheet's painting
      * cycle gets spent scaling the backing bitmap for a button that will
      * always be painted exactly the same size.
diff --git a/platform/openide.explorer/src/org/openide/explorer/propertysheet/DefaultPropertyModel.java b/platform/openide.explorer/src/org/openide/explorer/propertysheet/DefaultPropertyModel.java
index f261cac..bd85e44 100644
--- a/platform/openide.explorer/src/org/openide/explorer/propertysheet/DefaultPropertyModel.java
+++ b/platform/openide.explorer/src/org/openide/explorer/propertysheet/DefaultPropertyModel.java
@@ -88,7 +88,7 @@
      * panel = new PropertyPanel (model);
      * </PRE>
      * This constructor replaces the default use of BeanInfo and that is why
-     * simplifies the use of <link>ExPropertyEditor</link>s.
+     * simplifies the use of {@link ExPropertyEditor}s.
      *
      * @param bean the java bean to be introspected
      * @param descr the property descriptor of the property to use
diff --git a/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertyPanel.java b/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertyPanel.java
index 1cc1332..80e47ea 100644
--- a/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertyPanel.java
+++ b/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertyPanel.java
@@ -806,8 +806,8 @@
      * In such a case, the PropertyModel instance thus obtained <u>will not
      * fire changes</u> due to changes made by calling <code>setValue</code>
      * on the <code>Node.Property</code>.  For details on why this is the case,
-     * see <a href="http://www.netbeans.org/issues/show_bug.cgi?id=37779">issue
-     * 37779</code>.</strong>
+     * see <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=37779">issue
+     * 37779</a>.</strong>
      *
      * @return Either the PropertyModel set in the constructor or via <code>setModel</code>,
      * or a generated instance of PropertyModel which wraps the <code>Node.Property</code>
@@ -948,8 +948,8 @@
     }
 
     /** Getter for the state of the property editor. The editor can be in
-     * not valid states just if it implements the <link>ExPropertyEditor</link>
-     * and changes state by the <code>setState</code> method of the <link>PropertyEnv</link>
+     * not valid states just if it implements the {@link ExPropertyEditor}
+     * and changes state by the <code>setState</code> method of the {@link PropertyEnv}
      * environment.
      * <P>
      * @return <code>PropertyEnv.STATE_VALID</code> if the editor is not the <code>ExPropertyEditor</code>
@@ -975,7 +975,7 @@
         return PropertyEnv.STATE_VALID;
     }
 
-    /** If the editor is <link>ExPropertyEditor</link> it tries to change the
+    /** If the editor is {@link ExPropertyEditor} it tries to change the
      * <code>getState</code> property to <code>PropertyEnv.STATE_VALID</code>
      * state. This may be vetoed, in such case a warning is presented to the user
      * and the <code>getState</code> will still return the original value
diff --git a/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertySheetView.java b/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertySheetView.java
index 57eb896..c594499 100644
--- a/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertySheetView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/propertysheet/PropertySheetView.java
@@ -33,7 +33,7 @@
  * properties for currently selected {@link Node}
  *
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found
  * in {@link ExplorerUtils}. Then just use 
@@ -41,7 +41,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
diff --git a/platform/openide.explorer/src/org/openide/explorer/propertysheet/editors/XMLPropertyEditor.java b/platform/openide.explorer/src/org/openide/explorer/propertysheet/editors/XMLPropertyEditor.java
index b7dffe6..e011798 100644
--- a/platform/openide.explorer/src/org/openide/explorer/propertysheet/editors/XMLPropertyEditor.java
+++ b/platform/openide.explorer/src/org/openide/explorer/propertysheet/editors/XMLPropertyEditor.java
@@ -31,7 +31,7 @@
     * the value should be available via the getValue method.
     * An IOException should be thrown when the value cannot be restored from the specified XML element
     * @param element the XML DOM element representing a subtree of XML from which the value should be loaded
-    * @exception IOException thrown when the value cannot be restored from the specified XML element
+    * @exception java.io.IOException thrown when the value cannot be restored from the specified XML element
     */
     public void readFromXML(org.w3c.dom.Node element) throws java.io.IOException;
 
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/BeanTreeView.java b/platform/openide.explorer/src/org/openide/explorer/view/BeanTreeView.java
index ba608be..e8dc413 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/BeanTreeView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/BeanTreeView.java
@@ -34,7 +34,7 @@
 /** Displays {@link Node} hierarchy as a tree of all nodes.
  *
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found 
  * in {@link ExplorerUtils}. Then just use 
@@ -42,7 +42,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/ChoiceView.java b/platform/openide.explorer/src/org/openide/explorer/view/ChoiceView.java
index e7deac4..92c6f95 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/ChoiceView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/ChoiceView.java
@@ -32,7 +32,7 @@
 
 /** Explorer view based on a combo box.
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found
  * in {@link ExplorerUtils}. Then just use
@@ -40,7 +40,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/ContextTreeView.java b/platform/openide.explorer/src/org/openide/explorer/view/ContextTreeView.java
index 7ed3b99..d669df1 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/ContextTreeView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/ContextTreeView.java
@@ -36,7 +36,7 @@
  * Works well together (e.g. sharing one {@link ExplorerManager}) with {@link ListView}.
  *
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found 
  * in {@link ExplorerUtils}. Then just use 
@@ -44,7 +44,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/IconView.java b/platform/openide.explorer/src/org/openide/explorer/view/IconView.java
index 38ee7fe..47598f9 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/IconView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/IconView.java
@@ -32,15 +32,15 @@
 
 /** A view displaying {@link Node}s as icons.
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
- * {@link Provider}. Good examples of that can be found 
+ * {@link org.openide.explorer.ExplorerManager.Provider}. Good examples of that can be found 
  * in {@link ExplorerUtils}. Then just use 
- * {@link Provider#getExplorerManager} call to get the {@link ExplorerManager}
+ * {@link org.openide.explorer.ExplorerManager.Provider#getExplorerManager} call to get the {@link ExplorerManager}
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link org.openide.explorer.ExplorerManager.Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
@@ -49,7 +49,7 @@
  *      <li>{@link org.openide.explorer.view.ListView} - shows a list of nodes</li>
  *      <li>{@link org.openide.explorer.view.IconView} - shows a rows of nodes with bigger icons</li>
  *      <li>{@link org.openide.explorer.view.ChoiceView} - creates a combo box based on the explored nodes</li>
- *      <li>{@link org.openide.explorer.view.TreeTableView} - shows tree of nodes together with a set of their {@link Property}</li>
+ *      <li>{@link org.openide.explorer.view.TreeTableView} - shows tree of nodes together with a set of their {@link org.openide.nodes.Node.Property}</li>
  *      <li>{@link org.openide.explorer.view.MenuView} - can create a {@link JMenu} structure based on structure of {@link Node}s</li>
  * </ul>
  * <p>
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/ListView.java b/platform/openide.explorer/src/org/openide/explorer/view/ListView.java
index 7680720..f3a7365 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/ListView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/ListView.java
@@ -80,7 +80,7 @@
 
 /** Explorer view to display items in a list.
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found 
  * in {@link org.openide.explorer.ExplorerUtils}. Then just use 
@@ -88,7 +88,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/MenuView.java b/platform/openide.explorer/src/org/openide/explorer/view/MenuView.java
index 1165397..6be05f3 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/MenuView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/MenuView.java
@@ -48,7 +48,7 @@
 * explored context.
  *
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found 
  * in {@link ExplorerUtils}. Then just use 
@@ -56,7 +56,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
@@ -306,13 +306,13 @@
             this(node, action, true);
         }
 
-        /** @deprecated use {@link MenuView.Menu#MenuView.Menu(Node, NodeAcceptor)}
+        /** @deprecated use {@link #Menu(Node, NodeAcceptor)}
          */
         public @Deprecated Menu(Node node, Acceptor action) {
             this(node, new AcceptorProxy(action), true);
         }
 
-        /** @deprecated use {@link MenuView.Menu#MenuView.Menu(Node, NodeAcceptor, boolean)}
+        /** @deprecated use {@link #Menu(Node, NodeAcceptor, boolean)}
          */
         public @Deprecated Menu(Node node, Acceptor action, boolean setName) {
             this(node, new AcceptorProxy(action), setName);
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/OutlineView.java b/platform/openide.explorer/src/org/openide/explorer/view/OutlineView.java
index d4f55eb..707207c 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/OutlineView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/OutlineView.java
@@ -423,13 +423,14 @@
      * @see #getTreeHorizontalScrollBarPolicy
      * @since 6.30
      *
-     * @beaninfo
+     * <pre> beaninfo taglet
      *   preferred: true
      *       bound: true
      * description: The tree column scrollbar policy
      *        enum: HORIZONTAL_SCROLLBAR_AS_NEEDED ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED
      *              HORIZONTAL_SCROLLBAR_NEVER ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
      *              HORIZONTAL_SCROLLBAR_ALWAYS ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS
+     * </pre>
      */
     public void setTreeHorizontalScrollBarPolicy(int policy) {
         if (policy == treeHorizontalScrollBarPolicy) {
@@ -691,7 +692,7 @@
      * Enable/disable double click to invoke default action.
      * If the default action is not enabled, double click expand/collapse node.
      * @param defaultActionAllowed Provide <code>true</code> to enable
-     * @see {@link #isDefaultActionAllowed()}
+     * @see #isDefaultActionAllowed()
      * @since 6.32
      */
     public void setDefaultActionAllowed(boolean defaultActionAllowed) {
@@ -701,7 +702,7 @@
     /**
      * Tells if double click invokes default action.
      * @return <code>true</code> if the default action is invoked, or <code>false</code> when it's not.
-     * @see {@link #setDefaultActionAllowed(boolean)}
+     * @see #setDefaultActionAllowed(boolean)
      * @since 6.32
      */
     public boolean isDefaultActionAllowed() {
diff --git a/platform/openide.explorer/src/org/openide/explorer/view/TreeTableView.java b/platform/openide.explorer/src/org/openide/explorer/view/TreeTableView.java
index 2c469df..ad5c969 100644
--- a/platform/openide.explorer/src/org/openide/explorer/view/TreeTableView.java
+++ b/platform/openide.explorer/src/org/openide/explorer/view/TreeTableView.java
@@ -67,7 +67,7 @@
  * and its properties in table on the right.
  * <p>
  * The main mechanism for setting what properties are displayed is
- * <a href="#setProperties"><code>setProperties (Node.Property[])</code></a>.
+ * {@link #setProperties(org.openide.nodes.Node.Property[])}.
  * Pass this method an
  * array of properties.  These will act as a template, and properties of
  * the displayed nodes which share the same <i>name</i> will be used in
@@ -83,7 +83,8 @@
  * should set its custom parameter:
  * <br><code>properties[1].setValue ("InvisibleInTreeTableView", Boolean.TRUE);</code>
  *
- * <TABLE border="1" summary="custom parameter list">
+ * <TABLE>
+ * <caption>custom parameter list</caption>
  *     <TR>
  *         <TH> Parameter name
  *         </TH>
@@ -151,7 +152,7 @@
  * </TABLE>
  *
  * <p>
- * This class is a <q>view</q>
+ * This class is a <em>view</em>
  * to use it properly you need to add it into a component which implements
  * {@link Provider}. Good examples of that can be found 
  * in {@link ExplorerUtils}. Then just use 
@@ -159,7 +160,7 @@
  * and control its state.
  * </p>
  * <p>
- * There can be multiple <q>views</q> under one container implementing {@link Provider}. Select from
+ * There can be multiple <em>views</em> under one container implementing {@link Provider}. Select from
  * range of predefined ones or write your own:
  * </p>
  * <ul>
diff --git a/platform/openide.loaders/arch.xml b/platform/openide.loaders/arch.xml
index 71bf524..752ad8b 100644
--- a/platform/openide.loaders/arch.xml
+++ b/platform/openide.loaders/arch.xml
@@ -56,7 +56,7 @@
     A lot of usecases is described <a href="@TOP@/org/openide/loaders/doc-files/api.html" >in the javadoc</a>. Here 
     is the list of some faqs:
   
-    <usecase id="script" name="Using Scripting and Templating Languages" >
+    <usecase id="loaders-script" name="Using Scripting and Templating Languages" >
         <p>
         Often many people require ability to create a "clever" template - e.g.
         write piece of simple text and at the time of its 
@@ -64,7 +64,7 @@
             processing
         </a>
         do some advanced changes to it using either 
-        <a name="script">scripting or templating</a> languages.
+        <a name="loaders-script">scripting or templating</a> languages.
         </p>
         
         <p>
@@ -497,7 +497,7 @@
 <!-- XMLDataObject: -->
     <api type="import" group="property" name="org.xml.sax.driver" category="private" > 
         This is a standard way to find a class of a SAX2 driver. See
-        <a href="http://www.saxproject.org/"> SAX2 documentation </a>
+        <a href="http://www.saxproject.org"> SAX2 documentation </a>
     </api>
 
     <api type="import" group="property" name="netbeans.profile.memory" category="private" > 
@@ -539,7 +539,7 @@
         <a href="@TOP@/org/openide/loaders/DataObject.html">DataObject</a>.createFromTemplate,
         it passes as argument all its <a href="@org-openide-dialogs@/org/openide/WizardDescriptor.html#getProperties--">properties</a>
         to it with prefix <code>wizard.</code>. That way they are available to
-        underlaying <a href="@TOP@/architecture-summary.html#script">scripting and templating
+        underlaying <a href="@TOP@/architecture-summary.html#loaders-script">scripting and templating
         engines</a>.
     </api>
 
diff --git a/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateAttributesProvider.java b/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateAttributesProvider.java
index e19cb99..610f03d 100644
--- a/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateAttributesProvider.java
+++ b/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateAttributesProvider.java
@@ -21,12 +21,12 @@
 
 import java.util.Map;
 
-/** This is an interface for <q>smart templating</q>.
+/** This is an interface for <em>smart templating</em>.
  * Implementations of this class can be registered in the global {@link org.openide.util.Lookup}
  * and allows anyone provide additional parameters to each {@link CreateFromTemplateHandler}s
  * when a template is instantiating.
- * Read more in the <a href="@TOP@/architecture-summary.html#script">howto document</a>.
- * <p/>
+ * Read more in the <a href="@TOP@/architecture-summary.html#loaders-script">howto document</a>.
+ * <p>
  * Since templating system need not to depend on Data Systems APIs, the relevant interfaces
  * were moved to the {@code openide.filesystems.templates} module. This interface has been kept
  * for backward compatibility and DataSystems provide a compatibility bridge, which allows
@@ -37,7 +37,7 @@
  * @author Jaroslav Tulach
  * @since 6.3
  * @since deprecated from 7.59
- * @deprecated Use {@link CreateFromTemplateAttributes} in {@code openide.filesystems.templates} instead.
+ * @deprecated Use {@link org.netbeans.api.templates.CreateFromTemplateAttributes} instead.
  */
 @Deprecated
 public interface CreateFromTemplateAttributesProvider {
diff --git a/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateHandler.java b/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateHandler.java
index 03e4794..52f52e6 100644
--- a/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateHandler.java
+++ b/platform/openide.loaders/src/org/openide/loaders/CreateFromTemplateHandler.java
@@ -26,12 +26,12 @@
 import org.netbeans.api.templates.CreateDescriptor;
 import org.openide.filesystems.FileObject;
 
-/** This is an interface for <q>smart templating</q> that allows
+/** This is an interface for <em>smart templating</em> that allows
  * any module to intercept calls to {@link DataObject#createFromTemplate} 
  * and handle them themselves. The NetBeans IDE provides default
  * implementation that allows use of Freemarker templating engine.
- * Read more in the <a href="@TOP@/architecture-summary.html#script">howto document</a>.
- * <p/>
+ * Read more in the <a href="@TOP@/architecture-summary.html#loaders-script">howto document</a>.
+ * <p>
  * This SPI is now <b>deprecated</b> and serves just a backward compatilibity SPI adapter
  * which allows the template API to work with legacy handlers. The templating SPI is delegated
  * to the original handler methods.
@@ -91,7 +91,7 @@
      * parameter set to {@link Boolean#TRUE}
      * (such as from {@link DataObject#createFromTemplate(DataFolder,String,Map)}),
      * and the file name already seems to
-     * include an extension (<samp>*.*</samp>), the handler should not append
+     * include an extension (<em>*.*</em>), the handler should not append
      * any extension from the template.
      * @since org.openide.loaders 7.16
      * @see <a href="@org-netbeans-modules-projectuiapi@/org/netbeans/spi/project/ui/templates/support/Templates.SimpleTargetChooserBuilder.html#freeFileExtension()"><code>Templates.SimpleTargetChooserBuilder.freeFileExtension</code></a>
diff --git a/platform/openide.loaders/src/org/openide/loaders/DataLoader.java b/platform/openide.loaders/src/org/openide/loaders/DataLoader.java
index b4ea3b6..6145569 100644
--- a/platform/openide.loaders/src/org/openide/loaders/DataLoader.java
+++ b/platform/openide.loaders/src/org/openide/loaders/DataLoader.java
@@ -204,7 +204,7 @@
      * <p>
      * {@link javax.swing.JSeparator} instances may be used to separate items.
      * <p>
-     * Suggested context name: <samp>Loaders/<em>PRIMARY-FILE/MIME-TYPE</em>/Actions</samp>
+     * Suggested context name: <code>Loaders/<em>PRIMARY-FILE/MIME-TYPE</em>/Actions</code>
      *
      * @return the string name of the context on layer files to read/write actions to
      * @since 5.0
diff --git a/platform/openide.loaders/src/org/openide/loaders/DataLoaderPool.java b/platform/openide.loaders/src/org/openide/loaders/DataLoaderPool.java
index beade10..cc673a8 100644
--- a/platform/openide.loaders/src/org/openide/loaders/DataLoaderPool.java
+++ b/platform/openide.loaders/src/org/openide/loaders/DataLoaderPool.java
@@ -620,7 +620,7 @@
      *   &lt;attr name="iconBase" stringvalue="org/your/pkg/YourDataObject.png"/&gt;
      * &lt;/file&gt;
      * </pre>
-     * @param clazz the class of the data object to create. Must have appropriate
+     * @param dataObjectClass the class of the data object to create. Must have appropriate
      *    constructor.
      * @param mimeType the mime type associated with the object, used for 
      *    example to create the right actions for the object's node
diff --git a/platform/openide.loaders/src/org/openide/loaders/DataNode.java b/platform/openide.loaders/src/org/openide/loaders/DataNode.java
index 9dacc08..0ee54c3 100644
--- a/platform/openide.loaders/src/org/openide/loaders/DataNode.java
+++ b/platform/openide.loaders/src/org/openide/loaders/DataNode.java
@@ -209,7 +209,6 @@
      }
 
     /** Get the displayed icon for this node.
-     * A filesystem may {@link org.openide.filesystems.FileSystem#getStatus specially alter} this.
      * Subclassers overriding this method should consider the recommendations
      * in {@link DataObject#createNodeDelegate}.
      * @param type the icon type from {@link java.beans.BeanInfo}
@@ -232,7 +231,6 @@
     }
 
     /** Get the displayed icon for this node.
-    * A filesystem may {@link org.openide.filesystems.FileSystem#getStatus specially alter} this.
      * Subclassers overriding this method should consider the recommendations
      * in {@link DataObject#createNodeDelegate}.
     * @param type the icon type from {@link java.beans.BeanInfo}
diff --git a/platform/openide.loaders/src/org/openide/loaders/DataObject.java b/platform/openide.loaders/src/org/openide/loaders/DataObject.java
index 98dd639..369d0ca 100644
--- a/platform/openide.loaders/src/org/openide/loaders/DataObject.java
+++ b/platform/openide.loaders/src/org/openide/loaders/DataObject.java
@@ -115,12 +115,12 @@
     private static final Set<DataObject> syncModified = Collections.synchronizedSet(modified);
 
     /** Modified flag 
-     * @GuardedBy(LOCK)
+     * &#64;GuardedBy(LOCK)
      */
     private boolean modif = false;
 
     /** the node delegate for this data object 
-     * @GuardedBy(LOCK)
+     * &#64;GuardedBy(LOCK)
        */
     private transient Node nodeDelegate;
     private static final Node BEING_CREATED = Node.EMPTY.cloneNode();
@@ -139,7 +139,7 @@
     private volatile PropertyChangeSupport changeSupport;
 
     /** vetoable property change listener support 
-        *  @GuardedBy(LOCK)
+        *  &#64;GuardedBy(LOCK)
         */
     private VetoableChangeSupport vetoableChangeSupport;
 
@@ -394,12 +394,11 @@
     * <P>
     * This method is called only once per data object.
     * <p>It is strongly recommended that the resulting node will, when asked for
-    * the cookie <samp>DataObject.class</samp>, return this same data object.
+    * the cookie <code>DataObject.class</code>, return this same data object.
     * <p>It is also recommended that the node:
     * <ol>
     * <li>Base its name on {@link #getName}.
     * <li>Base its display name additionally on {@link DataNode#getShowFileExtensions}.
-    * <li>Tune its display name and icon according to {@link org.openide.filesystems.FileSystem.Status}.
     * </ol>
     * @return the node delegate (without parent) for this data object
     * @see <a href="doc-files/api.html#create-delegate">Datasystems API - Creating a node delegate</a>
@@ -1255,7 +1254,7 @@
     
     /** Factory interface for converting file object to data objects. Read
      * more about the layer based registrations in 
-     * <a href="@TOP@/org/openide/loaders/doc-files/api.html#register"/>separate document</a>.
+     * <a href="@TOP@/org/openide/loaders/doc-files/api.html#register">separate document</a>.
      * @since 7.0
      */
     public static interface Factory {
@@ -1269,7 +1268,7 @@
         *    primary file already exists
         * @exception IOException if the object is recognized but cannot be created
         * @exception InvalidClassException if the class is not instance of
-        *    {@link #getRepresentationClass}
+        *    {@link DataLoader#getRepresentationClass}
         *
         * @return suitable data object or <CODE>null</CODE> if the handler cannot
         *   recognize this object (or its group)
@@ -1316,7 +1315,7 @@
     public static @interface Registration {
         /**
          * Mime type to recognize. Use
-         * {@link MIMEResolver.ExtensionRegistration} and co. to assign
+         * {@link org.openide.filesystems.MIMEResolver.ExtensionRegistration} and co. to assign
          * a mime types to {@link FileObject files} in the system.
          */
         String mimeType();
diff --git a/platform/openide.loaders/src/org/openide/loaders/FileEntry.java b/platform/openide.loaders/src/org/openide/loaders/FileEntry.java
index 3ac38c6..ae8dad8 100644
--- a/platform/openide.loaders/src/org/openide/loaders/FileEntry.java
+++ b/platform/openide.loaders/src/org/openide/loaders/FileEntry.java
@@ -360,7 +360,7 @@
 
         /** Deletes folder associated with entry. Although filesystems delete
          * folders recursively, it is better to delete children DataObjects before
-         * the {@link #FileEntry.Folder} entry is deleted.
+         * the {@link FileEntry.Folder} entry is deleted.
          * @exception IOException when the operation fails
          */
         public void delete () throws IOException {
diff --git a/platform/openide.loaders/src/org/openide/loaders/FolderLookup.java b/platform/openide.loaders/src/org/openide/loaders/FolderLookup.java
index 0cf296e..9692d29 100644
--- a/platform/openide.loaders/src/org/openide/loaders/FolderLookup.java
+++ b/platform/openide.loaders/src/org/openide/loaders/FolderLookup.java
@@ -174,7 +174,7 @@
     }
     
     /** Overrides superclass method. It returns instance
-     * for <code>DataObject</code>&<code>InstanceCookie</code> 'pair'. 
+     * for <code>DataObject</code>&amp;<code>InstanceCookie</code> 'pair'. 
      * If the instance is of <code>FolderLookup.Lkp</code> class it is created otherwise
      * new <code>Lkp.ICItem</code> created and returned.
      *
diff --git a/platform/openide.loaders/src/org/openide/loaders/SaveAsCapable.java b/platform/openide.loaders/src/org/openide/loaders/SaveAsCapable.java
index 29b1434..f77f5f4 100644
--- a/platform/openide.loaders/src/org/openide/loaders/SaveAsCapable.java
+++ b/platform/openide.loaders/src/org/openide/loaders/SaveAsCapable.java
@@ -29,17 +29,17 @@
  * editor support inherits from <code>DataEditorSupport</code> you can implement "Save As" feature
  * for your documents by adding the following lines into your {@link DataObject}'s constructor:
  * 
-<code><pre>
+<pre>{@code
         getCookieSet().assign(SaveAsCapable.class, new SaveAsCapable() {
             public void saveAs(FileObject folder, String fileName) throws IOException {
                 getDataEditorSupport().saveAs( folder, fileName );
             }
         });
-</pre></code>
+}</pre>
  *
- * If you have {@link Node}, you may use the following code:
+ * If you have {@link org.openide.nodes.Node}, you may use the following code:
  * 
-<code><pre>
+<pre>{@code
     public class MyNode extends AbstractNode {
         
         public MyNode() {
@@ -75,7 +75,7 @@
             }
         }
     }
-</pre></code>
+}</pre>
  *
  * @since 6.3
  * @author S. Aubrecht
diff --git a/platform/openide.loaders/src/org/openide/loaders/XMLDataObject.java b/platform/openide.loaders/src/org/openide/loaders/XMLDataObject.java
index c22af36..5184524 100644
--- a/platform/openide.loaders/src/org/openide/loaders/XMLDataObject.java
+++ b/platform/openide.loaders/src/org/openide/loaders/XMLDataObject.java
@@ -148,7 +148,7 @@
     /** 
      * Create new XMLDataObject. It is usually called by a loader.
      * A user can get existing XMLDataObject by calling {@link DataObject#find(FileObject) 
-     * <code>DataObject.find(FileObject f)</code>} instead.
+     * DataObject.find(FileObject f)} instead.
      *
      * @param fo the primary file object, never <code>null</code>
      * @param loader loader of this data object, never <code>null</code>
@@ -654,13 +654,13 @@
      *             It directly violates DOM's root element reference read-only status.
      *             If you can not move to XMLUtil for compatabilty reasons please
      *             replace with following workaround:
-     * <pre>
+     * <pre>{@code
      * String templ = "<myroot/>";
      * InputSource in = new InputSource(new StringReader(templ));
      * in.setSystemId("StringReader");  //workaround
      * DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
      * Document doc = builder.parse(in);
-     * </pre>
+     * }</pre>
      */
     @Deprecated
     public static Document createDocument() {
diff --git a/platform/openide.loaders/src/org/openide/text/DataEditorSupport.java b/platform/openide.loaders/src/org/openide/text/DataEditorSupport.java
index a05c8c7..16f357e 100644
--- a/platform/openide.loaders/src/org/openide/text/DataEditorSupport.java
+++ b/platform/openide.loaders/src/org/openide/text/DataEditorSupport.java
@@ -157,7 +157,7 @@
     /** Factory method to create a bit more complicated CloneableEditorSupport for a given
      * entry of a given DataObject. The common use inside DataObject looks like
      * this:
-     * <pre>
+     * <pre>{@code
      *  getCookieSet().add((Node.Cookie) DataEditorSupport.create(
      *    this, getPrimaryEntry(), getCookieSet(),
      *    new Callable<Pane>() { 
@@ -166,7 +166,7 @@
      *      }
      *    }
      *  ));
-     * </pre>
+     * }</pre>
      * The method can be used to instantiate <b>multi view</b> editor by returning
      * <a href="@org-netbeans-core-multiview@/org/netbeans/core/api/multiview/MultiViews.html">
      * MultiViews.createCloneableMultiView("text/yourmime", this)</a>.
@@ -435,7 +435,7 @@
     }
     
     /**
-     * @inheritDoc
+     * {@inheritDoc}
      */
     @Override
     protected void loadFromStreamToKit(StyledDocument doc, InputStream stream, EditorKit kit) throws IOException, BadLocationException {
@@ -512,7 +512,7 @@
     }
 
     /**
-     * @inheritDoc
+     * {@inheritDoc}
      */
     @Override
     protected void saveFromKitToStream(StyledDocument doc, EditorKit kit, OutputStream stream) throws IOException, BadLocationException {
diff --git a/platform/openide.options/src/org/openide/explorer/propertysheet/PropertySheetSettings.java b/platform/openide.options/src/org/openide/explorer/propertysheet/PropertySheetSettings.java
index 8ae855f..fa4fa81 100644
--- a/platform/openide.options/src/org/openide/explorer/propertysheet/PropertySheetSettings.java
+++ b/platform/openide.options/src/org/openide/explorer/propertysheet/PropertySheetSettings.java
@@ -29,7 +29,7 @@
 
 /**
 * Settings for the property sheet.
-* @see PropertySheet
+* @see <a href="@org-openide-explorer@/org/openide/explorer/propertysheet/PropertySheet.html">PropertySheet</a>
 *
 * @deprecated None of the settings in this class are supported in the new property sheet.  The entire implementation
 *            has been gutted to do nothing.
diff --git a/platform/openide.options/src/org/openide/options/ContextSystemOption.java b/platform/openide.options/src/org/openide/options/ContextSystemOption.java
index b7aa9dd..27d299f 100644
--- a/platform/openide.options/src/org/openide/options/ContextSystemOption.java
+++ b/platform/openide.options/src/org/openide/options/ContextSystemOption.java
@@ -190,7 +190,7 @@
 
     /** A hierarchy of SystemOptions.
     * Allows add/remove SystemOption beans only.
-    * @warning many methods throws UnsupportedOperationException like BeanContextSupport does.
+    * <strong>warning</strong> many methods throws UnsupportedOperationException like BeanContextSupport does.
     */
     private static class OptionBeanContext extends BeanContextSupport implements PropertyChangeListener {
         private static final long serialVersionUID = 3532434266136225440L;
diff --git a/platform/openide.text/src/org/openide/text/Line.java b/platform/openide.text/src/org/openide/text/Line.java
index 673ac48..fd060b8 100644
--- a/platform/openide.text/src/org/openide/text/Line.java
+++ b/platform/openide.text/src/org/openide/text/Line.java
@@ -218,12 +218,12 @@
 
     /** Get the line number. The last condition in following should
     * always be true:
-    * <PRE>
+    * <PRE>{@code 
     *   Line.Set lineSet = <line set>
     *   Line l = <some line from line set lineSet>
     *
     *   l.equals (lineSet.getCurrent (l.getLineNumber ()))
-    * </PRE>
+    * }</PRE>
     *
     * @return current line number (may change as text is edited) (starting at 0)
     */
diff --git a/platform/openide.text/src/org/openide/text/NbDocument.java b/platform/openide.text/src/org/openide/text/NbDocument.java
index f8c6f5d..7f20fd8 100644
--- a/platform/openide.text/src/org/openide/text/NbDocument.java
+++ b/platform/openide.text/src/org/openide/text/NbDocument.java
@@ -176,13 +176,13 @@
         return new DocumentRenderer(DocumentRenderer.FIND_LINE_OFFSET, doc, lineNumber).renderToInt();
     }
 
-    /** Creates position with a bias. If the bias is {@link javax.swing.text.Position.Bias#Backward}
+    /** Creates position with a bias. If the bias is {@link javax.swing.text.Position.Bias#Backward Backward}
     * then if an insert occures at the position, the text is inserted
-    * after the position. If the bias is {@link javax.swing.text.Position.Bias#Forward <code>Forward</code>}, then the text is
+    * after the position. If the bias is {@link javax.swing.text.Position.Bias#Forward Forward}, then the text is
     * inserted before the position.
     * <P>
     * The method checks if the document implements {@link PositionBiasable},
-    * and if so, {@link PositionBiasable#createPosition <code>createPosition</code>} is called.
+    * and if so, {@link PositionBiasable#createPosition createPosition} is called.
     * Otherwise an attempt is made to provide a <code>Position</code> with the correct behavior.
     *
     * @param doc document to create position in
@@ -396,7 +396,7 @@
     }
     
     /** Locks the document to have exclusive access to it.
-     * Documents implementing {@link Lockable} can specify exactly how to do this.
+     * Documents implementing {@link WriteLockable} can specify exactly how to do this.
     *
     * @param doc document to lock
     * @param run the action to run
@@ -474,7 +474,7 @@
     /**
      * Add annotation to the document. For annotation of whole line
      * the length parameter can be ignored (specify value -1).
-     * <br/>
+     * <br>
      * Note: since 6.35 the requests (delegated to document) are no longer replanned to EDT.
      * @param doc the document which will be annotated
      * @param startPos position which represent begining
@@ -495,7 +495,7 @@
 
     /**
      * Removal of added annotation.
-     * <br/>
+     * <br>
      * Note: since 6.35 the requests (delegated to document) are no longer replanned to EDT.
      * @param doc the annotated document
      * @param annotation annotation which is going to be removed
@@ -789,9 +789,9 @@
     * If not, special support for the position is created.
     */
     public interface PositionBiasable extends Document {
-        /** Creates position with a bias. If the bias is {@link javax.swing.text.Position.Bias#Backward}
+        /** Creates position with a bias. If the bias is {@link javax.swing.text.Position.Bias#Backward Backward}
         * then if an insert occures at the position, the text is inserted
-        * after the position. If the bias is {@link javax.swing.text.Position.Bias#Forward <code>Forward</code>}, then the text is
+        * after the position. If the bias is {@link javax.swing.text.Position.Bias#Forward Forward}, then the text is
         * inserted before the position.
         *
         * @param offset the offset for the position
diff --git a/platform/openide.text/src/org/openide/text/PositionBounds.java b/platform/openide.text/src/org/openide/text/PositionBounds.java
index 5c12d27..4bb2e6c 100644
--- a/platform/openide.text/src/org/openide/text/PositionBounds.java
+++ b/platform/openide.text/src/org/openide/text/PositionBounds.java
@@ -66,7 +66,7 @@
     }
 
     /** Replaces the text contained in this range.
-    * This replacement is done atomically, and so is preferable to manual inserts & removes.
+    * This replacement is done atomically, and so is preferable to manual inserts &amp; removes.
     * <p>If you are running this from user-oriented code, you may want to wrap it in {@link NbDocument#runAtomicAsUser}.
     * @param text new text to insert over existing text
     * @exception IOException if any problem occurred during document loading (if that was necessary)
diff --git a/platform/openide.text/src/org/openide/text/PrintPreferences.java b/platform/openide.text/src/org/openide/text/PrintPreferences.java
index 3728f48..28580a2 100644
--- a/platform/openide.text/src/org/openide/text/PrintPreferences.java
+++ b/platform/openide.text/src/org/openide/text/PrintPreferences.java
@@ -278,7 +278,7 @@
     }
     
     /** 
-     * @param <code>correction</code> the amount of vertical space to print between lines.
+     * @param correction the amount of vertical space to print between lines.
      * @exception IllegalArgumentException if <tt>correction</tt> is less than 0.
      */
     public static void setLineAscentCorrection(float correction) {
diff --git a/platform/openide.text/src/org/openide/text/UndoRedoManager.java b/platform/openide.text/src/org/openide/text/UndoRedoManager.java
index dba99d2..5986637 100644
--- a/platform/openide.text/src/org/openide/text/UndoRedoManager.java
+++ b/platform/openide.text/src/org/openide/text/UndoRedoManager.java
@@ -29,11 +29,11 @@
 /**
  * An improved version of UndoRedo manager that locks document before
  * doing any other operations.
- * <br/>
+ * <br>
  * It supports grouping of undoable edits by extending UndoGroupManager.
- * <br/>
+ * <br>
  * It supports save actions that produce a compound undoable edit.
- * <br/>
+ * <br>
  * 
  * <p>
  * Following requirements should be met:
@@ -47,8 +47,6 @@
  *   <li>When save occurred inside UM.edits the extra save actions are kept separately and undone
  *     when "coming out of the savepoint" and redone when "coming to a savepoint".</li>
  * </ul>
- * </p>
- * 
  * <p>
  * <tt>Undo Grouping</tt> allows explicit control of what
  * <tt>UndoableEdit</tt>s are coalesced into compound edits, rather than using
@@ -64,7 +62,6 @@
  * <tt>CompoundEdit</tt> and to continue accumulating; an application could do
  * this at strategic points, such as EndOfLine input or cursor movement.</li>
  * </ol>
- * </p>
  * 
  * @author Miloslav Metelka
  * @author Jaroslav Tulach
diff --git a/platform/openide.windows/apichanges.xml b/platform/openide.windows/apichanges.xml
index 268f916..b105d89 100644
--- a/platform/openide.windows/apichanges.xml
+++ b/platform/openide.windows/apichanges.xml
@@ -836,7 +836,7 @@
      Provided implementation of new window system. It is a new major version of module core/windows.
      There also open API affected. There were added some new APIs, some older were deprecated
      and also some older APIs have adjusted their semantics. Look at the 
-     <a href="http://core.netbeans.org/windowsystem/changes.html" shape="rect">changes document</a>
+     <a href="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html" shape="rect">changes document</a>
      which has the detailed information.
      </description>
      <class package="org.openide.windows" name="CloneableTopComponent"/>
diff --git a/platform/openide.windows/arch.xml b/platform/openide.windows/arch.xml
index 2f4ec6c..904f094 100644
--- a/platform/openide.windows/arch.xml
+++ b/platform/openide.windows/arch.xml
@@ -96,20 +96,20 @@
 <answer id="arch-usecases">
     
   <p>
-     <a onclick="target='_blank'" href="https://leanpub.com/nbp4beginners">
+     <a href="https://leanpub.com/nbp4beginners">
      <img src="http://wiki.apidesign.org/images/0/03/NetBeansPlatformForBeginners.jpg"
         style="float: right"
           width="60" height="70" alt="Cover of NetBeans Platform for Beginners book"/>
      </a>
     For general overview of the concepts, 
     together with code samples, see chapter 6, 
-    of <a onclick="target='_blank'" href="https://leanpub.com/nbp4beginners">NetBeans Platform for Beginners</a> 
+    of <a href="https://leanpub.com/nbp4beginners">NetBeans Platform for Beginners</a>
     by Jason Wexbridge and Walter Nyland.
   </p>
     
 <usecase id="windowsystem-general" name="General Usecases">
 General usecases
-can be read in the <a href="http://core.netbeans.org/windowsystem/changes.html#4">design document</a>
+can be read in the <a href="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s4">design document</a>
 created before work on new window system design started. 
 </usecase>
 
@@ -126,7 +126,7 @@
 <usecase id="windowsystem-groups" name="How to make a TopComponentGroup?" >
 
 <p></p>
-    <b>Q:</b> I'm trying to make a TopComponentGroup.  I've just read http://ui.netbeans.org/docs/ui/ws/ws_spec.html#3.9
+    <b>Q:</b> I'm trying to make a TopComponentGroup.  I've just read https://netbeans.apache.org/projects/ui/ws/ws_spec.html#s39
             I want to make a group that uses the first invocation strategy.  
             That is, I want the group to open/close when I activate a certain subclass of TopComponent.  
             Say, for example, I have a FooTopComponent, and when it's active, 
@@ -143,7 +143,7 @@
 
 <p></p>
     <b>A:</b>Yes it is correct way. You can check
-    <a href="http://www.netbeans.org/source/browse/platform/samples/window-system-groups/">simple test module</a>.
+    <a href="http://source.apidesign.org/hg/netbeans/misc/file/tip/platform/samples/window-system-groups">simple test module</a>.
     First you must get TopComponentGroup instance using find method then call TopComponentGroup.open()/close(). 
     Here is the code in your componentDeactivated method:
     <pre>
@@ -237,11 +237,11 @@
 Yes. Module stores its own versioned settings as XML files. In addition
 components are stored in settings file format of core/settings module.
 For description of current (version 2.0) configuration data folders see
-<api group="layer" category="devel" name="NewConfigurationData" type="export" url="http://core.netbeans.org/windowsystem/changes.html#3.4.2" >
+<api group="layer" category="devel" name="NewConfigurationData" type="export" url="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s342" >
 new configuration data</api> here
 For description of old (version &lt; 2.0) configuration data folders and how they are imported
 to new desktop layout see 
-<api group="layer" category="deprecated" name="OldConfigurationData" type="export" url="http://core.netbeans.org/windowsystem/changes.html#3.4.6" >
+<api group="layer" category="deprecated" name="OldConfigurationData" type="export" url="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s346" >
 old configuration data </api>
 </answer>
 
@@ -1422,9 +1422,9 @@
 -->
 <answer id="resources-read">
 Module reads its own configuration from its layer and eventualy from other module layers
-if provided. Data have following <a href="http://core.netbeans.org/windowsystem/changes.html#3.4.2">folder structure</a>.
-It contains <api group="layer" category="private" type="export" name="ModuleDataStructure" url="http://core.netbeans.org/windowsystem/changes.html#3.4.2">Module folder structure under Windows2 directory </api>
-and <api group="layer" category="private" type="export" name="LocalDataStructure" url="http://core.netbeans.org/windowsystem/changes.html#3.4.2">Local folder structure under Windows2Local directory</api>.
+if provided. Data have following <a href="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s342">folder structure</a>.
+It contains <api group="layer" category="private" type="export" name="ModuleDataStructure" url="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s342">Module folder structure under Windows2 directory </api>
+and <api group="layer" category="private" type="export" name="LocalDataStructure" url="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s342">Local folder structure under Windows2Local directory</api>.
 </answer>
 
 </api-answers>
diff --git a/platform/openide.windows/src/org/openide/windows/CloneableOpenSupport.java b/platform/openide.windows/src/org/openide/windows/CloneableOpenSupport.java
index e831de5..2c9fc0e 100644
--- a/platform/openide.windows/src/org/openide/windows/CloneableOpenSupport.java
+++ b/platform/openide.windows/src/org/openide/windows/CloneableOpenSupport.java
@@ -307,7 +307,7 @@
         public CloneableOpenSupport findCloneableOpenSupport();
     }
 
-    /** Property change & veto listener. To react to dispose/delete of
+    /** Property change &amp; veto listener. To react to dispose/delete of
     * the data object.
     */
     private static final class Listener extends CloneableTopComponent.Ref implements PropertyChangeListener,
diff --git a/platform/openide.windows/src/org/openide/windows/Mode.java b/platform/openide.windows/src/org/openide/windows/Mode.java
index ed32f33..801ecce 100644
--- a/platform/openide.windows/src/org/openide/windows/Mode.java
+++ b/platform/openide.windows/src/org/openide/windows/Mode.java
@@ -34,12 +34,12 @@
  * Modules can add their own modes by declaring them using XML.
  * <P>
  * Modules can get a set of current modes by calling
- * {@link WindowManager#getModes}.<p>
+ * {@link WindowManager#getModes}.
  *
  * <p>
  * Each mode must have a unique name.
  *
- * <p><p>
+ * <p>
  * <b><font color="red"><em>Important note: Do not provide implementation of this interface unless you are window system provider!</em></font></b>
  */
 public interface Mode extends Serializable {
@@ -134,7 +134,7 @@
     /**
      * Extension to provide exposure of XML configuration.
      * 
-     * @see http://wiki.apidesign.org/wiki/ExtendingInterfaces
+     * @see <a href="http://wiki.apidesign.org/wiki/ExtendingInterfaces">ExtendingInterfaces</a>
      * @since 6.82
      */
     public interface Xml extends Mode {
diff --git a/platform/openide.windows/src/org/openide/windows/ModeSelector.java b/platform/openide.windows/src/org/openide/windows/ModeSelector.java
index 228d4fc..b749c6b 100644
--- a/platform/openide.windows/src/org/openide/windows/ModeSelector.java
+++ b/platform/openide.windows/src/org/openide/windows/ModeSelector.java
@@ -25,11 +25,11 @@
  * the last-used editor-kind Mode, or the default editor mode if no editor was used.
  * Plugin implementors can hint the Window System to use more appropriate
  * mode than the default to open the TopComppnent. 
- * <p/>
+ * <p>
  * If none of the registered {@code ModeSelector}s return a valid Mode, the TopComponent
  * will open in the mode selected by the default algorithm. Implementation of WindowManager 
  * may ignore the hint, for example if it conflicts with persisted settings or user choices.
- * <p/>
+ * <p>
  * Implementations of {@code ModeSelector} must be registered in the default Lookup.
  * @since 6.77
  */
diff --git a/platform/openide.windows/src/org/openide/windows/ModeUtilities.java b/platform/openide.windows/src/org/openide/windows/ModeUtilities.java
index 2de0b7b..c9d6f4c 100644
--- a/platform/openide.windows/src/org/openide/windows/ModeUtilities.java
+++ b/platform/openide.windows/src/org/openide/windows/ModeUtilities.java
@@ -39,7 +39,7 @@
  * of TopComponents at shut-down time in the Windows2Local file system. Note also that 
  * this is not connected with the deprecated notion of {@link Workspace}.
  * 
- * @see http://wiki.apidesign.org/wiki/ExtendingInterfaces
+ * @see <a href="http://wiki.apidesign.org/wiki/ExtendingInterfaces">ExtendingInterfaces</a>
  * 
  * @author Mark Phipps
  * @since 6.82
diff --git a/platform/openide.windows/src/org/openide/windows/OnShowing.java b/platform/openide.windows/src/org/openide/windows/OnShowing.java
index 6d29f7d..f210cc2 100644
--- a/platform/openide.windows/src/org/openide/windows/OnShowing.java
+++ b/platform/openide.windows/src/org/openide/windows/OnShowing.java
@@ -38,7 +38,7 @@
  * </pre>
  * 
  * @since 6.54
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 @NamedServiceDefinition(
     path="Modules/UIReady", // NOI18N
diff --git a/platform/openide.windows/src/org/openide/windows/TopComponent.java b/platform/openide.windows/src/org/openide/windows/TopComponent.java
index 6c6bc16..3dbffd2 100644
--- a/platform/openide.windows/src/org/openide/windows/TopComponent.java
+++ b/platform/openide.windows/src/org/openide/windows/TopComponent.java
@@ -797,7 +797,7 @@
      * if it is not already.
      * <p>Subclasses should override this method to transfer focus to desired
      * focusable component. <code>TopComponent</code> itself is not focusable.
-     * See for example {@link org.openide.text.CloneableEditor#requestFocus}.
+     * See for example <a href="@org-openide-text@/org/openide/text/CloneableEditor.html#requestFocus--">CloneableEditor#requestFocus</a>.
      * <p><strong>Note:</strong> Use {@link #requestActive} instead to make TopComponent active
      * in the window system (not only focused). This method should be considered deprecated
      * for calling from outside; but it may be overridden (inside of which you may call super).
@@ -817,7 +817,7 @@
      * if it is not already.
      * <p>Subclasses should override this method to transfer focus to desired
      * focusable component. <code>TopComponent</code> itself is not focusable.
-     * See for example {@link org.openide.text.CloneableEditor#requestFocusInWindow}.
+     * See for example <a href="@org-openide-text@/org/openide/text/CloneableEditor.html#requestFocusInWindow--">CloneableEditor#requestFocusInWindow</a>.
      * <p><strong>Note:</strong> Use {@link #requestActive} instead to make TopComponent active
      * in the window system (not only focused). This method should be considered deprecated
      * for calling from outside; but it may be overridden (inside of which you may call super).
@@ -1305,7 +1305,7 @@
      * an action just because focus is transferred from a component with a (potential)
      * node selection to a component that does not have node selections.
      * <p>
-     * If you override the method in your subclass, the default activatedNodes<->lookup synchronization
+     * If you override the method in your subclass, the default activatedNodes&lt;-&gt;lookup synchronization
      * will not be performed. That can influence functionality that relies on activated Nodes being present 
      * in the TopComponent's lookup. If you want to preserve the synchronization, use {@link #associateLookup}
      * instead.
diff --git a/platform/openide.windows/src/org/openide/windows/TopComponentGroup.java b/platform/openide.windows/src/org/openide/windows/TopComponentGroup.java
index e155dbe..e9551fa 100644
--- a/platform/openide.windows/src/org/openide/windows/TopComponentGroup.java
+++ b/platform/openide.windows/src/org/openide/windows/TopComponentGroup.java
@@ -23,10 +23,10 @@
 
 /**
  * Represents window group. The notion of window group is defined by
- * <a href="http://ui.netbeans.org/docs/ui/ws/ws_spec.html#3.7">Window system UI specification document</a>.
- * The concept of window group explains <a href="http://core.netbeans.org/windowsystem/changes.html#2.3">API changes document</a>.
+ * <a href="https://netbeans.apache.org/projects/ui/ws/ws_spec.html#s37">Window system UI specification document</a>.
+ * The concept of window group explains <a href="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s23">API changes document</a>.
  *
- * <p><p>
+ * <p>
  * <b><font color="red"><em>Importatnt note: Do not provide implementation of this interface unless you are window system provider!</em></font></b>
  *
  * @author  Peter Zavadsky
diff --git a/platform/openide.windows/src/org/openide/windows/WindowManager.java b/platform/openide.windows/src/org/openide/windows/WindowManager.java
index 7717b6c..bbf60d9 100644
--- a/platform/openide.windows/src/org/openide/windows/WindowManager.java
+++ b/platform/openide.windows/src/org/openide/windows/WindowManager.java
@@ -40,7 +40,7 @@
  * Manages window system.
  * Allows the work with window system components, i.e. <code>Mode</code>s, <code>TopComponentGroup</code>s
  * and provides handling of operations provided over <code>TopComponent</code>s.
- * <p><p>
+ * <p>
  * <b><font color="red"><em>Important note: Do not provide implementation of this abstract class unless you are window system provider!</em></font></b>
  *
  * @author Jaroslav Tulach
@@ -668,20 +668,18 @@
      * <li>Load new window layout from the given role.</li>
      * <li>Show the main window.</li>
      * </ol>
-     * The whole operation may take a few seconds to complete.</p>
+     * The whole operation may take a few seconds to complete.
      * <p>Windows that were opened in previous role but are not opened or present 
-     * in the new role will receive <code>TopComponent.componentClosed()</code> notification.</p>
+     * in the new role will receive <code>TopComponent.componentClosed()</code> notification.
      * <p>Note: To keep the main window showing while switching the role, use the following branding:
      * <code>org.netbeans.core.windows.WinSys.Show.Hide.MainWindow.While.Switching.Role=false</code>
-     * </p>
      * <p>Note: Action <code>org.netbeans.core.windows.actions.SwitchRoleKeepDocumentsAction</code>
      * in <code>Actions/Window</code> layer folder can change the role too but it
      * also attempts to keep documents from previous role opened in the new role as well.
      * The new role name is <code>ActionEvent.getActionCommand()</code> argument.
-     * </p>
      * <p>If the window system has been already loaded then the method must be
      * called from EDT thread, otherwise it's safe to set the initial startup
-     * role in e.g. <code>ModuleInstall.restored()</code> method.</p>
+     * role in e.g. <code>ModuleInstall.restored()</code> method.
      * @param roleName Name of the new role to switch to or null to switch
      * to the default window layout.
      * @since 6.43
diff --git a/platform/openide.windows/src/org/openide/windows/Workspace.java b/platform/openide.windows/src/org/openide/windows/Workspace.java
index 1946a03..1d65760 100644
--- a/platform/openide.windows/src/org/openide/windows/Workspace.java
+++ b/platform/openide.windows/src/org/openide/windows/Workspace.java
@@ -35,7 +35,7 @@
  * When serialized only keeps "weak" reference to this workspace does not
  * stores the content of the workspace (it is responsibility of window manager).
  *
- * <p><p>
+ * <p>
  * <b><font color="red"><em>Important note: Do not provide implementation of this interface unless you are window system provider!</em></font></b>
  *
  * @author Jaroslav Tulach
diff --git a/platform/openide.windows/src/org/openide/windows/doc-files/api.html b/platform/openide.windows/src/org/openide/windows/doc-files/api.html
index 123dbd0..3e4cb0c 100644
--- a/platform/openide.windows/src/org/openide/windows/doc-files/api.html
+++ b/platform/openide.windows/src/org/openide/windows/doc-files/api.html
@@ -26,7 +26,7 @@
 <body>
 
 <p></p><p>
-<em>Note: See the <a href="http://core.netbeans.org/windowsystem/changes.html">changes document</a>. Window system implementation
+<em>Note: See the <a href="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html">changes document</a>. Window system implementation
 changed is major version. Comparing to the older version it has changed its
 laout significantly, introduced group, and released support of workspaces</em>
 </p>
@@ -493,7 +493,7 @@
 can return <code>null</code> <code>findDefault</code> should handle such case somehow
 eg. by calling of <code>getDefault</code>.
 There is a
-<a href="http://www.netbeans.org/source/browse/platform/samples/window-system-basic/">simple example module</a>
+<a href="http://source.apidesign.org/hg/netbeans/misc/file/tip/platform/samples/window-system-basic">simple example module</a>
 where persistent singleton instance is defined in module layer as described here.
 
 <p>It is possible to use <code>writeReplace</code> and <code>readResolve</code> as well
@@ -780,7 +780,7 @@
 </P>
 
 <PRE>
-   See <a href="http://core.netbeans.org/windowsystem/changes.html#3.4.2">Structure of configuration data</a>.
+   See <a href="https://netbeans.apache.org/projects/platform/core/windowsystem/changes.html#s342">Structure of configuration data</a>.
 </PRE>
 
 </div>
diff --git a/platform/options.api/src/org/netbeans/api/options/OptionsDisplayer.java b/platform/options.api/src/org/netbeans/api/options/OptionsDisplayer.java
index e770190..fe5e99b 100644
--- a/platform/options.api/src/org/netbeans/api/options/OptionsDisplayer.java
+++ b/platform/options.api/src/org/netbeans/api/options/OptionsDisplayer.java
@@ -53,7 +53,7 @@
      * @since 1.29
      */
     public static final String KEYMAPS = "Keymaps"; // NOI18N
-    /** Registration name of FontsAndColors category (aka Fonts & Colors).
+    /** Registration name of FontsAndColors category (aka Fonts &amp; Colors).
      * @since 1.29
      */
     public static final String FONTSANDCOLORS = "FontsAndColors"; // NOI18N
diff --git a/platform/options.api/src/org/netbeans/spi/options/AdvancedOption.java b/platform/options.api/src/org/netbeans/spi/options/AdvancedOption.java
index 7803dae..e3cc244 100644
--- a/platform/options.api/src/org/netbeans/spi/options/AdvancedOption.java
+++ b/platform/options.api/src/org/netbeans/spi/options/AdvancedOption.java
@@ -44,19 +44,19 @@
  * &lt;/folder&gt;</pre>
  *
  * where:
- * <br/><b>controller</b> should be an instance of <code>OptionsPanelController</code>
- * <br/><b>displayName</b> should be a localized string for your tab display name
- * <br/><b>toolTip</b> should be a localized string for your tab tool tip
+ * <br><b>controller</b> should be an instance of <code>OptionsPanelController</code>
+ * <br><b>displayName</b> should be a localized string for your tab display name
+ * <br><b>toolTip</b> should be a localized string for your tab tool tip
  * <span class="nonnormative"><strong>Currently unused.</strong></span>
- * <br/><b>keywords</b> should be localized keywords list, separated by comma in Bundle, for quickserach purposes
- * <br/><b>keywordsCategory</b> should be relative path to your panel inside Options dialog
- * <br/><br/>
+ * <br><b>keywords</b> should be localized keywords list, separated by comma in Bundle, for quickserach purposes
+ * <br><b>keywordsCategory</b> should be relative path to your panel inside Options dialog
+ * <br><br>
  * No explicit sorting recognized (may be sorted e.g. by display name).
  *
  * <p><b>Related documentation</b>
  *
  * <ul>
- * <li><a href="http://platform.netbeans.org/tutorials/nbm-options.html">NetBeans Options Window Module Tutorial</a>
+ * <li><a href="https://netbeans.apache.org/tutorials/nbm-options.html">NetBeans Options Window Module Tutorial</a>
  * </ul>
  *
  * @see OptionsCategory
diff --git a/platform/options.api/src/org/netbeans/spi/options/OptionsCategory.java b/platform/options.api/src/org/netbeans/spi/options/OptionsCategory.java
index 5829903..fd42e34 100644
--- a/platform/options.api/src/org/netbeans/spi/options/OptionsCategory.java
+++ b/platform/options.api/src/org/netbeans/spi/options/OptionsCategory.java
@@ -29,7 +29,7 @@
 import org.openide.util.ImageUtilities;
 
 /**
- * This class represents one category (like "Fonts & Colors"
+ * This class represents one category (like "Fonts &amp; Colors"
  * or "Editor") in Options Dialog.
  * <p>Normally panels are registered using one of the annotations in {@link OptionsPanelController}.
  * They may also be registered in a layer manually as follows:
@@ -50,17 +50,17 @@
  *   &lt;/folder&gt;</pre>
  *
  * where:
- * <br/><b>controller</b> should be an instance of <code>OptionsPanelController</code>
- * <br/><b>title</b> should be a localized string where title of your tab inside OD is stored
+ * <br><b>controller</b> should be an instance of <code>OptionsPanelController</code>
+ * <br><b>title</b> should be a localized string where title of your tab inside OD is stored
  * <span class="nonnormative"><strong>Currently unused.</strong></span>
- * <br/><b>categoryName</b> should be a localized string for your tab's category name
- * <br/><b>iconBase</b> should be relative path to icon wou wish to display inside OD
- * <br/><b>keywords</b> should be localized keywords list, separated by comma in Bundle, for quickserach purposes
- * <br/><b>keywordsCategory</b> should be relative path to your panel inside Options dialog
- * <br/><b>description</b> should be a localized string where your tab description is stored
+ * <br><b>categoryName</b> should be a localized string for your tab's category name
+ * <br><b>iconBase</b> should be relative path to icon wou wish to display inside OD
+ * <br><b>keywords</b> should be localized keywords list, separated by comma in Bundle, for quickserach purposes
+ * <br><b>keywordsCategory</b> should be relative path to your panel inside Options dialog
+ * <br><b>description</b> should be a localized string where your tab description is stored
  * <span class="nonnormative"><strong>Currently unused.</strong></span>
  *
- * <br/><br/>
+ * <br><br>
  * Or, when registering a category with sub-panels, instead of
  * <pre style="background-color: rgb(255, 255, 153);">
  *            &lt;attr name="controller" newvalue="org.netbeans.core.ui.options.general.GeneralOptionsPanelController"/&gt;
@@ -71,7 +71,7 @@
  * </pre>
  * and supply a folder where instaces of <code>AdvancedOption</code> should be
  * registered. Its instances would be found automatically and shown as sub-panels
-  <br/><br/>
+  <br><br>
  * Use standard {@code position} attributes to sort items registered in layers.
  *
  * @see AdvancedOption
diff --git a/platform/options.api/src/org/netbeans/spi/options/OptionsPanelController.java b/platform/options.api/src/org/netbeans/spi/options/OptionsPanelController.java
index e3dfa6b..ca020af 100644
--- a/platform/options.api/src/org/netbeans/spi/options/OptionsPanelController.java
+++ b/platform/options.api/src/org/netbeans/spi/options/OptionsPanelController.java
@@ -337,7 +337,7 @@
 
     /**
      * Registers keywords for some panel in the Options dialog. Should be placed
-     * on a {@link JPanel} instance.
+     * on a {@link javax.swing.JPanel} instance.
      *
      * @since org.netbeans.modules.options.api/1 1.29
      */
@@ -352,30 +352,25 @@
          * <p> Each entry in the provided array is split around comma character.
          * For example:
          *
-         * <blockquote><table cellpadding=1 cellspacing=0 summary="Split
-         * examples showing array and keywords"> <tr> <th>Provided array</th>
-         * <th>Keywords</th> </tr> <tr><td align=center>{ "Boo", "fOo" }</td>
-         * <td><tt>{ "BOO", "FOO" }</tt></td></tr>
-         * </tr> <tr><td align=center>{ "boo and", "foo" }</td>
-         * <td><tt>{ "BOO AND", "FOO" }</tt></td></tr>
-         * </tr> <tr><td align=center>{ "boo,and", "foo" }</td>
-         * <td><tt>{ "BOO", "AND", "FOO" }</tt></td></tr> 
+         * <blockquote><table>
+         * <caption>Split examples showing array and keywords</caption>
+         * <tr><th>Provided array</th><th>Keywords</th></tr> 
+         * <tr><td align=center>{ "Boo", "fOo" }</td><td><tt>{ "BOO", "FOO" }</tt></td></tr>
+         * <tr><td align=center>{ "boo and", "foo" }</td><td><tt>{ "BOO AND", "FOO" }</tt></td></tr>
+         * <tr><td align=center>{ "boo,and", "foo" }</td><td><tt>{ "BOO", "AND", "FOO" }</tt></td></tr> 
          * </table></blockquote>
          *
          * <p> The user's search-text is split around the space character to form words.
          * All words need to be present in a panel to yield a successful search.
          * The registered keywords {"Boo,anD", "fOo"}, for example, yield the following results with these search-texts:
          *
-         * <blockquote><table cellpadding=1 cellspacing=0 summary="Search
-         * examples showing search-text and results"> <tr> <th>User's search-text</th>
-         * <th>Result</th> </tr> <tr><td align=center>"boo"</td>
-         * <td><tt>keyword found</tt></td></tr>
-         * <tr><td align=center>"nd"</td>
-         * <td><tt>keyword found</tt></td></tr>
-         * <tr><td align=center>"boo and"</td>
-         * <td><tt>keyword found</tt></td></tr>
-         * <tr><td align=center>"boo moo"</td>
-         * <td><tt>keyword NOT found</tt></td></tr>
+         * <blockquote><table> 
+         * <caption>Search examples showing search-text and results</caption>
+         * <tr><th>User's search-text</th><th>Result</th></tr>
+         * <tr><td align=center>"boo"</td><td><tt>keyword found</tt></td></tr>
+         * <tr><td align=center>"nd"</td><td><tt>keyword found</tt></td></tr>
+         * <tr><td align=center>"boo and"</td><td><tt>keyword found</tt></td></tr>
+         * <tr><td align=center>"boo moo"</td><td><tt>keyword NOT found</tt></td></tr>
          * </table></blockquote>
          */
         String[] keywords();
@@ -394,7 +389,7 @@
 
         /**
          * Optional title that must be used if the panel is part of a tabbed pane, such as when it is
-         * in the Editor, Fonts & Colors, Java, PHP, C/C++ or Miscellaneous categories, matching the
+         * in the Editor, Fonts &amp; Colors, Java, PHP, C/C++ or Miscellaneous categories, matching the
          * {@link SubRegistration#displayName}.
          * 
          * You may use {@code #key} syntax.
diff --git a/platform/sendopts/apichanges.xml b/platform/sendopts/apichanges.xml
index de16ffc..9221c15 100644
--- a/platform/sendopts/apichanges.xml
+++ b/platform/sendopts/apichanges.xml
@@ -126,7 +126,7 @@
       <author login="jtulach"/>
       <compatibility addition="yes" modification="yes" binary="incompatible" source="incompatible" semantic="incompatible" deprecation="no" deletion="yes"/>
       <description>
-          After the <a href="http://www.netbeans.org/issues/show_bug.cgi?id=57611">review from others</a>
+          After the <a href="https://bz.apache.org/netbeans/show_bug.cgi?id=57611">review from others</a>
           it has been decided to de-generify the interfaces. As a result
           of this complete rewrite, the API clients need to be fully 
           rewritten as most of the method signatures changed.
diff --git a/platform/sendopts/arch.xml b/platform/sendopts/arch.xml
index 09dfa60..bf33456 100644
--- a/platform/sendopts/arch.xml
+++ b/platform/sendopts/arch.xml
@@ -300,7 +300,7 @@
            identified by some additional option, so when the shared option appears
            the infrastructure knows which processor to delegate to. 
            This is demonstrated in the 
-           <a href="http://www.netbeans.org/source/browse/contrib/sendopts/test/unit/src/org/netbeans/api/sendopts/Attic/SharedOptionTest.java?rev=1.1.2">
+           <a href="https://github.com/apache/netbeans/tree/master/platform/sendopts/test/unit/src/org/netbeans/api/sendopts/SharedOptionTest.java">
            SharedOptionTest</a> which
            basically does the following:
        </p>       
diff --git a/platform/sendopts/src/org/netbeans/spi/sendopts/Arg.java b/platform/sendopts/src/org/netbeans/spi/sendopts/Arg.java
index 81006db..545bfa8 100644
--- a/platform/sendopts/src/org/netbeans/spi/sendopts/Arg.java
+++ b/platform/sendopts/src/org/netbeans/spi/sendopts/Arg.java
@@ -59,7 +59,7 @@
  *   }
  * }
  * </pre>
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 2.20
  */
 @Retention(RetentionPolicy.RUNTIME)
diff --git a/platform/sendopts/src/org/netbeans/spi/sendopts/ArgsProcessor.java b/platform/sendopts/src/org/netbeans/spi/sendopts/ArgsProcessor.java
index 3198611..4cab7a1 100644
--- a/platform/sendopts/src/org/netbeans/spi/sendopts/ArgsProcessor.java
+++ b/platform/sendopts/src/org/netbeans/spi/sendopts/ArgsProcessor.java
@@ -32,7 +32,7 @@
  * use the platform.
  * </p>
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 2.20
  */
 public interface ArgsProcessor {
diff --git a/platform/sendopts/src/org/netbeans/spi/sendopts/Description.java b/platform/sendopts/src/org/netbeans/spi/sendopts/Description.java
index 95e6234..83dcc34 100644
--- a/platform/sendopts/src/org/netbeans/spi/sendopts/Description.java
+++ b/platform/sendopts/src/org/netbeans/spi/sendopts/Description.java
@@ -28,7 +28,7 @@
  * Can be attached to public non-static fields that are also annotated 
  * by {@code @}{@link Arg}.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 2.20
  */
 @Target({ElementType.FIELD})
diff --git a/platform/sendopts/src/org/netbeans/spi/sendopts/Option.java b/platform/sendopts/src/org/netbeans/spi/sendopts/Option.java
index 0c5a55c..d7f40de 100644
--- a/platform/sendopts/src/org/netbeans/spi/sendopts/Option.java
+++ b/platform/sendopts/src/org/netbeans/spi/sendopts/Option.java
@@ -217,7 +217,7 @@
         return new Option(shortName, longName, 2);
     }
 
-    /** Creates an option that can accept <q>additional arguments</q>.
+    /** Creates an option that can accept <code>additional arguments</code>.
      * For example to have option that opens few files
      * one could write:<pre>
      * Option openOption = Option.additionalArguments('o', "open");</pre> 
@@ -241,8 +241,8 @@
      * <code>{ "X.java", "Y.java", "Z.txt" }</code>.
      * <p>
      * Obviously only one such {@link Option#additionalArguments} can be
-     * used at once on a command line. If there was not only the <q>open</q>
-     * but also <q>edit</q> option 
+     * used at once on a command line. If there was not only the <code>open</code>
+     * but also <code>edit</code> option 
      * taking the additional arguments, 
      * then command line like: <pre>
      * --edit X.java --open Y.java Z.txt</pre>
@@ -254,7 +254,7 @@
     public static Option additionalArguments(char shortName, String longName) {
         return new Option(shortName, longName, 3);
     }
-    /** Creates a default option that accepts <q>additional arguments</q>
+    /** Creates a default option that accepts <code>additional arguments</code>
      * not claimed by any other option. 
      * For example to have option that opens few files
      * one could write:<pre>
@@ -298,7 +298,7 @@
     /** Creates an option that is always present. This can be useful for
      * processors that want to be notified everytime the command line
      * is successfuly parsed. 
-     * 
+     * <pre>
      * Option always = Option.always();</pre> 
      * and inside of the {@link OptionProcessor} declaring this
      * option use:<pre>
diff --git a/platform/sendopts/src/org/netbeans/spi/sendopts/OptionGroups.java b/platform/sendopts/src/org/netbeans/spi/sendopts/OptionGroups.java
index 21a89d3..36c9e30 100644
--- a/platform/sendopts/src/org/netbeans/spi/sendopts/OptionGroups.java
+++ b/platform/sendopts/src/org/netbeans/spi/sendopts/OptionGroups.java
@@ -31,12 +31,13 @@
  * arguments to each method. The <em>Min</em> and <em>Max</em> shown the
  * number that is needed for the group option to be "consistent":
  * 
- * <table border=1>
- *   <theader>
- *     <td>Method</td>
- *     <td>Min</td>
- *     <td>Max</td>
- *   </theader>
+ * <table>
+ * <caption>Behaviour overview</caption>
+ *   <tr>
+ *     <th>Method</th>
+ *     <th>Min</th>
+ *     <th>Max</th>
+ *   </tr>
  * 
  *   <tr>
  *     <td>{@link OptionGroups#allOf}</td>
@@ -90,7 +91,7 @@
      * can then be processed one by one.
      * 
      * @param options the sub options to check on the command line
-     * @return compound option that <q>is activated</q> if at least one of the
+     * @return compound option that <em>is activated</em> if at least one of the
      *    options appears on the command line
      */
     public static Option someOf(Option... options) {
@@ -105,7 +106,7 @@
      * with associated value of <code>new String[0]</code>.
      * 
      * @param options the sub options to check on the command line
-     * @return compound option that <q>is activated</q> if at least one of the
+     * @return compound option that <em>is activated</em> if at least one of the
      *    options appears on the command line
      */
     public static Option anyOf(Option... options) {
diff --git a/platform/settings/src/org/netbeans/api/settings/ConvertAsJavaBean.java b/platform/settings/src/org/netbeans/api/settings/ConvertAsJavaBean.java
index 47882ea..768b40e 100644
--- a/platform/settings/src/org/netbeans/api/settings/ConvertAsJavaBean.java
+++ b/platform/settings/src/org/netbeans/api/settings/ConvertAsJavaBean.java
@@ -47,7 +47,7 @@
  * starts to listen on existing objects and in case a property change
  * is delivered, the new state of the object is persisted again.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 1.20
  */
 @Retention(RetentionPolicy.SOURCE)
diff --git a/platform/settings/src/org/netbeans/api/settings/ConvertAsProperties.java b/platform/settings/src/org/netbeans/api/settings/ConvertAsProperties.java
index f3651f1..874e12f 100644
--- a/platform/settings/src/org/netbeans/api/settings/ConvertAsProperties.java
+++ b/platform/settings/src/org/netbeans/api/settings/ConvertAsProperties.java
@@ -42,7 +42,7 @@
  * }
  * </pre>
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  * @since 1.18
  */
 @Retention(RetentionPolicy.SOURCE)
diff --git a/platform/settings/src/org/netbeans/api/settings/FactoryMethod.java b/platform/settings/src/org/netbeans/api/settings/FactoryMethod.java
index 1bd1420..58bed32 100644
--- a/platform/settings/src/org/netbeans/api/settings/FactoryMethod.java
+++ b/platform/settings/src/org/netbeans/api/settings/FactoryMethod.java
@@ -30,7 +30,7 @@
  * {@link Convertor}s.
  * 
  * @since 1.40
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 @Target(ElementType.TYPE)
 @Retention(RetentionPolicy.RUNTIME)
diff --git a/platform/settings/src/org/netbeans/spi/settings/DOMConvertor.java b/platform/settings/src/org/netbeans/spi/settings/DOMConvertor.java
index 255859e..435d9d6 100644
--- a/platform/settings/src/org/netbeans/spi/settings/DOMConvertor.java
+++ b/platform/settings/src/org/netbeans/spi/settings/DOMConvertor.java
@@ -224,7 +224,7 @@
         return obj;
     }
     
-    /** delegate the write operation to a convertor able to write <code>obj<code>.
+    /** delegate the write operation to a convertor able to write <code>obj</code>.
      * @param doc a DOM document allowing to create elements describing passed object
      * @param obj an object to convert
      * @return a DOM element representation
diff --git a/webcommon/api.knockout/arch.xml b/webcommon/api.knockout/arch.xml
index 7dee84b..4e8a891 100644
--- a/webcommon/api.knockout/arch.xml
+++ b/webcommon/api.knockout/arch.xml
@@ -120,11 +120,11 @@
 <p>
 This is the code to register a sample <a href="@TOP@/org/netbeans/spi/knockout/BindingsProvider.html">provider</a>:
 </p>
-<pre>
-{@code @}ServiceProvider(service = BindingsProvider.class)
-public class SampleBindingsProvider implements {@link org.netbeans.spi.knockout.BindingsProvider} {
-    {@code @Override}
-    public void findBindings(FileObject htmlFile, Response r) {
+<pre><code style="background-color:#fafafb">
+<span>@</span>ServiceProvider(service = BindingsProvider.class)
+public class SampleBindingsProvider implements <a href="@TOP@/org/netbeans/spi/knockout/BindingsProvider.html">org.netbeans.spi.knockout.BindingsProvider</a> {
+    <span>@</span>Override
+    public void findBindings(FileObject htmlFile) {
         Bindings tweet = Bindings.create("Tweet").
                 stringProperty("from_user", false).
                 intProperty("from_user_id", false);
@@ -142,10 +142,10 @@
                 modelProperty("currentTweets", tweet, true).
                 modelProperty("savedLists", tweeters, true);
 
-        r.applyBindings(twitterClient);
+        return Response.create(twitterClient);
     }
 }
-</pre>
+</code></pre>
 
 <p>
 This sample has been used when testing the module.
diff --git a/webcommon/api.knockout/src/org/netbeans/spi/knockout/Bindings.java b/webcommon/api.knockout/src/org/netbeans/spi/knockout/Bindings.java
index 2a04676..4335373 100644
--- a/webcommon/api.knockout/src/org/netbeans/spi/knockout/Bindings.java
+++ b/webcommon/api.knockout/src/org/netbeans/spi/knockout/Bindings.java
@@ -38,9 +38,9 @@
  * Register as {@link BindingsProvider}. When called build description of JSON
  * types using methods like {@link #stringProperty(java.lang.String, boolean)}
  * and then pass the result into
- * {@link Response#applyBindings(org.netbeans.spi.knockout.Bindings)} method.
+ * {@link Response#create(Bindings)} method.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 public final class Bindings {
 
diff --git a/webcommon/api.knockout/src/org/netbeans/spi/knockout/BindingsProvider.java b/webcommon/api.knockout/src/org/netbeans/spi/knockout/BindingsProvider.java
index cd9eba8..956f46f 100644
--- a/webcommon/api.knockout/src/org/netbeans/spi/knockout/BindingsProvider.java
+++ b/webcommon/api.knockout/src/org/netbeans/spi/knockout/BindingsProvider.java
@@ -25,12 +25,12 @@
  * A provider that knows more about structure of Knockout bindings in an HTML
  * page. Providers should be registered by {@link ServiceProvider} annotation so
  * they can be found for a particular HTML file. Their
- * {@link #findBindings(org.openide.filesystems.FileObject, org.netbeans.spi.knockout.BindingsProvider.Response) findBindings}
+ * {@link #findBindings(org.openide.filesystems.FileObject) findBindings}
  * method is called when a knockout code completion is about to be shown in the
  * HTML editor and then can generate a JSON like description of the structure of
  * knockout context via {@link Bindings} methods.
  *
- * @author Jaroslav Tulach <jtulach@netbeans.org>
+ * @author Jaroslav Tulach &lt;jtulach@netbeans.org&gt;
  */
 public interface BindingsProvider {
 
@@ -44,7 +44,7 @@
 
     /**
      * Methods for {@link BindingsProvider}s to provide a response when
-     * {@link BindingsProvider#findBindings(org.openide.filesystems.FileObject, org.netbeans.spi.knockout.BindingsProvider.Response) queries}
+     * {@link BindingsProvider#findBindings(org.openide.filesystems.FileObject) queries}
      * about a particular HTML file.
      */
     public static final class Response {
diff --git a/webcommon/api.knockout/src/org/netbeans/spi/knockout/package.html b/webcommon/api.knockout/src/org/netbeans/spi/knockout/package.html
index 4e7f59a..7037828 100644
--- a/webcommon/api.knockout/src/org/netbeans/spi/knockout/package.html
+++ b/webcommon/api.knockout/src/org/netbeans/spi/knockout/package.html
@@ -21,7 +21,7 @@
 -->
 <html>
     <body>
-        <div>Java {@link org.netbeans.spi.knockout.Bindings model class} to describe JSON-like <a href="http://knockoutjs.com">Knockout</a> bindings and
+        <div>Java {@link org.netbeans.spi.knockout.Bindings model class} to describe JSON-like <a href="https://knockoutjs.com">Knockout</a> bindings and
             register {@link org.netbeans.spi.knockout.BindingsProvider a provider} used by the editor infrastructure
             to query for the {@link org.netbeans.spi.knockout.Bindings model}.
         </div>
diff --git a/webcommon/web.clientproject/src/org/netbeans/modules/web/clientproject/sites/OnlineSites.java b/webcommon/web.clientproject/src/org/netbeans/modules/web/clientproject/sites/OnlineSites.java
index 05a6943..f438588 100644
--- a/webcommon/web.clientproject/src/org/netbeans/modules/web/clientproject/sites/OnlineSites.java
+++ b/webcommon/web.clientproject/src/org/netbeans/modules/web/clientproject/sites/OnlineSites.java
@@ -192,13 +192,13 @@
     public static class SiteHtml5Boilerplate extends OnlineSites {
 
         @NbBundle.Messages({
-            "SiteHtml5Boilerplate.name=HTML5 Boilerplate 5.3.0",
+            "SiteHtml5Boilerplate.name=HTML5 Boilerplate 8.0.0",
             "SiteHtml5Boilerplate.description=Site template from html5boilerplate.com.",
         })
         public SiteHtml5Boilerplate() {
             super("INIT.BOILER", Bundle.SiteHtml5Boilerplate_name(), Bundle.SiteHtml5Boilerplate_description(), // NOI18N
-                    "https://github.com/h5bp/html5-boilerplate/releases/download/5.3.0/html5-boilerplate_v5.3.0.zip", // NOI18N
-                    new File(SiteHelper.getJsLibsDirectory(), "html5-boilerplate-530.zip")); // NOI18N
+                    "https://github.com/h5bp/html5-boilerplate/releases/download/v8.0.0/html5-boilerplate_v8.0.0.zip", // NOI18N
+                    new File(SiteHelper.getJsLibsDirectory(), "html5-boilerplate-800.zip")); // NOI18N
         }
 
     }
@@ -207,13 +207,13 @@
     public static class SiteTwitterBootstrap extends OnlineSites {
 
         @NbBundle.Messages({
-            "SiteTwitterBootstrap.name=Twitter Bootstrap 3.3.6",
+            "SiteTwitterBootstrap.name=Twitter Bootstrap 5.2.3",
             "SiteTwitterBootstrap.description=Site template from getbootstrap.com.",
         })
         public SiteTwitterBootstrap() {
             super("TWITTER", Bundle.SiteTwitterBootstrap_name(), Bundle.SiteTwitterBootstrap_description(), // NOI18N
-                    "https://github.com/twbs/bootstrap/releases/download/v3.3.6/bootstrap-3.3.6-dist.zip", // NOI18N
-                    new File(SiteHelper.getJsLibsDirectory(), "twitter-bootstrap-336.zip")); // NOI18N
+                    "https://github.com/twbs/bootstrap/releases/download/v5.2.3/bootstrap-5.2.3-dist.zip", // NOI18N
+                    new File(SiteHelper.getJsLibsDirectory(), "twitter-bootstrap-523.zip")); // NOI18N
         }
 
     }
