From ee024f3f2d6a9f7172b4d7281c0cd5909d875eb8 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 1 Jun 2023 01:00:58 +0200 Subject: [PATCH] docs: mention Termux extension workarounds (#6227) --- ci/build/build-vscode.sh | 2 +- docs/termux.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/ci/build/build-vscode.sh b/ci/build/build-vscode.sh index 49acbf5b7..a72549fb6 100755 --- a/ci/build/build-vscode.sh +++ b/ci/build/build-vscode.sh @@ -112,7 +112,7 @@ EOF pushd lib/vscode-reh-web-linux-x64 # Make sure Code took the version we set in the environment variable. Not # having a version will break display languages. - if ! jq -e .commit product.json ; then + if ! jq -e .commit product.json; then echo "'commit' is missing from product.json" exit 1 fi diff --git a/docs/termux.md b/docs/termux.md index 152e0154b..9c19a9e42 100644 --- a/docs/termux.md +++ b/docs/termux.md @@ -8,6 +8,7 @@ - [Upgrade](#upgrade) - [Known Issues](#known-issues) - [Git won't work in `/sdcard`](#git-wont-work-in-sdcard) + - [Many extensions including language packs fail to install](#many-extensions-including-language-packs-fail-to-install) - [Extra](#extra) - [Create a new user](#create-a-new-user) - [Install Go](#install-go) @@ -87,6 +88,37 @@ Potential Workaround : 1. Create a soft-link from the debian-fs to your folder in `/sdcard` 2. Use git from termux (preferred) +### Many extensions including language packs fail to install + +Issue: Android is not seen as a Linux environment but as a separate, unsupported platform, so code-server only allows [Web Extensions](https://code.visualstudio.com/api/extension-guides/web-extensions), refusing to download extensions that run on the server.\ +Fix: None\ +Potential workarounds : + +Either + +- Manually download extensions as `.vsix` file and install them via `Extensions: Install from VSIX...` in the Command Palette. + +- Use an override to pretend the platform is Linux: + +Create a JS script that patches `process.platform`: + +```js +// android-as-linux.js +Object.defineProperty(process, "platform", { + get() { + return "linux" + }, +}) +``` + +Then use Node's `--require` option to make sure it is loaded before `code-server` starts: + +```sh +NODE_OPTIONS="--require /path/to/android-as-linux.js" code-server +``` + +⚠️ Note that Android and Linux are not 100% compatible, so use these workarounds at your own risk. Extensions that have native dependencies other than Node or that directly interact with the OS might cause issues. + ## Extra ### Create a new user