[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [ease-dev] Oomph Setup failed | 
On 09.01.2017 12:16, Raphael Geissler wrote:
generally I am open for many things to do. But maybe it's good to 
start where I have experience and what is important from your point of 
view.
From my point of view some e4 experience could push the project 
further. Currently the whole keyword UI integration code is based on on 
eclipse 3.x mechanisms. This prevents us from pushing scripts to the 
main toolbar. If we could dynamically adapt the e4 model we would get 
more freedom in where to hook our scripts to.
We also need improvements for code completion, especially if you come 
from the python world.
From the engines point of view javascript and python have active 
developers, ruby, groovy and beanshell are mere proof of concept 
implementations. If you are into one of these languages, they would need 
testing, sample scripts, possibly a debugger implementation...
If you are familiar with one of the other projects at eclipse it might 
be worth looking into providing a module for that project helping EASE 
users to do new stuff.
And of course documentation is always needed (I know, its boring :))
What I already did successfully last weekend is to add a new keyword 
extension (http://consolescript.eclipse-plugin.ragedev.de/ - more or 
less a learning project).
Adding keywords to the mechanism is already a good step into EASE. 
Reading your howto I guess you should register the script location, 
otherwise EASE would not pick up your js files.
As you already worked on keywords: would be nice to have keywords that 
allow to resolve dependencies, eg
dependsOn: org.eclipse.jdk.feature.group [1.0.0, 3.0.0) from 
http://downloads.eclipse.org....
Also a cron: keyword would be fine. Had a look at this but could not 
find a free java cron library to calculate those nasty dates for the 
next run...
I have some years experience with Eclipse RCP, so I can do also 
internal stuff or extend modules or even write some example scripts.
What is important from my point of view is to make it possible to add 
API from scripts, because otherwise you get big and unstructured 
scripts with a lot of copy and paste lines of code.
(I tried to implement this issue 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=442447 last evening, but 
I was lost somehow... I couldn't find this loadModules() stuff... )
I think there would be two solutions:
1. Extend modules by script
2. Import scripts from other scripts (I tried this with Rhino and 
Python, but in both cases there were some errors)
importing scripts from other scripts works using the include("<uri>") 
command. The included code will be executed right on the spot as if its 
content would be part of the main file. Try something like
include("someFileInTheSameFolder.js")
include("workspace://project/someFile.js")
include("file://home/someone/file.js")
The bug you are referring to deals with allowing to write modules in a 
script target language. While it seemed to be a good idea some time ago 
I would not do it anymore from my practical experience with script 
users. Having module code on a changeable location like the workspace 
would quite likely result in lots of changes to these files and 
therefore an inconsistent API. Further there would be no mechanism in 
place to distribute and install these dynamic modules. I am not even 
starting to think about versiion ranges, dependencies, ...
Here the p2 mechanism is really nice and solves all these topics for us.
Further modules written in Java work for all available script engines. 
Modules in a dedicated script language will never work for another.
So from a practical point using include() is quite nice when you want to 
build libraries for a dedicated language. It could also be a way for 
rapid prototyping and once the lib gets stable, port it to Java and a 
native module. There code completion could be improved a lot. Once that 
works, users do not care much where their functions come from.
However there might be other use cases that I miss where dynamic modules 
might come in handy.
What do think? What is important at the moment?
I do not see very urgent topics at this point in time, but some 
interesting ideas for improvements. If you want to pick up one of the 
proposals above, let me know.
cheers
Christian