From 36a5b14cfa9734dcca307a186cf9bb05559b2a09 Mon Sep 17 00:00:00 2001
From: "john.j.camilleri"
Date: Fri, 1 Jun 2012 12:43:44 +0000
Subject: [PATCH] GFEP: Updated readme
---
eclipse/images/eclipse-external-libraries.png | Bin 17458 -> 28894 bytes
eclipse/index.html | 93 ++++++++++++------
2 files changed, 62 insertions(+), 31 deletions(-)
diff --git a/eclipse/images/eclipse-external-libraries.png b/eclipse/images/eclipse-external-libraries.png
index 4298694b9e0d48cc2312666b7949956df6cfb149..fe9983e8cd9c74f6ecb387cba30ef48b25db133f 100644
GIT binary patch
literal 28894
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
delta 15022
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
FO#sSjp$Py0
diff --git a/eclipse/index.html b/eclipse/index.html
index 9c47699b0..d4325dfd7 100644
--- a/eclipse/index.html
+++ b/eclipse/index.html
@@ -1,17 +1,7 @@
-
-
-
-GF Eclipse Plugin
-
-
-
-
-
-
The GF Eclipse Plugin
John J. Camilleri
-Updated: 19 April 2012
+Updated: 1 June 2012
The research leading to these results has received funding from the European Union’s Seventh Framework Programme (FP7/2007-2013) under grant agreement no. FP7-ICT-247914 (the MOLTO Project ).
@@ -38,13 +28,20 @@ Updated: 19 April 2012
Software update site URL for installing through Eclipse: http://www.grammaticalframework.org/eclipse/release/
+Publications
+
+
+Poster at EAMT 2012 in Trento, Italy
+Paper presented at FreeRBMT 2012 in Gothenburg, Sweden.
+
+
Features
Syntax highlighting and error detection
Code folding, quick block-commenting, automatic code formatting
Definition outlining, jump to declaration, find usage
-Warnings for problems in module dependancy hierarchy
+Warnings for problems in module dependency hierarchy
Launch configurations, i.e. compilation directly from IDE
Use GF Shell from within Eclipse
Auto-completion for declared identifiers
@@ -67,7 +64,7 @@ Updated: 19 April 2012
(1.4.3.x) Improvements to the Test Manager. Added support for arbitrary commands in launch. Made the license information clearer.
22/03/12
-(1.4.2.x) Added wizard for context-free grammars (no syntax support, though). Context-menu option for toggling the GF Nature and Builder together. Test Manager now parses languages & params, and includes filtering and toggling options.
+(1.4.2.x) Added wizard for context-free grammars (no syntax support, though). Context-menu option for toggling the GF Nature and Builder together. Test Manager now parses languages & parameters, and includes filtering and toggling options.
14/03/12
(1.4.1.x) GF source files can now be anywhere in project, not necessarily at top level.
@@ -91,7 +88,7 @@ Updated: 19 April 2012
(1.2.0.x) with support for “Open Declaration” (F3) function, including for external libraries.
18/11/11
-Third BETA (1.1.0.x) released, overhauled to take advantage of new compiler features. Tag-based scoping with caching for better performance. Interactive console (GF Shell) for luanch configs.
+Third BETA (1.1.0.x) released, overhauled to take advantage of new compiler features. Tag-based scoping with caching for better performance. Interactive console (GF Shell) for launch configs.
11/10/11
Second BETA (1.0.0.x) released, with improved support for qualified names, local variable bindings, selective inheritance, module outlining, and launch configurations. Also new GF Project type.
@@ -149,7 +146,8 @@ Updated: 19 April 2012
Add the GF perspective by clicking Window → Open Perspective → Other and choosing GF .
The plugin will try to determine the path to your GF executable automatically. You can check/overwrite it by going to Preferences → Grammatical Framework .
-This path should include the name of the GF binary itself, e.g. /home/john/.cabal/bin/gf or C:\Users\John\GF\gf.exe.
+This path should include the name of the GF binary itself, e.g. /home/john/.cabal/bin/gf or C:\Users\John\GF\gf.exe.
+By default, the Library path setting is set to .:present:alltenses:prelude. This is passed to GF using the --path flag.
You can also adjust the verbosity level of the GFEP console log in the preferences window.
@@ -253,7 +251,7 @@ You will probably want to ignore these directories in your version control syste
Create a new GF Project
-If you have a folder in your workspace which you want to convert into a GF Project, then you can select it from the dropdown. This folder will then appear as an Eclipse project in your workspace.
+If you have a folder in your workspace which you want to convert into a GF Project, then you can select it from the drop-down. This folder will then appear as an Eclipse project in your workspace.
@@ -268,7 +266,7 @@ You will probably want to ignore these directories in your version control syste
Clone module wizard
-If you want to clone an existing module into a new language, you can now do so via the Clone GF Module wizard. This is also available as a context menu option in the Project Explorer , via <Richt click> → Grammatical Framework → Compile for new language :
+If you want to clone an existing module into a new language, you can now do so via the Clone GF Module wizard. This is also available as a context menu option in the Project Explorer , via <Right click> → Grammatical Framework → Compile for new language :
@@ -278,7 +276,7 @@ You will probably want to ignore these directories in your version control syste
Workbench editor layout
-Use Eclipes’ own features to drag and drop your editor tabs to suit your needs.
+Use Eclipse’ own features to drag and drop your editor tabs to suit your needs.
@@ -301,7 +299,7 @@ You will probably want to ignore these directories in your version control syste
Builder
For validation to work correctly, the project’s Build Automatically option should be turned on.
-Each time you save a file (or some other change occurs in your project), the builder should get triggered which recompiles any GF files which have changed. If the builder does not seem to get triggered, try to run a clean via Project → Clean…
+Each time you save a file (or some other change occurs in your project), the builder should get triggered which re-compiles any GF files which have changed. If the builder does not seem to get triggered, try to run a clean via Project → Clean…
Code formatting
@@ -344,7 +342,7 @@ Each time you save a file (or some other change occurs in your project), the bui
-If the process associated with a console window has terminated, it will be indicated in the upper-left corner as below. Such console windows can then be closed using the gray cross button:
+If the process associated with a console window has terminated, it will be indicated in the upper-left corner as below. Such console windows can then be closed using the grey cross button:
@@ -354,9 +352,9 @@ Each time you save a file (or some other change occurs in your project), the bui
This view is automatically populated with a list of all the external modules referenced by the current file. Double-clicking on any item provides a quick way of opening GF files which are imported into your grammar from outside your Eclipse project, for example the GF Resource Grammar Library.
-
+This view also provides a text box for searching within the current module’s scope, as shown in the image below. Clicking the small arrow on the right-hand side of the view provides options for case sensitive and/or regular-expression based search.
-Future versions of this view will contain a full tree of all identifiers available in the current scope.
+
Test Manager view
@@ -399,6 +397,34 @@ Each time you save a file (or some other change occurs in your project), the bui
+Common issues and fixes
+
+No identifiers are resolved and my log contains messages saying “File Syntax.gf does not exist.”
+
+In general, this means that something is wrong with your library path setting.
+
+GFEP attempts to compile all of your files individually with GF, which is not the usual way in which you would compile your grammar.
+As a result, when looking for the RGL files, GF needs a little help via the path argument.
+
+The normal way to do this is to specify the Library path setting from Preferences → Grammatical Framework , setting it to something like .:present:alltenses:prelude (this is the default setting). Note that these paths are relative to the true RGL directory, which GF should already be aware of. The value of this setting is passed to GF from GFEP using the --path flag.
+
+The Library path setting is the same for all your GF projects. If you want finer-grain control over the path compiler option then you should use compiler pragmas in your source files, e.g.:
+
+--# -path=.:present:alltenses:prelude
+
+
+The advantage of this method is that the information is bound to the file, so you can freely compile your modules outside of GFEP without having to specify the path as a command line option to GF.
+The disadvantage is that you need to specify such a pragma in every single file (at least if you want to continue to use the GFEP).
+
+Other strange behaviour
+
+When things seem strange, the very first step is always to clean the project via Project → Clean… .
+I only support the latest version of the plugin, so make sure you are up to date too.
+
+If problems persist, please contact me or better yet file an issue on the GitHub issue tracker (see below).
+
+
+
Evaluation & feedback
Please try to use the plugin for developing your own GF projects and report any issues you come up against.
@@ -435,39 +461,44 @@ Feedback (both negative and positive) on the following would be appreciated:
Abstract module
- abstract Foods = ...
+ abstract Foods = {...}
Concrete module
- concrete FoodsEng of Foods = ...
+ concrete FoodsEng of Foods = {...}
Resource module
- resource ResFoods = ...
+ resource ResFoods = {...}
Interface
- interface LexFoods = ...
+ interface LexFoods = {...}
Instance
- instance LexFoodsEng of LexFoods = ...
+ instance LexFoodsEng of LexFoods = {...}
Functor
- incomplete concrete FoodsI of Foods = ...
+ incomplete concrete FoodsI of Foods = {...}
Functor instantiation
- concrete FoodsEng of Foods = FoodsI with (...) ...
+ concrete FoodsEng of Foods = FoodsI with (...) {...}
-
-
+
+Build command
+
+This is the GF command run by the builder:
+
+gf --v=0 --tags --output-dir=.gfbuild [--path=PATH] FILE
+