Difference between revisions of "Scripting environment setup"

From Freeplane - free mind mapping and knowledge management software
(Setup workspace)
(How to set up your environment with the Eclipse Plug-ins for Gradle)
 
(36 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Modern Integrated Development Environments like [http://www.eclipse.org Eclipse] or [http://www.jetbrains.com/idea/ Idea] make it much easier to edit Groovy scripts for Freeplane as in a normal text editor. Syntax highlighting, code completion, error detection, debugging and source navigation are extremely useful especially if you are not that experienced.
+
Integrated Development Environments (IDE) like [http://www.eclipse.org Eclipse] or [http://www.jetbrains.com/idea/ Idea] make it much easier to edit Groovy scripts for Freeplane as in a normal text editor. Syntax highlighting, code completion, error detection, debugging and source navigation are extremely useful especially if you are not that experienced.
  
But it's more or less difficult for beginners to setup an IDE properly for Groovy scripting, so here's a step-by-step guide:
+
But it's more or less difficult for beginners to setup an IDE properly for Groovy scripting, so here's a step-by-step guide. If you have done that already you can skip to page [[Edit scripts in Eclipse]].
  
 
==Installations==
 
==Installations==
Line 9: Line 9:
 
* Launch Eclipse for the first time and select some directory as your workspace root
 
* Launch Eclipse for the first time and select some directory as your workspace root
 
[[File:Eclipse-select-workspace.png|450px|border]]
 
[[File:Eclipse-select-workspace.png|450px|border]]
* [http://groovy.codehaus.org/Eclipse+Plugin Install the Groovy-Eclipse plugin].
+
* [https://github.com/groovy/groovy-eclipse/wiki Groovy-Eclipse plugin]. (Select at least "Groovy-Eclipse". - "Groovy Eclipse SDK" and "Extra Groovy Compilers" won't hurt.)
 
* Close Eclipse
 
* Close Eclipse
  
==Setup workspace unix/linux==
+
==Setup workspace==
* Download current Freeplane binary distribution and unpack it into the workspace, and rename directory:
+
===Install freeplane_src===
    cd ~/freeplanescripts
+
This is for installing freeplane_src for the first time. For updating it, read [[#How to upgrade freeplane_src version|How to upgrade freeplane_src version]].
    unzip freeplane_bin-1.2.13.zip
+
 
    mv freeplane-1.2.13 freeplane_bin
+
Download the current Freeplane source distribution (e.g. freeplane_src-1.2.13.tar.gz) and unpack it into the selected workspace. Unpacking this archive may require an additional program like 7zip, jzip or winzip on Windows (check by trying to open the file in the Explorer). Unpacking may need two steps:
* Download matching Freeplane source distribution and unpack it into the workspace and rename directory:
+
# In a program like 7zip open the archive freeplane_src-1.2.13.tar.gz. Most unpackers will allow directly extract into a directory, but jzip creates an intermediate freeplane_src-1.2.13.tar file
     cd ~/freeplanescripts
+
# Rename freeplane-1.2.13 into freeplane_src and make sure this directory is in the workspace.
 +
On the command line (Linux/Unix/Mac, Windows 10 now also supports <code>tar</code> but use <code>rename</code> instead of <code>mv</code>):
 +
     cd <workspace> # your selected workspace, like ~/freeplanescripts
 
     tar -xzvf freeplane_src-1.2.13.tar.gz
 
     tar -xzvf freeplane_src-1.2.13.tar.gz
 
     mv freeplane-1.2.13 freeplane_src
 
     mv freeplane-1.2.13 freeplane_src
* Install the eclipse support for the Freeplane extensions to Groovy scripts (<freeplaneuserdir>/scripts will be our scripts project directory):
+
For Freeplane >= 1.5 you need to create a gradle build:
 +
* You need at least gradle 2.x (install a gradle binary distribution if you need to)
 +
* Create a full gradle build by issuing the following command in the freeplane_src directory:
 +
  $ gradle clean build cleanEclipse eclipse
 +
Alternatively you can use [[#How to set up your environment with the Eclipse Plug-ins for Gradle|the Eclipse Plug-ins for Gradle]].
 +
 
 +
For Freeplane < 1.5 you do not have to perform a build.
 +
 
 +
===Install groovy support===
 +
Freeplane's regular script directory <freeplaneuserdir>/scripts will be the script project directory where script development happens. To add special support for Freeplane scripting you have to copy the file ''freeplane_bin/scripts/freeplane.dsld'' to the script directory.
 +
On the command line (assuming that ~/.freeplane/1.2.x/scripts is Freeplane's script directory; Linux/Unix/Mac):
 +
    cd <workspace> # your selected workspace, like ~/freeplanescripts
 
     cp ./freeplane_bin/scripts/freeplane.dsld ~/.freeplane/1.2.x/scripts
 
     cp ./freeplane_bin/scripts/freeplane.dsld ~/.freeplane/1.2.x/scripts
  
==Setup workspace Windows==
+
==Create projects==
 +
=== Import the Freeplane project(s) ===
  
===Install freeplane_bin===
+
The Freeplane sources in ''freeplane_src'' consist of multiple projects, which are prepared for Eclipse. We can simply import this projects into our Eclipse workspace:
#Copy your freeplane directory to the workspace directory AND rename it into freeplane_bin; OR Download the current Freeplane binary distribution (e.g. freeplane-1.2.13.zip) and unpack it into the workspace (e.g. freeplane-1.2.13)
+
 
# Rename the latter directory into '''''freeplane_bin'''''.  
+
1. Select File->Import...
 +
 
 +
[[File:Eclipse-setup-import-project-select1.png|300px|border]]
  
===Install freeplane_src===
 
Download matching Freeplane source distribution (e.g. freeplane_src-1.2.13.tar.gz) and unpack it. Unpacking requires a free program like jzip. It may need two steps:
 
# In a program like jzip open the archive freeplane_src-1.2.13.tar.gz. Choose extract which will give  freeplane_src-1.2.13.tar
 
# Open freeplane_src-1.2.13.tar in the same program. Choose extract which will give freeplane-1.2.13
 
Next rename freeplane-1.2.13 into freeplane_src and make sure this directory is in the workspace. 
 
  
===Intall groovy support===
+
2. Set the root directory to ''<workspace>/freeplane_src'' and select all projects except ''freeplane-ant'' and (unless this happens on a Mac) ''freeplane-mac''. Then click "Finish".
Install the eclipse support for the Freeplane extensions to Groovy scripts (<freeplaneuserdir>/scripts will be our scripts project directory):
 
#Make a directory ''.freeplane'' in the workspace. Windows doesn't let you add a dot for the filename directly from the file window. Therefore go to the cmd window by: select the Windows Start button (left under). In field "finding programs and files", type cmd. Click cmd as it is found. To set the current directory to your workspace directory, in general, you type in the cmd window: ''cd workspace'' <enter>. To make direcory .freeplane, type ''md .freeplane'' <enter>
 
  
# Now return to your regular files window (or if you are familiar with the cmd window you can continue there), and define in .freeplane a subdirectory scripts. Finally copy file '''freeplane.dsld''' from your ''/workspace/freeplane_bin/scripts/freeplane.dsld'' to ''workspace/.freeplane/scripts/freeplane.dsld''.
+
[[File:Eclipse-setup-import-project-select2.png|500px|border]]
  
==Create projects==
+
=== Create a Groovy project for the scripts ===
=== Create a Java Project for the Freeplane binaries ===
+
(You may have to click on "Other..." to see "Groovy project" option.)
  
[[File:Eclipse-create-project-freeplane_bin-0.png|700px|border]]
+
[[File:Eclipse-create-project-scripts-0.png|700px|border]]
  
2. Set the project name to the name of the folder containing the Freeplane binaries
 
  
[[File:Eclipse-create-project-freeplane_bin-1.png|500px|border]]
+
2. Set the project name to "scripts", uncheck "Use default location" and enter the full path to the freeplane scripts folder (<freeplaneuserdir>/scripts):
  
3. Allow scripts access to the Freeplane libraries
+
[[File:Eclipse-create-project-scripts-1.png|450px|border]]
  
[[File:Eclipse-create-project-freeplane_bin-2.png|500px|border]]
 
  
=== Create a Groovy Project for the scripts ===
+
3. Connect the scripts with Freeplane.
  
[[File:Eclipse-create-project-scripts-0.png|700px|border]]
+
[[File:Eclipse-create-project-scripts-2.png|450px|border]]
  
2. Set the project name to the name of the folder containing the scripts
 
  
[[File:Eclipse-create-project-scripts-1.png|500px|border]]
+
4. Select a different build output folder. Otherwise a lot of .class files would pollute the scripts directory. This step is not required but helpful.
  
3. Connect the scripts with the Freeplane libraries.
+
[[File:Eclipse-create-project-scripts-3.png|900px|border]]
  
[[File:Eclipse-create-project-scripts-2.png|700px|border]]
+
Done. You can proceed now with page [[Edit scripts in Eclipse]].
  
4. Select a different output folder. Otherwise a lot of .class files would pollute the scripts directory. This is not required but helpful.
+
== How to upgrade freeplane_src version ==
  
[[File:Eclipse-create-project-scripts-3.png|900px|border]]
+
In case you want to upgrade your environment to a newer freeplane_src you can remove the old version first with the following steps:
  
=== Connect the scripts with the Freeplane source files ===
+
# Right-click on your project(s) and choose Build Path > Configure Build Path... and then the Projects tab
 +
# On this tab: select all Freeplane (source) projects, click Remove and then OK
 +
# Close your project(s)
 +
# Select all Freeplane (source) projects, press delete and then OK
 +
# Go to your freeplane_src directory and delete all files
 +
# Now you can [[#Install freeplane_src|install freeplane_src]] for the new Freeplane version and [[#Import the Freeplane project(s)|import the Freeplane projects]] or use the steps for [[#How to set up your environment with the Eclipse Plug-ins for Gradle|the Eclipse Plug-ins for Gradle]]
 +
# Open your project(s)
 +
# Right-click on your project(s) and choose Build Path > Configure Build Path... and then the Projects tab
 +
# On this tab: click Add, add the Freeplane projects and click OK twice
  
1. Type Shift+Ctrl+T ("Open Type") and enter "freeeplanescript" to open the class FreeplaneScriptBaseClass.
+
Removing (step 1 and 2) and adding (step 8 and 9) the Freeplane projects to your build path are a foolproof way to ensure that your build path stays correct. You can skip them, but be sure to check if your build path is still correct because names and number of Freeplane project tend to change from time to time.
  
[[File:Eclipse-connect-to-freeplane-sources-0.png|450px]]
+
== How to set up your environment with the Eclipse Plug-ins for Gradle ==
  
2. The source for the class can not be found. Click on "Attach source", then "External folder" and browse to the freeplane_src directory in the workspace
+
This is an alternative for the steps in [[#Install freeplane_src|install freeplane_src]] and [[#Import the Freeplane project(s)|import the Freeplane projects]]
  
[[File:Eclipse-connect-to-freeplane-sources-1.png|700px]]
+
'''Precondition'''
  
and click OK. The source of the class is shown now.
+
You have "Buildship: Eclipse Plug-ins for Gradle" installed in Eclipse. It is probably already included with your Eclipse if you installed one of the newer versions.
  
==Using Eclipse==
+
'''Steps'''
=== Edit a script ===
 
[[File:Eclipse-edit-script.png|900px|border]]
 
  
===Magic keys===
+
# Download freeplane_src-x.x.x.tar.gz
* ALT+Space
+
# Extract to your Eclipse workspace: <code>tar -xvzf <downloads>/freeplane_src-x.x.x.tar.gz -C <workspace></code>
** Initiates content assist, completes typed texts.
+
# Rename directory freeplane-x.x.x to freeplane_root: <code>rename freeplane-x.x.x freeplane_root</code> (use <code>mv</code> for Linux/Unix/Mac)
** Import declarations for completed types are automatically added.
+
# In Eclipse click/select Run > Run configurations
** Example: type "str" (without the quotes) and hit ALT space.
+
# Right click Gradle Task and choose New Configuration
* F3
+
# Rename 'New_configuration' to 'Build Freeplane'
** Navigates to the definition of the variable/class under the cursor.
+
# In Gradle Tasks add: clean, build and dist (so 3 tasks on 3 separate lines)
** This also works for Java and Freeplane classes - allowes to lookup details of the class.
+
# Click/select File System... > <workspace>/freeplane_root > OK
* ALT+Cursor_Left
+
#; [[File:Build Freeplane Run Configuration.png]]
** Navigates to the last remembered location.
+
# Click Run and wait till Gradle build has finished
* Shift+Ctrl+T
+
# Click/select File > Import > Existing Gradle Project > Next > Next
** Open a type (e.g. a class or interface).
+
# Specify the path to the <workspace>/freeplane_root directory in 'Project root directory' and click Finish. All projects are now imported as Gradle projects
** Try entering "proxy" and select the Proxy from org.freeplane.plugin.script.proxy
+
# Delete freeplane_ant (and freeplane_mac if you ar not on Mac)
** Proxy is the API definition.
 
* Shift+Ctrl+R
 
** Use this to open a script.
 
  
 +
Steps 4 to 9 are necessary to prevent an error in <code>freeplane_plugin_jsyntaxpane</code>: it needs to be built before it can be imported. It also prepares for running Freeplane from within Eclipse for [[Debugging scripts]]
  
 
[[Category:Script]]
 
[[Category:Script]]

Latest revision as of 07:52, 6 September 2021

Integrated Development Environments (IDE) like Eclipse or Idea make it much easier to edit Groovy scripts for Freeplane as in a normal text editor. Syntax highlighting, code completion, error detection, debugging and source navigation are extremely useful especially if you are not that experienced.

But it's more or less difficult for beginners to setup an IDE properly for Groovy scripting, so here's a step-by-step guide. If you have done that already you can skip to page Edit scripts in Eclipse.

Installations

  • First download and install a Java Development Kit (JDK) -if you don't have it. There is a hyperlink on the Eclipse download page.
  • Then download and install a "Eclipse IDE for Java Developers" or "Eclipse for RCP and RAP Developers" (the latter is more useful for regular Freeplane developers) from Eclipse download page. Read how to unpack here (N.B. for Windows 7 it is not possible to unpack directly into c:/Program Files; no warning is given !)
  • Launch Eclipse for the first time and select some directory as your workspace root

Eclipse-select-workspace.png

  • Groovy-Eclipse plugin. (Select at least "Groovy-Eclipse". - "Groovy Eclipse SDK" and "Extra Groovy Compilers" won't hurt.)
  • Close Eclipse

Setup workspace

Install freeplane_src

This is for installing freeplane_src for the first time. For updating it, read How to upgrade freeplane_src version.

Download the current Freeplane source distribution (e.g. freeplane_src-1.2.13.tar.gz) and unpack it into the selected workspace. Unpacking this archive may require an additional program like 7zip, jzip or winzip on Windows (check by trying to open the file in the Explorer). Unpacking may need two steps:

  1. In a program like 7zip open the archive freeplane_src-1.2.13.tar.gz. Most unpackers will allow directly extract into a directory, but jzip creates an intermediate freeplane_src-1.2.13.tar file
  2. Rename freeplane-1.2.13 into freeplane_src and make sure this directory is in the workspace.

On the command line (Linux/Unix/Mac, Windows 10 now also supports tar but use rename instead of mv):

   cd <workspace> # your selected workspace, like ~/freeplanescripts
   tar -xzvf freeplane_src-1.2.13.tar.gz
   mv freeplane-1.2.13 freeplane_src

For Freeplane >= 1.5 you need to create a gradle build:

  • You need at least gradle 2.x (install a gradle binary distribution if you need to)
  • Create a full gradle build by issuing the following command in the freeplane_src directory:
 $ gradle clean build cleanEclipse eclipse

Alternatively you can use the Eclipse Plug-ins for Gradle.

For Freeplane < 1.5 you do not have to perform a build.

Install groovy support

Freeplane's regular script directory <freeplaneuserdir>/scripts will be the script project directory where script development happens. To add special support for Freeplane scripting you have to copy the file freeplane_bin/scripts/freeplane.dsld to the script directory. On the command line (assuming that ~/.freeplane/1.2.x/scripts is Freeplane's script directory; Linux/Unix/Mac):

   cd <workspace> # your selected workspace, like ~/freeplanescripts
   cp ./freeplane_bin/scripts/freeplane.dsld ~/.freeplane/1.2.x/scripts

Create projects

Import the Freeplane project(s)

The Freeplane sources in freeplane_src consist of multiple projects, which are prepared for Eclipse. We can simply import this projects into our Eclipse workspace:

1. Select File->Import...

Eclipse-setup-import-project-select1.png


2. Set the root directory to <workspace>/freeplane_src and select all projects except freeplane-ant and (unless this happens on a Mac) freeplane-mac. Then click "Finish".

Eclipse-setup-import-project-select2.png

Create a Groovy project for the scripts

(You may have to click on "Other..." to see "Groovy project" option.)

Eclipse-create-project-scripts-0.png


2. Set the project name to "scripts", uncheck "Use default location" and enter the full path to the freeplane scripts folder (<freeplaneuserdir>/scripts):

Eclipse-create-project-scripts-1.png


3. Connect the scripts with Freeplane.

Eclipse-create-project-scripts-2.png


4. Select a different build output folder. Otherwise a lot of .class files would pollute the scripts directory. This step is not required but helpful.

Eclipse-create-project-scripts-3.png

Done. You can proceed now with page Edit scripts in Eclipse.

How to upgrade freeplane_src version

In case you want to upgrade your environment to a newer freeplane_src you can remove the old version first with the following steps:

  1. Right-click on your project(s) and choose Build Path > Configure Build Path... and then the Projects tab
  2. On this tab: select all Freeplane (source) projects, click Remove and then OK
  3. Close your project(s)
  4. Select all Freeplane (source) projects, press delete and then OK
  5. Go to your freeplane_src directory and delete all files
  6. Now you can install freeplane_src for the new Freeplane version and import the Freeplane projects or use the steps for the Eclipse Plug-ins for Gradle
  7. Open your project(s)
  8. Right-click on your project(s) and choose Build Path > Configure Build Path... and then the Projects tab
  9. On this tab: click Add, add the Freeplane projects and click OK twice

Removing (step 1 and 2) and adding (step 8 and 9) the Freeplane projects to your build path are a foolproof way to ensure that your build path stays correct. You can skip them, but be sure to check if your build path is still correct because names and number of Freeplane project tend to change from time to time.

How to set up your environment with the Eclipse Plug-ins for Gradle

This is an alternative for the steps in install freeplane_src and import the Freeplane projects

Precondition

You have "Buildship: Eclipse Plug-ins for Gradle" installed in Eclipse. It is probably already included with your Eclipse if you installed one of the newer versions.

Steps

  1. Download freeplane_src-x.x.x.tar.gz
  2. Extract to your Eclipse workspace: tar -xvzf <downloads>/freeplane_src-x.x.x.tar.gz -C <workspace>
  3. Rename directory freeplane-x.x.x to freeplane_root: rename freeplane-x.x.x freeplane_root (use mv for Linux/Unix/Mac)
  4. In Eclipse click/select Run > Run configurations
  5. Right click Gradle Task and choose New Configuration
  6. Rename 'New_configuration' to 'Build Freeplane'
  7. In Gradle Tasks add: clean, build and dist (so 3 tasks on 3 separate lines)
  8. Click/select File System... > <workspace>/freeplane_root > OK
    Build Freeplane Run Configuration.png
  9. Click Run and wait till Gradle build has finished
  10. Click/select File > Import > Existing Gradle Project > Next > Next
  11. Specify the path to the <workspace>/freeplane_root directory in 'Project root directory' and click Finish. All projects are now imported as Gradle projects
  12. Delete freeplane_ant (and freeplane_mac if you ar not on Mac)

Steps 4 to 9 are necessary to prevent an error in freeplane_plugin_jsyntaxpane: it needs to be built before it can be imported. It also prepares for running Freeplane from within Eclipse for Debugging scripts