Better gradle and extension conflict error handling. Refs #99

This commit is contained in:
Richard Willis 2020-02-16 09:40:57 +01:00
Родитель 4994d87e8a
Коммит 0f9bd62147
6 изменённых файлов: 26 добавлений и 6 удалений

Просмотреть файл

@ -104,7 +104,7 @@ Check your dotfiles (eg `~/.bashrc`, `~/.bash_profile`, `~/.zshrc`) and fix any
You might see an error like:
```
```shell
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
```
@ -112,6 +112,16 @@ The start script [should find](https://gist.github.com/badsyntax/d71d38b1700325f
</details>
<details><summary>Incompatibility with other extensions</summary>
This extension is incompatible with the following extensions:
- [spmeesseman.vscode-taskexplorer](https://marketplace.visualstudio.com/items?itemName=spmeesseman.vscode-taskexplorer)
The reason for the incompatibility is due to the extensions providing the same tasks types (`gradle`) with different task definitions.
</details>
## Contributing
Refer to [CONTRIBUTING.md](./CONTRIBUTING.md) for instructions on how to run the project.

Просмотреть файл

@ -87,13 +87,13 @@ public class Server extends WebSocketServer {
@Override
public void onStart() {
logger.info("Server started, waiting for clients");
logger.info("Gradle tasks server started");
setConnectionLostTimeout(0);
setConnectionLostTimeout(100);
}
@Override
public void onMessage(WebSocket conn, String message) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException();
}
}

Просмотреть файл

@ -28,8 +28,9 @@ class Action {
protected void logError(WebSocket connection, String error) {
logger.warning(error);
if (connection.isOpen()) {
connection
.send(ServerMessage.Error.newBuilder().setMessage(error).build().toByteArray());
connection.send(ServerMessage.Message.newBuilder()
.setError(ServerMessage.Error.newBuilder().setMessage(error)).build()
.toByteArray());
}
}
}

1
package-lock.json сгенерированный
Просмотреть файл

@ -5805,6 +5805,7 @@
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/ts-protoc-gen/-/ts-protoc-gen-0.12.0.tgz",
"integrity": "sha512-V7jnICJxKqalBrnJSMTW5tB9sGi48gOC325bfcM7TDNUItVOlaMM//rQmuo49ybipk/SyJTnWXgtJnhHCevNJw==",
"dev": true,
"requires": {
"google-protobuf": "^3.6.1"
}

Просмотреть файл

@ -158,6 +158,7 @@ export class GradleTasksClient implements vscode.Disposable {
) {
this.onGradleProgress(this.handleProgressMessage);
this.onGradleOutput(this.handleOutputMessage);
this.onGradleError(this.handleGradleError);
this.server.onStart(this.connect);
this.server.onStop(this.handleServerStopped);
}
@ -386,6 +387,13 @@ export class GradleTasksClient implements vscode.Disposable {
}
};
private handleGradleError = (message: ServerMessage.Error): void => {
const logMessage = message.getMessage().trim();
if (logMessage) {
logger.error(logMessage);
}
};
private handleMessage = (data: WebSocket.Data): void => {
if (data instanceof Buffer) {
let serverMessage: ServerMessage.Message;

Просмотреть файл

@ -297,7 +297,7 @@ export class GradleTasksTreeDataProvider
let workspaceTreeItem = null;
tasks.forEach(task => {
if (isWorkspaceFolder(task.scope)) {
if (isWorkspaceFolder(task.scope) && task.definition.buildFile) {
workspaceTreeItem = workspaceTreeItems.get(task.scope.name);
if (!workspaceTreeItem) {
workspaceTreeItem = new WorkspaceTreeItem(