From 62eff291724bf9d12624be0fdb9e5311529bd978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Sp=C3=B6nemann?= Date: Mon, 16 Sep 2019 08:42:14 +0200 Subject: [PATCH] Configure cpp extension to use embedded clangd --- .../src/node/arduino-backend-module.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arduino-ide-extension/src/node/arduino-backend-module.ts b/arduino-ide-extension/src/node/arduino-backend-module.ts index f69c39f4..02e480fc 100644 --- a/arduino-ide-extension/src/node/arduino-backend-module.ts +++ b/arduino-ide-extension/src/node/arduino-backend-module.ts @@ -1,3 +1,6 @@ +import * as fs from 'fs'; +import * as os from 'os'; +import { join } from 'path'; import { ContainerModule } from 'inversify'; import { ArduinoDaemon } from './arduino-daemon'; import { ILogger } from '@theia/core/lib/common/logger'; @@ -155,4 +158,13 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { const parentLogger = ctx.container.get(ILogger); return parentLogger.child('monitor-service'); }).inSingletonScope().whenTargetNamed('monitor-service'); + + // Set up cpp extension + if (!process.env.CPP_CLANGD_COMMAND) { + const executable = os.platform() === 'win32' ? 'clangd.exe' : 'clangd'; + const clangdCommand = join(__dirname, '..', '..', 'build', executable); + if (fs.existsSync(clangdCommand)) { + process.env.CPP_CLANGD_COMMAND = clangdCommand; + } + } });