# Basic concepts

The XDS Modula-2 Integrated Development Environment (XDS Modula-2 IDE) is based on the Eclipse platform. Eclipse is the open-source IDE platform simplifying such tasks as resource management, program launching, editing and debugging.

This chapter describes common idioms of the Eclipse platform, leveraged by the XDS Modula-2 IDE.

## Worspace

Worspace – first of all, this is a project container. Besides, it contains settings used by the IDE components and auxilary data. Workspace is the directory containing project subdirectories. Special `.metadata` subdirectory is used as the common data and settings storage, used by this workspace projects.

It is possible to have an arbitrary number of workspaces. However only one workspace can be opened in the IDE at the given moment.

On the first launch the workspace is created in the user‘s home directory. To create new workspaces and switch between them select File > Switch Workspace > Other.... Then select the workspace folder. If the folder selected doesnot contain the workspace it will be created there.

On IDE start last opened workspace is loaded by default. It is possible to force workspace selection dialog on IDE start. For this open Preferences, by clicking Window > PreferencesPreferences, then select in the left pane General > Startup and Shutdown >Workspaces and turn on the option Prompt for workspace on startup.

When using several workspaces sometimes it is necessary to synchronize their settings. For this please use File > Export... > General > Preferences in the source workspace and then File > Import... > General > Preferences for the target workspace.

It is possible to explicitly specify workspace on IDE startup by using the following command line:

`-data WorkspacePath`

where `WorkspacePath` is the required argument specifying path to the workspace.

Another command line parameter turns on the workpace path display in the IDE‘s main window title:

`-showlocation [WorkspaceName]`

where `WorkspaceName` is the required argument specifying label to be displayed in the main window title instead of the workspace path displayed by default.

## Project

Project – is the resource container, containing folders and files, their processing rules and other project properties (such as the compiler settings). Physically it is the directory whose files and folders are the project‘s resources. When creating project it is necessary to specify where to place it on the file system.

In the project‘s directory special file named `.project` is created. This directory also contains `.settings` folder used as project properties storage. Usually, IDE stores other auxilary files and folders with names starting with the "`.`" symbol.

There is no one-to-one correspondence between XDS project files (*.prj-files) and IDE projects. XDS project files are just particular kind of the XDS IDE resources. XDS IDE project can contain several prj-files.

It is not necessary to place the project inside the workspace.

It is recommended to place XDS IDE project in the same folder as the Modula-2 program folder. In particular, this simplfies the transfer of the project between workspaces.

In order to import the existing project in to the workspace on can use File > Import... > General > Existing Projects into Workspace.

It is assumed by default that all project resources are stored inside the project‘s folder.

To use resources outside the project‘s folder it is necessary to add them via the so called Linked Resources mechanism.

## Resources

Resources – this is general term for projects, folders and files operated by the integrated environment. IDE‘s files and folders corresponds to the usual files and folders of the file system. Folders can contain files and other foldes but not projects. Folders themselves contained in projects and other folders.

Files and folders can be linked to files and folders outside the project‘s directory. These files and folders are called linked resources.

Navigational panels, such as Project Explorer display hierarchical structure of the resources and facilitates resource opening and editing. Besides files and folders navigational panels can display virtual folders which are not correspond to any real file system directory.

See also

Resource properties
New element creation
Project

## Plugin

The key feature of the Eclipse platform is flexibility and extensibility enabled by the platform modular architecture. Beside the compact runtime core all platform‘s components and Eclipse-based IDE are Plugins. These plugins are dynamically loaded independently of each other. Certanly, it is possible to specify for the plugin which plugins are dependendant from it - and thus must be loaded before. Platform runtime core locates and integrates plugins in to the running platform. In this regard standard and newly created plugins are functionaly equivalent.