haskell plugin 4 eclipse - настройка

yroslavasako

Во-первых, как я понял сабж достаточно активно развивается. Я видел уже несколько разных версий плагина. В последней версии (если апдейтер не врёт) в настройках есть список "haskell implementations", к которому я добавил ghc 6.12.1. Только вот никаких опций вроде build (закрашено серым) или проверки орфографии не активировалось. Что нужно этому гаду ещё скормить, чтобы интегрировать с языком?

yroslavasako

ну собрал я для него scion. Но глюки всё равно лезут. При этом
1) По-прежнему невозможно компилить из проекта.
2) runhaskell Setup.hs install тоже падает, говорит, что хочет base в .cabal файле. Я добавил - стало ещё хуже.
ошибки эклипса:

!ENTRY org.eclipse.ui 4 0 2010-06-04 12:52:49.588
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.StringIndexOutOfBoundsException: String index out of range: -1)
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3885)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3506)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at net.sf.eclipsefp.haskell.ui.internal.views.projectexplorer.model.GHCSystemLibrary.parsePackageList(GHCSystemLibrary.java:86)
at net.sf.eclipsefp.haskell.ui.internal.views.projectexplorer.model.GHCSystemLibrary.getChildren(GHCSystemLibrary.java:46)
at net.sf.eclipsefp.haskell.ui.internal.views.projectexplorer.HaskellResourceExtensionCP.getChildren(HaskellResourceExtensionCP.java:86)
at net.sf.eclipsefp.haskell.ui.internal.views.projectexplorer.HaskellResourceExtensionCP.hasChildren(HaskellResourceExtensionCP.java:114)
at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.hasChildren(SafeDelegateTreeContentProvider.java:97)
at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.hasChildren(SafeDelegateTreeContentProvider.java:281)
at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:626)
at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2079)
at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:587)
at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2109)
at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2791)
at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:847)
at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2680)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1863)
at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:716)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1870)
at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:716)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1838)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1794)
at org.eclipse.ui.navigator.CommonViewer.internalRefresh(CommonViewer.java:566)
at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1484)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1392)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:402)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1353)
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1482)
at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:548)
at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:358)
at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:515)
at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider$3.run(ResourceExtensionContentProvider.java:294)
at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider.runUpdates(ResourceExtensionContentProvider.java:306)
at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider.access$1(ResourceExtensionContentProvider.java:303)
at org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider$1.run(ResourceExtensionContentProvider.java:129)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
... 22 more

ошибки тулчейна:

src\Main.hs:3:7:
Could not find module `Prelude':
It is a member of the hidden package `base'.
Perhaps you need to add `base' to the build-depends in your .cabal file.
It is a member of the hidden package `base-3.0.3.2'.
Perhaps you need to add `base' to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.

scion собирал в темповой папке, набрав
git clone git://github.com/JPMoresmau/scion.git
cabal install
после последнего в c:\program files\haskell\bin\ появился scion-server. Тот сервер я и скормил плагину, но что-то не срослось.
На сайте написано
You cannot use the version from Hackage (0.1.0.2) since commands have been added for eclipsefp. You'll need to build Scion from source
но версия, склонированная гитом как раз 0.1.0.2
в общем, всё жду когда оно заработает. Хочется скрипты для повседн

yroslavasako

недавно вышедшая новая версия решила многие проблемы. Есть подсветка синтаксиса и парсинг текста, исчезла ошибка обращение к -1 строке StringListа, есть сборка проекта, но пока
1) Нет возможности запустить собранный проект (в скрытую папку кладётся экзешник, кто нашёл - может запустить)
2) в пакет включили прекомпилинный sction (тот который я не с первого раза собрал который не пашет и который нужно сразу же отключать - иначе вообще всё, что связано с хаскелем, не работает (даже преференсы не отображаются).
Оставить комментарий
Имя или ник:
Комментарий: