mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-14 06:46:36 +00:00
Restart the LS on core install/remove.
Fixes bcmi-labs/arduino-language-server#9 Signed-off-by: Akos Kitta <kittaakos@typefox.io>
This commit is contained in:
parent
b1388be5f9
commit
0a8b6bc41e
@ -2,6 +2,7 @@ import { injectable, inject, postConstruct } from 'inversify';
|
|||||||
import { BaseLanguageClientContribution } from '@theia/languages/lib/browser';
|
import { BaseLanguageClientContribution } from '@theia/languages/lib/browser';
|
||||||
import { BoardsServiceClientImpl } from '../boards/boards-service-client-impl';
|
import { BoardsServiceClientImpl } from '../boards/boards-service-client-impl';
|
||||||
import { BoardsConfig } from '../boards/boards-config';
|
import { BoardsConfig } from '../boards/boards-config';
|
||||||
|
import { Board, BoardPackage } from '../../common/protocol/boards-service';
|
||||||
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class ArduinoLanguageClientContribution extends BaseLanguageClientContribution {
|
export class ArduinoLanguageClientContribution extends BaseLanguageClientContribution {
|
||||||
@ -25,6 +26,18 @@ export class ArduinoLanguageClientContribution extends BaseLanguageClientContrib
|
|||||||
@postConstruct()
|
@postConstruct()
|
||||||
protected init() {
|
protected init() {
|
||||||
this.boardsServiceClient.onBoardsConfigChanged(this.selectBoard.bind(this));
|
this.boardsServiceClient.onBoardsConfigChanged(this.selectBoard.bind(this));
|
||||||
|
const restartIfAffected = (pkg: BoardPackage) => {
|
||||||
|
if (!this.boardConfig) {
|
||||||
|
this.restart();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const { selectedBoard } = this.boardConfig;
|
||||||
|
if (selectedBoard && pkg.boards.some(board => Board.sameAs(board, selectedBoard))) {
|
||||||
|
this.restart();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.boardsServiceClient.onBoardInstalled(({ pkg }) => restartIfAffected(pkg));
|
||||||
|
this.boardsServiceClient.onBoardUninstalled(({ pkg }) => restartIfAffected(pkg));
|
||||||
}
|
}
|
||||||
|
|
||||||
selectBoard(config: BoardsConfig.Config): void {
|
selectBoard(config: BoardsConfig.Config): void {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user