Skip to content

Commit

Permalink
Merge branch 'master' of http://github.com/JPMoresmau/eclipsefp
Browse files Browse the repository at this point in the history
  • Loading branch information
Scott Michel committed Sep 6, 2011
2 parents 388ab15 + e2d4e74 commit 2185848
Show file tree
Hide file tree
Showing 408 changed files with 28,251 additions and 2,039 deletions.
10 changes: 5 additions & 5 deletions EclipseFP-JE.tex
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
% EclipseFP-JE.tex
\begin{hcarentry}[new]{EclipseFP}
\report{JP Moresmau}%11/10
\begin{hcarentry}[updated]{EclipseFP}
\report{JP Moresmau}%05/11
\status{stable, maintained}
\participants{JP Moresmau, B.\ Scott Michel, building on code from Thiago Arrais, Leif Frenzel, Thomas ten Cate, and others}
\participants{B.\ Scott Michel, Alejandro Serrano, building on code from Thiago Arrais, Leif Frenzel, Thomas ten Cate, and others}
\makeheader

EclipseFP is a set of Eclipse plugins to allow working on Haskell code projects.
It features Cabal integration (.cabal file editor, uses Cabal settings for compilation), and GHC integration. Compilation is done via the GHC API, syntax coloring uses the GHC Lexer. Other standard Eclipse features like code outline, folding, and quick fixes for common errors are also provided. EclipseFP also allows launching GHCi sessions on any module including extensive debugging facilities. It uses Scion to bridge between the Java code for Eclipse and the Haskell APIs.
The source code is fully open source (Eclipse License) and anyone can contribute. Current version is 2.0.4, released in March 2011 and supporting GHC 6.12 and 7.0, and more versions with additional features are planned. Feedback on what is needed is welcome! The website has information on downloading binary releases and getting a copy of the source code. Support and bug tracking is handled through Sourceforge forums.

%**<img width=770 src="./eclipsefp-screenshot1.jpg">
%**<img width=500 src="./eclipsefp-screenshot1.jpg">
%*ignore
\begin{center}
\includegraphics[width=\textwidth]{html/eclipsefp-screenshot1.jpg}
\includegraphics[width=0.47\textwidth]{html/eclipsefp-screenshot1.jpg}
\end{center}
%*endignore

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,40 @@ Fixes:
- files containing tabs instead of space: a warning is raised when opening to give the option of converting tabs to space,
since in most cases with GHC7 the editor will crash on opening. Option to disable "spaces for tabs" in preferences removed. You can't have tabs, full stop.
- on unix, an error "getFileStatus: does not exist" could happen
- Cabal files with if else sections were sometimes not parsed properly
- On a multi component project, if the last component failed, every file would raise an error. We now revert to the last properly loaded component

Features:
- Quick Fix: add missing dependency on hidden package
- run cabal update before building scion
- Quick Fix: add missing import
- Quick Fix: show them in the vertical ruler
- Run cabal update before building scion
- Wizard on projects (cabal source export, install, test, haddock export) will ask the user to save files if there are unsaved files in the project
- Compressed outline view: When a data declaration contains a single constructor with a name identical to the data declaration, the node for the constructor is hidden and the constructor's children directly expanded.
- More options in the visual .cabal files editor
- Support for moving or renaming modules
- SourceGraph integration
- Support for executable profiling
- Hoogle search integration
- Package and Module Browser
- Autocompletion in Haskell source files
- Text editors and new file wizards for Alex, Happy and UUAGC
- HLint integration
- New project wizards and file associations for Snap and Yesod web frameworks
- Support for running test-framework tests and showing the results in JUnit view

Internal:
- Needs BIRT Charting Engine to get profiling result graphs (however, EclipseFP can install and run without BIRT)
- Needs Web Tools Platform to open web pages
- Includes a packaged version of scion-browser. The development of that library is done in https://github.com/serras/scion-class-browser

Upgrade notes:
- If you had EclipseFP configured with a previous version of GHC and Cabal, run autodetect again in the Haskell Implementations and Scion and Cabal preference pages.

Known issues:



Thanks to B. Scott Michel (bscottm@ieee.org) and Alejandro Serrano for their contributions.
This release is mostly based on the work by Alejandro Serrano Mena, thank you!
Thanks to Christopher Lane Hinson for his contributions.
Thanks to all bug reporters and users for their feedback.
Thanks to all the people that expressed interest in EclipseFP and want to see it stay alive and improve!

Expand Down
89 changes: 53 additions & 36 deletions net.sf.eclipsefp.haskell-feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
<feature
id="net.sf.eclipsefp.haskell"
label="%bundleName"
version="2.0.5"
version="2.1.0"
provider-name="%bundleVendor">

<description>
Adds tools for the Haskell programming language to the Eclipse IDE.
</description>

<copyright>
Copyright (c) 2003-2010 by the EclipseFP contributors
Copyright (c) 2003-2011 by the EclipseFP contributors
</copyright>

<license url="http://www.eclipse.org/legal/epl-v10.html">
Expand All @@ -24,44 +24,40 @@ and is also available at http://github.com/JPMoresmau/scion/raw/master/docs/LICE
</license>

<requires>
<import plugin="org.eclipse.ui.cheatsheets" version="3.2.0" match="compatible"/>
<import plugin="net.sf.eclipsefp.haskell.ui"/>
<import plugin="net.sf.eclipsefp.haskell.haddock"/>
<import plugin="net.sf.eclipsefp.haskell.browser" version="0.0.1" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.compat" version="2.0.2" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.core" version="2.0.5" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.debug.core" version="2.0.0" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.debug.ui" version="2.0.3" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.haddock" version="2.0.5" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.ghccompiler" version="2.0.4" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.scion.client" version="2.0.5" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.ui" version="2.0.5" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.util" version="2.0.3" match="greaterOrEqual"/>
<import plugin="org.apache.ant"/>
<import plugin="org.eclipse.core.expressions" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.filesystem"/>
<import plugin="org.eclipse.core.net"/>
<import plugin="org.eclipse.core.resources" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.runtime" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.core.variables" version="3.2.200" match="greaterOrEqual"/>
<import plugin="org.eclipse.debug.core" version="3.2.0" match="compatible"/>
<import plugin="net.sf.eclipsefp.haskell.scion.client"/>
<import plugin="org.eclipse.text" version="3.5.0" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.util" version="1.0.0" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.core"/>
<import plugin="org.eclipse.core.resources" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.debug.ui" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.jface.text" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ltk.core.refactoring"/>
<import plugin="org.eclipse.ltk.ui.refactoring"/>
<import plugin="org.eclipse.osgi"/>
<import plugin="org.eclipse.text" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.cheatsheets" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.console" version="3.1.0" match="compatible"/>
<import plugin="org.eclipse.ui.editors" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.forms"/>
<import plugin="org.eclipse.ui.ide" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.navigator"/>
<import plugin="org.eclipse.ui.views" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.debug.ui" version="3.2.0" match="compatible"/>
<import plugin="org.eclipse.ui.forms"/>
<import plugin="org.apache.ant"/>
<import plugin="org.eclipse.core.expressions" version="3.4.100" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.filesystem"/>
<import plugin="net.sf.eclipsefp.haskell.debug.core"/>
<import plugin="net.sf.eclipsefp.haskell.debug.ui"/>
<import plugin="org.eclipse.jface.text" version="3.5.0" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.ghccompiler"/>
<import plugin="org.eclipse.ui.workbench.texteditor" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.jface.text" version="3.5.1" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.editors" version="3.5.0" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.compat" version="1.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.resources" version="3.5.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.osgi"/>
<import plugin="org.eclipse.core.resources" version="3.5.0" match="greaterOrEqual"/>
<import plugin="net.sf.eclipsefp.haskell.profiler"/>
</requires>

<plugin
Expand All @@ -75,28 +71,28 @@ and is also available at http://github.com/JPMoresmau/scion/raw/master/docs/LICE
id="net.sf.eclipsefp.haskell.core"
download-size="0"
install-size="0"
version="2.0.5"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.doc.user"
download-size="0"
install-size="0"
version="2.0.3"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.ui"
download-size="0"
install-size="0"
version="2.0.5"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.haddock"
download-size="0"
install-size="0"
version="2.0.5"
version="2.1.0"
unpack="false"/>

<plugin
Expand All @@ -110,28 +106,28 @@ and is also available at http://github.com/JPMoresmau/scion/raw/master/docs/LICE
id="net.sf.eclipsefp.haskell.ghccompiler"
download-size="0"
install-size="0"
version="2.0.4"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.debug.ui"
download-size="0"
install-size="0"
version="2.0.3"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.debug.core"
download-size="0"
install-size="0"
version="2.0.5"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.scion.client"
download-size="0"
install-size="0"
version="2.0.5"
version="2.1.0"
unpack="false"/>

<plugin
Expand All @@ -145,7 +141,28 @@ and is also available at http://github.com/JPMoresmau/scion/raw/master/docs/LICE
id="net.sf.eclipsefp.haskell.util"
download-size="0"
install-size="0"
version="2.0.3"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.browser"
download-size="0"
install-size="0"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.hlint"
download-size="0"
install-size="0"
version="2.1.0"
unpack="false"/>

<plugin
id="net.sf.eclipsefp.haskell.profiler"
download-size="0"
install-size="0"
version="2.1.0"
unpack="false"/>

</feature>
7 changes: 7 additions & 0 deletions net.sf.eclipsefp.haskell.browser/.classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
28 changes: 28 additions & 0 deletions net.sf.eclipsefp.haskell.browser/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>net.sf.eclipsefp.haskell.browser</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
17 changes: 17 additions & 0 deletions net.sf.eclipsefp.haskell.browser/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: net.sf.eclipsefp.haskell.browser; singleton:=true
Bundle-Version: 2.1.0
Bundle-Localization: plugin
Bundle-Activator: net.sf.eclipsefp.haskell.browser.BrowserPlugin
Require-Bundle: org.eclipse.ui;bundle-version="3.2.0",
org.eclipse.core.runtime;bundle-version="3.2.0",
net.sf.eclipsefp.haskell.core;bundle-version="2.0.5",
net.sf.eclipsefp.haskell.util;bundle-version="2.0.3",
org.eclipse.jface.text;bundle-version="3.2.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: %bundleVendor
Export-Package: net.sf.eclipsefp.haskell.browser,
net.sf.eclipsefp.haskell.browser.items
6 changes: 6 additions & 0 deletions net.sf.eclipsefp.haskell.browser/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
src/net/sf/eclipsefp/haskell/browser/scion-browser-0.1.zip,\
plugin.properties
3 changes: 3 additions & 0 deletions net.sf.eclipsefp.haskell.browser/plugin.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# bundle manifest
bundleVendor = The EclipseFP Project
bundleName = Haskell Package Browser
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/**
* (c) 2011, Alejandro Serrano
* Released under the terms of the EPL.
*/
package net.sf.eclipsefp.haskell.browser;

/**
* Saves information about an event raised by scion-browser.
*
* @author Alejandro Serrano
*/
public class BrowserEvent {
BrowserServer server;

public BrowserEvent(BrowserServer server) {
this.server = server;
}

/**
* Returns the scion-browser instance creating this event
*
* @return The BrowserServer that raised the event.
*/
public BrowserServer getServer() {
return this.server;
}
}
Loading

0 comments on commit 2185848

Please sign in to comment.