Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ It serves as a reference for modern Eclipse development practices, covering both

- **Eclipse Tycho**: Used for building Eclipse plugins, features, and products with Maven.
- **Eclipse 4 (e4)**: Demonstrates dependency injection (Jakarta Inject), the application model (`.e4xmi`), and CSS styling.
- **Generic Editor & TM4E**: Examples of extending the Eclipse Generic Editor with TextMate grammars (TM4E) for languages like Asciidoc.
- **Language Server Protocol (LSP)**: Integrations for Asciidoc via Language Servers.
- **Generic Editor & TM4E**: Examples of extending the Eclipse Generic Editor with TextMate grammars (TM4E), for example for shell scripts.
- **OSGi**: The underlying modular system for all Eclipse plugins.
- **Java 25**: The project is configured to use JavaSE-25.

Expand All @@ -17,9 +16,8 @@ It serves as a reference for modern Eclipse development practices, covering both
The repository is organized into many OSGi bundles (plugins):

- `com.vogella.ide.first`: Core UI components and product definition.
- `com.vogella.ide.editor.*`: Custom editors and extensions for the Generic Editor (Asciidoc, Gradle, Shell, Tasks).
- `com.vogella.ide.editor.*`: Custom editors and extensions for the Generic Editor (Gradle, Shell, Tasks).
- `com.vogella.tasks.*`: A sample task management application split into model, services, and UI.
- `com.vogella.lsp.asciidoc.client` and `com.vogella.lsp.asciidoc.server` LSP client and server implementations.
- `target-platform`: Contains the target definition file (`target-platform.target`) which specifies the Eclipse release and dependencies used for the build.
- `updatesite`: The Tycho-generated p2 repository for distributing the plugins.

Expand Down Expand Up @@ -71,7 +69,6 @@ The `updatesite` module has its own `pom.xml` only for this plugin.

- **OSGi Metadata**: Always manage dependencies in `META-INF/MANIFEST.MF`.
- **Extensions**: UI contributions are defined in `plugin.xml`.
- **Asciidoc Functionality**: As much as possible, Asciidoc functionality should be implemented via the LSP (Language Server Protocol) functionality in the `com.vogella.lsp.asciidoc.*` bundles.
- **Dependency Injection**: Prefer `@Inject` (Jakarta) for accessing services and UI components in e4-based bundles.
- **Coding Style**: Follow standard Eclipse/Java conventions. The project uses `UTF-8` encoding.
- **Testing**: Test fragments (e.g., `com.vogella.tasks.services.tests`) use JUnit and are executed by `tycho-surefire-plugin` during the build.
54 changes: 0 additions & 54 deletions AsciidocSupport.adoc

This file was deleted.

15 changes: 7 additions & 8 deletions PomlessAggregator.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@
Tycho's `tycho-build` extension can derive a Maven model for a bundle, feature, product or update site from the files that already describe it, so most modules here have no `pom.xml`.
The same mechanism can also derive an *aggregator*, which is what this repository uses to keep the module list out of the root `pom.xml`.

Two variants are shown:

`build/pom.tycho`:: The reactor module list. The root `pom.xml` declares a single module, and the real list lives in a plain text file.
`lsp/pom.tycho`:: A group of related bundles collected in their own folder, listed by an aggregator of their own.
`build/pom.tycho` holds the reactor module list.
The root `pom.xml` declares a single module, and the real list lives in a plain text file.
The same mechanism also works for a group of related bundles collected in their own folder, listed by a `pom.tycho` of their own, which is how the (since removed) `lsp` folder of this repository was built.

== How it works

Expand All @@ -24,7 +23,7 @@ The artifactId is the folder name, and every non-comment line becomes a `<module
----
# "#" comments and blank lines are ignored
../com.vogella.ide.first
../lsp
../com.vogella.ide.feature
----

Because the lines are used verbatim, they may point outside the aggregator's own folder.
Expand All @@ -48,8 +47,8 @@ That is why the indirection through `build/` is needed.
If a folder is named `bundles`, `plugins`, `tests`, `features`, `sites`, `products` or `releng`, Tycho scans its subfolders and generates the module list without any file at all.
The list of names is configurable with `-Dtycho.pomless.aggregator.names`.

This repository deliberately uses an explicit `lsp/pom.tycho` instead, for two reasons.
The folder name `lsp` says what the group is, and an explicit list keeps the ability to disable a single module by commenting out one line.
An explicit `pom.tycho` is preferable for a group folder, for two reasons.
The folder name can say what the group is, and an explicit list keeps the ability to disable a single module by commenting out one line.
Automatic detection always takes every subfolder it finds.

TIP: Tycho writes its generated `pom.tycho` files with a `## tycho automatic module detection <uuid>` first line and deletes them when the JVM exits.
Expand All @@ -66,7 +65,7 @@ Two settings make the nested layout work.
----

By default a pomless module looks for its parent in `..`.
That holds for a bundle at the repository root, but not for one nested inside `lsp/`, which would look in `lsp/` and find nothing.
That holds for a bundle at the repository root, but not for one nested inside a group folder, which would look in that folder and find nothing.
Pointing the property at the directory that contains `.mvn` makes every pomless module resolve the root pom as its parent, whatever its depth.
`maven.multiModuleProjectDirectory` is resolved by Maven itself, so the setting keeps working when the build is started from a subdirectory.

Expand Down
4 changes: 0 additions & 4 deletions build/pom.tycho
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,9 @@
../com.vogella.tasks.extendedsupplier
../com.vogella.preferences.page
../com.vogella.ide.editor.gradle
../com.vogella.ide.editor.asciidoc
../com.vogella.ide.editor.shell
../com.vogella.ide.debugtools

# Language server example, grouped in its own folder with its own pom.tycho
../lsp

../z.ex.search
../com.vogella.ide.iconreplacer
../com.vogella.ide.parallelstart
Expand Down
7 changes: 0 additions & 7 deletions com.vogella.ide.editor.asciidoc/.classpath

This file was deleted.

45 changes: 0 additions & 45 deletions com.vogella.ide.editor.asciidoc/.project

This file was deleted.

This file was deleted.

This file was deleted.

23 changes: 0 additions & 23 deletions com.vogella.ide.editor.asciidoc/META-INF/MANIFEST.MF

This file was deleted.

8 changes: 0 additions & 8 deletions com.vogella.ide.editor.asciidoc/build.properties

This file was deleted.

Binary file removed com.vogella.ide.editor.asciidoc/icons/asciidoc.png
Binary file not shown.
Binary file removed com.vogella.ide.editor.asciidoc/icons/asciidoc@2x.png
Binary file not shown.
129 changes: 0 additions & 129 deletions com.vogella.ide.editor.asciidoc/language-configurations/asciidoc.json

This file was deleted.

Loading
Loading