https://github.com/albertocavalcante/gvy
Tools for Apache Groovy (LSP wip)
https://github.com/albertocavalcante/gvy
groovy lsp vscode
Last synced: 3 months ago
JSON representation
Tools for Apache Groovy (LSP wip)
- Host: GitHub
- URL: https://github.com/albertocavalcante/gvy
- Owner: albertocavalcante
- License: apache-2.0
- Created: 2025-09-25T01:38:43.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-01-08T17:47:24.000Z (7 months ago)
- Last Synced: 2026-01-08T20:44:08.937Z (7 months ago)
- Topics: groovy, lsp, vscode
- Language: Kotlin
- Homepage:
- Size: 5.33 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 151
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Roadmap: docs/roadmap/README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Groovy Devtools
Groovy Devtools (gvy) is a monorepo of Apache Groovy tooling. The Groovy Language Server (LSP) is the primary component
and is still a work in progress, but it already provides core editor features plus framework-aware support for Jenkins
pipelines and Spock tests.
## Status
- Core LSP: completion, hover, navigation, formatting, diagnostics, code actions, rename, folding, semantic tokens
- Jenkins: metadata-driven completion and diagnostics; deeper context awareness in progress
- Spock: spec detection and block awareness; richer DSL support in progress
- Editors: VS Code/Cursor/VSCodium extension in `editors/code/`
See `docs/roadmap.md` for the user-facing roadmap.
## Documentation
- `docs/README.md`
- `docs/overview.md`
- `docs/lsp/usage.md`
- `docs/lsp/feature-support.md`
## LSP Target
We target LSP 3.17 and use `lsp4j` 0.24.0. The full support matrix lives in `docs/lsp/feature-support.md`.
## Requirements
- Java 17 or higher
- Groovy 4.0+
## Building
```bash
./gradlew build
```
This creates a fat JAR under `build/libs/`.
## Running
### Stdio mode (default)
```bash
java -jar build/libs/groovy-lsp-.jar
```
### Socket mode
```bash
java -jar build/libs/groovy-lsp-.jar socket 8080
```
## Development
This project uses:
- Kotlin 2.0
- LSP4J for protocol implementation
- Gradle 9.1 for builds
### Running tests
```bash
./gradlew test
```
### GitHub issue XML prompt generator
Generate a fenced `xml` prompt for a GitHub issue using the Codex CLI:
```bash
./tools/github-issues/generate-xml-prompt.sh ISSUE_NUMBER [--comment] [--model MODEL]
```
Requirements: `gh` (authenticated for the repo), `codex` CLI, and `jq` for parsing issue metadata. The tool asks Codex
to return a pretty-printed XML block inside triple-backtick xml code fences; use `--comment` to post the output back to
the GitHub issue instead of printing it locally. The default model is `gpt-5-codex`.
### Monorepo layout
| Path | Description |
| -------------------------- | ----------------------------------- |
| `groovy-lsp/` | Core language server |
| `parser/` | Parsing libraries (api/native/core) |
| `groovy-common/` | Shared utilities |
| `groovy-diagnostics/` | Diagnostics (compiler + CodeNarc) |
| `groovy-formatter/` | OpenRewrite-based formatting |
| `groovy-jenkins/` | Jenkins pipeline support |
| `groovy-spock/` | Spock framework support |
| `groovy-gdsl/` | GDSL execution and metadata |
| `groovy-testing/` | Test discovery utilities |
| `groovy-junit/` | JUnit integration |
| `groovy-repl/` | Groovy REPL |
| `groovy-build-tool/` | BSP/Gradle integration |
| `editors/code/` | VS Code/Cursor/VSCodium extension |
| `jupyter/` | Jupyter kernels (Groovy/Jenkins) |
| `tools/jenkins-extractor/` | Jenkins metadata extractor |
| `tests/` | End-to-end LSP scenarios |
### VS Code Extension
The VS Code extension is located in `editors/code/`. See [editors/code/README.md](editors/code/README.md) for
extension-specific documentation.
A standalone mirror is maintained at [vscode-groovy](https://github.com/albertocavalcante/vscode-groovy) (synced via
Copybara).
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
## License
Apache License 2.0 - See [LICENSE](LICENSE) for details.