diff --git a/docs/glossary/glossary.mdx b/docs/glossary/glossary.mdx
new file mode 100644
index 000000000..7c2f902f2
--- /dev/null
+++ b/docs/glossary/glossary.mdx
@@ -0,0 +1,24 @@
+---
+title: Glossary
+description: Glossary of terms used in the Lingua Franca documentation.
+---
+
+# Glossary
+
+Glossary of terms used in the Lingua Franca (LF) documentation.
+
+### LF File
+A source file with the `.lf` extension, representing a Lingua Franca (LF) program.
+
+### Package
+A collection of LF source files and directories, along with a `Lingo.toml` manifest file that defines the package configuration. Every package must include an `src/` directory containing the LF source files.
+The **package root** is the top-level directory where both the `Lingo.toml` file and the `src/` directory reside, serving as the main directory for the package.
+
+### Project
+Another term for a [package](#package).
+
+### Library File
+An LF file containing one or more reactors intended for reuse, designed to be imported into multiple LF files.
+
+### Package Manager
+A software tool that automates the installation, configuration, and management of packages. In the LF ecosystem, the `lingo` package manager is used to manage LF packages and dependencies.
\ No newline at end of file
diff --git a/docs/sidebars.ts b/docs/sidebars.ts
index c558ad442..42ef82c92 100644
--- a/docs/sidebars.ts
+++ b/docs/sidebars.ts
@@ -237,6 +237,10 @@ const sidebars: SidebarsConfig = {
"id": "developer/website-development"
}
]
+ },
+ {
+ "type": "doc",
+ "id": "glossary/glossary"
}
]
};
diff --git a/docs/tools/code-extension.mdx b/docs/tools/code-extension.mdx
index d2c47e639..3062e991d 100644
--- a/docs/tools/code-extension.mdx
+++ b/docs/tools/code-extension.mdx
@@ -14,9 +14,23 @@ The Lingua Franca extension for Visual Studio Code (VS Code) provides syntax-dir
### Creating a New Package
-You can create a new LF package either manually by creating an LF file or by using the [Lingo Package Manager](https://github.com/lf-lang/lingo).
+You can create a new LF [package](../glossary/glossary.mdx#package) either manually by creating an LF file or by using the [Lingo Package Manager](https://github.com/lf-lang/lingo).
-#### Option 1: Manually Create an LF File
+#### Option 1: Create an LF Package Using the Lingo Package Manager
+1. After [installing the Lingo Package Manager](https://www.lf-lang.org/docs/installation#lingo), create an empty directory with the desired name for your LF package.
+2. Open the folder in VS Code.
+3. Open the terminal in this folder and run the lingo init command.
+
+This will set up a new LF package with the following structure:
+
+```
+├── .
+│ ├── src/
+│ │ └── Main.lf
+└── └── Lingo.toml # Configuration file for current package
+```
+
+#### Option 2: Manually Create an [LF File](../glossary/glossary.mdx#lf-file)
1. Go to File > New File... and select `New Lingua Franca File`.
2. Save the file in a directory called `src` to ensure that generated code is placed in a parallel `src-gen` directory. For example, if your file is called `Foo.lf`, the directory structure after building will look like this:
@@ -33,20 +47,6 @@ You can create a new LF package either manually by creating an LF file or by usi
If you manually create the `Lingo.toml` file, place it adjacent to the `src` folder in the root directory of the package. This file serves as a configuration for the package, allowing you to specify the package name, version, and other metadata, including any dependencies you want to install.
-#### Option 2: Create an LF Package Using the Lingo Package Manager
-1. After installing and configuring the Lingo Package Manager, create an empty folder with the desired name for the LF package.
-2. Open the folder in VS Code.
-3. Open the terminal in this folder and run the lingo init command.
-
-This will set up a new LF package with the following structure:
-
-```
-├── .
-│ ├── src/
-│ │ └── Main.lf
-└── └── Lingo.toml # Configuration file for current package
-```
-
### Opening an Existing LF package
To open an existing LF package in VS Code, select the root directory of your Lingua Franca package as your workspace.
@@ -58,7 +58,7 @@ The correct structure of the LF package should look like this:
│ ├── bin/
│ ├── build/ # directory containing packages installed by Lingo Package Manager
│ │ ├── lfc_include/ # Directory for storing reusable reactors
-│ │ └── └── installed_library/
+│ │ └── └── installed_package/
│ ├── include/
│ ├── src/
│ │ ├── lib/ # Directory for storing reusable reactors
@@ -96,30 +96,30 @@ The **Lingua Franca Package Explorer** can be accessed by clicking on the **LF i
└── └── Source Files
```
-- [**Installed Packages**](#installed-packages): Lists libraries installed via the Lingo Package Manager, located in the `./build/lfc_include` directory (if any).
+- [**Installed Packages**](#installed-packages): Lists packages installed via the Lingo Package Manager, located in the `./build/lfc_include` directory (if any).
-- [**Local Libraries**](#local-libraries): Displays locally defined libraries (e.g., reusable reactors), located in the `./src/lib` directory.
+- [**Local Libraries**](#local-libraries): Displays locally defined [library files](../glossary/glossary.mdx#library-file) (e.g., reusable reactors), located in the `./src/lib` directory.
- [**Source Files**](#source-files): Contains the LF source files created by the developer, located in the `./src/` directory.
The **Source Files** section is always present as it reflects the main LF files in the package. However, the **Installed Packages** and **Local Libraries** sections appear only if the respective directories and files exist in the workspace.
-Hovering over the **LF Package** item reveals a terminal icon. Clicking this icon opens a terminal window at the package's root directory, allowing you to execute commands directly within that directory.
+Hovering over the **\** item reveals a terminal icon. Clicking this icon opens a terminal window at the package's root directory, allowing you to execute commands directly within that directory.
#### Installed Packages
-The **Installed Packages** section lists libraries installed using the [Lingo Package Manager](https://github.com/lf-lang/lingo). Developers can use the Lingo Package Manager to retrieve and install LF programs from repositories such as the [Lingua Franca Community Organization](https://github.com/LF-Community).
+The **Installed Packages** section lists packages installed using the [Lingo Package Manager](https://github.com/lf-lang/lingo). Developers can use the Lingo Package Manager to retrieve and install LF programs from repositories such as the [Lingua Franca Community Organization](https://github.com/LF-Community).
-To install libraries:
-1. Configure the `Lingo.toml` file with the desired libraries.
+To install packages:
+1. Configure the `Lingo.toml` file with the desired package.
2. Run lingo build in the terminal from the current directory to download the specified dependencies.
-Once the libraries are installed, they will appear in the `./build/lfc_include/` directory. The **Installed Packages** section will then be structured as follows:
+Once the packages are installed, they will appear in the `./build/lfc_include/` directory. The **Installed Packages** section will then be structured as follows:
```
-├── LF Package
+├──
│ ├── Installed Packages
-│ │ ├── installed_library/
+│ │ ├── installed_package/
│ │ │ ├── File_1.lf
│ │ │ │ ├── Rusable_Reactor_1.lf
│ │ │ │ ├── Rusable_Reactor_2.lf
@@ -130,17 +130,17 @@ Once the libraries are installed, they will appear in the `./build/lfc_include/`
```
In this structure:
-- **LF Package**: Represents the root folder of the main package.
-- **installed_library**: Represents each library listed in `Lingo.toml`, which contains one or more LF programs featuring reusable reactors.
+- **\**: Represents the root folder of the main package.
+- **installed_package**: Represents each package listed in `Lingo.toml`, which contains one or more LF projects featuring reusable reactors.
-The image below shows a visual representation of the **Installed Packages** section. The **project** icon indicates the LF Package folder (e.g., `AudioClassification`), while the **root-folder** icon represents the downloaded libraries (e.g., the `edgeai` library in the example). The **code file** icon denotes an LF program within a library, and the **bracket** icon represents individual reactors inside the LF program.
+The image below shows a visual representation of the **Installed Packages** section. The **project** icon indicates the LF Package folder (e.g., `AudioClassification`), while the **root-folder** icon represents the downloaded package (e.g., the `edgeai` package in the example). The **code file** icon denotes an LF program within a package, and the **bracket** icon represents individual reactors inside the LF program.
The hierarchy categorizes tree items into the following types:
-1. **`library-root`**: Refers to the root folder of each downloaded library.
-2. **`file`**: Represents an LF program within the library.
+1. **`package-root`**: Refers to the root folder of each downloaded package.
+2. **`file`**: Represents an LF program within the package.
3. **`reactor`**: Refers to individual reactors within the LF program.
When focusing on the **Installed Packages** section, an `edit` command becomes available. Clicking it opens the `Lingo.toml` file in the editor for configuration changes. The following actions are available for items in the **Installed Packages** section:
@@ -206,7 +206,7 @@ The **Source Files** section lists all LF programs in the `./src/` directory. Th
```
├──
...
-│ ├── Local Libraries
+│ ├── Source Files
│ │ ├── File_1.lf
│ │ ├── File_2.lf
│ │ ├── File_3.lf