From 0d50604a56005dbb0621da5a9bb8fe1163e4e442 Mon Sep 17 00:00:00 2001 From: Taha Tesser Date: Wed, 12 May 2021 05:34:03 +0530 Subject: [PATCH] [reland] Adding vscode path installed via snap (#81989) --- packages/flutter_tools/lib/src/vscode/vscode.dart | 2 ++ .../test/general.shard/vscode/vscode_test.dart | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/flutter_tools/lib/src/vscode/vscode.dart b/packages/flutter_tools/lib/src/vscode/vscode.dart index 679eafe2ad3..f4a2753c05c 100644 --- a/packages/flutter_tools/lib/src/vscode/vscode.dart +++ b/packages/flutter_tools/lib/src/vscode/vscode.dart @@ -239,6 +239,7 @@ class VsCode { // Linux: // /usr/share/code/bin/code + // /snap/code/current // /usr/share/code-insiders/bin/code-insiders // Linux Extensions: // $HOME/.vscode/extensions @@ -246,6 +247,7 @@ class VsCode { static List _installedLinux(FileSystem fileSystem, Platform platform) { return _findInstalled([ const VsCodeInstallLocation('/usr/share/code', '.vscode'), + const VsCodeInstallLocation('/snap/code/current', '.vscode'), const VsCodeInstallLocation( '/usr/share/code-insiders', '.vscode-insiders', diff --git a/packages/flutter_tools/test/general.shard/vscode/vscode_test.dart b/packages/flutter_tools/test/general.shard/vscode/vscode_test.dart index 3c7c8a02a6d..2e7b3cfbe2e 100644 --- a/packages/flutter_tools/test/general.shard/vscode/vscode_test.dart +++ b/packages/flutter_tools/test/general.shard/vscode/vscode_test.dart @@ -41,6 +41,19 @@ void main() { expect(vsCode.version, Version.unknown); }); + testWithoutContext('can locate VS Code installed via Snap', () { + final FileSystem fileSystem = MemoryFileSystem.test(); + const String home = '/home/me'; + final Platform platform = FakePlatform(operatingSystem: 'linux', environment: {'HOME': home}); + + fileSystem.directory(fileSystem.path.join('/snap/code/current/', '.vscode')).createSync(recursive: true); + + final FakeProcessManager processManager = FakeProcessManager.list([]); + + final List installed = VsCode.allInstalled(fileSystem, platform, processManager); + expect(installed.length, 1); + }); + testWithoutContext('can locate installations on macOS', () { final FileSystem fileSystem = MemoryFileSystem.test(); const String home = '/home/me';