//
// Copyright (c) 2015 Eclipse Foundation and others.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//

:toc:
:toc-placement: auto
:icons: font

:jeePackageUrl: https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr
:cdtPackageUrl: https://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/marsr
:pdtPackageUrl: https://www.eclipse.org/downloads/packages/eclipse-php-developers/marsr

= Eclipse IDE, Photon Edition New and Noteworthy

include::platform.adoc[leveloffset=1]

include::jdt.adoc[leveloffset=1]

include::pdt.adoc[leveloffset=1]

include::projects.adoc[leveloffset=1]

[[sources]]
== Sources

Content for this document were harvested from multiple sources, including:

* https://www.eclipse.org/eclipse/news/4.8/M7/[Eclipse Platform 4.8 New and Noteworthy]

== Notices

Eclipse is a trademark of the Eclipse Foundation. Java is a registered trademark of Oracle. 