Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/salesforce/bazel-ls-eclipse
POC of a Java-only language server for Bazel
https://github.com/salesforce/bazel-ls-eclipse
Last synced: 11 days ago
JSON representation
POC of a Java-only language server for Bazel
- Host: GitHub
- URL: https://github.com/salesforce/bazel-ls-eclipse
- Owner: salesforce
- Archived: true
- Created: 2020-02-10T16:21:29.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-12T14:36:36.000Z (over 2 years ago)
- Last Synced: 2024-07-31T07:15:49.441Z (3 months ago)
- Language: Java
- Homepage:
- Size: 22.2 MB
- Stars: 8
- Watchers: 11
- Forks: 4
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE2.0.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-bazel - B2Eclipse - Bazel Eclipse plugin based on [Eclipse JDT LS](https://github.com/eclipse/eclipse.jdt.ls) (Tooling / Editors)
README
***This code has been been merged back into [bazel-eclipse](https://github.com/salesforce/bazel-eclipse).***
No further development activity will happen here.----
[![](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![](https://img.shields.io/badge/license-EPL%202-blue.svg)](http://www.eclipse.org/legal/epl-v20.html)B2Eclipse
===========================This is the set of Eclipse plugins for developing Bazel projects in Eclipse. Currently supports running in a language server mode only (through the [Eclipse JDT LS](https://github.com/eclipse/eclipse.jdt.ls)).
Repository structure
--------------------
- **com.salesforce.b2eclipse.jdt.ls** - the code which does all that Bazel-related stuff for building classpaths before they can be further processed by JDT.
- **com.salesforce.b2eclipse.repository** - here you can find the outcome of the build (packaged plugins).
- **com.salesforce.b2eclipse.tests** - integration tests for the jdt.ls plugin.
- **com.salesforce.b2eclipse.ui** - a plugin for the client (the one which is connected to the language server for code interactions). It's rather a simple connection provider to a language server, not a full-fledged UI plugin.Properties
----------
The following properties are passed from the client to configure the plugin:
- `java.import.bazel.enabled` - whether Bazel support should be enabled in JDT LS (disabled by default);
- `java.import.bazel.src.path` - location of sources (relative to a package). Defaults to `/src/main/java`;
- `java.import.bazel.test.path` - location of test sources (relative to a package). Defaults to `/src/test/java`.Assumptions
-----------
- Root package is not allowed (i.e. there should be no BUILD file beside the WORKSPACE);
- A project has to be in a valid state (i.e. no unsatisfied dependencies are allowed);
- Each package is to have sources;
- Sources of a package are expected to be under the path specified through the following properties: `java.import.bazel.src.path`, `java.import.bazel.test.path` (details in the [Properties](#properties) section).
- Sources of a package cannot reside in the root of it. They should be in a subdir;
- Subpackages are not supported (i.e. package within package).Future vision
-------------
Will be shipped separately as two independent features: standalone feature and as extension for Eclipse JDT LS.![Vision diagram](../assets/images/vision-diagram.png?raw=true)
Building from the command line
----------------------------The following command will install [Apache Maven](https://maven.apache.org/) if necessary, then build the server into the `/com.salesforce.b2eclipse.repository/target/repository` folder:
```bash
$ ./mvnw clean verify
````
Note: currently, the build can only run when launched with JDK 8.Features
--------------
* Code completion
* Code navigationLicense
-------
This work is dual-licensed under EPL 2.0 and Apache License 2.0. See corresponding files:
[EPL2.0](LICENSE-EPL2.0.txt), [Apache License 2.0](LICENSE-APACHE2.0.txt).