Package Details: code-features 1.96.0-1

Git Clone URL: https://aur.archlinux.org/code-features.git (read-only, click to copy)
Package Base: code-features
Description: Unblock some features in Code OSS
Upstream URL: https://github.com/microsoft/vscode
Keywords: vscode
Licenses: unknown
Conflicts: code-features
Provides: code-features
Submitter: sainnhe
Maintainer: sainnhe
Last Packager: sainnhe
Votes: 58
Popularity: 1.23
First Submitted: 2021-04-06 00:46 (UTC)
Last Updated: 2024-12-21 09:30 (UTC)

Pinned Comments

sainnhe commented on 2024-11-01 14:53 (UTC) (edited on 2024-11-02 03:08 (UTC) by sainnhe)

New Command Available in 1.95.0-2

Now there is a new command /usr/bin/code-features-update that can update the patch to keep up with the official vscode release. You can use this command to manually update the patch when this package is out of date or some extensions don't work after an update in extra/code.

sainnhe commented on 2024-05-17 03:39 (UTC) (edited on 2024-10-26 10:10 (UTC) by sainnhe)

About this package

This package installs a hook that will patch product.json every time the code package is updated. The patch basically does the following:

  1. Syncs proposed APIs with the latest vscode release. Some extensions don't work in code oss because some specific APIs are not enabled in product.json.
  2. Enable built-in settings sync feature.
  3. Disable telemetry.
  4. Use ~/.vscode and ~/.Code instead of ~/.vscode-oss and ~/.Code OSS.

You might be confused why this package changes the data directory. There are two reasons:

  1. Some extensions (e.g. Pylance) require to use the data directory to work.
  2. Isolate settings sync data from the OSS version. People may want to install this package because they want to unlock some proprietary extensions, and may have some specific settings that only works with these extensions. Besides, this package will enable built-in sync feature, so isolating the settings may avoid some potential problems such as messing up your synced settings.

If you don't like this behavior, simply create a symlink.

About proprietary extensions

Proprietary extensions are not guaranteed to work, because some extensions will actively detect whether the current running environment is the official vscode release, and it's very hard to bypass their detection at all time.

If some extensions don't work, try:

  1. Run update.py in the project root. This scripts will update the patch to match the latest vscode release. Then execute makepkg -fsi to rebuild and install this package.
  2. Switch over a FOSS alternative, for example Pylance -> Basedpyright, C/C++ -> Clangd

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 Next › Last »

oysstu commented on 2023-12-09 21:34 (UTC)

Has anyone gotten remote-SSH to work recently?

Whyhow commented on 2023-09-15 17:30 (UTC) (edited on 2023-09-15 18:47 (UTC) by Whyhow)

You can apparently get pylance to work by renaming .vscode/extensions/ms-python.vscode-pylance-2023.9.10/dist/extension.bundle.js to extension.bundle.js.bak

See https://github.com/VSCodium/vscodium/discussions/1641

MajorMayer commented on 2023-08-17 07:16 (UTC)

After the last update I needed to move all my "~/.config/Code - OSS" folder to "~/.config/Code" and (as stated below) "~/.vscode-oss" to "~/.vscode".

mtorromeo commented on 2023-08-16 07:19 (UTC) (edited on 2023-08-16 07:20 (UTC) by mtorromeo)

The install script could handle better the version upgrade and not require manual intervention:

pre_upgrade() {
  if [ "$(vercmp "$2" "1.81.1")" -lt 0 ]; then
    sed -i -e 's/^[[:blank:]]*"nameLong":.*/\t"nameLong": "Code - OSS",/' \
      -e 's/^[[:blank:]]*"tunnelApplicationName":.*/\t"tunnelApplicationName": "code-tunnel-oss",/' \
      -e '/^[[:blank:]]*"extensionEnabledApiProposals"/d' \
      -e '/^[[:blank:]]*"extensionSyncedKeys/d' \
      /usr/lib/code/product.json
  else
    /usr/share/code-features/patch.py code-features restore
  fi
}

sainnhe commented on 2023-08-13 13:31 (UTC)

Upgrading notes for v1.81.1

The code has been refactored in python, upgrading requires manual interventions:

pacman -Rdd code code-features
pacman -S code code-features

Don't reinstall them, uninstall and install these packages instead.

Since the code has been refactored, you can easily modify the code to upgrade to a new version by yourself if I cannot update this package in time. Simply download the latest tarball from code.visualstudio.com and extract them, then run update.py to update patch.json (The usage is documented in update.py), and run makepkg --skipchecksums -i to rebuild and install this package.

Microsoft has introduced new detection method for Pylance extension, now this AUR package cannot bypass the version check of it. Although you can downgrade Pylance to a lower version to continue to use it, but I'd recommend to switch to a FOSS alternative instead (e.g. Pyright) because you'll never know what Microsoft will do in the future. Microsoft sucks :)

The data folder has changed to ~/.vscode because some extensions provided by Microsoft will explicitly use that folder, otherwise they won't work.

<deleted-account> commented on 2023-08-10 18:26 (UTC)

With vscode 1.81 for pylance it no longer works.

More specifically, it is the newer version of Pylance that refuses to work on the OSS version, M$ must have introduced new detection mechanism.

Interestingly, the crippled version was only released 23 hours ago as I was writing this. This means that you can install an older version (v2023.8.10) as a temporary workaround.

It can be installed using the Install Another Version option from the Extensions drop-down menu.

jamazi commented on 2023-06-21 17:03 (UTC)

@sainhe it would be great if you @DroidFreak32 patch too

sainnhe commented on 2022-12-14 15:19 (UTC)

@wooptoo:

  1. Add extension API proposals to product.json, this will fix some issues in certain extensions (e.g. pylance)

  2. Add support for VSCode built-in settings sync.

wooptoo commented on 2022-12-14 15:15 (UTC)

Excuse the ignorance, what does this package actually do? I've only needed to install this now with the upgrade to vscode v1.74 because of the python extension issue.